Softpanorama

May the source be with you, but remember the KISS principle ;-)
Home Switchboard Unix Administration Red Hat TCP/IP Networks Neoliberalism Toxic Managers
(slightly skeptical) Educational society promoting "Back to basics" movement against IT overcomplexity and  bastardization of classic Unix

Best OS Internals, Algorithms and Design Books

News

Recommended Introductory Books

Classic Computer Books

Best C language textbooks

Unix System Calls

Kernel Internals

 Algorithms

TCP/IP Books

Unix Shells

Lang
history
Humor Etc

At the center of the UNIX onion is a program called the kernel. Although you are unlikely to deal with the kernel directly, it is absolutely crucial to the operation of the UNIX system.

The kernel provides the essential services that make up the heart of UNIX systems; it allocates memory, keeps track of the physical location of files on the computer's hard disks, loads and executes binary programs such as shells, and schedules the task swapping without which UNIX systems would be incapable of doing more than one thing at a time. The kernel accomplishes all these tasks by providing an interface between the other programs running under its control and the physical hardware of the computer; this interface, the system call interface, effectively insulates the other programs on the UNIX system from the complexities of the computer.

For example, when a running program needs access to a file, it cannot simply open the file; instead it issues a system call which asks the kernel to open the file. The kernel takes over and handles the request, then notifies the program whether the request succeeded or failed. To read data in from the file takes another system call; the kernel determines whether or not the request is valid, and if it is, the kernel reads the required block of data and passes it back to the program. Unlike DOS (and some other operating systems), UNIX system programs do not have access to the physical hardware of the computer. All they see are the kernel services, provided by the system call interface.

The system call interface is an example of an API, or application programming interface. An API is a set of system calls with strictly defined parameters, which allow an application (or other program) to request access to a service; it literally acts as an interface. (For example, a large database system might provide an API that allows programmers to write external programs that request services from the database.)

1978 IBM poster explaining virtual memory

The most interesting thing about Linux kernel is that this a classic example of  a technical system that is incomprehensible to a single human, no matter how talented he/she is, including all kernel developers. 

The most interesting thing about Linux kernel is that this a classic example of  a technical system
 that is incomprehensible to a single human, no matter how talented he/she is

Only simplified forms can be fully comprehended. That substantially increases the value of older versions of Unix, which, thanks god, are still available in source form.   That's why one classic book in this field remains Lions' Commentary on Unix : With Source Code. Some facts about this unusual (and very difficult to read and comprehend) book:


Top Visited
Switchboard
Latest
Past week
Past month

NEWS CONTENTS

Old News ;-)

[Jan 3, 2003] UNIX Filesystems Evolution, Design, and Implementation by Steve D. Pate

A reader from Dallas, Tx

5 out of 5 stars Finally, a decent book on filesystems!, January 25, 2003

Finally, a book that describes all the major UNIX file systems!

In an eloquent writing style, Steve Pate has put together the best book on file systems. It is the first book to describe the internals of one of the most important of the commercial file systems: the Veritas File System (VxFS).

The book starts out with a concise history of UNIX and UNIX variants and some file system basics before diving into programming topics.

The middle chapters discuss the UNIX/File System internals in a clear and easy to read manner. My favorite chapter was Chapter 9, a detailed look at VxFS!

The later chapters describe kernel locking primitives used by file systems, pseudo file systems, and finally chapters 12 and 13 do a nice job covering file system backups and cluster /distributed file systems. As an added bonus, you actually get to design a file system for gnu/linux! Steve Pate does a creditable job showing what it takes to write a simple file system.

No matter if you are a programmer, system administrator or IT professional, this book as something for you. No other book even comes close to the depth that "UNIX Filesystems" provides.

The only negative points I had with "UNIX Filesystems" was that it was not printed in hardback form and the paper quality is poor. Shame on you, Wiley!

[June 15, 2001] "Operating Systems Handbook"

is now available for free as a collection of Acrobat files. See www.snee.com/bob/opsys.html.

Linux Core Kernel Commentary -- Scott A. Maxwell; Paperback

Our Price: $31.99
You Save: $8.00 (20%) Availability: Usually ships within 24 hours.

Paperback - 575 pages Bk&Cd Rom edition (October 20, 1999)
The Coriolis Group; ISBN: 1576104699 ; Dimensions (in inches): 1.70 x 8.37 x 11.04
Amazon.com Sales Rank: 19,951
Avg. Customer Review: 3 out of 5 stars
Number of Reviews: 5

