64 chapters

The book is not small...

Currently, there are 64 chapters (a nice round number—0100 or 0x40—for computer scientists), 116 diagrams, 85 tables, and around 250 program listings spread over roughly 1500 pages (the precise number of pages will depend on how things fall out in typesetting).

Structurally, the book is divided into 8 parts (chapter numbers in parentheses):
  1. Background and concepts (1 to 3).
  2. Fundamental features of the Linux API (4 to 12).
  3. More advanced features of the Linux API (13 to 23).
  4. Processes, programs, and threads (24 to 33).
  5. Advanced process and program topics (34 to 42).
  6. Interprocess communication and synchronization (44 to 55, though it's shoehorning things a little to include chapters 49 and 50 here...).
  7. Sockets and network programming (56 to 61).
  8. Advanced I/O topics (62 to 64).
Here's the list of chapters (some titles might yet change):
1. History and Standards
2. Fundamental Concepts
3. System Programming Concepts
4. File I/O: The Universal I/O Model
5. File I/O: Further Details
6. Processes
7. Memory Allocation
8. Users and Groups
9. Process Credentials
10. Times and Dates
11. System Limits and Options
12. Retrieving System and Process Information
13. File I/O Buffering
14. File Systems
15. File Attributes
16. Extended Attributes
17. Access Control Lists
18. Directories and Links
19. Monitoring File Events with inotify
20. Signals: Fundamental Concepts
21. Signals: Signal Handlers
22. Signals: Advanced Features
23. Timers and Sleeping
24. Process Creation
25. Process Termination
26. Monitoring Child Processes
27. Program Execution
28. Process Creation and Program Execution in More Detail
29. Threads: Introduction
30. Threads: Thread Synchronization
31. Threads: Thread Safety and Per-thread Storage
32. Threads: Thread Cancellation
33. Threads: Further Details
34. Process Groups, Sessions, and Job Control
35. Process Priorities and Scheduling
36. Process Resources
37. Daemons
38. Writing Secure Privileged Programs
39. Capabilities
40. Login Accounting
41. Fundamentals of Shared Libraries
42. Advanced Features of Shared Libraries
43. Interprocess Communication Overview
44. Pipes and FIFOs
45. Introduction to System V IPC
46. System V Message Queues
47. System V Semaphores
48. System V Shared Memory
49. Memory Mappings
50. Virtual Memory Operations
51. Introduction to POSIX IPC
52. POSIX Message Queues
53. POSIX Semaphores
54. POSIX Shared Memory
55. File Locking
56. Sockets: Introduction
57. Sockets: Unix Domain
58. Sockets: Fundamentals of TCP/IP Networks
59. Sockets: Internet Domains
60. Sockets: Server Design
61. Sockets: Advanced Topics
62. Terminals
63. Alternative I/O Models
64. Pseudoterminals


  1. Testing site and comments as requested. Browser is Safari 3.1.1 on MacOS 10.5.3

    This comment posted via a Google account. It's not obvious how to log in, don't get prompted until I click "post comment" (prior to that clicking preview gave a "cannot process request error").

    While composing the comment the page seems to reload every 3 seconds or so???

  2. Hi, Michael!

    My kudos for the initiative! I'm looking forward to read your book. Are you intending to include a chapter on pthread APIs?


  3. @andre.goddard: Yes. see http://blog.man7.org/2009/07/64-chapters.html. There are 5 chapters (~90 pages) on Pthreads.

  4. Hey Michael,

    sounds promising - I'm eager to read the book :)

  5. Hi Michael,

    I'm glad to see your project progress, and eager to read the printed book.


  6. This book definitely seems comprehensive. I'm looking forward to add this one to my Unix collection.

  7. I can't see process tracing in chapters list. Will this book describe ptrace(2)?

  8. @Kiryl: Sorry, process tracing was one of the topics I considered including, but it didn't quite make the cut.

  9. this is going to be a must-have book.