The history of Unix *dump programs

November 9, 2008

The idea of a dump program itself goes back to V6 (Research) Unix, which introduced the first, rather basic dump program. At the time, Unix had neither tar nor cpio, so dump was your only option for backups. V7 Unix introduced tar, and I have the impression that as a result dump fell out of favour for backups.

My impression is that dump really got popular in 4.x BSD. When Berkeley revised the filesystem format to create FFS (the Fast FileSystem), with things like longer file names, they had to revise dump along with all of the other programs that read the raw filesystem, but I believe that they did not really revise the tar format, which had been designed in the days of shorter file names and so on. The net result was that dump became the best and perhaps only tool for backing up your 4.x BSD system.

(The Berkeley revision of the simpler V7 dump arguments created the basic dump options and behavior that we can still recognize today, with all sorts of options for tape blocksizes and so on. Berkeley also gave us interactive restore.)

Then the Unix vendors showed up. Dump has two problems; it reads the raw filesystem, which means that it has to be modified if you tweak your filesystem format, and its output format was never created to be portable. The result was a series of mostly but not entirely compatible versions of dump in all of the various 4.x BSD derived Unixes, most importantly SunOS. In vendor Unixes derived from AT&T Unix, things were more confused; some vendors had no dump at all (the commercial Unix side of AT&T appears not to have liked either V7's dump or tar, because they went and invented cpio), while others decided that 4.x BSD dump was a good idea but they should call it by another name, such as SGI's efsdump (to match their EFS filesystem).

(At some point, Sun decided that renaming dump to ufsdump would be a good idea.)

When people started doing filesystems that were really not derived from FFS, many of them decided that a dump-style program was a good idea and that there was an obvious naming scheme for theirs. However, they often did not bother to make either the command usage or the output format look anything like traditional dump, and so we got a parade of programs like xfsdump (SGI XFS), vxdump (Veritas VxFS, available for various Unix flavours), and vdump (AdvFS).

(This list is primarily researched from the Amanda source.)

When Linux ext2 was created, energetic people decided that it too should have a dump, so they wrote one (I am not sure if they started from scratch or used the 4.x BSD code as a base). Unlike previous versions of dump, they decided to try to make a portable suite: a dump that had relatively portable output, and a restore that could read and properly deal with pretty much any 4.x BSD derived dump format. This makes the Linux dump suite pretty much a universal receiver, which is periodically very handy.

Written on 09 November 2008.
« Thinking about how your security domains relate to each other
Exploiting the Bourne shell to parse configuration files »

Page tools: View Source, Add Comment.
Search:
Login: Password:
Atom Syndication: Recent Comments.

Last modified: Sun Nov 9 01:56:36 2008
This dinky wiki is brought to you by the Insane Hackers Guild, Python sub-branch.