ERCB Linux Core Kernel Commentary

The biggest single drawback to Linux Core Kernel Commentary is how little of Linux it covers, out of necessity. (The book is already thick and oversized, even by computer book standards.) As Maxwell points out on page 441, about 39,000 lines of code are presented in the book, chosen from over 1.7M lines in the 2.2.5 kernel.

Even taking into account the platform-specific parts of the kernel, which are understandable omissions, this still pushes out some of the most interesting and visible parts of Linux, such as I/O and command shells. Other areas of interest that aren't part of the kernel (such as X and device drivers) aren't covered, but would presumably make good topics for other volumes.

Even though Maxwell does an excellent job with many different concepts and countless details, the book still suffers just slightly from myopia. There's simply so much detail about the trees, even this small subset of them, that there's not much room for a description of the forest.

Operating Systems : A Modern Perspective by Gary J. Nutt / Hardcover / Published 1997

Understanding Operating Systems by Ida M. Flynn, Ann McIver McHoes / Paperback / Published 1997

Operating Systems Programming : The Sr Programming Language by Stephen J. Hartley / Paperback / Published 1995


Recommended Introductory Books

The Linux Kernel Book

William Stallings

Silberschatz and Galvin(SG)

Charles Crowley

Tanenbaum, et al

The Linux Kernel Book by Remy Card

****Despite its Linux-oriented title this is a very good introductory OS concepts book. It covers almost all necessary for the introductory OS course concepts and provides a lot of insights into the real operating system. I bought the very first printing of the book. This a bad translation from French, so there are a lot of errors that probably were corrected in later printings. Anyway the translation errors probably are more distracting for native English speakers that for me as a foreigner. For me they are sometimes annoying, but do not hamper much this very well organized book that contains a wealth of information about Linux and simultaneously about all Unix-type systems. Highly recommended.
Remy Card is a well known Linux personality (he worked with Linus Torvalds on several Minix tools) actively involved with the port of the 4.4BSD dump and restore backup suite and ext2f filesystem. See for example the slides which he prepared for the 3rd International Linux Conference in Berlin ftp://tsx-11.mit.edu:/pub/linux/packages/ext2fs/slides/berlin96 Four sets of slides are available: two-up slides on quotas, one-up slides on quotas, two-up slides on ACL's, and one-up slides on ACL's.
Here are some programs that he wrote for ext2f:

Paperback / Published 1998

Mini Review

Table of Contents

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

***** The most famous suppressed book in computer history -- finally in print!

Operating Systems : Internals and Design Principles by William Stallings

***+ Newer and probably somewhat better than Silberschatz and Galvin textbook. Still leave the reader cold and contains a lot of material that currently is not relevant to the topic. Initially was very expensive ($65) but now is a regular junk book. Covers more modern concepts that SG book(see below), provides good pseudocode, seems to have good writing, and can serve as a reference when the term is over. Winner of the 1998 Texty Award for the best Computer Science and Engineering textbook, awarded by the Text and Academic Authors Association, Inc.

Hardcover / Published 1997 - 3-d edition

Instructors that use the book:

From Prentiss Hall page:

Winner of the 1998 Texty Award for the best Computer Science and Engineering Textbook, which is given by the Text and Academic Authors Association!
Blending up-to-date theory with modern applications, this book offers a comprehensive treatment of operating systems with an emphasis on internals and design issues. A complete instructor's support package is available on-line at: http://www1.shore.net/nws/

Are you interested in an operating systems text that uses windows NT and Solaris as running case studies?

Instructor Support

Web site at http://www.shore.net/~ws/OS3e projects with NACHOS, OSP, BACI that includes:

TOC.

I. BACKGROUND.

II. PROCESSES.

III. MEMORY.

IV. SCHEDULING.

V. INPUT/OUTPUT AND FILES.

VI. DISTRIBUTED SYSTEMS.

VII. SECURITY.

Operating System Concepts by Abraham Silberschatz, Peter Baer Galvin

