About | Buy | Forum | Industry Watch | Learning Curve | Products | Search | Twitter | Xnews
Home » Learning Curve

OS X Bibliography

Unix is more than an operating system - it's a way of thinking.
 - Ancient Unix Proverb

Like the keyboard shortcuts list before it, this list should grow exponentially over time.

Bell Labs


Buy It

Try It

Bell Labs have won more Nobel Prizes than any other institution since the second world war. At the time of the creation of Unix the computer science team were a mere twenty five programmers strong.

Names like Al Aho, Steve Bourne, Lorinda Cherry, Steve Johnson, Brian Kernighan, Mike Lesk, Doug McIlroy, Joe Osanna, Dennis Ritchie, and Ken Thompson have etched themselves into our legacy as 'die Götter unsere Zeit' - the gods of our time.

The absolute definitive documentation of Unix is the July - August 1978 issue of the Bell Systems Technical Journal, currently (definitely) out of print. If you can beg borrow or steal a copy, do it - and don't let it go for love or money. The articles are written by the Bell Labs Unix engineers themselves with a good portion humour and self-introspection and describe the at times confusing and winding paths that led to what we so casually take for granted today.

The Creation of the UNIX* Operating System
http://www.bell-labs.com/history/unix/

After three decades of use, the UNIX* computer operating system from Bell Labs is still regarded as one of the most powerful, versatile, and flexible operating systems (OS) in the computer world.

The Unix Time-sharing System
http://cm.bell-labs.com/cm/cs/who/dmr/cacm.html

The 1978 BSTJ update of the 1974 CACM article.

The Evolution of the Unix Time-sharing System*
http://cm.bell-labs.com/cm/cs/who/dmr/hist.html

This paper presents a brief history of the early development of the Unix operating system. It concentrates on the evolution of the file system, the process-control mechanism, and the idea of pipelined commands. Some attention is paid to social conditions during the development of the system.

First presented at the Language Design and Programming Methodology conference at Sydney, Australia, September 1979.

The UNIX Time-sharing System - A Retrospective*
http://cm.bell-labs.com/cm/cs/who/dmr/retro.html

Gold: a copy of an article from the historic BSTJ July 1978.

Advice from Doug McIlroy
http://cm.bell-labs.com/cm/cs/who/dmr/mdmpipe.html

DMR calls it 'prophetic' and it is.

The C Programming Language, Second Edition
http://www.cs.bell-labs.com/cm/cs/cbook/

The first pre-ANSI edition is better but hard to find.


Al Aho
http://cm.bell-labs.com/who/aho/

Author of the famous (and definitive) 'dragon book' series on compiler construction techniques, Aho co-authored the Unix tool 'awk'.

Brian W Kernighan
http://cm.bell-labs.com/who/bwk/

Colleague of Ken and DMR who made the famous 'Unics' quip, authored 'K/R', wrote the seminal 'Software Tools' series, invented RATFOR, and co-authored the Unix tool 'awk'.

M Doug McIlroy
http://cm.bell-labs.com/who/doug/

Head of the CSRC when Ritchie and Thompson created Unix, McIlroy is responsible for some of the formative thinking which would later give Unix and associated technologies their strengths. McIlroy is the one who came up with the idea of 'pipes'; he had to almost literally insist Ritchie and Thompson implement them, as neither of the latter could figure out why they'd be of any interest.

Rob Pike
http://cm.bell-labs.com/who/rob/

Co-author with Brian Kernighan of 'The Unix Programming Environment and 'The Practice of Programming' and co-creator of the UTF-8 standard in use on the Internet today. Rob and Ken Thompson adjourned to a late night café where Thompson sketched out the entire design on a placemat on 2 September 1992. Only five days later they delivered the system to IBM.

Dennis M Ritchie
http://cm.bell-labs.com/who/dmr/

Co-father of Unix and creator of C. If the Nobel Committee ever get around to awarding a prize for computer science, this guy has to be the first laureate.

Ken Thompson
http://cm.bell-labs.com/who/ken/

Principle author of Unix, the cryptic Ken was the one who insisted on 'C' as the name of Ritchie's programming language as all the other suggestions (even 'NB') were too long. Ken took a sabbatical at Berkeley after the initial work with Unix was completed; what he showed the engineers at Berkeley would become the Berkeley Software Distribution (BSD) Unix on which the Darwin of OS X is based.


Labscam
http://cm.bell-labs.com/cm/cs/who/dmr/labscam.html

An indication of the kind of mentality amongst the 25 at CSRC.

Letter from Washington
http://cm.bell-labs.com/cm/cs/who/dmr/medal.html

DMR and Ken won the Technology Medal for Unix in 1999.

Reflections on Trusting Trust
http://acm.org/classics/sep95/

Reprinted from the CACM of August 1984 wherein Ken Thompson drops a bomb and reveals one of the most daring hacks of all time - Thompson calls it 'the cutest program I ever wrote'.

Unix Seventh Edition Manual
http://cm.bell-labs.com/7thEdMan/

The files that shipped on the distribution tapes of the Seventh Edition release of the Unix operating system from Bell Labs. Part one contains the 'man pages'; parts two and three go into greater detail from a programmer's perspective.

Unix

