The choice of the word descriptor has always struct me as odd. "Index" or "id" seem like more obvious alternatives. Is there a known rationale for the choosing the word "descriptor"?

I guess "descriptor" gets across that it's often conceptually more key-ish than number-ish but sometimes it really is very number-ish so that guess seems weak.

  • I don't know the answer, but the term is used in the surviving source code from the very first version of research Unix. – teppic Oct 1 '15 at 12:37

Given that the term dates from the early 1970s, that's where you should look for a "contemporary" meaning of the term. Likewise, being jargon, you should look at the popular languages of the day, in terms of the developer's experience.

For instance, you can find the term descriptor applied in Algol and in uses of Algol (Burroughs machines, quoting from The Architecture of the Burroughs B5000 - 20 Years Later and Still Ahead of the Times? by Alastair J.W. Mayer):

The descriptor was one of the most novel features of the B5000 when it was introduced twenty years ago. Indeed, Burroughs published a description of the B5000 system and titled it "The Descriptor", (subtitled "a definition of the B5000 Information Processing System"). The descriptor, used simply as an array access mechanism, allows bounds checking (done automatically by the hardware) as well as simplifying dynamic array allocation (essential in an ALGOL machine). It also allows for differentiating between word arrays and character strings, and can indicate the size (in bits) of the characters. However, it is more powerful than this.

That "twenty years ago" refers to the early 1960s, placing it in the immediate background of the developers of Unix.

A file descriptor (happens to be an integer, but early Unix code was careless about the difference between integers and pointers) identifies a set of attributes for a file, just as a standard I/O FILE* does.

Multics also used the term descriptor, though (see The Multics Virtual Memory: Concepts and Design) it appears more in the terminology used for memory management.

Further reading:

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.