2008-11-09
The history of Unix *dump
programs
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.