Bibliography

This bibliography contains related material that may be of interest. The editions listed are the editions that were current when this list was compiled, but newer versions may be available.

Apple OS X Publications

The following Apple publications have information that could be of interest to you if you are programming in the kernel:

“Debugging a Kernel Extension with GDB” (tutorial).

“Creating a Device Driver with Xcode” (tutorial)

“Creating a Generic Kernel Extension with Xcode” (tutorial).

Accessing Hardware From Applications

I/O Kit Fundamentals

Network Kernel Extensions Programming Guide

Network Kernel Extensions (legacy)

Mac Technology Overview

Porting UNIX/Linux Applications to OS X

I/O Kit Device Driver Design Guidelines

“Packaging a Kernel Extension for Distribution and Installation”(tutorial).

General UNIX and Open Source Resources

A Quarter Century of UNIX. Peter H. Salus. Addison-Wesley, 1994.ISBN 0-201-54777-5.

Berkeley Software Distribution. CSRG, UC Berkeley. USENIX and O’Reilly, 1994.ISBN 1-56592-082-1.

The Cathedral and the Bazaar: Musings on Linux and Open Source by an Accidental Revolutionary. Eric S. Raymond. O’Reilly & Associates, 1999.ISBN 1-56592-724-9.

The New Hacker’s Dictionary. 3rd. Ed., Eric S. Raymond. MIT Press, 1996. ISBN 0-262-68092-0.

Open Sources: Voices from the Open Source Revolution. Edited by Chris DiBona, Sam Ockman & Mark Stone. O’Reilly & Associates, 1999. ISBN 1-56592-582-3.

Proceedings of the First Conference on Freely Redistributable Software. Free Software Foundation. FSF, 1996. ISBN 1-882114-47-7.

The UNIX Desk Reference: The hu.man Pages. Peter Dyson. Sybex, 1996. ISBN 0-7821-1658-2.

The UNIX Programming Environment. Brian W. Kernighan, Rob Pike. Prentice Hall, 1984. ISBN 0-13-937681-X (paperback), ISBN 0-13-937699-2 (hardback).

BSD and UNIX Internals

Advanced Topics in UNIX: Processes, Files, and Systems. Ronald J. Leach. Wiley, 1996. ISBN 1-57176-159-4.

The Complete FreeBSD. Greg Lehey, Walnut Creek CDROM Books, 1999. ISBN 1-57176-246-9.

The Design and Implementation of the 4.4BSD Operating System. Marshall Kirk McKusick, et al. Addison-Wesley, 1996. ISBN 0-201-54979-4.

The Design of the UNIX Operating System. Maurice J. Bach. Prentice Hall, 1986. ISBN 0-13-201799-7.

Linux Kernel Internals 2nd edition. Michael Beck, et al. Addison-Wesley, 1997. ISBN 0-201-33143-8.

Lions’ Commentary on UNIX 6th Edition with Source Code. John Lions. Peer-to-Peer, 1996. ISBN 1-57398-013-7.

Panic!: UNIX System Crash Dump Analysis. Chris Drake, Kimberly Brown. Prentice Hall, 1995. ISBN 0-13-149386-8.

UNIX Internals: The New Frontiers. Uresh Vahalia. Prentice-Hall, 1995. ISBN 0-13-101908-2.

UNIX Systems for Modern Architectures: Symmetric Multiprocessing and Caching for Kernel Programmers. Curt Schimmel. Addison-Wesley, 1994. ISBN 0-201-63338-8.

Optimizing PowerPC Code. Gary Kacmarcik. Addison-Wesley Publishing Company, 1995. ISBN 0-201-40839-2.

Berkeley Software Architecture Manual 4.4BSD Edition. William Joy, Robert Fabry, Samuel Leffler, M. Kirk McKusick, Michael Karels. Computer Systems Research Group, Computer Science Division, Department of Electrical Engineering and Computer Science, University of California, Berkeley.

Mach

CMU Computer Science: A 25th Anniversary Commemorative. Richard F. Rashid, Ed. ACM Press, 1991. ISBN 0-201-52899-1.

Load Distribution, Implementation for the Mach Microkernel. Dejan S. Milojicic. Vieweg Verlag, 1994. ISBN 3-528-05424-7.

Programming under Mach. Boykin, et al. Addison-Wesley, 1993. ISBN 0-201-52739-1.

Mach Workshop Proceedings. USENIX Association. October, 1990.

Mach Symposium Proceedings.USENIX Association. November, 1991.

Mach III Symposium Proceedings. USENIX Association. April, 1993, ISBN 1-880446-49-9.

Mach 3 Documentation Series. Open Group Research Institute (RI), now Silicomp:

Final Draft Specifications OSF/1 1.3 Engineering Release. RI. May 1993.

OSF Mach Final Draft Kernel Principles. RI. May, 1993.

OSF Mach Final Draft Kernel Interfaces. RI. May, 1993.

OSF Mach Final Draft Server Writer’s Guide. RI. May, 1993.

OSF Mach Final Draft Server Library Interfaces, RI, May, 1993.

Research Institute Microkernel Series. Open Group Research Institute (RI):

Operating Systems Collected Papers. Volume I. RI. March, 1993.

Operating Systems Collected Papers. Volume II. RI. October,1993.

Operating Systems Collected Papers. Volume III. RI. April, 1994.

Operating Systems Collected Papers. Volume IV. RI. October, 1995.

Mach: A New Kernel Foundation for UNIX Development. Proceedings of the Summer 1986 USENIX Conference. Atlanta, GA., http://www.usenix.org.

UNIX as an Application Program. Proceedings of the Summer 1990 USENIX Conference. Anaheim, CA., http://www.usenix.org.

OSF RI papers (Spec ‘93):

