Ark

Ark is an idea I had while trying to build a FreeBSD jails implementation of something to Docker. It aims to be a small, simple format for building image layer filesystems.

While researching archive formats with respect to compression, I found this gem of a rant by Antonio Diaz Diaz, about how xv is unsuitable for long-term archival storage purposes beyond just immediate transfer of a bunch of related files.

The biggest mistake was not including the segment lengths in any kind of checksum. While this shouldn't introduce false positives (since the segments will be too long or too short, and their CRCs won't calculate), it does make the format more brittle than Diaz would like.

That got me thinking. If you designed an archive format with overlapping CRC regions, you might in theory make the a more resilient archival format, one well-suited to long-term offline storage, for 10+ years.

Another short-coming of formats like tar and cpio is that they only record the numeric UID / GID of the owner of a file. As a sysad, this has caused me trouble on more than a few occasions. Why not outfit Ark with both UID/GID and string names? It would cost a bit more in space, but would provide some interesting extraction scenarios: