Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

Ken Thompson

Listen to this article
From Wikipedia, the free encyclopedia
American computer scientist known for Unix
For other people named Ken Thompson, seeKen Thompson (disambiguation).

Ken Thompson
Thompson, 2019
Born
Kenneth Lane Thompson

(1943-02-04)February 4, 1943 (age 83)
EducationUniversity of California, Berkeley (BS,MS)
Known for
Awards
Scientific career
FieldsComputer science
Institutions
Websitehttp://cs.bell-labs.co/who/ken/

Kenneth Lane Thompson (born February 4, 1943) is an American pioneer ofcomputer science. Thompson worked atBell Labs for most of his career where he designed and implemented the originalUnix operating system. He also invented theB programming language, the direct predecessor to theC language, and was one of the creators and early developers of thePlan 9 operating system. Other notable contributions included his work onregular expressions and early computer text editorsQED anded, the definition of theUTF-8 encoding, and his work on computer chess that included the creation ofendgame tablebases and the chess machineBelle.

Since 2006, Thompson has worked atGoogle, where he co-developed theGo language. In 1983, he won theTuring Award with his long-term colleagueDennis Ritchie.[3] He is considered one of the greatest computer programmers of all time.[4][5][6]

Early life and education

[edit]

Thompson was born inNew Orleans, Louisiana. When asked how he learned to program, Thompson stated, "I was always fascinated with logic and even in grade school I'd work on arithmetic problems in binary, stuff like that. Just because I was fascinated."[7]

DECPDP-7, as used for initial work onUnix

Thompson received aBachelor of Science in 1965 and amaster's degree in 1966, both inelectrical engineering and computer sciences, from theUniversity of California, Berkeley, where his master's thesis advisor wasElwyn Berlekamp.[8]

Career and research

[edit]

Thompson was hired byBell Labs in 1966.[9] In the 1960s at Bell Labs, Thompson andDennis Ritchie worked on theMultics operating system. While writing Multics, Thompson created the Bon programming language.[10][11] He also created a video game calledSpace Travel. Later, Bell Labs withdrew from the MULTICS project.[12] In order to go on playing the game, Thompson found an oldPDP-7 machine and rewroteSpace Travel on it.[13] Eventually, the tools developed by Thompson became theUnixoperating system: Working on aPDP-7, a team of Bell Labs researchers led by Thompson and Ritchie, and includingRudd Canaday, developed ahierarchical file system, the concepts ofcomputer processes anddevice files, acommand-line interpreter,pipes for easy inter-process communication, and some small utility programs. In 1970,Brian Kernighan suggested the name "Unix", in a pun on the name "Multics".[14] After initial work on Unix, Thompson decided that Unix needed a system programming language and createdB, a precursor to Ritchie'sC.[15]

In the 1960s, Thompson also began work onregular expressions. Thompson had developed theCTSS version of the editorQED, which included regular expressions for searching text. QED and Thompson's later editored (the standard text editor on Unix) contributed greatly to the eventual popularity of regular expressions, and regular expressions became pervasive in Unix text processing programs. Almost all programs that work with regular expressions today use some variant of Thompson's notation. He also inventedThompson's construction algorithm used for converting regular expressions intonondeterministic finite automata in order to make expression matching faster.[16]

1970s

[edit]
Version 6 Unix running on theSIMHPDP-11 simulator, with "/usr/ken" still present

Throughout the 1970s, Thompson and Ritchie collaborated on the Unix operating system; they were so prolific onResearch Unix thatDoug McIlroy later wrote, "The names of Ritchie and Thompson may safely be assumed to be attached to almost everything not otherwise attributed."[17] In a 2011 interview, Thompson stated that the first versions of Unix were written by him, and that Ritchie began to advocate for the system and helped to develop it:[18]

I did the first of two or three versions of UNIX all alone. And Dennis became an evangelist. Then there was a rewrite in a higher-level language that would come to be called C. He worked mostly on the language and on the I/O system, and I worked on all the rest of the operating system. That was for thePDP-11, which was serendipitous, because that was the computer that took over the academic community.

Feedback from Thompson's Unix development was also instrumental in the development of the C programming language. Thompson would later say that the C language "grew up with one of the rewritings of the system and, as such, it became perfect forwriting systems".[18]

In 1975, Thompson took asabbatical from Bell Labs and went to his alma mater, UC Berkeley. There, he helped to installVersion 6 Unix on aPDP-11/70. Unix at Berkeley would later become maintained as its own system, known as theBerkeley Software Distribution (BSD).[19]