OSF Mach Final Draft Kernel Interfaces

OSF Mach Final Draft Kernel Principles

OSF Mach Final Draft Server Library Interfaces

OSF Mach Final Draft Server Writer's Guide

OSF Mach Kernel Interface Changes

OSF RI papers (Spec ‘94):

OSF RI 1994 Mach Kernel Interfaces Draft

OSF RI 1994 Mach Kernel Interfaces Draft (Part A)

OSF RI 1994 Mach Kernel Interfaces Draft (Part B)

OSF RI 1994 Mach Kernel Interfaces Draft (Part C)

OSF RI papers (miscellaneous):

Debugging an object oriented system using the Mach interface

Unix File Access and Caching in a Multicomputer Environment

Untyped MIG: The Protocol

Untyped MIG: What Has Changed and Migration Guide

Towards a World-Wide Civilization of Objects

A Preemptible Mach Kernel

A Trusted, Scalable, Real-Time Operating System Environment

Mach Scheduling Framework

Networking

UNIX Network Programming. Volume 1, Networking APIs: Sockets and XTI. W. Richard Stevens. Prentice Hall, 1998, ISBN 0-13-490012-X.

UNIX Network Programming. Volume 2, Interprocess Communications. W. Richard Stevens. Prentice Hall, 1998. ISBN 0-13-081081-9.

TCP/IP Illustrated. Volume 1, The Protocols. W. Richard Stevens. Addison-Wesley, 1994. ISBN 0-201-63346-9.

TCP/IP Illustrated. Volume 2, The Implementation. W. Richard Stevens. Addison-Wesley, 1995. ISBN 0-201-63354-X.

TCP/IP Illustrated. Volume 3, TCP for Transactions, HTTP, NNTP, and the UNIX Domain Protocols. W. Richard Stevens. Addison-Wesley, 1996. ISBN 0-201-63495-3.

Operating Systems

Advanced Computer Architecture: Parallelism, Scalability, Programmability. Kai Hwang. McGraw-Hill, 1993. ISBN 0-07-031622-8.

Concurrent Systems: An Integrated Approach to Operating Systems, Database, and Distributed Systems. Jean Bacon. Addison-Wesley, 1993. ISBN 0-201-41677-8.

Distributed Operating Systems. Andrew S. Tanenbaum. Prentice Hall, 1995. ISBN 0-13-219908-4.

Distributed Operating Systems: The Logical Design. A. Goscinski. Addison-Wesley, 1991. ISBN 0-201-41704-9.

Distributed Systems, Concepts, and Designs. G. Coulouris, et al. Addison-Wesley, 1994. ISBN 0-201-62433-8.

Operating System Concepts. 4th Ed., Abraham Silberschatz, Peter Galvin. Addison-Wesley, 1994. ISBN 0-201-50480-4.

POSIX

Information Technology-Portable Operating System Interface (POSIX): System Application Program Interface (API) (C Language). ANSI/IEEE Std. 1003.1. 1996 Edition. ISO/IEC 9945-1: 1996. IEEE Standards Office. ISBN 1-55937-573-6.

Programming with POSIX Threads. David R. Butenhof. Addison Wesley Longman, Inc., 1997. ISBN 0-201-63392-2.

Programming

Advanced Programming in the UNIX Environment. Richard W. Stevens. Addison-Wesley, 1992. ISBN 0-201-56317-7.

Debugging with GDB: The GNU Source-Level Debugger Eighth Edition for GDB version 5.0. Richard Stallman et al. Cygnus Support. http://developer.apple.com/documentation/DeveloperTools/gdb/gdb/gdb_toc.html.

Open Source Development with CVS, Karl Franz Fogel. Coriolis Group, 1999. ISBN: 1-57610-490-7.

Porting UNIX Software: From Download to Debug. Greg Lehey. O’Reilly, 1995. ISBN 1-56592-126-7.

The Standard C Library. P.J. Plauger. Prentice Hall, 1992. ISBN 0-13-131509-9.

Websites and Online Resources

Apple’s developer website (http://www.apple.com/developer/) is a general repository for developer documentation. Additionally, the following sites provide more domain-specific information.

Apple’s Public Source projects and Darwin

http://www.opensource.apple.com/

The Berkeley Software Distribution (BSD)

http://www.FreeBSD.org

http://www.NetBSD.org

http://www.OpenBSD.org

BSD Networking

http://www.kohala.com/start/

Embedded C++

http://www.caravan.net/ec2plus

GDB, GNUPro Toolkit 99r1 Documentation

http://www.redhat.com/docs/manuals/gnupro/

The Internet Engineering Task Force (IETF)

http://www.ietf.org

jam

http://www.perforce.com/jam/jam.html

The PowerPC CPU

http://www.freescale.com/webapp/sps/site/homepage.jsp?nodeId=0162468rH3bTdG

The Single UNIX Specification Version 2

http://www.opengroup.org/onlinepubs/007908799

The USENIX Association; USENIX Proceedings

http://www.usenix.org

http://www.usenix.org/publications/library/

Security and Cryptography

Applied Cryptography: Protocols, Algorithms, and Source Code in C. Bruce Schneier. John Wiley & Sons, 1994. ISBN 0-471-59756-2.

comp.security newsgroup (news:comp.security).

comp.security.unix newsgroup (news:comp.security.unix).

Computer Security. Dieter Gollmann. John Wiley and Son Ltd, 1999. ISBN 0-471-97844-2.

Foundations of Cryptography. Oded Goldreich. Cambridge University Press, 2001. ISBN 0-521-79172-3.

Secrets and Lies: Digital Security in a Networked World. Bruce Schneier. John Wiley & Sons, 2000. ISBN 0-471-25311-1.