*** Good exercises. Very uneven, sometimes outdated and poorly organized text. Mainly obsolete bibliography without any html references. Approximately half of the chapters are obsolete. A dinosaur mascot at the beginning of each chapter is a relevant warning ;-)
This is the fifth edition. The first one was in 1991 and patches are visible in the text. The age of the book is now evident in each and every chapter. It looks like the text needs complete rewriting, not just new edition patches. Despite all this AFAK this book is probably most popular book for US university courses, although I personally find it dull. I suspect many students will hate the course and all OSes after using it :-).
The content is mainly text with very few programs, so the book can be classified as "theory approach" book (compare with "example approach" ). Book contains useful exercises after each chapter -- important plus for the textbook. Slides for the the course are also available, but due to faults in the book organization an instructor probably will be better creating his/her own slides. Sometimes theory is rather incomplete and it look like none of the authors have first hand experience on the subject. The book does contain an excellent overview of Linux -- chapter 22 is probably one of the best in the book. At the same time the book contains superficial and uncritical chapter on NT.
Hardcover / November 1997/ 888 pages

Some comments on chapters.

Coverage of Linux is better in the latest edition (Chapter 22 is very good, one of the best in the book. It was derived from unpublished manuscript by Stephen Tweedie). The book also contain one (superficial and uncritical) chapter on NT.

The first author write books mainly about database systems (see Database System Concepts -- also in many editions). The second author had wrote only one additional book -- Using UNIX With CDROM. At least he is a Unix guy, not database academician :-).

There should be better books on the subject. An interested reader may try Operating Systems: Internals and Design Principles by William Stallings (more recent -- first published in 1995, third edition was published 1997; used in a dozen of American universities; it won a major prize recently) or Operating Systems A Design-Oriented Approach by Charles Crowley (also published in 1997; used in Florida State University and The University of New Mexico). It contains code for an example operating system written by the author, so the author probably at least partially know what he is writing about ;-). See his Web-page at http://www.cs.unm.edu/~crowley/osbook/begin.html for additional details. BTW he is a TCL guru and authored one book on TCL. Disclaimer: I am in no way connected with any of the authors of two books mentioned above.

Operating Systems : A Design-Oriented Approach by Charles Crowley

There have always been two approaches to teaching Operating Systems concepts:
There are advantages and disadvantages to both approaches. Some people feel the ideal situation is to take both classes, but this is rarely possible in an already crowded computer science curriculum so one is required to make a choice. The author have tried a middle course. This book is basically a concepts oriented book with more code than is usual. Seeing actual code allows the students to understand the concepts more deeply, feel more comfortable about the material, and ask questions they wouldn't have thought to ask in a purely concepts oriented course. The code does not comprise a complete operating system however and it as simple as possible in order to reduce the number of pages devoted to explaining it.
See the author home page: Operating Systems A Design-Oriented Approach by Charles Crowley (University of New Mexico)
Used in Florida State University: COP 4610 - Introduction to Operating Systems

Hardcover / Published 1997


Minux based courses

Operating Systems : Design and Implementation by Andrew S. Tanenbaum

Book includes Minix source. That makes books as close to classic as one can get.

Hardcover / Published 1997

Andrew S. Tanenbaum is a well known author of several popular CS books including:


Kernel Internals

Design of the Unix Operating System by Marice J. Bach

Classic -- was used by Linus Torvalds for reengineering Unix kernel.

Hardcover / Published 1986

The Design and Implementation of the 4.4BSD Operating System (Unix and Open Systems Series.)

Marshall Kirk McKusick (Editor), et al / Hardcover / Published 1996

Unix Internals : A Practical Approach

Steve D. Pate /Addison-Wesley Hardcover / Published 1996

SCO oriented

The Magic Garden Explained : The Internals of Unix System V Release 4 : An Open Systems Design by Berny Goodheart, James Cox / Paperback / Published 1994

**** Complete algorithms (in pseudo code) provide a glimpse into the elegance of the OS.

Linux Kernel Internals by Michael Beck (Editor), et al / Paperback / Published 1997

Unix Internals : A Systems Operations Handbook by Myril Clement Shaw, Susan Soltis Shaw / Published 1987


Unix Systems Calls

Advanced Unix Programming by Marc J. Rochkind

Rochkind86 is a very good book that really teach Unix system calls. Although published in 1986 is still relevant. Recommended

Paperback / Published 1986

Unix System Architecture by Prabhat K. Andleigh, Prabhat Andleigh

Paperback / Published 1989

Advanced Programming in the Unix Environment by W. Richard Stevens

Classic book

Hardcover / Published 1992
Read more about this title...

Advanced Topics in Unix by Ronald J. Leach

Paperback / Published 1994
Read more about this title...


Device Drivers

