I'm using dd
to copy an image onto a USB. But what does dd
stand for?
I understand its use, but not what the name dd
actually means, or is an acronym for.
It doesn't even say in the man page.
I'm using dd
to copy an image onto a USB. But what does dd
stand for?
I understand its use, but not what the name dd
actually means, or is an acronym for.
It doesn't even say in the man page.
The syntax was inspired by the DD (data definition) statement of OS/360 JCL. Source:GNU
More Reading Here
There are many theories. I recall in Unix v7 (when
dd
first appeared) the man page said it meant disk dump (or was it data dump?) since it was frequently used as a disk backup/restore utility. However, an archive of the v7 man page mentions no etymology nor meaning. Possibly I heard it from someone at Bell Labs since I had occasional access in the early 1980s.Other theories are:
cc
(man dd from Unix-V7 on PDP-11)dd stands for Data Description.
dd = "Disc Dump".
This utility comes from the original UNIX System operational environment where it was common to replicate secondary memory (mass storage devices in a "Virtual Memory" operating system). dd can do this, bit for bit, byte for byte, sector for sector, track for track, etc. It can also flip bits, convert EBCDIC to ASCII, change block sizes and do pretty much any other binary operation you'd want/need to move/convert/recover storage data. Storage devices (all) in those days were much slower, less dense and far less reliable than today. We had to replace/repair "Random Access Magnetic Storage Devices", (e.g. disk drives, floppy and hard, magnetic cylinders, etc.) all the time.
In the event of a head crash, or other catastrophic storage device failure, "dd" was (and still is) one of my favorite utilities for extracting what data I could to a new device. Once the new device was installed, I could use fsck (file system check) and fsdb (file system debugger) to recover/repair some of the damaged file system and maybe extract some data.
This was also our first rudimentary backup system. The application process (dd), can operate as "super user" and read/write directly through the I/O subsystem (kernel) via character (raw) or block device driver [entry points], bypassing file system (kernel) yet completely replicating the file system construct to the new device. dd (like every other UNIX core utility) also has the ability to read from the standard input and write to the standard output allowing for it to be used for other things in a shell script :-) ....
Always thought it stood for 'disk dupe' (duplicate disk) Think it was in SCO Unix Sys V version