In early 1976, Thompson wrote the initial version of Berkeley Pascal at the Computer Science Division, Department of Electrical Engineering and Computer Science, UC Berkeley (with extensive modifications and additions following later that year byWilliam Joy, Charles B. Haley[20][21][22] and faculty advisorSusan Graham).

Thompson wrote a chess-playing program called "chess" for the first version of Unix (1971).[23] Later, along withJoseph Condon, Thompson created the hardware-assisted programBelle, a world championchess computer.[24] He also wrote programs for generating the complete enumeration ofchess endings, known asendgame tablebases, for all 4, 5, and 6-piece endings, allowing chess-playing computer programs to make "perfect" moves once a position stored in them is reached. Later, with the help of chess endgame expertJohn Roycroft, Thompson distributed his first results onCD-ROM. In 2001, theICGA Journal devoted almost an entire issue to Thompson's various contributions to computer chess.[23]

1980s

[edit]
Plan 9 from Bell Labs, running theacme text editor, and therc shell

In 1983, Thompson and Ritchie jointly received theTuring Award "for their development of generic operating systems theory and specifically for the implementation of the UNIX operating system". His acceptance speech, "Reflections on Trusting Trust", presented the persistent compilerbackdoor attack now known as theThompson hack ortrusting trust attack, and is widely considered a seminalcomputer security work in its own right.[25] In 2023, the backdoor's annotated source code was published online.[26] The end of the acceptance speech consisted of criticism of journalists' positive coverage ofhackers, such asthe 414s.

A defence against the "Thompson hack" was developed by David A. Wheeler. It uses a technique called diverse double compilation to circumvent the hack by creating and comparingreproducible builds.[27]

Throughout the 1980s, Thompson and Ritchie continued revising Research Unix, which adopted a BSD codebase for the 8th, 9th, and 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 thePlan 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 later versions of Research Unix, such asmk andrc, were also incorporated into Plan 9.

Thompson tested early versions of theC++ programming language forBjarne Stroustrup by writing programs in it, but later 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."[28]

1990s

[edit]

In 1992, Thompson developed theUTF-8 encoding scheme together withRob Pike.[29] UTF-8 has since become the dominantUnicode encoding form for theWorld Wide Web, accounting for more than 90% of all web pages in 2019.[30]

In the 1990s, work began on theInferno operating system, another research operating system that was based around a portablevirtual machine. Thompson and Ritchie continued their collaboration with Inferno, along with other researchers at Bell Labs.[31]

In 1995, Thompson collaborated on music compression with Sean Dorward,based on original research work done by Jim Johnston, under the guidance of Joe Hall and Jont Allen.[32][33]

2000s

[edit]

In late 2000, Thompson retired from Bell Labs.

In 2004, he assisted in the implementation ofTurochamp, a chess programAlan Turing devised in 1948, before any computers existed that could execute it.[34]

He worked at Entrisphere, Inc. as afellow until 2006.

2020s

[edit]

As of 2024[update] he works atGoogle, first as a Distinguished Engineer and later as a Google Advisor.[35] Recent work has included the co-design of theGo programming language. Referring to himself along with the other original authors of Go, he states:[18]

When the three of us [Thompson,Rob Pike, andRobert Griesemer] got started, it was pure research. The three of us got together and decided that we hated C++. [laughter] ... [Returning to Go,] we started off with the idea that all three of us had to be talked into every feature in the language, so there was no extraneous garbage put into the language for any reason.

Awards

[edit]

National Academies

[edit]

In 1980, Thompson was elected to theNational Academy of Engineering for "designing UNIX, an operating system whose efficiency, breadth, power, and style have guided a generation's exploitation ofminicomputers".[36] In 1985 he was elected aMember of the National Academy of Sciences.[2]

Turing Award

[edit]

In 1983, Thompson and Ritchie jointly received theTuring Award "for their development of generic operating systems theory and specifically for the implementation of the UNIX operating system". In his acceptance speech, "Reflections on Trusting Trust", Thompson outlined an attack in the form of acompiler backdoor that has been referred to as theThompson hack or thetrusting trust attack, and is widely considered a seminalcomputer security work in its own right.[25]

IEEE Richard W. Hamming Medal

[edit]

In 1990, both Thompson and Dennis Ritchie received theIEEE Richard W. Hamming Medal from theInstitute of Electrical and Electronics Engineers (IEEE), "for the origination of the UNIX operating system and the C programming language".[37]

Fellow of the Computer History Museum

[edit]

