On October 12, 2011, computer scientist Dennis Ritchie, who designed the UNIX operating system as well as the C programming language, passed away. Thanks to his contributions, computing made a huge leap forward and enabled real-time processing and multi-threading.
Dennis Ritchie was born on September 9, 1941, in Bronxville, New York as son of Alistair E. Ritchie, a longtime Bell Labs scientist working on switching circuit theory. Dennis Ritchie graduated from Harvard University with degrees in physics and applied mathematics, and in 1967, he began working at the Bell Labs Computing Sciences Research Center following his father. In 1968, he received a PhD from Harvard with a thesis on the subject of subrecursive hierarchies of functions.
About himself, we wrote: ‘My undergraduate experience convinced me that I was not smart enough to be a physicist, and that computers were quite neat. My graduate school experience convinced me that I was not smart enough to be an expert in the theory of algorithms and also that I liked procedural languages better than functional ones.’ [1]
The Development of Unix
UNIX is very simple, it just needs a genius to understand its simplicity.[7]
Ritchie came in contact with operation systems design at Bell Labs, while contributing compilers for the BCPL and ALTRAN programming language to the Multics (Multiplexed Information and Computing Service) project, then a joint effort of Bell Labs, MIT, and General Electric, an influential early time-sharing operating system. But the Multics project failed (although it was further developed until the 1980s); the expectations for Multics were sometimes simply exaggerated, the hardware of the time could not handle a system of this size at a reasonable speed. In 1969 Bell Labs withdrew from the project as a consequence.
Ritchie’s team, including Ken Thompson, Douglas McIlroy and Joseph Ossanna, didn’t give up. Their primary concern was to have a multi-user system that would not only allow them to program together, but would also allow them to build a true community. To this end, the system had to support some technical specialties that were not self-evident at the time, such as allowing multiple users to work on files simultaneously without getting in each other’s way.
While the team tried in vain to convince Bell Labs to buy a suitable machine, the technical preparations began at the same time: On notes and blackboards, the concepts were developed into a file system that would later become one of the core pieces of Unix. They finally found a largely unused PDP-7 computer to which Thompson wanted to port a game previously developed for Multics and GECOS called Space Travel. The endeavor turned out to be more complicated than initially thought, since no own development system was available for the PDP-7 and so all development had to take place under GECOS, which then produced the PDP-7 code.
To remedy this situation, Thompson, with the help of Ritchie, began implementing the previously designed file system with primitive process management and then a series of smaller programs to make the system usable: Editor, smaller file management programs, and a simple command line interpreter (shell) until the system was finally sufficiently equipped to develop directly on the PDP-7 without the GECOS environment.
The PDP-7 was already an obsolete model at the time, and did not even belong to the team, but eventually the efforts to get their own computer for Unix development proved successful, and the purchase of a PDP-11 was commissioned. Unix was rapidly ported, and the system was successfully used as a word processing system at Bell Labs Patent Office from 1971. The system was, due to the circumstances, surprisingly small compared to today’s operating systems: It consisted of 16 kB memory for the system, 8 kB for the user programs, a 512 kB hard disk, and files could be up to 64 kB in size.
Unix was the first to introduce a number of information technology concepts that are still relevant today, such as the hierarchical, tree-like file system with a folder structure. The early developers also defined a number of concepts and rules for software development, which became known as the Unix philosophy and still have an influence on computer science today. Until the 1980s, Unix was further developed as an open source operating system, especially at US universities, and had a considerable influence on the hacker culture.
The system was originally given the name Unics by an employee, an acronym from Uniplexed Information and Computing Service, and an allusion to Multics. It is unclear how the shorter spelling of the decay as a single letter “x” came about later.
Becoming the Most Widely Used Operating System
With his first porting of the Unix OS to the Interdata 8/32 computer, Ritchie demonstrated its portability, and laid the groundwork for the widespread growth of Unix: the Seventh Edition version from the Bell Labs research group was the basis for commercial Unix System V and also for the Unix BSD distributions from the University of California at Berkeley. The commercialization of Unix by AT&T in the 1980s led to a number of independent developments and spin-offs, leading to the so-called “Unix Wars” between different systems and manufacturers. The various Unix-based or derived operating systems together are today the most widely used operating systems for computers and for many types of electronic devices that contain a computer.
The range of applications extends from mobile devices such as smartphones through personal computers and web servers to the largest supercomputers. Furthermore, the Unix-like Linux [6] in particular is also used as an embedded system in industrial measuring and control devices, in medical technology devices, consumer electronics and electronically controlled commodities such as household appliances, motor vehicles or Wifi routers. The most widespread commercial, proprietary Unix variant today is macOS from Apple or its mobile variant iOS, the most widespread Unix-like open source variant is Linux or Android derived from it.
The C Programming Language
“C is quirky, flawed, and an enormous success.”
— The Development of the C Language
Early in the development of Unix, Ritchie added data types and new syntax to Thompson’s B language, thus producing the new programming language C. B was strongly influenced by BCPL (Basic Combined Programming Language), a compiled system-oriented programming language developed by Martin Richards in 1966 and first implemented at the Massachusetts Institute of Technology in the spring of 1967. It is derived from the Combined/Cambridge Programming Language CPL. Ritchie also wrote the first compiler for C. By 1973, the language was so mature that the Unix kernel for the PDP-11 could be rewritten in C. Until 1989 there was no official standard for the language. Since 1978, however, the book The C Programming Language has been regarded as an informal de facto standard, published by Brian W. Kernighan and Dennis Ritchie in the same year.
Nowadays, the C language is widely used today in application, operating system, and embedded system development, and its influence is seen in most modern programming languages.
Turing Award and other Honors
C was the foundation for the portability of Unix, but it has become widely used in other contexts as well, much application and system development for computers of all sizes, from hand-held to supercomputer, uses it. In 1983, Ritchie and Thompson received the Turing Award for their development of generic operating systems theory and specifically for the implementation of Unix. Unix is historically closely linked to the programming language C – both helped each other to break through, and so C is still the preferred language among Unix systems today.
In 1990, both Ritchie and Thompson also received the IEEE Richard W. Hamming Medal from the Institute of Electrical and Electronics Engineers (IEEE), and in 1997, both were made Fellows of the Computer History Museum. On April 21, 1999, Thompson and Ritchie jointly received the National Medal of Technology of 1998 from President Bill Clinton.
On October 12, 2011, Ritchie was found dead in his apartment in Berkeley Heights, New Jersey. His contribution to computer science must be highly valued, because with Unix and C he formed the shape of the modern information society enabling such things as search engines or even smart phones [2].
AT&T Archives: The UNIX Operating System, [9]
References and further Reading:
- [1] Dennis M. Ritchie, short biography at Bell Labs
- [2] Lohr, Steve: “Dennis Ritchie, Programming Trailblazer, Dies at 70“, The New York Times, (October 12, 2011)
- [3] Brian W. Kernigham, Dennis M. Ritchie: The C Programming Language, Prentice Hall, 1978.
- [4] Ken Thompson, Dennis M. Ritchie: The UNIX Reference Manual, 1971.
- [5] D. Ritchie, The Development of the C Language in History of Programming Languages, ACM Press and Addison-Wesley, 1996
- [6] Linux at the Core of the Open Source Revolution, SciHi Blog
- [7] Dennis Ritchie at Brainiquote
- [8] Dennis Ritchie at Wikidata
- [9] AT&T Archives: The UNIX Operating System, AT&T Tech Channel @ youtube
- [10] Ritchie, Dennis M.; Thompson, Ken (2001), Hansen, Per Brinch (ed.), “The Unix Time-Sharing System”, Classic Operating Systems: From Batch Processing To Distributed Systems, New York, NY: Springer, pp. 195–220
- [11] Timeline of operating systems, via Wikidata