This is not the first time something like this has been done, Erik Ekman made PingFS, a file system that stores data in the internet itself .
This works because inside every ping packet is a section of data that must be sent back to the system that sent the ping, called the data payload.
Because you can put up to 1400-ish bytes in this payload, and pings take time to come back, you can use the speed of light in fiber as actual storage.
Now obviously this is not a great idea for long term data storage, since you have to keep transmitting and receiving the same packets over and over again, plus the internet gives no promise that the packet won’t be dropped at any time, and if that happens then the data is lost.
However. DNS has caches. It has caches everywhere.
Obviously, neither DNSFS, nor PingFS should be used for anything serious, but both are excellent experiments, demonstrating the flexibility of the TCP/IP and thinking outside the box.
“Interpretation of NTFS Timestamps” is a fascinating technical dive into the NTFS filesystem and the way it stores file and directory timestamps. Let me just leave you with this quote:
NTFS file timestamps, according to the documentation of the ‘FILETIME’ data structure in the Windows Software Development Toolkit, is a “64-bit value representing the number of 100-nanosecond intervals since January 1, 1601 (UTC)”.
“Files Are Hard” is one of those articles that show how complex even the simplest of things are. How complex is writing to a file? Well, quite. Especially if you want to make sure there’s no corruption in case of a crash. It goes both over the theory and practice, looking at different file systems.
This was only a matter of time … gitfs – version controlled file system:
gitfs was designed to bring the full powers of git to everyone, no matter how little they know about versioning. A user can mount any repository and all the his changes will be automatically converted into commits. gitfs will also expose the history of the branch you’re currently working on by simulating snapshots of every commit.
Here is a brief feature list:
Automatically commits changes: create, delete, update files and their metadata
Browse through working index and commit history
Merges with upstream by automatically accepting local changes
Caching commits reduces the memory footprint and speeds up navigation