Both books below are probably obsolete with the introduction if Unix Universal Driver Model by Intel

Writing Unix Device Drivers by George Pajari

Paperback / Published 1992

Linux Device Drivers by Alessandro Rubin

O'Relly Paparback / Published 1998

Old Books (published before 1995)

1994

The Operating Systems Handbook : Unix, Openvms, Os/400, Vm, and MVS e-text is now available as a collection of Acrobat
files from www.snee.com/bob/opsys.html.

Bob Ducharme / Hardcover / Published 1994

1993

Introduction to Operating Systems

William A. Shay / Hardcover / Published 1993

P.S. to Operating Systems

Larry Dowdy, Craig Lowery / Paperback / Published 1993

Fundamentals of Operating Systems

A.M. Lister, R.D. Eager / Paperback / Published 1993

Operating Systems : Bridging the Gap Between Hardware and User

Joachim Heusler (Editor) / Hardcover / Published 1993

Operating Systems : A Practical Approach

Robert Switzer / Paperback / Published 1993

1992

Operating Systems : A Systematic View

William S. Davis / Hardcover / Published 1992

Operating Systems : Concepts and Design

Milan Milenkovic / Hardcover / Published 1992

1990

Principles of Operating Systems

Sacha Krakowiak, et al / Paperback / Published 1990

1980-1990

An Introduction to Operating Systems

Harvey M. Deitel / Hardcover / Published 1989

D. Comer, Operating System Design: The XINU Approach, Englewood
Cliffs, NJ: Prentice Hall, 1984.

L. Bic & A. C. Shaw, The Logical Design of Operating Systems,
Englewood Cliffs, NJ: Prentice Hall, 1988.

Fundamentals of Operating Systems

Andrew M. Lister / Paperback / Published 1985

Operating Systems

Harold Lorin / Hardcover / Published 1980

Operating Systems : Advanced Concepts

Mamoru Maekawa, et al / Hardcover / Published 1987

Operating Systems : Structures and Mechanisms

Philippe Janson / Hardcover / Published 1985

Operating Systems Theory and Practice

Paul Massie / Hardcover / Published 1987

Operating Systems Through Unix

Glyn Emery / Paperback / Published 1985

A Practical Course on Operating Systems

Colin J. Theaker, Graham R. Brookes / Paperback / Published 1983

Earlier than 1980

Operating Systems

Stuart Madnick, John J. Donovan / Hardcover / Published 1974 -- one of the best book on OS construction I ever read. System 370 oriented.


Etc

Debugging with Gdb The GNU Source-Level Debugger for Version 4.17



Etc

Society

Groupthink : Two Party System as Polyarchy : Corruption of Regulators : Bureaucracies : Understanding Micromanagers and Control Freaks : Toxic Managers :   Harvard Mafia : Diplomatic Communication : Surviving a Bad Performance Review : Insufficient Retirement Funds as Immanent Problem of Neoliberal Regime : PseudoScience : Who Rules America : Neoliberalism  : The Iron Law of Oligarchy : Libertarian Philosophy

Quotes

War and Peace : Skeptical Finance : John Kenneth Galbraith :Talleyrand : Oscar Wilde : Otto Von Bismarck : Keynes : George Carlin : Skeptics : Propaganda  : SE quotes : Language Design and Programming Quotes : Random IT-related quotesSomerset Maugham : Marcus Aurelius : Kurt Vonnegut : Eric Hoffer : Winston Churchill : Napoleon Bonaparte : Ambrose BierceBernard Shaw : Mark Twain Quotes

Bulletin:

Vol 25, No.12 (December, 2013) Rational Fools vs. Efficient Crooks The efficient markets hypothesis : Political Skeptic Bulletin, 2013 : Unemployment Bulletin, 2010 :  Vol 23, No.10 (October, 2011) An observation about corporate security departments : Slightly Skeptical Euromaydan Chronicles, June 2014 : Greenspan legacy bulletin, 2008 : Vol 25, No.10 (October, 2013) Cryptolocker Trojan (Win32/Crilock.A) : Vol 25, No.08 (August, 2013) Cloud providers as intelligence collection hubs : Financial Humor Bulletin, 2010 : Inequality Bulletin, 2009 : Financial Humor Bulletin, 2008 : Copyleft Problems Bulletin, 2004 : Financial Humor Bulletin, 2011 : Energy Bulletin, 2010 : Malware Protection Bulletin, 2010 : Vol 26, No.1 (January, 2013) Object-Oriented Cult : Political Skeptic Bulletin, 2011 : Vol 23, No.11 (November, 2011) Softpanorama classification of sysadmin horror stories : Vol 25, No.05 (May, 2013) Corporate bullshit as a communication method  : Vol 25, No.06 (June, 2013) A Note on the Relationship of Brooks Law and Conway Law

