C 2010 Robert L. Bocchino Jr. Chapters 3 and 5 Are Derived from Work Published in ACM Conference Proceedings (OOPSLA 2009 and POPL 2011)

Total Page:16

File Type:pdf, Size:1020Kb

C 2010 Robert L. Bocchino Jr. Chapters 3 and 5 Are Derived from Work Published in ACM Conference Proceedings (OOPSLA 2009 and POPL 2011) c 2010 Robert L. Bocchino Jr. Chapters 3 and 5 are derived from work published in ACM conference proceedings (OOPSLA 2009 and POPL 2011). As to that work only, the following notice applies: Copyright c 2009, 2011 by the Association for Computing Machinery, Inc. Permission to make digital or hard copies of part or all of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, to republish, to post on servers, or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from Publications Dept., ACM, Inc., fax +1 (212) 869-0481, or [email protected]. AN EFFECT SYSTEM AND LANGUAGE FOR DETERMINISTIC-BY-DEFAULT PARALLEL PROGRAMMING BY ROBERT L. BOCCHINO DISSERTATION Submitted in partial fulfillment of the requirements for the degree of Doctor of Philosophy in Computer Science in the Graduate College of the University of Illinois at Urbana-Champaign, 2010 Urbana, Illinois Doctoral Committee: Associate Professor Vikram Adve, Chair and Director of Research Professor David Padua Associate Professor Grigore Ros¸u Professor Marc Snir Bradford Chamberlain, Cray Inc. Associate Professor Dan Grossman, University of Washington Abstract This thesis presents a new, Java-based object-oriented parallel language called Deterministic Parallel Java (DPJ). DPJ uses a novel effect system to guarantee determinism by default. That means that parallel programs are guaranteed to execute deterministically unless nondeterminism is explicitly requested. This is in contrast to the shared-memory models in widespread use today, such as threads and locks (including threads in ordinary Java). Those models are inherently nondeterministic, do not provide any way to check or enforce that a computation is deterministic, and can even have unintended data races, which can lead to strange and unexpected behaviors. Because deterministic programs are much easier to reason about than arbitrary parallel code, determinism by default simplifies parallel programming. This thesis makes several broad contributions to the state of the art in programming languages and effect systems. First, it presents a comprehensive research agenda for achieving determinism by default in parallel languages with reference aliasing and shared mutable state. It argues that an object-oriented effect system is a good approach to managing shared memory conflicts. It also raises several technical challenges, many of which are taken up in the rest of the thesis. Second, this thesis presents an effect system and language for deterministic parallel programming using a fork-join model of parallel control. With simple modular checking, and with no runtime checking overhead, the effect system guarantees at compile time that there are no conflicting memory accesses between any pairs of parallel tasks. The effect system supports several important patterns of deterministic parallelism that previous systems cannot express. We describe the effect system and language both formally and informally, and prove soundness for the formal language. We also describe our evaluation showing that the language can express a range of parallel programming patterns with good performance. Third, this thesis extends the effect system and language for determinism to support a controlled form of nondeterminism. Conflicting accesses are allowed only for an explicitly identified nondeterministic parallel construct, so the language is deterministic by default. A transactional runtime provides isolation for atomic ii statements, while the extended effect system provides stronger compile-time safety guarantees than any system we know of. In addition to determinism by default, the language guarantees race freedom; strong isolation for atomic statements even if the runtime guarantees only weak isolation; and an elegant way of composing deterministic and nondeterministic operations that preserves local reasoning about deterministic operations. Again we give an informal treatment, a formal treatment, and soundness proofs. We describe an evaluation showing that the extended language can express realistic nondeterministic algorithms in a natural way, with reasonable performance given the transactional runtime we used. Further, by eliminat- ing unnecessary synchronization, the effect system enables a significant reduction in the software runtime overhead. Fourth, this thesis describes programming techniques and further extensions to the effect system for supporting object-oriented parallel frameworks. Frameworks represent an important tool for parallel pro- gramming in their own right. They can also express some operations that the language and effect system alone cannot, for example pipeline parallelism. We show how to write a framework API using the DPJ effect system so that the framework writer can guarantee correctness properties to the user, assuming the user’s code passes the DPJ type checker. We also show how to extend the DPJ effect system to add generic types and effects, making the frameworks more general and useful. Finally, we state the requirements for a correct framework implementation. These requirements may be checked with a combination of DPJ’s effect system and external reasoning. Again we give an informal treatment, a formal treatment, and soundness proofs. We also describe the results of an evaluation showing that the techniques described can express realistic frameworks and parallel algorithms. iii Acknowledgments I am grateful to many people for supporting and contributing to the content of this thesis: • My advisor, Vikram Adve, unwaveringly encouraged, supported, and guided this work. He also contributed many ideas to the work. • Sarita Adve and Marc Snir contributed many useful discussions about the benefits of determinis- tic programming, the interaction between deterministic and nondeterministic code, and the various mechanisms for expressing determinism and nondeterminism. Their work on our paper in HotPar 2009, together with Vikram and myself, defined the agenda for this thesis. • Danny Dig was extremely helpful in evaluating DPJ, and in figuring out how to explain the type system details to a general audience. He also encouraged the use of ForkJoinTask for the DPJ runtime. • Dan Grossman, Grigore Ros¸u, Chris Rodrigues, and Madhusudan Parthasarathy gave invaluable feed- back on the formal aspects of the work. • Brad Chamberlain, David Padua, and Ralph Johnson gave invaluable feedback on the language as- pects of the work, including usability. Brad also worked closely with me on a related project involving software transactional memory (STM) for large-scale clusters. While not directly appearing in this thesis, that work gave me lots of insight into both STMs and parallel programming that I brought to bear on this work. • Adam Welc, Tatiana Shpeisman, and Yang Ni contributed insights into the performance character- istics and semantic issues raised by software transactional memory. Adam also helped build the transactional runtime for DPJ. iv • Rakesh Komuravelli, Stephen Heumann, Nima Honarmand, Patrick Simmons, Hyojin Sung, and Mohsen Vakilian were my “users.” They learned how to program in DPJ, and they wrote, tuned, and measured the performance of many DPJ programs. Their efforts contributed greatly to the evalu- ation of DPJ as a language. Patrick and Stephen also helped implement the compiler code generation. Finally, Mohsen caught and forced me to fix many tricky bugs in the compiler. • Jeff Overbey got us on the right path using javac for the DPJ compiler. He also helped get the compiler implementation started. • Maurice Herlihy suggested that we use the Deuce STM for the DPJ transactional runtime. I am also grateful to the following institutions for directly or indirectly supporting the work: • Microsoft Corporation and Intel Corporation directly funded my Research Assistantship (RA), under the auspices of the Universal Parallel Computing Research Center (UPCRC) at the University of Illinois. • NSF also directly funded my RA. • My internship at Cray Inc. supported me for a summer and helped me learn a lot about STM, parallel computing, and language design. • Motorola supported me as an RA for several semesters and as a summer intern. While the work supported by Motorola does not directly appear in this thesis, it helped me learn a lot about parallel computing (specifically vector computing). Finally, thanks to Sonia, my family, and my friends for their caring and support. v Table of Contents ListofFigures ...................................... ........ ix ListofTables....................................... ........ xi Chapter1 Introduction ............................... ......... 1 1.1 The Need for Determinism by Default . ........... 2 1.2 Technical Challenges . ......... 6 1.3 Deterministic Parallel Java . ............ 9 1.4 Thesis Contributions and Outline . ............. 10 Chapter 2 A Research Agenda for Determinism by Default . ............... 15 2.1 Guaranteeing Determinism . .......... 16 2.1.1 Patterns of Determinism . ....... 16 2.1.2 Approaches for Checking Effects . ......... 18 2.1.3 EffectSystems ................................. 19 2.2 Encapsulating Complex Behaviors . ............ 20 2.2.1 LocalNondeterminism . ...... 21 2.2.2 Unsoundness ..................................
Recommended publications
  • BSD – Alternativen Zu Linux
    ∗BSD { Alternativen zu Linux Karl Lockhoff March 19, 2015 Inhaltsverzeichnis I Woher kommt BSD? I Was ist BSD? I Was ist sind die Unterschiede zwischen FreeBSD, NetBSD und OpenBSD? I Warum soll ich *BSD statt Linux einsetzen? I Chuck Haley und Bill Joy entwickeln den vi in Berkeley I Bill Joy erstellt eine Sammlung von Tools, 1BSD I Unix Version 7 erscheint I 2BSD erscheint (Basis f¨urdie Weiterentwicklung PDP-11) I 3BSD erscheint (erstmalig mit einen eigenen Kernel) I 4BSD erscheint (enth¨altdas fast file system (ffs)) I Bill Joy wechselt zu Sun Microsystems I Kirk McKusick ¨ubernimmt die Entwicklung von BSD I 1978 I 1979 I 1980 I 1981 Woher kommt BSD? I 1976 I Unix Version 6 erscheint I 2BSD erscheint (Basis f¨urdie Weiterentwicklung PDP-11) I 3BSD erscheint (erstmalig mit einen eigenen Kernel) I 4BSD erscheint (enth¨altdas fast file system (ffs)) I Bill Joy wechselt zu Sun Microsystems I Kirk McKusick ¨ubernimmt die Entwicklung von BSD I Bill Joy erstellt eine Sammlung von Tools, 1BSD I Unix Version 7 erscheint I 1979 I 1980 I 1981 Woher kommt BSD? I 1976 I Unix Version 6 erscheint I 1978 I Chuck Haley und Bill Joy entwickeln den vi in Berkeley I 2BSD erscheint (Basis f¨urdie Weiterentwicklung PDP-11) I 3BSD erscheint (erstmalig mit einen eigenen Kernel) I 4BSD erscheint (enth¨altdas fast file system (ffs)) I Bill Joy wechselt zu Sun Microsystems I Kirk McKusick ¨ubernimmt die Entwicklung von BSD I Unix Version 7 erscheint I 1979 I 1980 I 1981 Woher kommt BSD? I 1976 I Unix Version 6 erscheint I 1978 I Chuck Haley und Bill Joy entwickeln den
    [Show full text]
  • Reducing Redundancy in Data Organization and Arithmetic Calculation for Stencil Computations
    Reducing Redundancy in Data Organization and Arithmetic Calculation for Stencil Computations Kun Li Liang Yuan Yunquan Zhang Institute of Computing Technology, Institute of Computing Technology, Institute of Computing Technology, Chinese Academy of Sciences Chinese Academy of Sciences Chinese Academy of Sciences University of Chinese Academy of Beijing, China Beijing, China Sciences [email protected] [email protected] Beijing, China [email protected] Yue Yue Hang Cao Pengqi Lu Institute of Computing Technology, Institute of Computing Technology, Institute of Computing Technology, Chinese Academy of Sciences Chinese Academy of Sciences Chinese Academy of Sciences University of Chinese Academy of University of Chinese Academy of University of Chinese Academy of Sciences Sciences Sciences Beijing, China Beijing, China Beijing, China [email protected] [email protected] [email protected] Abstract ACM Reference Format: Stencil computation is one of the most important kernels Kun Li, Liang Yuan, Yunquan Zhang, Yue Yue, Hang Cao, and Pengqi in various scientific and engineering applications. A variety Lu. 2021. Reducing Redundancy in Data Organization and Arith- metic Calculation for Stencil Computations. In Proceedings of ACM of work has focused on vectorization techniques, aiming at Conference (Conference’21). ACM, Seoul, South Korea, 12 pages. exploiting the in-core data parallelism. Briefly, they either https://doi.org/10.1145/nnnnnnn.nnnnnnn incur data alignment conflicts or hurt the data locality when integrated with tiling. In this paper, a novel transpose lay- out is devised to preserve the data locality for tiling in the 1 Introduction data space and reduce the data reorganization overhead for Stencil is one of the most important kernels widely used vectorization simultaneously.
    [Show full text]
  • PITAC Report to the President Information Technology Information Research: Investing in Our Future PITAC to the President Report
    PITAC Report to the PresidentPITAC Research: Investing in Our Future Information Technology PRESIDENT’S INFORMATION TECHNOLOGY ADVISORY COMMITTEE REPORT TO THE PRESIDENT Information Technology Research: Investing in Our Future February 1999 PRESIDENT’S INFORMATION TECHNOLOGY ADVISORY COMMITTEE REPORT TO THE PRESIDENT Information Technology Research: Investing in Our Future February 1999 P RESIDENT’ S I NFORMATION T ECHNOLOGY A DVISORY C OMMITTEE February 24, 1999 The President of the United States The White House Dear Mr. President: We are pleased to present our final report, “Information Technology Research: Investing in Our Future,” on future directions for Federal support of research and development for information tech- nology. This report adds detail to the findings and recommendations in our interim report dated August 1998, and strengthens our previous recommendations regarding the importance of social and economic research on the impacts of information technology to inform key policy decisions. PITAC members are strongly encouraged by and enthusiastically supportive of the Administration’s Information Technology for the Twenty-First Century (IT2) initiative. This initiative is a vital first step in increasing funding for long-term, high-risk information technology research and develop- ment. Increased Federal support is critical to meeting the challenge of capturing the opportunities available from information technology in the 21st Century through appropriate research and development. The economic and strategic importance of information technology and the unique role of the Federal Government in sponsoring information technology research make it necessary to increase Federal support over a period of years to ensure our Nation’s future well-being. We hope that our recommendations will be helpful as you consider the priorities for Federal invest- ments.
    [Show full text]
  • Why the Future Doesn't Need Us
    BILL JOY OPINION 04.01.00 12:00 PM WHY THE FUTURE DOESN'T NEED US FROM THE MOMENT I became involved in the creation of new technologies, their ethical dimensions have concerned me, but it was only in the autumn of 1998 that I became anxiously aware of how great are the dangers facing us in the 21st century. I can date the onset of my unease to the day I met Ray Kurzweil, the deservedly famous inventor of the first reading machine for the blind and many other amazing things. Ray and I were both speakers at George Gilder's Telecosm conference, and I encountered him by chance in the bar of the hotel after both our sessions were over. I was sitting with John Searle, a Berkeley philosopher who studies consciousness. While we were talking, Ray approached and a conversation began, the subject of which haunts me to this day. I had missed Ray's talk and the subsequent panel that Ray and John had been on, and they now picked right up where they'd left off, with Ray saying that the rate of improvement of technology was going to accelerate and that we were going to become robots or fuse with robots or something like that, and John countering that this couldn't happen, because the robots couldn't be conscious. While I had heard such talk before, I had always felt sentient robots were in the realm of science fiction. But now, from someone I respected, I was hearing a strong argument that they were a near-term possibility.
    [Show full text]
  • 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]
  • SIGOPS Annual Report 2012
    SIGOPS Annual Report 2012 Fiscal Year July 2012-June 2013 Submitted by Jeanna Matthews, SIGOPS Chair Overview SIGOPS is a vibrant community of people with interests in “operatinG systems” in the broadest sense, includinG topics such as distributed computing, storaGe systems, security, concurrency, middleware, mobility, virtualization, networkinG, cloud computinG, datacenter software, and Internet services. We sponsor a number of top conferences, provide travel Grants to students, present yearly awards, disseminate information to members electronically, and collaborate with other SIGs on important programs for computing professionals. Officers It was the second year for officers: Jeanna Matthews (Clarkson University) as Chair, GeorGe Candea (EPFL) as Vice Chair, Dilma da Silva (Qualcomm) as Treasurer and Muli Ben-Yehuda (Technion) as Information Director. As has been typical, elected officers agreed to continue for a second and final two- year term beginning July 2013. Shan Lu (University of Wisconsin) will replace Muli Ben-Yehuda as Information Director as of AuGust 2013. Awards We have an excitinG new award to announce – the SIGOPS Dennis M. Ritchie Doctoral Dissertation Award. SIGOPS has lonG been lackinG a doctoral dissertation award, such as those offered by SIGCOMM, Eurosys, SIGPLAN, and SIGMOD. This new award fills this Gap and also honors the contributions to computer science that Dennis Ritchie made durinG his life. With this award, ACM SIGOPS will encouraGe the creativity that Ritchie embodied and provide a reminder of Ritchie's leGacy and what a difference a person can make in the field of software systems research. The award is funded by AT&T Research and Alcatel-Lucent Bell Labs, companies that both have a strong connection to AT&T Bell Laboratories where Dennis Ritchie did his seminal work.
    [Show full text]
  • 2020 SIGACT REPORT SIGACT EC – Eric Allender, Shuchi Chawla, Nicole Immorlica, Samir Khuller (Chair), Bobby Kleinberg September 14Th, 2020
    2020 SIGACT REPORT SIGACT EC – Eric Allender, Shuchi Chawla, Nicole Immorlica, Samir Khuller (chair), Bobby Kleinberg September 14th, 2020 SIGACT Mission Statement: The primary mission of ACM SIGACT (Association for Computing Machinery Special Interest Group on Algorithms and Computation Theory) is to foster and promote the discovery and dissemination of high quality research in the domain of theoretical computer science. The field of theoretical computer science is the rigorous study of all computational phenomena - natural, artificial or man-made. This includes the diverse areas of algorithms, data structures, complexity theory, distributed computation, parallel computation, VLSI, machine learning, computational biology, computational geometry, information theory, cryptography, quantum computation, computational number theory and algebra, program semantics and verification, automata theory, and the study of randomness. Work in this field is often distinguished by its emphasis on mathematical technique and rigor. 1. Awards ▪ 2020 Gödel Prize: This was awarded to Robin A. Moser and Gábor Tardos for their paper “A constructive proof of the general Lovász Local Lemma”, Journal of the ACM, Vol 57 (2), 2010. The Lovász Local Lemma (LLL) is a fundamental tool of the probabilistic method. It enables one to show the existence of certain objects even though they occur with exponentially small probability. The original proof was not algorithmic, and subsequent algorithmic versions had significant losses in parameters. This paper provides a simple, powerful algorithmic paradigm that converts almost all known applications of the LLL into randomized algorithms matching the bounds of the existence proof. The paper further gives a derandomized algorithm, a parallel algorithm, and an extension to the “lopsided” LLL.
    [Show full text]
  • Openbsd Gaming Resource
    OPENBSD GAMING RESOURCE A continually updated resource for playing video games on OpenBSD. Mr. Satterly Updated August 7, 2021 P11U17A3B8 III Title: OpenBSD Gaming Resource Author: Mr. Satterly Publisher: Mr. Satterly Date: Updated August 7, 2021 Copyright: Creative Commons Zero 1.0 Universal Email: [email protected] Website: https://MrSatterly.com/ Contents 1 Introduction1 2 Ways to play the games2 2.1 Base system........................ 2 2.2 Ports/Editors........................ 3 2.3 Ports/Emulators...................... 3 Arcade emulation..................... 4 Computer emulation................... 4 Game console emulation................. 4 Operating system emulation .............. 7 2.4 Ports/Games........................ 8 Game engines....................... 8 Interactive fiction..................... 9 2.5 Ports/Math......................... 10 2.6 Ports/Net.......................... 10 2.7 Ports/Shells ........................ 12 2.8 Ports/WWW ........................ 12 3 Notable games 14 3.1 Free games ........................ 14 A-I.............................. 14 J-R.............................. 22 S-Z.............................. 26 3.2 Non-free games...................... 31 4 Getting the games 33 4.1 Games............................ 33 5 Former ways to play games 37 6 What next? 38 Appendices 39 A Clones, models, and variants 39 Index 51 IV 1 Introduction I use this document to help organize my thoughts, files, and links on how to play games on OpenBSD. It helps me to remember what I have gone through while finding new games. The biggest reason to read or at least skim this document is because how can you search for something you do not know exists? I will show you ways to play games, what free and non-free games are available, and give links to help you get started on downloading them.
    [Show full text]
  • Harnessing Collective Intelligence for Translation: an Assessment of Crowdsourcing As a Means of Bridging the Canadian Linguistic Digital Divide
    HARNESSING COLLECTIVE INTELLIGENCE FOR TRANSLATION: AN ASSESSMENT OF CROWDSOURCING AS A MEANS OF BRIDGING THE CANADIAN LINGUISTIC DIGITAL DIVIDE Steven O’Brien Supervisor: Dr. Ajax Persaud Thesis submitted to the Faculty of Graduate and Postdoctoral Studies in partial fulfillment of the requirements for the degree of MASTER OF SCIENCE IN ELECTRONIC BUSINESS TECHNOLOGIES Telfer School of Management Faculty of Graduate and Postdoctoral Studies University of Ottawa © Steven O‟Brien, Ottawa, Canada, 2011 Table of Contents List of Tables .................................................................................................................................. vii List of Figures ................................................................................................................................... x List of Equations ............................................................................................................................. xii Acknowledgments......................................................................................................................... xiii Abstract ......................................................................................................................................... xiv Chapter 1: Introduction .................................................................................................................. 1 1.1 Rationale and Significance .................................................................................................... 3 1.2 Anticipated Contribution
    [Show full text]
  • Free As in Freedom (2.0): Richard Stallman and the Free Software Revolution
    Free as in Freedom (2.0): Richard Stallman and the Free Software Revolution Sam Williams Second edition revisions by Richard M. Stallman i This is Free as in Freedom 2.0: Richard Stallman and the Free Soft- ware Revolution, a revision of Free as in Freedom: Richard Stallman's Crusade for Free Software. Copyright c 2002, 2010 Sam Williams Copyright c 2010 Richard M. Stallman Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled \GNU Free Documentation License." Published by the Free Software Foundation 51 Franklin St., Fifth Floor Boston, MA 02110-1335 USA ISBN: 9780983159216 The cover photograph of Richard Stallman is by Peter Hinely. The PDP-10 photograph in Chapter 7 is by Rodney Brooks. The photo- graph of St. IGNUcius in Chapter 8 is by Stian Eikeland. Contents Foreword by Richard M. Stallmanv Preface by Sam Williams vii 1 For Want of a Printer1 2 2001: A Hacker's Odyssey 13 3 A Portrait of the Hacker as a Young Man 25 4 Impeach God 37 5 Puddle of Freedom 59 6 The Emacs Commune 77 7 A Stark Moral Choice 89 8 St. Ignucius 109 9 The GNU General Public License 123 10 GNU/Linux 145 iii iv CONTENTS 11 Open Source 159 12 A Brief Journey through Hacker Hell 175 13 Continuing the Fight 181 Epilogue from Sam Williams: Crushing Loneliness 193 Appendix A { Hack, Hackers, and Hacking 209 Appendix B { GNU Free Documentation License 217 Foreword by Richard M.
    [Show full text]
  • UNIX History Page 1 Tuesday, December 10, 2002 7:02 PM
    UNIX History Page 1 Tuesday, December 10, 2002 7:02 PM CHAPTER 1 UNIX Evolution and Standardization This chapter introduces UNIX from a historical perspective, showing how the various UNIX versions have evolved over the years since the very first implementation in 1969 to the present day. The chapter also traces the history of the different attempts at standardization that have produced widely adopted standards such as POSIX and the Single UNIX Specification. The material presented here is not intended to document all of the UNIX variants, but rather describes the early UNIX implementations along with those companies and bodies that have had a major impact on the direction and evolution of UNIX. A Brief Walk through Time There are numerous events in the computer industry that have occurred since UNIX started life as a small project in Bell Labs in 1969. UNIX history has been largely influenced by Bell Labs’ Research Editions of UNIX, AT&T’s System V UNIX, Berkeley’s Software Distribution (BSD), and Sun Microsystems’ SunOS and Solaris operating systems. The following list shows the major events that have happened throughout the history of UNIX. Later sections describe some of these events in more detail. 1 UNIX History Page 2 Tuesday, December 10, 2002 7:02 PM 2 UNIX Filesystems—Evolution, Design, and Implementation 1969. Development on UNIX starts in AT&T’s Bell Labs. 1971. 1st Edition UNIX is released. 1973. 4th Edition UNIX is released. This is the first version of UNIX that had the kernel written in C. 1974. Ken Thompson and Dennis Ritchie publish their classic paper, “The UNIX Timesharing System” [RITC74].
    [Show full text]
  • S Tudy of “A Response to Bill Joy and the Doom-And-Gloom Technofuturists”
    Fanouillère Jean-Baptiste S tudy of “A Response to Bill Joy and the Doom-and-Gloom Technofuturists” by John Seely Brown and Paul Duguid Just a few months after mankind entered the third millennium, a long article was published about the development of new technologies and the future of the human race, that would create many reactions and spur an intense debate in all intellectual and scientific circles. By writing “Why the future doesn't need us”1, and by deliberately giving it a provocative and alarmist tone, Bill Joy knew he would not fail to stir up a controversy which he thought was highly needed, since it was to draw the attention of the public on the dangers of the famous GNR - Genetics, Nanotechnology, Robotics - and to initiate a general reflection on the foundations of scientific research. Undeniably, his endeavors were successful. The article, published in the “Wired” magazine, created a major debate and received thousands of reactions, ranging from total catastrophism to full rejection of the author's warnings. Some even said that this document's importance equated that of the 1939 letter from Albert Einstein to President Roosevelt to warn him of the possibility of a nuclear bomb. It must be said that the computer scientist behind this article is none other than the co-founder of Sun Microsystems2 and the leading developer of BSD Linux and Java, among other things. A figure recognized and respected in the world of technology, he is one of the pillars of the community inventing and developing the very machines cited in his article, which is why his call caused great surprise.
    [Show full text]