Origin of dd

From prp@SEI.CMU.EDU Sun Jul  8 23:32:29 1990
Date: Tue, 17 Apr 90 11:09:11 -0400
From: prp@SEI.CMU.EDU
To: djm@eng.umd.edu
Subject: The Unix "dd" command

Why not collect responses and post them.
My understanding of the naming (and syntax for use)
is that this was done as a joke.  Notably it is poking
fun at OS/360 - a once reasonably well known operating
system where commands like //DD SYSIN= ... abounded and
were used for setting up I/O devices for various programs
that were about to be run.

Pat Place   prp@sei.cmu.edu

From shore@mtxinu.COM Sun Jul  8 23:32:44 1990
Date: Tue, 17 Apr 90 16:23:49 -0700
From: shore@mtxinu.COM (Melinda Shore)
To: djm@eng.umd.edu
Subject: Re: etymology of the Unix "dd" command
Newsgroups: alt.folklore.computers
Organization: mt Xinu, Berkeley

IBM batch OS job control decks take data definition cards (DD cards)
to describe files involved to run a job.  If you take a look at the
syntax of the dd command, you'll see that it looks an awful lot like
DD cards, sans commas.

Melinda Shore                             shore@mtxinu.com
mt Xinu                          ..!uunet!mtxinu.com!shore

From clt@pyrps5 Fri Apr 20 14:23:24 1990
From: clt@pyrps5 (Chris Torkildson)
Newsgroups: alt.folklore.computers
Subject: Re: etymology of the Unix \
Date: 20 Apr 90 15:51:16 GMT
Reply-To: clt@pyrps5.pyramid.com (Chris Torkildson)
Organization: Pyramid Technology Corp., Mountain View, CA

In article  throoph@jacobs.CS.ORST.EDU (Henry Throop) writes:
>In article  djm@eng.umd.edu (David J. MacKenzie) writes:
>>Does anyone know how the Unix "dd" command got its name?
>I read (I think in UnixWorld, or some other magazine) that it stood
>for DarneD if I know, but I don't know whether to believe this or
>not.  (No, I'm not making think up, btw.)

The IBM dd statement stands for "Data Description" which is a keyword,
non-Unix like JCL statement to exactly specify volume id, blocking factors,
tape densities and so on. The IBM dd statement looks very much like the Unix
dd command. I always assumed that the person who named the Unix dd just
followed the IBM naming conventions, for some warped and perverted reason.

From bzs@world.std.com Sun Apr 22 19:24:47 1990
From: bzs@world.std.com (Barry Shein)
Newsgroups: alt.folklore.computers
Subject: Re: etymology of the Unix "dd" command
Date: 22 Apr 90 19:19:28 GMT
Organization: The World @ Software Tool & Die
In-Reply-To: throoph@jacobs.CS.ORST.EDU's message of 18 Apr 90 04:44:23 GMT

>Does anyone know how the Unix "dd" command got its name?

It's a play on the IBM/JCL DD command, DD stood for DATA DEFINITION in
JCL and was how you attached files to a job. All files had to be
pre-allocated and were defined externally to the job, sort of like the
Unix  commands only absurdly complicated.

The cards looked like:

	//sysin dd *

which meant attach the symbolic input name (sysin) to the rest of this
card deck (*), but more telling are things like:

	//sysin dd lrecl=80,blksiz=800,disp=(new,new,save),

(hmm, doesn't look quite right, who cares)

starting to look familiar? There were around 200 options available,
and the defaults were almost always wrong...

The job accessed the symbol SYSIN (or whatever, you just made it up,
but a lot of packages used SYSIN, SYSOUT, SYSPRINT and SYSPUNCH as a
standard) as if it were a file and the file was attached externally
through a DSNAME (data set name) card who's format was described in
the DD card.

Let's put it this way, it took a reasonably seasoned programmer to
just make a copy of a file...

The fun part was that JCL errors where I worked years ago cost about
$1.50 each due to minimum costs of running one job through and having
it bomb out. I went through over $1,000 one evening, in real money,
trying to get one lousy JCL bug out which turned out to be a change
someone in systems had made in a standard JCL utility program...

The point being, DD cards were loathsome things so making a Unix
command with that name was black humor.

        -Barry Shein

Software Tool & Die    | {xylogics,uunet}!world!bzs | bzs@world.std.com
Purveyors to the Trade | Voice: 617-739-0202        | Login: 617-739-WRLD


%d bloggers like this: