
Dennis Ritchie is the creator of the C programming language. He, along with Ken Thompson, developed C to create the UNIX operating system. “Newton has a phrase about giants standing on their shoulders,” says Brian Kernighan. "We all stand on Dennis's shoulders."
“Almost everything on the web is based on C and UNIX,” Rob Pike, a programming legend, told Wired. - “In the C language, browsers are written. On the UNIX core, almost the entire Internet works, and it is also written in C language. Web servers are written in C. And if not on it, then on Java or C ++. And these languages are derived from C. Python and Ruby are also C based. I vouch for the fact that all network equipment works on programs written in C. It’s really hard to overestimate the fact that how much of everything in the modern information economy is based on the work of Dennis. ”
')
“It’s not for nothing that Windows was once written in C,” he adds. And UNIX is also at the core of the Apple, Mac OS X and IOS desktop operating system. These systems are installed on the iPhone and iPad. ”
Professional development
Dennis Macalister Ritchie (Dennis MacAlistair Ritchie) was born on September 9, 1941. His hometown is Bronxville, New York. Dennis's childhood took place in New Jersey. He graduated from the prestigious American university - Harvard. The local computer system Univac I was of particular interest to the young engineer. There he received a bachelor's degree in physics and applied mathematics. After graduation, Ritchie got a job as a laboratory assistant at the MIT Institute’s computer lab. There he was engaged in the support of the car park, as well as the development of software.
Around this time, he became interested in developing operating systems for smaller, desktop computers. (Then standard-size computers occupied entire rooms). MIT and General Electric supported his project. Despite the lack of education in software development, programming was never a problem for Dennis. Writing programs was like a puzzle to him.
In 1967, Ritchie began working in the Bell Labs laboratory, where he formed the basis for all of the most well-known computer inventions today. But at that time Bell Labs was the leading television provider in the country.
Bell labsStarting work at Bell Labs, Ritchie did not focus on any one project: “I just wanted to be among people with diverse experiences and lots of ideas. Therefore, I started working on several projects at once to find my way into the profession. ”
In the company, Dennis began working with Kenneth Thomson, who joined Bell Labs a year earlier, in 1966. Both realized that miniature desktops would gain more and more popularity in the early 1970s. They also decided that such computers need a mechanism that provides control over the computer hardware, organizes work with files and execution of application programs, performs data input and output.
So the developers came to the idea of the operating system. The invention of the C language and the role of Ritchie in the development of UNIX along with Ken Thompson made him the pioneer of modern computing, as they say in the network.
UNIX and C
It all started in 1963, long before Ritchie came to Bell Labs - from the MAC project (Multiple Access Computer, started the Machine-Aided Cognition, Man and Computer) as a pure research project at MIT.
As part of the MAS project, the CTSS (Compatible Time-Sharing System) operating system was developed. In the second half of the 60s, several other time-sharing systems were created, for example, BBN, DTSS, JOSS, SDC and Multiplexed Information and Computing Service (MULTICS) including.
Multics is a joint development of MIT, Bell Telephone Laboratories (BTL) and General Electric (GE) to create a time-sharing OS for the GE-645 computer. The last computer running Multics turned off on October 31, 2000.
However, BTL departed from this project in early 1969.
Ken Thompson and Dennis Ritchie wanted to continue working independently. Thompson worked on the Space Travel game on the GE-635. It was written first for Multics, and then rewritten in Fortran under GECOS on GE-635. The game modeled the bodies of the solar system, and the player had to put the ship somewhere on the planet or satellite.
Neither the software nor the hardware of this computer was suitable for such a game. Thompson was looking for an alternative, and rewrote the game under the ownerless PDP-7. The memory was 8K of 18-bit words, and there was also a vector display processor for outputting beautiful graphics for that time.
Thompson and Ritchie were fully cross-assembler at GE and transferred the code to punched tapes. Thompson did not actively like it, and he began writing an OS for the PDP-7, starting with the file system. This is how UNIX appeared.
The UNIX kernel was written in assembly language, but soon Dennis and Ken realized that they needed a “higher level” language that would give them more control over all the data. Around 1970, they tried to create a second version of the kernel in the Fortran language, but the result did not meet expectations. Then Ritchie proposed a new language based on the creation of Thompson, known as B (B).
PDP-7 UNIX also marked the beginning of the high-level language B, which was created under the influence of the BCPL language. Dennis Ritchie said that B is C without types. BCPL was placed in 8 KB of memory and was thoroughly reworked by Thompson. In gradually grew in C.
Image from the Book of C Language: M. Waite, S. Prata, D. MartinB was an interpreted language - that is, the source code was converted into machine code in parts during the execution of a special program. C was a compiled language. It was translated into machine code, and then directly executed in the CPU. But in those days, C was considered a high-level language. He gave Ritchie and Thompson more flexibility, which they needed, and at the same time, performed faster.
The first version of the C language is not much different from the version that we know today. Although it was a little easier. She offered data structures and "types" of variables. And this is what Ritchie and Thompson used to create their new UNIX kernel. “They created C in order to write the program,” says Pike, who joined Bell Labs 10 years later. "And the program they wanted to write was called the UNIX kernel."
“When you write a large program as UNIX, you must manage the interactions between the most diverse components: users, file system, disks, program execution, and in order to manage it effectively, you must have a good understanding of the information you are working with. We call it data structures, ”says Pike.

