Reading CS Classics Revisiting Required Reading

Total Page:16

File Type:pdf, Size:1020Kb

Reading CS Classics Revisiting Required Reading viewpoints VDOI:10.1145/2133806.2133818 Selma Tekir Viewpoint Reading CS Classics Revisiting required reading. E OFTEN FOCUS so much and 1970s in Britain. The program- of our attention on our ming languages community of those particular research ar- Knowledge of the years was also well described in the eas that we do not fully theories of computer reading. Hoare wrote a more efficient utilize the potential sort algorithm than the one invented science helps 9 Wcoming from the core theoretical com- by D.L. Shell. When he had the op- puter science. We lack the fundamen- in understanding portunity to hear about the recursive tal theoretical knowledge of the field. procedures in an ALGOL 60 course, Moreover, the computer science clas- the limitations Hoare realized this mechanism is sics are unknown to many computer of the field. the right way of expressing his new scientists. Knowledge of the theories sort algorithm, which is the original of computer science helps in under- QuickSort. The moral of this example standing the limitations of the field. is that one should communicate with This directly influences your ongoing people to seek better solutions to the research by providing you with new problems at hand and extend the ex- perspectives and insights. In addition, isting solutions. His remark on sim- the stories of the pioneers of the field ˲ “Gödel’s Undecidability Theo- plification is of high importance as inspire young professionals, provide a rem,” S.F. Andrilli well. A simple, reliable core is criti- common history to unite the commu- ˲ “Computing Machinery and Intel- cal for a programming language, an nity, and facilitate the recognition of ligence,” A.M. Turing operating system, and even for any computer science as an independent ˲ “Reflections on Trusting Trust,” K. software product. With this realiza- science and profession. Thompson tion, Hoare provides a foundation for With these ideas in mind, I orga- ˲ “The Humble Programmer,” E.W. the formal proofs of programs by an nized CS classics meetings in my com- Dijkstra algebraic assertions-based approach, puter engineering department during ˲ “An Interview with Edsger W. Dijks- which is named as “An Axiomatic Ba- the last summer term. Our group se- tra,” P. Frana sis for Computer Programming.”7 lected a subset of classics to initialize ˲ “Computer Programming as an Gödel’s undecidability theorem1 the project. The selected classics and Art,” D. Knuth states that any mathematical system their respective ordering reflected our ˲ “The ‘Art’ of Being Donald Knuth,” containing all the theorems of arith- personal interests; in the end, they be- E. Feigenbaum metic is an incomplete system. This come part of a coherent whole. ˲ “Donald Knuth: A Life’s Work In- opens the way for Turing to introduce It can be a good practice for CS pro- terrupted,” E. Feigenbaum the famous halting problem: There is fessionals to compile their own list of We found these intellectual gath- no general algorithm that can always classics that highlights some key scien- erings quite useful and subsequently correctly predict whether a randomly tific concepts of the field. Such an at- decided to make the CS classics group selected computer program will run tempt improves the understanding of reading a regular activity of our aca- or not.11 Before knowing about Gödel the field and serves as a valuable source demic environment. Here, I give an and his undecidability theorem, Tur- of reference, as this Viewpoint attests. overview of the classics we discussed ing stands out as the most prominent Our group discussed these CS classics: and encourage further reading. figure in computer science. After you ˲ “The Emperor’s Old Clothes,” hear about Gödel’s work, you realize C.A.R. Hoare Classics Overview Turing is standing on the shoulders of ˲ “An Axiomatic Basis for Computer In reading Hoare,6,7 you learn about giants. The proof of the undecidability Programming,” C.A.R. Hoare the computing industry of the 1960s theorem has important implications 32 COMMUNICATIONS OF THE ACM | APRIL 2012 | VOL. 55 | NO. 4 V viewpoints viewpoints for computer science by introducing period and the products that were herent in computer science. Abstrac- the Gödel numbering scheme, which launched, independent but consis- tion is extending the viewpoint in a introduces unique numbering to each tent views are required. In this sense, way that the specificities of the prob- symbol, formula, or proof in the sys- Dijkstra and Hoare’s identical views lem can be reflected in a better way tem. This system is the basis of the on ALGOL 60 help us appreciate this rather than being vague. The tools computer numbering systems that programming language. Additionally, we work with can then have vital im- provide unique representation to every the realization of the recursion mech- portance in abstracting. Dijkstra’s programming construct: due to this anism by both is spectacular—a good comment on computing tools is re- property, code can be treated as data. example of the axiom “great minds markable in this sense:2 he states that The idea of this unique numbering think alike.” computing tools have direct influence system can be better explained by the Dijkstra’s dialogue with his profes- on the thinking habits of their users. challenge of writing a source program sor cannot be overlooked. Most signifi- If you constrain yourself with one that, when compiled and executed, cant is his realization of the high intel- specific tool, your thinking becomes will produce as output an exact copy lectual challenge of programming and constrained in the boundaries of this of its source. It is a Turing machine the professor’s encouragement that tool. You continue to stay at the same SELF that is printing itself. The SELF made him one of the greatest minds of level of thinking as the creator of this machine is constructed such that it computer programming.5 tool in accordance with the famous contains two concatenated machines One lesson comes from the huge quote by Einstein: “The significant and one of them is the Gödel number abstraction capability/potential in- problems we face cannot be solved at equivalent of the other. Such a self- the same level of thinking we were at reproducing program is introduced when we created them.” by Ken Thompson in “Reflections on Reading CS classics Donald Knuth is extraordinary with Trusting Trust”10 as the most primitive his perspective on computer program- version of today’s trojans. When you widens your ming.3,4 His definition of programming see the scientific layers on top of each perspective by identifies the right balance between other like the one presented, you begin conceptual clarity and implementation to appreciate the real beauty of science introducing stable, efficiency. He says: “Programming is and the scientific developments. timeless ideas. the art of telling another human being By reading Dijkstra independent what one wants the computer to do.” EET DUGGAL G from his contemporary Hoare you In understanding the importance H BY H BY P have information about the comput- of this definition, one should realize it ing environment of that era. To make is beyond the traditional definition of PHOTOGRA a correct assessment of that time the task of telling a computer what to APRIL 2012 | VOL. 55 | NO. 4 | COMMUNICATIONS OF THE ACM 33 viewpoints do. Knuth’s viewpoint is more encom- bining the assessments of Dijkstra References passing and is helpful in understand- and Knuth, what we (plan to) do is not 1. Andrilli, S.F. Gödel’s Undecidability Theorem. Applications of Discrete Mathematics. J.G. Michaels ing the diversity and convergence of independent of how we (plan to) do it. and K.H. Rosen, Eds. McGraw-Hill, 1991. programming languages. Moreover, The process is a good indicator of the 2. Dijkstra, E.W. The humble programmer. Commun. ACM 51, 10 (Oct. 1972), 859–866; DOI: it points out an important trade-off resultant product most of the time. 10.1145/355604.361591. between conceptual clarity and imple- 3. Feigenbaum, E. Donald Knuth: A life’s work interrupted. Shustek, L., Ed. Commun. ACM 51, 8 (Aug. mentation efficiency. When the task is Conclusion 2008), 31–35; DOI: 10.1145/1378704.1378715. to define a job to a computer, low-level Reading CS classics widens your per- 4. Feigenbaum, E. The ‘art’ of being Donald Knuth. Shustek, L., Ed. Commun. ACM 51, 7 (July 2008), instructions are better in terms of ex- spective by introducing stable, time- 35–39; DOI: 10.1145/1364782.1364794. ecution efficiency. However, people less ideas. You escape the popular 5. Frana, P. An interview with Edsger W. Dijkstra. T.J. Misa, Ed. Commun. ACM 53, 8 (Aug. 2010), 41–47; have difficulty in understanding such themes of your times and evaluate the DOI: 10.1145/1787234.1787249. 6. Hoare, C.A.R. The emperor’s old clothes. written code. When you try to describe field from a more literal position. You Commun. ACM 24, 2 (Feb. 1981), 75–83; DOI: a task to a human being, you can skip learn about the qualities that make a 10.1145/358549.358561. 7. Hoare, C.A.R. An axiomatic basis for computer some steps because humans are good person a great scientist. You realize programming. Commun. ACM 12, 10 (Oct. 1969), at filling in the blanks; machines have those people are delighted to think 576–580; DOI: 10.1145/363235.363259. 8. Knuth, D.E. Computer programming as an art. difficulty doing this. The best is to over problems. By learning the histo- Commun. ACM 17, 12 (Dec. 1974), 667–673; DOI: compromise: to discuss the task at a ry of computers and studying the lives 10.1145/361604.361612.
Recommended publications
  • Twenty Years of Berkeley Unix : from AT&T-Owned to Freely
    Twenty Years of Berkeley Unix : From AT&T-Owned to Freely Redistributable Marshall Kirk McKusick Early History Ken Thompson and Dennis Ritchie presented the first Unix paper at the Symposium on Operating Systems Principles at Purdue University in November 1973. Professor Bob Fabry, of the University of California at Berkeley, was in attendance and immediately became interested in obtaining a copy of the system to experiment with at Berkeley. At the time, Berkeley had only large mainframe computer systems doing batch processing, so the first order of business was to get a PDP-11/45 suitable for running with the then-current Version 4 of Unix. The Computer Science Department at Berkeley, together with the Mathematics Department and the Statistics Department, were able to jointly purchase a PDP-11/45. In January 1974, a Version 4 tape was delivered and Unix was installed by graduate student Keith Standiford. Although Ken Thompson at Purdue was not involved in the installation at Berkeley as he had been for most systems up to that time, his expertise was soon needed to determine the cause of several strange system crashes. Because Berkeley had only a 300-baud acoustic-coupled modem without auto answer capability, Thompson would call Standiford in the machine room and have him insert the phone into the modem; in this way Thompson was able to remotely debug crash dumps from New Jersey. Many of the crashes were caused by the disk controller's inability to reliably do overlapped seeks, contrary to the documentation. Berkeley's 11/45 was among the first systems that Thompson had encountered that had two disks on the same controller! Thompson's remote debugging was the first example of the cooperation that sprang up between Berkeley and Bell Labs.
    [Show full text]
  • Introduction
    Introduction J. M. P. Alves Laboratory of Genomics & Bioinformatics in Parasitology Department of Parasitology, ICB, USP BMP0260 / ICB5765 / IBI5765 ● Introduction to computers and computing (UNIX) ● Linux basics ● Introduction to the Bash shell ● Connecting to this course’s virtual machine J.M.P. Alves 2 / 82 BMP0260 / ICB5765 / IBI5765 TuxThe Linux mascot “TUXedo”... By Larry Ewing, 1996 ...or Torvalds UniX Tux's ancestor J.M.P. Alves 3 / 82 BMP0260 / ICB5765 / IBI5765 Linux (Unix) & science Why so popular together? ● Historical reasons (programs made for Unix/Linux) ● Available on any kind of computer, especially powerful servers ● Works efficiently with humongous text files (head, tail, sort, cut, paste, grep, etc.) ● Complicated tasks can be made easy by concatenating simpler commands (piping) ● Creating new programs is easy – tools just one or two commands (or clicks) away (gcc, g++, python, perl) ● Stable, efficient, open (free software), no cost (software for free) J.M.P. Alves 4 / 82 BMP0260 / ICB5765 / IBI5765 What IS this Linux, anyway? J.M.P. Alves 5 / 82 BMP0260 / ICB5765 / IBI5765 Operating system J.M.P. Alves 6 / 82 BMP0260 / ICB5765 / IBI5765 An operating system is a collection of programs that initialize the computer's hardware, providing basic instructions for the control of devices, managing and scheduling tasks, and regulating their interactions with each other. J.M.P. Alves 7 / 82 BMP0260 / ICB5765 / IBI5765 You WhatsApp Android Phone J.M.P. Alves 8 / 82 BMP0260 / ICB5765 / IBI5765 You MUSCLE Linux Computer J.M.P. Alves 9 / 82 BMP0260 / ICB5765 / IBI5765 formerly: J.M.P. Alves 10 / 82 BMP0260 / ICB5765 / IBI5765 History J.M.P.
    [Show full text]
  • The UNIX Time- Sharing System
    1. Introduction There have been three versions of UNIX. The earliest version (circa 1969–70) ran on the Digital Equipment Cor- poration PDP-7 and -9 computers. The second version ran on the unprotected PDP-11/20 computer. This paper describes only the PDP-11/40 and /45 [l] system since it is The UNIX Time- more modern and many of the differences between it and older UNIX systems result from redesign of features found Sharing System to be deficient or lacking. Since PDP-11 UNIX became operational in February Dennis M. Ritchie and Ken Thompson 1971, about 40 installations have been put into service; they Bell Laboratories are generally smaller than the system described here. Most of them are engaged in applications such as the preparation and formatting of patent applications and other textual material, the collection and processing of trouble data from various switching machines within the Bell System, and recording and checking telephone service orders. Our own installation is used mainly for research in operating sys- tems, languages, computer networks, and other topics in computer science, and also for document preparation. UNIX is a general-purpose, multi-user, interactive Perhaps the most important achievement of UNIX is to operating system for the Digital Equipment Corpora- demonstrate that a powerful operating system for interac- tion PDP-11/40 and 11/45 computers. It offers a number tive use need not be expensive either in equipment or in of features seldom found even in larger operating sys- human effort: UNIX can run on hardware costing as little as tems, including: (1) a hierarchical file system incorpo- $40,000, and less than two man years were spent on the rating demountable volumes; (2) compatible file, device, main system software.
    [Show full text]
  • Arxiv:2106.11534V1 [Cs.DL] 22 Jun 2021 2 Nanjing University of Science and Technology, Nanjing, China 3 University of Southampton, Southampton, U.K
    Noname manuscript No. (will be inserted by the editor) Turing Award elites revisited: patterns of productivity, collaboration, authorship and impact Yinyu Jin1 · Sha Yuan1∗ · Zhou Shao2, 4 · Wendy Hall3 · Jie Tang4 Received: date / Accepted: date Abstract The Turing Award is recognized as the most influential and presti- gious award in the field of computer science(CS). With the rise of the science of science (SciSci), a large amount of bibliographic data has been analyzed in an attempt to understand the hidden mechanism of scientific evolution. These include the analysis of the Nobel Prize, including physics, chemistry, medicine, etc. In this article, we extract and analyze the data of 72 Turing Award lau- reates from the complete bibliographic data, fill the gap in the lack of Turing Award analysis, and discover the development characteristics of computer sci- ence as an independent discipline. First, we show most Turing Award laureates have long-term and high-quality educational backgrounds, and more than 61% of them have a degree in mathematics, which indicates that mathematics has played a significant role in the development of computer science. Secondly, the data shows that not all scholars have high productivity and high h-index; that is, the number of publications and h-index is not the leading indicator for evaluating the Turing Award. Third, the average age of awardees has increased from 40 to around 70 in recent years. This may be because new breakthroughs take longer, and some new technologies need time to prove their influence. Besides, we have also found that in the past ten years, international collabo- ration has experienced explosive growth, showing a new paradigm in the form of collaboration.
    [Show full text]
  • Turing Award • John Von Neumann Medal • NAE, NAS, AAAS Fellow
    15-712: Advanced Operating Systems & Distributed Systems A Few Classics Prof. Phillip Gibbons Spring 2021, Lecture 2 Today’s Reminders / Announcements • Summaries are to be submitted via Canvas by class time • Announcements and Q&A are via Piazza (please enroll) • Office Hours: – Prof. Phil Gibbons: Fri 1-2 pm & by appointment – TA Jack Kosaian: Mon 1-2 pm – Zoom links: See canvas/Zoom 2 CS is a Fast Moving Field: Why Read/Discuss Old Papers? “Those who cannot remember the past are condemned to repeat it.” - George Santayana, The Life of Reason, Volume 1, 1905 See what breakthrough research ideas look like when first presented 3 The Rise of Worse is Better Richard Gabriel 1991 • MIT/Stanford style of design: “the right thing” – Simplicity in interface 1st, implementation 2nd – Correctness in all observable aspects required – Consistency – Completeness: cover as many important situations as is practical • Unix/C style: “worse is better” – Simplicity in implementation 1st, interface 2nd – Correctness, but simplicity trumps correctness – Consistency is nice to have – Completeness is lowest priority 4 Worse-is-better is Better for SW • Worse-is-better has better survival characteristics than the-right-thing • Unix and C are the ultimate computer viruses – Simple structures, easy to port, required few machine resources to run, provide 50-80% of what you want – Programmer conditioned to sacrifice some safety, convenience, and hassle to get good performance and modest resource use – First gain acceptance, condition users to expect less, later
    [Show full text]
  • Corbató Transcript Final
    A. M. Turing Award Oral History Interview with Fernando J. (“Corby”) Corbató by Steve Webber Plum Island, Massachusetts April 6, 2018 Webber: Hi. My name is Steve Webber. It’s April 6th, 2018. I’m here to interview Fernando Corbató – everyone knows him as “Corby” – the ACM Turing Award winner of 1990 for his contributions to computer science. So Corby, tell me about your early life, where you went to school, where you were born, your family, your parents, anything that’s interesting for the history of computer science. Corbató: Well, my parents met at University of California, Berkeley, and they… My father got his doctorate in Spanish literature – and I was born in Oakland, California – and proceeded to… he got his first position at UCLA, which was then a new campus in Los Angeles, as a professor of Spanish literature. So I of course wasn’t very conscious of much at those ages, but I basically grew up in West Los Angeles and went to public high schools, first grammar school, then junior high, and then I began high school. Webber: What were your favorite subjects in high school? I tended to enjoy the mathematics type of subjects. As I recall, algebra was easy and enjoyable. And the… one of the results of that was that I was in high school at the time when World War II… when Pearl Harbor occurred and MIT was… rather the United States was drawn into the war. As I recall, Pearl Harbor occurred… I think it was on a Sunday, but one of the results was that it shocked the US into reacting to the war effort, and one of the results was that everything went into kind of a wartime footing.
    [Show full text]
  • Alan Mathison Turing and the Turing Award Winners
    Alan Turing and the Turing Award Winners A Short Journey Through the History of Computer TítuloScience do capítulo Luis Lamb, 22 June 2012 Slides by Luis C. Lamb Alan Mathison Turing A.M. Turing, 1951 Turing by Stephen Kettle, 2007 by Slides by Luis C. Lamb Assumptions • I assume knowlege of Computing as a Science. • I shall not talk about computing before Turing: Leibniz, Babbage, Boole, Gödel... • I shall not detail theorems or algorithms. • I shall apologize for omissions at the end of this presentation. • Comprehensive information about Turing can be found at http://www.mathcomp.leeds.ac.uk/turing2012/ • The full version of this talk is available upon request. Slides by Luis C. Lamb Alan Mathison Turing § Born 23 June 1912: 2 Warrington Crescent, Maida Vale, London W9 Google maps Slides by Luis C. Lamb Alan Mathison Turing: short biography • 1922: Attends Hazlehurst Preparatory School • ’26: Sherborne School Dorset • ’31: King’s College Cambridge, Maths (graduates in ‘34). • ’35: Elected to Fellowship of King’s College Cambridge • ’36: Publishes “On Computable Numbers, with an Application to the Entscheindungsproblem”, Journal of the London Math. Soc. • ’38: PhD Princeton (viva on 21 June) : “Systems of Logic Based on Ordinals”, supervised by Alonzo Church. • Letter to Philipp Hall: “I hope Hitler will not have invaded England before I come back.” • ’39 Joins Bletchley Park: designs the “Bombe”. • ’40: First Bombes are fully operational • ’41: Breaks the German Naval Enigma. • ’42-44: Several contibutions to war effort on codebreaking; secure speech devices; computing. • ’45: Automatic Computing Engine (ACE) Computer. Slides by Luis C.
    [Show full text]
  • Linux Internals
    LINUX INTERNALS Peter Chubb and Etienne Le Sueur [email protected] A LITTLE BIT OF HISTORY • Ken Thompson and Dennis Ritchie in 1967–70 • USG and BSD • John Lions 1976–95 • Andrew Tanenbaum 1987 • Linux Torvalds 1991 NICTA Copyright c 2011 From Imagination to Impact 2 The history of UNIX-like operating systems is a history of people being dissatisfied with what they have and wanting to do some- thing better. It started when Ken Thompson got bored with MUL- TICS and wanted to write a computer game (Space Travel). He found a disused PDP-7, and wrote an interactive operating sys- tem to run his game. The main contribution at this point was the simple file-system abstraction. (Ritchie 1984) Other people found it interesting enough to want to port it to other systems, which led to the first major rewrite — from assembly to C. In some ways UNIX was the first successfully portable OS. After Ritchie & Thompson (1974) was published, AT&T became aware of a growing market for UNIX. They wanted to discourage it: it was common for AT&T salesmen to say, ‘Here’s what you get: A whole lot of tapes, and an invoice for $10 000’. Fortunately educational licences were (almost) free, and universities around the world took up UNIX as the basis for teaching and research. The University of California at Berkeley was one of those univer- NICTA Copyright c 2011 From Imagination to Impact 2-1 sities. In 1977, Bill Joy (a postgrad) put together and released the first Berkeley Software Distribution — in this instance, the main additions were a pascal compiler and Bill Joy’s ex editor.
    [Show full text]
  • Principles of Computer System Design an Introduction
    Principles of Computer System Design An Introduction Suggestions for Further Reading Jerome H. Saltzer M. Frans Kaashoek Massachusetts Institute of Technology Version 5.0 Saltzer & Kaashoek Ch. 11, p. i June 24, 2009 12:32 am Copyright © 2009 by Jerome H. Saltzer and M. Frans Kaashoek. Some Rights Reserved. This work is licensed under a Creative Commons Attribution-Non­ commercial-Share Alike 3.0 United States License. For more information on what this license means, visit http://creativecommons.org/licenses/by-nc-sa/3.0/us/ Designations used by companies to distinguish their products are often claimed as trade­ marks or registered trademarks. In all instances in which the authors are aware of a claim, the product names appear in initial capital or all capital letters. All trademarks that appear or are otherwise referred to in this work belong to their respective owners. Suggestions, Comments, Corrections, and Requests to waive license restrictions: Please send correspondence by electronic mail to: [email protected] and [email protected] Saltzer & Kaashoek Ch. 11, p. ii June 24, 2009 12:32 am Suggestions for Further Reading CHAPTER TABLE OF CONTENTS Introduction................................................................................... SR–2 1 Systems ..................................................................................... SR–4 1.1 Wonderful books about systems ............................................... SR–4 1.2 Really good books about systems. ............................................ SR–6 1.3 Good books on related
    [Show full text]
  • Operating Systems and Middleware: Supporting Controlled Interaction
    Operating Systems and Middleware: Supporting Controlled Interaction Max Hailperin Gustavus Adolphus College Revised Edition 1.1 July 27, 2011 Copyright c 2011 by Max Hailperin. This work is licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/3.0/ or send a letter to Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA. Bibliography [1] Atul Adya, Barbara Liskov, and Patrick E. O’Neil. Generalized iso- lation level definitions. In Proceedings of the 16th International Con- ference on Data Engineering, pages 67–78. IEEE Computer Society, 2000. [2] Alfred V. Aho, Peter J. Denning, and Jeffrey D. Ullman. Principles of optimal page replacement. Journal of the ACM, 18(1):80–93, 1971. [3] AMD. AMD64 Architecture Programmer’s Manual Volume 2: System Programming, 3.09 edition, September 2003. Publication 24593. [4] Dave Anderson. You don’t know jack about disks. Queue, 1(4):20–30, 2003. [5] Dave Anderson, Jim Dykes, and Erik Riedel. More than an interface— SCSI vs. ATA. In Proceedings of the 2nd Annual Conference on File and Storage Technology (FAST). USENIX, March 2003. [6] Ross Anderson. Security Engineering: A Guide to Building Depend- able Distributed Systems. Wiley, 2nd edition, 2008. [7] Apple Computer, Inc. Kernel Programming, 2003. Inside Mac OS X. [8] Apple Computer, Inc. HFS Plus volume format. Technical Note TN1150, Apple Computer, Inc., March 2004. [9] Ozalp Babaoglu and William Joy. Converting a swap-based system to do paging in an architecture lacking page-referenced bits.
    [Show full text]
  • Open Source Resources for Teaching and Research in Mathematics
    Open Source Resources for Teaching and Research in Mathematics Dr. Russell Herman Dr. Gabriel Lugo University of North Carolina Wilmington Open Source Resources, ICTCM 2008, San Antonio 1 Outline History Definition General Applications Open Source Mathematics Applications Environments Comments Open Source Resources, ICTCM 2008, San Antonio 2 In the Beginning ... then there were Unix, GNU, and Linux 1969 UNIX was born, Portable OS (PDP-7 to PDP-11) – in new “C” Ken Thompson, Dennis Ritchie, and J.F. Ossanna Mailed OS => Unix hackers Berkeley Unix - BSD (Berkeley Systems Distribution) 1970-80's MIT Hackers Public Domain projects => commercial RMS – Richard M. Stallman EMACS, GNU - GNU's Not Unix, GPL Open Source Resources, ICTCM 2008, San Antonio 3 History Free Software Movement – 1983 RMS - GNU Project – 1983 GNU GPL – GNU General Public License Free Software Foundation (FSF) – 1985 Free = “free speech not free beer” Open Source Software (OSS) – 1998 Netscape released Mozilla source code Open Source Initiative (OSI) – 1998 Eric S. Raymond and Bruce Perens The Cathedral and the Bazaar 1997 - Raymond Open Source Resources, ICTCM 2008, San Antonio 4 The Cathedral and the Bazaar The Cathedral model, source code is available with each software release, code developed between releases is restricted to an exclusive group of software developers. GNU Emacs and GCC are examples. The Bazaar model, code is developed over the Internet in public view Raymond credits Linus Torvalds, Linux leader, as the inventor of this process. http://en.wikipedia.org/wiki/The_Cathedral_and_the_Bazaar Open Source Resources, ICTCM 2008, San Antonio 5 Given Enough Eyeballs ... central thesis is that "given enough eyeballs, all bugs are shallow" the more widely available the source code is for public testing, scrutiny, and experimentation, the more rapidly all forms of bugs will be discovered.
    [Show full text]
  • Dennis Ritchie - the Computer Science Pioneer Without Whom There Would Be No Jobs
    Dennis Ritchie - The Computer Science Pioneer without whom there would be no Jobs Dennis Ritchie Outline 1 Dennis Ritchie - Tributes 2 Dennis Ritchie - The Man 3 Dennis Ritchie - The Founder of C Success of C Critique of C 4 Dennis Ritchie - The Founder of Unix Portability of Unix History of Unix The Fellowship of Unix On Success of Unix What Unix did not do 5 Some Photos and Fun Dennis Ritchie One Language and Operating System to Rule All 1 One C to Program all Operating Systems One Unix to Rule all Architectures and Deploy in the Internet to Bind Them All 1http://en.wikiquote.org/wiki/The_Lord_of_the_Rings Dennis Ritchie “It has always seemed strange to me ... The things we admire in men, kindness and generosity, openness, honesty, understanding and feeling, are the concomitants of failure in our system. And those traits we detest, sharpness, greed, acquisitiveness, meanness, egotism and self-interest, are the traits of success. And while men admire the quality of the first they love the produce of the second.” John Steinbeck, Cannery Row Calling for October 30 to be celebrated as Dennis Ritchie Day by Tim O’Reilly of O’Reilly Media. Dennis Ritchie Dennis Ritchie - Tributes I “Pretty much everything on the web uses those two things: C and UNIX. The browsers are written in C. The UNIX kernel - that pretty much the entire Internet runs on - is written in C. Web servers are written in C, and if they’re not, they’re written in Java or C++, which are C derivatives, or Python or Ruby, which are implemented in C.
    [Show full text]