In 1997, both Thompson and Ritchie were inducted asFellows of theComputer History Museum for "the co-creation of the UNIX operating system, and for development of the C programming language".[38] In 2024, he recorded an extensive oral history for the museum.[39]

National Medal of Technology

[edit]

On April 27, 1999, Thompson and Ritchie jointly received the 1998National Medal of Technology from PresidentBill Clinton for co-inventing the UNIX operating system and the C programming language which together have "led to enormous advances in computer hardware, software, and networking systems and stimulated growth of an entire industry, thereby enhancing American leadership in the Information Age".[40]

Tsutomu Kanai Award

[edit]

In 1999, theInstitute of Electrical and Electronics Engineers chose Thompson to receive the firstTsutomu Kanai Award "for his role in creating the UNIX operating system, which for decades has been a key platform for distributed systems work".[41]

Japan Prize

[edit]

In 2011, Thompson, along with Dennis Ritchie, was awarded theJapan Prize for Information and Communications for the pioneering work in the development of the Unix operating system.[42]

Personal life

[edit]

Ken Thompson is married and has a son.[43][23] He was a user ofApple products but later switched toRaspberry Pi OS due to issues he faced with Apple products.[44]

See also

[edit]

References

[edit]
  1. ^"IEEE Emanuel R. Piore Award Recipients"(PDF).IEEE. Archived fromthe original(PDF) on Nov 24, 2010. RetrievedMar 20, 2021.
  2. ^ab"Kenneth Thompson".www.nasonline.org. Archived fromthe original on Oct 21, 2021. RetrievedJun 9, 2019.
  3. ^"A.M. Turing Award Winners by Year".amturing.acm.org. RetrievedJan 29, 2025.
  4. ^Naskar, Vivek (Jun 9, 2021)."11 Most Influential & Greatest Programmers Of All Time - The Developer Story".thedeveloperstory.com. RetrievedJan 29, 2025.
  5. ^Hossain, Md Zakir (Feb 1, 2023)."Top 10 Greatest Programmers in the World of all Time".Medium. RetrievedJan 29, 2025.
  6. ^"Top Programmers in the World of All Time".GeeksforGeeks. Sep 26, 2019. Archived fromthe original on Feb 21, 2025. RetrievedJan 29, 2025.
  7. ^Seibel 2009, p. 450.
  8. ^"Thesis Students".Elwyn Berlekamp's Home Page. University of California, Berkeley Department of Mathematics. Archived fromthe original on Oct 21, 2021.
  9. ^"Ken Thompson: developed UNIX at Bell Labs". RetrievedOct 31, 2016.
  10. ^Thompson, K. L. (1969)."Bon User's Manual"(PDF).Multics History Project. Multics Documents: MIT Computer Science & Artificial Intelligence Lab. p. 1. Archived fromthe original(PDF) on Feb 14, 2021. RetrievedMar 18, 2021.
  11. ^Ritchie, Dennis."The Development of the C Language".Bell Labs. RetrievedOct 31, 2016.
  12. ^J. Stanley Warford (2009).Computer Systems. Jones & Bartlett Publishers. p. 460.ISBN 978-1-4496-6043-7.
  13. ^Ritchie, Dennis M. (2001)."Space Travel: Exploring the solar system and the PDP-7".Bell Labs.Archived from the original on Dec 26, 2015. RetrievedFeb 4, 2016.
  14. ^Ritchie, Dennis M."The Evolution of the Unix Time-sharing System". Archived fromthe original on Oct 21, 2021. RetrievedOct 31, 2016.
  15. ^Dennis M. Ritchie."The Development of the C Language". Bell Labs/Lucent Technologies. RetrievedOct 31, 2016.
  16. ^Cox, Russ."Regular Expression Matching Can Be Simple And Fast". Archived fromthe original on Oct 21, 2021. RetrievedOct 30, 2016.
  17. ^McIlroy, M. D. (1987).A Research Unix reader: annotated excerpts from the Programmer's Manual, 1971–1986(PDF) (Technical report). CSTR. Bell Labs. 139. Archived fromthe original(PDF) on May 4, 2014.
  18. ^abc"Dr. Dobb's: Interview with Ken Thompson". May 18, 2011. Archived fromthe original on Oct 21, 2021. RetrievedNov 10, 2014.
  19. ^Salus, Peter H. (2005)."Chapter 7. BSD and the CSRG".The Daemon, the Gnu and the Penguin.Groklaw. Archived from the original on Jun 14, 2020. RetrievedOct 31, 2016.
  20. ^"Setting Up Unix – Seventh Edition"(PDF). Archived fromthe original(PDF) on Mar 8, 2024. RetrievedJan 3, 2024.
  21. ^"BYTE.com".www.landley.net. RetrievedJan 3, 2024.
  22. ^"Computing from the Dark Ages: My Fifty-Year Odyssey".Indico. Apr 25, 2019. RetrievedJan 3, 2024.
  23. ^abcDennis Ritchie (Jun 2001)."Ken, Unix and Games".ICGA Journal.24 (2). Archived fromthe original on Oct 21, 2021. RetrievedMar 5, 2020.
  24. ^"Joe Condon (obituary)".Physics Today. 2013.doi:10.1063/PT.4.1752.
  25. ^abThompson, Ken (1984)."Reflections on trusting trust".Communications of the ACM.27 (8):761–763.doi:10.1145/358198.358210.
  26. ^Cox, Russ (Oct 25, 2023)."Running the "Reflections on Trusting Trust" Compiler".
  27. ^"Fully Countering Trusting Trust through Diverse Double-Compiling (DDC) - Countering Trojan Horse attacks on Compilers".dwheeler.com. RetrievedMar 2, 2025.
  28. ^Seibel 2009, p. 475.
  29. ^Pike, Rob (Apr 30, 2003)."UTF-8 history". Archived fromthe original on Oct 21, 2021.
  30. ^"Usage Statistics and Market Share of UTF-8 for Websites, June 2019".w3techs.com. Archived fromthe original on Oct 21, 2021. RetrievedJun 9, 2019.
  31. ^Khamlichi, M.el."Ken Thompson UNIX systems father". Unixmen. Archived fromthe original on Oct 21, 2021. RetrievedOct 31, 2016.
  32. ^Platt, Charles."Music on Demand".Wired.ISSN 1059-1028. RetrievedJan 3, 2024.
  33. ^Ken Thompson - Closing Keynote - SCaLE 20x, Mar 13, 2023, retrievedJan 3, 2024
  34. ^"Reconstructing Turing's "Paper Machine"". Sep 23, 2017.
  35. ^School, Stanford Law."Biographies of Amici Curiae in Oracle America, Inc., v. Google, Inc".Stanford Law School. RetrievedJul 27, 2023.
  36. ^"Dr. Ken Thompson". National Academy of Engineering. Archived fromthe original on Oct 21, 2021.
  37. ^"IEEE Richard W. Hamming Medal Recipients"(PDF).IEEE. Archived fromthe original(PDF) on Jul 26, 2011. RetrievedMay 29, 2011.
  38. ^"Ken Thompson". Computer History Museum. Archived fromthe original on Oct 21, 2021. RetrievedOct 29, 2016.
  39. ^Interviewed by Brock, David C. (Mar 15, 2024)."Oral History of Ken Thompson".CHM Oral Histories,YouTube.Computer History Museum. RetrievedJan 14, 2026. (Online Oct 8, 2025.)
  40. ^"Bell Labs Luminaries Dennis Ritchie And Ken Thompson To Receive National Medal Of Technology". ScienceDaily. Dec 8, 1998. Archived fromthe original on Oct 21, 2021.
  41. ^"Ken Thompson Receives Kanai Award for Impact of UNIX System". Bell Labs. Mar 25, 1999. Archived fromthe original on Mar 26, 2013.
  42. ^Evangelista, Benny (Jan 25, 2011)."Ken Thompson, Dennis Ritchie win Japan Prize".The San Francisco Chronicle.
  43. ^"Ken Thompson: A Brief Introduction".The Linux Information Project. Aug 24, 2007. RetrievedMar 5, 2020.
  44. ^Ken Thompson - Closing Keynote - SCaLE 20x (Video). Southern California Linux Expo. Event occurs at 57:48 - 58:55. RetrievedDec 28, 2024 – via www.youtube.com.

Sources

External links

[edit]
Wikimedia Commons has media related toKen Thompson.
Wikiquote has quotations related toKen Thompson.
Listen to this article (4 minutes)
Spoken Wikipedia icon
This audio file was created from a revision of this article dated 17 June 2006 (2006-06-17), and does not reflect subsequent edits.
(Audio help ·More spoken articles)
Operating systems
Programming languages
Software
Associated institutions
Other
Japan Prize recipients
1980s
1990s
2000s
2010s
2020s
Developer
People
Software
Multics-like
systems
Related
Analog and lightbulb games
Early chess programs
Early mainframe games
First arcade games
People
International
National
Academics
Retrieved from "https://en.wikipedia.org/w/index.php?title=Ken_Thompson&oldid=1333208572"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2026 Movatter.jp