“It would be much more difficult to write a kernel without a data structure, with the same structure and perfection as the UNIX kernel. They needed a way to group all the data, and it was not possible to implement this in Fortran. ”
At the time, it was an unusual way of writing an operating system, and it was this that allowed Ritchie and Thompson to eventually transfer the operating system to other platforms, which they did in the late 1970s. “It opened the gateways for UNIX to work on any platform,” says Pike. "All this is made possible by C".
"Invisible King"
“Developing the C programming language was a huge step forward and the right compromise ... In C, the right balance was found, allowing you to write at a high level, which became more productive, and at the right moment, you could control everything that happens,” says Bill Dalli, chief scientific officer. NVIDIA and Bell Professor of Engineering at Stanford. "[C] sets the tone for programming over several decades."
As noted by Pike, the data structures that Ritchie has built into C, ultimately led to the object-oriented paradigm used by such modern languages as C ++ and Java.
The revolution began in 1973, when Ritchie published his scientific work on language, and five years later, together with his colleague Brian Kernighan published a book: “The C Programming Language”. Earlier, Kernigan had already written language textbooks, and at some point, he convinced Dennis to write a book with him.
Pike read a book while being a student at the University of Toronto. He took the book when he returned home because of illness. “This handbook is a sample of clarity and clarity compared to recently published directories. He is justly a classic, ”he says. "I read it when I was sick in bed, and he made me forget about the disease."
Like many university students, Pike has already programmed in this language. C spread across all college campuses as Bell Labs began distributing UNIX source code. In addition, the operating system gave impetus to the development of modern free software movement. Pike does not exaggerate when he says that Ritchie’s contribution cannot be overestimated. And although Ritchie received the Turing Award in 1983 and the National Medal in Technology in 1998, he still has not been paid tribute.
Kernigan and Pike describe Ritchie as an extraordinarily secretive person. “For more than 20 years I worked on the opposite side of the hall, and yet, I believe that I did not know him well,” says Pike.

Steve Jobs was also a secretive man, and his positioning on stealth only strengthened the personality cult that surrounded him. Ritchie lived at a completely different time and worked in completely different conditions, unlike Jobs. Perhaps that is why Ritchie was not so popular.
"Jobs was the visible king, and Ritchie was mostly the invisible king," said Martin Rinard, a professor of electrical engineering and computer science at the Massachusetts Institute of Technology and a member of the Computer Science and Artificial Intelligence Laboratory.
“Jobs' genius is that he had a taste and created products that people wanted to use. And he could create things that people really liked. Ritchie created what techies could use to create basic infrastructure. People don't have to see her, despite the fact that they use it every day. ”
After UNIX
The main problem of UNIX, from the point of view of its authors, was that due to its architecture, the OS could not transparently adapt to the significantly changed IT world since its development. Simply put, UNIX was dying from its own problems, and all attempts to adapt it to modern conditions led to OS complication, the introduction of many disparate, complex API, new layers, network protocols, data formats, which made the once simple, thoughtful, elegant OS , cumbersome and difficult accompanied by a lump of code.
Recalling the success of UNIX, Ritchie continued until his death research in the field of operating systems and programming languages. He made significant contributions to the development of the Plan 9 and Inferno operating systems, as well as Limbo programming language.
When the researchers at Bell Labs realized that UNIX was no longer fixable, they decided to start from scratch and developed a new, unrelated and incompatible with UNIX, operating system with the eccentric name Plan 9.

The main idea of Plan 9 was to bring the concept of “everything is a file” to a logical triumph and build the entire OS from synthetic files (or more specifically, to present all the resources of the operating system with files). And to do this in such a way that not only local applications and users have access to files, but also any remote client. As a result, the 9P file protocol appeared.
In 1995, Lucent Technologies, the new owner of Bell Labs research laboratories, transferred many of the Plan 9 developers to another team, which took up the creation of the operating system Inferno, built on the basis of Plan 9.
The company’s management believed, with good reason, that Plan 9, capable of working transparently and easily on computers organized into a distributed computer network, would show itself perfectly on low-powered mobile devices and terminals, which at that time were simply obliged to shift the lion’s share of their functions to other machines. to ensure optimum performance and usability.
In addition to portability and performance, Inferno has another very important feature: the presence of the Limbo application programming language, which was designed from scratch specifically for Inferno and exists only within the framework of this OS. Its syntax largely repeats the syntax of C, but has blotches from a variety of other languages.
End of legend
On October 12, 2011, Ritchie was found dead at his home in New Jersey, where he lived alone. The first news of the death was reported by his former colleague Rob Pike: “Dennis Ritchie died this weekend at home.” The cause and exact time of death remained unknown. Shortly before that, he was treating prostate cancer, and he also had a bad heart. Ritchie died a week later with the death of Steve Jobs, but unlike Jobs, Ritchie’s death was not widely covered in the media.
September 9, Dennis Ritchie would have turned 75 years old.