World Library  
Flag as Inappropriate
Email this Article

Lions' Commentary on UNIX 6th Edition, with Source Code

Article Id: WHEBN0000038279
Reproduction Date:

Title: Lions' Commentary on UNIX 6th Edition, with Source Code  
Author: World Heritage Encyclopedia
Language: English
Subject: Samizdat, Unix, UNSW School of Computer Science and Engineering, History of Unix, Segmentation fault
Collection: 1976 Books, Computer Programming Books, Computer Science Books, Unix
Publisher: World Heritage Encyclopedia
Publication
Date:
 

Lions' Commentary on UNIX 6th Edition, with Source Code

Lions' Commentary on UNIX 6th Edition, with Source Code
Author John Lions
Country Original – Australia, Reprint – United States
Language English Also available in Chinese and Japanese
Subject Unix operating system
Genre Computer Science
Publisher Peer-to-Peer Communications
Publication date
1996
ISBN
OCLC 36099640
005.43
LC Class QA 76.76 .O63 L56

Lions' Commentary on UNIX 6th Edition, with Source Code by John Lions (1976) contains the complete source code of the 6th Edition Unix kernel plus a commentary. It is commonly referred to as the Lions book. Despite its age, it is still considered an excellent commentary on simple but high quality code.

For many years, the Lions Book was the only Unix kernel documentation available outside Bell Labs. Although the license of 6th Edition allowed classroom use of the source code, the license of 7th Edition specifically excluded such use, so the book spread through illegal copy machine reproductions (a kind of samizdat). It was commonly held to be the most copied book in computer science.

The book was reprinted in 1996 by Peer-To-Peer Communications.

Contents

  • Synopsis 1
  • History 2
  • "You are not expected to understand this" 3
  • References 4
  • Further reading 5
  • External links 6

Synopsis

Lions's original books with source code and commentary

Unix Operating System Source Code Level Six is the kernel source code, lightly edited by Lions to better separate the functionality — system initialization and process management, interrupts and system calls, basic I/O, file systems and pipes and character devices. All procedures and symbols are listed alphabetically with a cross reference.

The code as presented will run on a PDP-11/40 with RK-05 disk drive, LP-11 line printer interface, PCL-11 paper tape writer and KL-11 terminal interface, or a suitable PDP-11 emulator, such as SIMH.

A Commentary on the Unix Operating System starts with notes on Unix and other useful documentation (the Unix manual pages, DEC hardware manuals and so on), a section on the architecture of the PDP-11 and a chapter on how to read C programs. The source commentary follows, divided into the same sections as the code. The book ends with suggested exercises for the student.

As Lions explains, this commentary supplements the comments in the source. It is possible to understand the code without the extra commentary, and the reader is advised to do so and only read the notes as needed. The commentary also remarks on how the code might be improved.

History

John Lions with his students in 1980
Brian Kernighan holding a copy of Lions's Commentary

The source code and commentary were originally produced in May 1976 as a set of lecture notes for Lions's computer science courses (6.602B and 6.657G) at the University of New South Wales Department of Computer Science.

UNIX News March 1977 announced the availability of the book to Unix licensees. Lions had trouble keeping up with its popularity, and by 1978 it was available only from Bell Labs.

When AT&T announced Unix Version 7 at USENIX in June 1979, the academic/research license no longer automatically permitted classroom use. Thus, licensees were no longer able to use the Lions notes for classes on operating systems.

However, thousands of computer science students around the world spread photocopies. As they could not study it legally in class, they would sometimes meet after hours to discuss the book. Many pioneers of Unix and open source had a treasured multiple-generation photocopy.[1]

Other follow-on effects of the license change included Andrew S. Tanenbaum creating Minix. As Tanenbaum wrote in Operating Systems (1987):

When AT&T released Version 7, it began to realize that UNIX was a valuable commercial product, so it issued Version 7 with a license that prohibited the source code from being studied in courses, in order to avoid endangering its status as a trade secret. Many universities complied by simply dropping the study of UNIX, and teaching only theory.

