tscs37's Blog

Designing a Disk-based Tree

To design a modern filesystem, you kinda need trees to some extend. The problem I’ve found is that existing implementations of trees, atleast in Go, either memory map data or other, similar problems. To aid in discovery of the perfect tree for this project, I’ve summarized some requirements; All data needs to be persistent to disk at all times Updates must be atomic Memory Footprint should be adjustable and small Read Latency must be small Must work with FAT32, read: 4 GiB File Splits COW and Transactions not strictly required (Those can be bootstrapped from atomic properties) I’m going to explain those shortly and detail why I chose those limitations and properties. Read more...

Allocating Data on Disk

The first hurdle to saving data in a FS is the allocation on disk. On the disk, there is only raw data accessed by addresses (or similar structures like Cylinder, Head, Sector, etc.) To sidestep this issue, SRPFS is an overlay on top of an existing filesystem. It is seperated into three layers; Blob Layer Allocation Layer Index Layer This post will be exclusively about the Blob Layer Read more...

Secure Remote Photo Filesystem

SRPFS is a next generation userspace filesystem for media or archival data storage in the cloud with options for deduplication, encryption, compression, snapshots, sharing specific folders to friends, atomic and ordered operation and redundancy. It has all those buzzwords and potentially more. The main project goals are: Research existing filesystem implementation Set fire to those Make something sane that can be extended easily For this purpose, SRPFS is userspace, allowing it to operate on top of simple filesystems like FAT32 and bootstrap the above mentioned features out of it. Read more...

Hello from the Code

printf(“Hello World”); The first post of a blog rarely contains anything informative or useful, so I’ll keep it to that tradition. At the time of writing this post I have several ideas and a running side-project, my posts will likely focus on the later and maybe I’ll do something with the former too. Current Side Project At the moment, I’m working on implement in a new userspace filesystem for securely storing data with similar write-characteristics as photos. Read more...

About

About me I’m a Programmer and Software Engineer from Germany focused on Systems Programming and genereally also interested in all things Cryptography and Blockchain. About this blog This blog’s main intention is to document and put down my thoughts on various topics or the software I build. This makes it easier to ensure that I’m not making as many errors compared to when I just collect markdown notes on my cloud drives and let them collect dust Read more...