History:

Fifty glorious years (1950-2000): the triumph of the US computer engineering : Donald Knuth : TAoCP and its Influence of Computer Science : Richard Stallman : Linus Torvalds  : Larry Wall  : John K. Ousterhout : CTSS : Multix OS Unix History : Unix shell history : VI editor : History of pipes concept : Solaris : MS DOSProgramming Languages History : PL/1 : Simula 67 : C : History of GCC developmentScripting Languages : Perl history   : OS History : Mail : DNS : SSH : CPU Instruction Sets : SPARC systems 1987-2006 : Norton Commander : Norton Utilities : Norton Ghost : Frontpage history : Malware Defense History : GNU Screen : OSS early history

Classic books:

The Peter Principle : Parkinson Law : 1984 : The Mythical Man-MonthHow to Solve It by George Polya : The Art of Computer Programming : The Elements of Programming Style : The Unix Hater’s Handbook : The Jargon file : The True Believer : Programming Pearls : The Good Soldier Svejk : The Power Elite

Most popular humor pages:

Manifest of the Softpanorama IT Slacker Society : Ten Commandments of the IT Slackers Society : Computer Humor Collection : BSD Logo Story : The Cuckoo's Egg : IT Slang : C++ Humor : ARE YOU A BBS ADDICT? : The Perl Purity Test : Object oriented programmers of all nations : Financial Humor : Financial Humor Bulletin, 2008 : Financial Humor Bulletin, 2010 : The Most Comprehensive Collection of Editor-related Humor : Programming Language Humor : Goldman Sachs related humor : Greenspan humor : C Humor : Scripting Humor : Real Programmers Humor : Web Humor : GPL-related Humor : OFM Humor : Politically Incorrect Humor : IDS Humor : "Linux Sucks" Humor : Russian Musical Humor : Best Russian Programmer Humor : Microsoft plans to buy Catholic Church : Richard Stallman Related Humor : Admin Humor : Perl-related Humor : Linus Torvalds Related humor : PseudoScience Related Humor : Networking Humor : Shell Humor : Financial Humor Bulletin, 2011 : Financial Humor Bulletin, 2012 : Financial Humor Bulletin, 2013 : Java Humor : Software Engineering Humor : Sun Solaris Related Humor : Education Humor : IBM Humor : Assembler-related Humor : VIM Humor : Computer Viruses Humor : Bright tomorrow is rescheduled to a day after tomorrow : Classic Computer Humor

The Last but not Least Technology is dominated by two types of people: those who understand what they do not manage and those who manage what they do not understand ~Archibald Putt. Ph.D


Copyright © 1996-2021 by Softpanorama Society. www.softpanorama.org was initially created as a service to the (now defunct) UN Sustainable Development Networking Programme (SDNP) without any remuneration. This document is an industrial compilation designed and created exclusively for educational use and is distributed under the Softpanorama Content License. Original materials copyright belong to respective owners. Quotes are made for educational purposes only in compliance with the fair use doctrine.

FAIR USE NOTICE This site contains copyrighted material the use of which has not always been specifically authorized by the copyright owner. We are making such material available to advance understanding of computer science, IT technology, economic, scientific, and social issues. We believe this constitutes a 'fair use' of any such copyrighted material as provided by section 107 of the US Copyright Law according to which such material can be distributed without profit exclusively for research and educational purposes.

This is a Spartan WHYFF (We Help You For Free) site written by people for whom English is not a native language. Grammar and spelling errors should be expected. The site contain some broken links as it develops like a living tree...

You can use PayPal to to buy a cup of coffee for authors of this site

Disclaimer:

The statements, views and opinions presented on this web page are those of the author (or referenced source) and are not endorsed by, nor do they necessarily reflect, the opinions of the Softpanorama society. We do not warrant the correctness of the information provided or its fitness for any purpose. The site uses AdSense so you need to be aware of Google privacy policy. You you do not want to be tracked by Google please disable Javascript for this site. This site is perfectly usable without Javascript.

Last modified: March, 12, 2019