Open source advocate Eric Raymond is one of the best sources of information on the 'Unix philosophy'.

The Art of Unix Programming
http://catb.org/~esr/writings/taoup/html/

An excellent diatribe - especially read the section on comparative operating systems. And note to whom the book is dedicated as well.

The Importance of Being Textual
http://catb.org/~esr/writings/taoup/html/ch05s01.html

From ESR's book quoted above. As strong an argument as ever heard against binary XML - or binary anything for that matter.

Basics of the Unix Philosophy
http://catb.org/~esr/writings/taoup/html/ch01s06.html

Contains the maxims of Ken and DMR's mentor Doug McIlroy:

  1. Make each program do one thing well. To do a new job, build afresh rather than complicate old programs by adding new features.

  2. Expect the output of every program to become the input to another, as yet unknown, program. Don't clutter output with extraneous information. Avoid stringently columnar or binary input formats. Don't insist on interactive input.

  3. Design and build software, even operating systems, to be tried early, ideally within weeks. Don't hesitate to throw away the clumsy parts and rebuild them.

  4. Use tools in preference to unskilled help to lighten a programming task, even if you have to detour to build the tools and expect to throw some of them out after you've finished using them.

Doug would later summarise things this way:

This is the Unix philosophy: write programs that do one thing and do it well; write programs to work together; write programs to handle text streams, because that is a universal interface.

NeXTSTEP

About the only possible improvement on Unix and C would be NeXTSTEP and Objective-C.

The Objective-C Programming Language
http://developer.apple.com/documentation/Cocoa/Conceptual/ObjectiveC/

Also included with the ADC tools, this is a complete course in the programming language of NeXTSTEP and Cocoa. It takes about two hours to read.

The Early History Of Smalltalk by Alan Kay
http://smalltalk.org/smalltalk/TheEarlyHistoryOfSmalltalk_Abstract.html

Worried their paper-dependent markets would evaporate in the age of the paperless office, Xerox devoted enormous resources to finding the markets of the future at their Palo Alto Research Center (PARC). Kay started the Learning Research Group at PARC, building on ideas from Douglas Engelbart and developing the language - and the environment - that would power his networks, mail system, windowing environment, and prototyped 'mouse' pointing device. Kay is the one who invented the term 'object orientation'. The Objective-C used by Cocoa is a direct descendant of Kay's Smalltalk. Apple Fellow Kay wrote this paper in 1993 for the ACM.

The NeXTonian
http://rixstep.com/2/0/

An incredibly creative thing happened between 1985 and 1996 in Redwood City, California.

Cocoa Documentation
http://developer.apple.com/documentation/Cocoa/

The documentation for all OS X development. Cocoa is the direct descendant of NeXTSTEP.

Cocoa Reference Library
http://developer.apple.com/referencelibrary/Cocoa/

API reference, fundamentals, and 'getting started' sections.

Darwin Documentation
http://developer.apple.com/documentation/Darwin/

Darwin is the MACH kernel FreeBSD Unix first used by NeXTSTEP and now running for OS X.

Darwin Reference Library
http://developer.apple.com/referencelibrary/Darwin/

API reference, fundamentals, and 'getting started' sections.

Mac OS X Documentation
http://developer.apple.com/documentation/MacOSX/

The portal for all developer documentation for OS X.

Mac OS X Reference Library
http://developer.apple.com/referencelibrary/MacOSX/

An overview of the concepts and technical capabilities of OS X.

End User

Figure out how to crawl before you try to walk or run.

UNIX Tutorial for Beginners
http://www.ee.surrey.ac.uk/Teaching/Unix/

From the University of Surrey.

UNIXhelp for Users
http://unixhelp.ed.ac.uk/

Extensively mirrored course written at the University of Edinburgh.

A Basic UNIX Tutorial
http://www.isu.edu/departments/comcom/unix/workshop/unixindex.html

This tutorial comprises fourteen sections, each of which addresses a fundamental aspect of UNIX computing. It concentrates on illustrating the central concepts by providing short explanations along with examples and exercises.

Unix - the Bare Minimum
http://heather.cs.ucdavis.edu/~matloff/UnixAndC/Unix/UnixBareMn.html

For absolute beginners. This stuff is extremely basic.

Norman Matloff's Unix and Linux Tutorial Center
http://heather.cs.ucdavis.edu/~matloff/unix.html

A portal for a number of excellent tutorials on both Unix (the Unix file system, tar gz and bz2 files, shell usage, Unix process management, advanced shell programming) and C (introduction, functions, programming style, command line arguments, 'bits and bytes', pointers, 'the art of debugging', gdb, argc and argv, recursion, bitwise ops, C libraries, Makefile, file I/O, set user ID, signals).

UNIX Tutorial
http://www.its.caltech.edu/its/facilities/labsclusters/unix/unixtutorial.shtml

From the California Institute of Technology; borrowed and revised by many institutions (see below).

Unix Tutorial
http://www2.ocean.washington.edu/unix.tutorial.html

An adaptation of the above tutorial revised to match local conditions where it is published.

About | Buy | Forum | Industry Watch | Learning Curve | Products | Search | Twitter | Xnews
Copyright © Rixstep. All rights reserved.