Various Unix people, particularly Peter H. Salus, Dennis Ritchie and Berny Goodheart, lobbied Unix's various owners (AT&T, Novell, the Santa Cruz Operation) for many years to allow the book to be published officially. In 1996, the Santa Cruz Operation finally authorised the release of the twenty-year-old 6th Edition source code (along with the source code of other versions of "Ancient UNIX"), and the full code plus the 1977 version of the commentary was published by Peer-To-Peer Communications (ISBN 1-57398-013-7). The reissue includes commentary from Michael Tilson (SCO), Peter Salus, Dennis Ritchie, Ken Thompson, Peter Collinson, Greg Rose, Mike O'Dell, Berny Goodheart and Peter Reintjes.

"You are not expected to understand this"

The infamous program comment "You are not expected to understand this" occurs on line 2238 of the source code (Lions' Commentary, p. 22) at the end of a comment explaining the process exchange mechanism. The source code reads:[2]

        /*
         * If the new process paused because it was
         * swapped out, set the stack level to the last call
         * to savu(u_ssav).  This means that the return
         * which is executed immediately after the call to aretu
         * actually returns from the last routine which did
         * the savu.
         *
         * You are not expected to understand this.
         */
        if(rp->p_flag&SSWAP) {
                rp->p_flag =& ~SSWAP;
                aretu(u.u_ssav);
        }

A major reason why this piece of code was hard to understand was that it depended on a quirk of the way the C-compiler for the PDP-11 saved registers in procedure calls. This code failed when ported to other machines and had to be redesigned in Version 7 Unix.[3] Dennis Ritchie later explained the meaning of this remark:[4]

"You are not expected to understand this" was intended as a remark in the spirit of "This won't be on the exam," rather than as an impudent challenge.

References

  1. ^ Lions Book (Jargon File, references ISBN 1-57398-013-7)
  2. ^ Dennis Ritchie. "Odd Comments and Strange Doings in Unix". Retrieved 2014-10-09. 
  3. ^ Johnson, S. C.; Ritchie, D. M., "Portability of C Programs and the UNIX System", UNIX System Readings and Applications, Bell System Technical Journal special issue on UNIX 57 (6) 
  4. ^ Dennis Ritchie. "Odd Comments and Strange Doings in Unix". Retrieved 2014-10-08. 

Further reading

External links

  • Peer-To-Peer Communications website, product page
  • UNSW School of Computer Science & Engineering
  • Complete commentary in PDF, PostScript, and LaTeX formats
  • Complete source code listing available (6th Edition Unix source code as modified by John Lions) in PDF and HTML formats.
  • Ersatz 11 (proprietary), SIMH (free), and other PDP-11 hardware emulators
This article was sourced from Creative Commons Attribution-ShareAlike License; additional terms may apply. World Heritage Encyclopedia content is assembled from numerous content providers, Open Access Publishing, and in compliance with The Fair Access to Science and Technology Research Act (FASTR), Wikimedia Foundation, Inc., Public Library of Science, The Encyclopedia of Life, Open Book Publishers (OBP), PubMed, U.S. National Library of Medicine, National Center for Biotechnology Information, U.S. National Library of Medicine, National Institutes of Health (NIH), U.S. Department of Health & Human Services, and USA.gov, which sources content from all federal, state, local, tribal, and territorial government publication portals (.gov, .mil, .edu). Funding for USA.gov and content contributors is made possible from the U.S. Congress, E-Government Act of 2002.
 
Crowd sourced content that is contributed to World Heritage Encyclopedia is peer reviewed and edited by our editorial staff to ensure quality scholarly research articles.
 
By using this site, you agree to the Terms of Use and Privacy Policy. World Heritage Encyclopedia™ is a registered trademark of the World Public Library Association, a non-profit organization.
 


Copyright © World Library Foundation. All rights reserved. eBooks from Project Gutenberg are sponsored by the World Library Foundation,
a 501c(4) Member's Support Non-Profit Organization, and is NOT affiliated with any governmental agency or department.