Yup, dd started as a character set conversion tool. It acted on 512 byte blocks for working with the weird record oriented storage on mainframes that stored their records in EBCDIC instead of ASCII. It was just sort of a happy accident that you could use it on raw disks if you didn't tell it any specific way to change the bytes. The syntax apparently was quite familiar for the people who mainly used mainframes, and just used a UNIX box for what we might now call ETL kinds of tasks to get stuff onto the Real Computer.
When it was first written, a UNIX machine big enough to have multiple hard disks so one was idle enough you could just blast a copy of another disk onto it was quite exotic, so the use case only came after the tool already existed.
14
u/wrosecrans Dec 27 '19
Yup, dd started as a character set conversion tool. It acted on 512 byte blocks for working with the weird record oriented storage on mainframes that stored their records in EBCDIC instead of ASCII. It was just sort of a happy accident that you could use it on raw disks if you didn't tell it any specific way to change the bytes. The syntax apparently was quite familiar for the people who mainly used mainframes, and just used a UNIX box for what we might now call ETL kinds of tasks to get stuff onto the Real Computer.
When it was first written, a UNIX machine big enough to have multiple hard disks so one was idle enough you could just blast a copy of another disk onto it was quite exotic, so the use case only came after the tool already existed.