Kenneth Lane Thompson is an American pioneer of computer science. Having worked at Bell Labs for most of his career, Thompson designed and implemented the original Unix operating system, he invented the B programming language, the direct predecessor to the C programming language, was one of the creators and early developers of the Plan 9 operating systems. Since 2006, Thompson has worked at Google. Other notable contributions included his work on regular expressions and early computer text editors QED and ed, the definition of the UTF-8 encoding, his work on computer chess that included creation of endgame tablebases and the chess machine Belle. Thompson was born in New Orleans; when asked how he learned to program, Thompson stated, "I was always fascinated with logic and in grade school I'd work on arithmetic problems in binary, stuff like that. Just because I was fascinated." Thompson received a Bachelor of Science in 1965 and a Master's degree in 1966, both in Electrical Engineering and Computer Science, from the University of California, where his master's thesis advisor was Elwyn Berlekamp.
Thompson was hired by Bell Labs in 1966. In the 1960s at Bell Labs and Dennis Ritchie worked on the Multics operating system. While writing Multics, Thompson created the Bon programming language, he created a video game called Space Travel. Bell Labs withdrew from the MULTICS project. In order to go on playing the game, Thompson found an old PDP-7 machine and rewrote Space Travel on it; the tools developed by Thompson became the Unix operating system: Working on a PDP-7, a team of Bell Labs researchers led by Thompson and Ritchie, including Rudd Canaday, developed a hierarchical file system, the concepts of computer processes and device files, a command-line interpreter, some small utility programs. In 1970, Brian Kernighan suggested the name "Unix", in a somewhat treacherous pun on the name "Multics". After initial work on Unix, Thompson decided that Unix needed a system programming language and created B, a precursor to Ritchie's C. In the 1960s, Thompson began work on regular expressions. Thompson had developed the CTSS version of the editor QED, which included regular expressions for searching text.
QED and Thompson's editor ed contributed to the eventual popularity of regular expressions, regular expressions became pervasive in Unix text processing programs. All programs that work with regular expressions today use some variant of Thompson's notation, he invented Thompson's construction algorithm used for converting regular expression into nondeterministic finite automaton in order to make expression matching faster. Throughout the 1970s, Thompson and Ritchie collaborated on the Unix operating system. In a 2011 interview, Thompson stated that the first versions of Unix were written by him, that Ritchie began to advocate for the system and helped to develop it: I did the first of two or three versions of UNIX all alone, and Dennis became an evangelist. There was a rewrite in a higher-level language that would come to be called C, he worked on the language and on the I/O system, I worked on all the rest of the operating system. That was for the PDP-11, serendipitous, because, the computer that took over the academic community.
Feedback from Thompson's Unix development was instrumental in the development of the C programming language. Thompson would say that the C language "grew up with one of the rewritings of the system and, as such, it became perfect for writing systems". In 1975, Thompson went to his alma mater, UC Berkeley. There, he helped to install Version 6 Unix on a PDP-11/70. Unix at Berkeley would become maintained as its own system, known as the Berkeley Software Distribution. Along with Joseph Condon, Thompson created the hardware and software for Belle, a world champion chess computer, he wrote programs for generating the complete enumeration of chess endings, known as endgame tablebases, for all 4, 5, 6-piece endings, allowing chess-playing computer programs to make "perfect" moves once a position stored in them is reached. With the help of chess endgame expert John Roycroft, Thompson distributed his first results on CD-ROM. Throughout the 1980s, Thompson and Ritchie continued revising Research Unix, which adopted a BSD codebase for the 8th, 9th, 10th editions.
In the mid-1980s, work began at Bell Labs on a new operating system as a replacement for Unix. Thompson was instrumental in the design and implementation of the Plan 9 from Bell Labs, a new operating system utilizing principles of Unix, but applying them more broadly to all major system facilities; some programs that were part of versions of Research Unix, such as mk and rc, were incorporated into Plan 9. Thompson tested early versions of the C++ programming language for Bjarne Stroustrup by writing programs in it, but refused to work in C++ due to frequent incompatibilities between versions. In a 2009 interview, Thompson expressed a negative view of C++, stating, "It does a lot of things half well and it's just a garbage heap of ideas that are mutually exclusive." In 1992, Thompson developed the UTF-8 encoding scheme together with Rob Pike. UTF-8 encoding has since become the dominant character encoding for the World Wide Web, accounting for more than half of all web pages. In the 1990s, work began on the Inferno operating system, another research operating system, based around a portable
Berkeley Software Distribution
The Berkeley Software Distribution was an operating system based on Research Unix and distributed by the Computer Systems Research Group at the University of California, Berkeley. Today, "BSD" refers to its descendants, such as FreeBSD, OpenBSD, NetBSD, or DragonFly BSD. BSD was called Berkeley Unix because it was based on the source code of the original Unix developed at Bell Labs. In the 1980s, BSD was adopted by workstation vendors in the form of proprietary Unix variants such as DEC Ultrix and Sun Microsystems SunOS due to its permissive licensing and familiarity to many technology company founders and engineers. Although these proprietary BSD derivatives were superseded in the 1990s by UNIX SVR4 and OSF/1 releases provided the basis for several open-source operating systems including FreeBSD, OpenBSD, NetBSD, DragonFly BSD, TrueOS. These, in turn, have been used by proprietary operating systems, including Apple's macOS and iOS, which derived from them, Microsoft Windows, which used a part of its TCP/IP code.
The earliest distributions of Unix from Bell Labs in the 1970s included the source code to the operating system, allowing researchers at universities to modify and extend Unix. The operating system arrived at Berkeley in 1974, at the request of computer science professor Bob Fabry, on the program committee for the Symposium on Operating Systems Principles where Unix was first presented. A PDP-11/45 was bought to run the system, but for budgetary reasons, this machine was shared with the mathematics and statistics groups at Berkeley, who used RSTS, so that Unix only ran on the machine eight hours per day. A larger PDP-11/70 was installed at Berkeley the following year, using money from the Ingres database project. In 1975, Ken Thompson came to Berkeley as a visiting professor, he started working on a Pascal implementation for the system. Graduate students Chuck Haley and Bill Joy improved Thompson's Pascal and implemented an improved text editor, ex. Other universities became interested in the software at Berkeley, so in 1977 Joy started compiling the first Berkeley Software Distribution, released on March 9, 1978.
1BSD was an add-on to Version 6 Unix rather than a complete operating system in its own right. Some thirty copies were sent out; the second Berkeley Software Distribution, released in May 1979, included updated versions of the 1BSD software as well as two new programs by Joy that persist on Unix systems to this day: the vi text editor and the C shell. Some 75 copies of 2BSD were sent out by Bill Joy. A VAX computer was installed at Berkeley in 1978, but the port of Unix to the VAX architecture, UNIX/32V, did not take advantage of the VAX's virtual memory capabilities; the kernel of 32V was rewritten by Berkeley students to include a virtual memory implementation, a complete operating system including the new kernel, ports of the 2BSD utilities to the VAX, the utilities from 32V was released as 3BSD at the end of 1979. 3BSD was alternatively called Virtual VAX/UNIX or VMUNIX, BSD kernel images were called /vmunix until 4.4BSD. After 4.3BSD was released in June 1986, it was determined that BSD would move away from the aging VAX platform.
The Power 6/32 platform developed by Computer Consoles Inc. seemed promising at the time, but was abandoned by its developers shortly thereafter. Nonetheless, the 4.3BSD-Tahoe port proved valuable, as it led to a separation of machine-dependent and machine-independent code in BSD which would improve the system's future portability. In addition to portability, the CSRG worked on an implementation of the OSI network protocol stack, improvements to the kernel virtual memory system and new TCP/IP algorithms to accommodate the growth of the Internet; until all versions of BSD used proprietary AT&T Unix code, were therefore subject to an AT&T software license. Source code licenses had become expensive and several outside parties had expressed interest in a separate release of the networking code, developed outside AT&T and would not be subject to the licensing requirement; this led to Networking Release 1, made available to non-licensees of AT&T code and was redistributable under the terms of the BSD license.
It was released in June 1989. After Net/1, BSD developer Keith Bostic proposed that more non-AT&T sections of the BSD system be released under the same license as Net/1. To this end, he started a project to reimplement most of the standard Unix utilities without using the AT&T code. Within eighteen months, all of the AT&T utilities had been replaced, it was determined that only a few AT&T files remained in the kernel; these files were removed, the result was the June 1991 release of Networking Release 2, a nearly complete operating system, distributable. Net/2 was the basis for two separate ports of BSD to the Intel 80386 architecture: the free 386BSD by William Jolitz and the proprietary BSD/386 by Berkeley Software Design. 386BSD itself was short-lived, but became the initial code base of the NetBSD and FreeBSD projects that were started shortly thereafter. BSDi soon found itself in legal trouble with AT&T's Unix System Laboratories subsidiary the owners of the System V copyright and the Unix trademark.
The USL v. BSDi lawsuit was filed in 1992 and led to an injunction on the distribution of Net/2 until the validity of USL's copyright claims on the source could be determined; the lawsuit slowed development of the free-
Dennis MacAlistair Ritchie was an American computer scientist. He created the C programming language and, with long-time colleague Ken Thompson, the Unix operating system. Ritchie and Thompson were awarded the Turing Award from the ACM in 1983, the Hamming Medal from the IEEE in 1990 and the National Medal of Technology from President Bill Clinton in 1999. Ritchie was the head of Lucent Technologies System Software Research Department when he retired in 2007, he was the "R" in K&R C, known by his username dmr. Dennis Ritchie was born in New York, his father was Alistair E. Ritchie, a longtime Bell Labs scientist and co-author of The Design of Switching Circuits on switching circuit theory; as a child, Dennis moved with his family to Summit, New Jersey, where he graduated from Summit High School. He applied mathematics. In 1967, Ritchie began working at the Bell Labs Computing Sciences Research Center, in 1968, he defended his PhD thesis on "Program Structure and Computational Complexity" at Harvard under the supervision of Patrick C.
Fischer. However, Ritchie never received his PhD degree. During the 1960s, Ritchie and Ken Thompson worked on the Multics operating system at Bell Labs. However, Bell Labs pulled out of the project in 1969. Thompson found an old PDP-7 machine and developed his own application programs and operating system from scratch, aided by Ritchie and others. In 1970, Brian Kernighan suggested the name "Unix", a pun on the name "Multics". To supplement assembly language with a system-level programming language, Thompson created B. B was replaced by C, created by Ritchie, who continued to contribute to the development of Unix and C for many years. During the 1970s, Ritchie collaborated with James Reeds and Robert Morris on a ciphertext-only attack on the M-209 US cipher machine that could solve messages of at least 2000–2500 letters. Ritchie relates that, after discussions with the NSA, the authors decided not to publish it, as they were told that the principle was applicable to machines still in use by foreign governments.
Ritchie was involved with the development of the Plan 9 and Inferno operating systems, the programming language Limbo. As part of an AT&T restructuring in the mid-1990s, Ritchie was transferred to Lucent Technologies, where he retired in 2007 as head of System Software Research Department. Ritchie is best known as the creator of the C programming language, a key developer of the Unix operating system, co-author of the book The C Programming Language, they were so influential on Research Unix that Doug McIlroy wrote, "The names of Ritchie and Thompson may safely be assumed to be attached to everything not otherwise attributed."Ritchie liked to emphasize that he was just one member of a group. He suggested that many of the improvements he introduced "looked like a good thing to do," and that anyone else in the same place at the same time might have done the same thing, but Bjarne Stroustrup, the designer of C++, said "If Dennis had decided to spend that decade on esoteric math, Unix would have been stillborn."Nowadays, the C language is used in application, operating system, embedded system development, its influence is seen in most modern programming languages.
Unix has been influential, establishing computing concepts and principles that have been adopted. One important characteristic of C is that it has been designed by one single person, not by a language committee, contributing to its simplicity. In an interview from 1999, Ritchie clarified that he saw Linux and BSD operating systems as a continuation of the basis of the Unix operating system, as derivatives of Unix: I think the Linux phenomenon is quite delightful, because it draws so on the basis that Unix provided. Linux seems to be among the healthiest of the direct Unix derivatives, though there are the various BSD systems as well as the more official offerings from the workstation and mainframe manufacturers. In the same interview, he stated that he viewed both Unix and Linux as "the continuation of ideas that were started by Ken and me and many others, many years ago." In 1983, Ritchie and Thompson received the Turing Award "for their development of generic operating systems theory and for the implementation of the UNIX operating system".
Ritchie's Turing Award lecture was titled "Reflections on Software Research". In 1990, both Ritchie and Thompson received the IEEE Richard W. Hamming Medal from the Institute of Electrical and Electronics Engineers, "for the origination of the UNIX operating system and the C programming language". In 1997, both Ritchie and Thompson were made Fellows of the Computer History Museum, "for co-creation of the UNIX operating system, for development of the C programming language."On April 21, 1999, Thompson and Ritchie jointly received the National Medal of Technology of 1998 from President Bill Clinton for co-inventing the UNIX operating system and the C programming language which, according to the citation for the medal, "led to enormous advances in computer hardware and networking systems and stimulated growth of an entire industry, thereby enhancing American leadership in the Information Age". In 2005, the Industrial Research Institute awarded Ritchie its Achievement Award in recognition of his contribution to science and technology, to society with his development of the Unix operating system.