Notes on Programming in 
C by Rob Pike
The Ten Commandments 
for C Programmers by Henry Spencer
How To Steal Code or 
Inventing The Wheel Only Once by Henry Spencer
Indian Hill C 
Style and Coding Standards by Henry Spencer et al
Can't Happen or 
/* NOTREACHED */ or Real Programs Dump Core
 
comp.lang.c Frequently Asked Questions
comp.lang.c IAC (Infrequently 
Asked Questions)
Slackware
Debian
Gentoo
Red Hat
CentOS
SuSE
Fedora
 
Linux kernel articles published in LWN
O'Reilly Network: Linux DevCenter
IBM Linux Technology Center: 
Publications
IBM developerWorks: Linux - Articles, columns & tips
KernelNewbies
Linux 
Bibliography
Linux Magazine kernel 
articles
Linux white papers
Loads of Linux Links: 
Kernel
Documentation for People Interested in Understanding the Linux Kernel
Linux kernel links
Chris Gould's Linux Kernel Architecture 
Links
Alessandro's Articles on 
Linux kernel internals
 
The Linux Kernel API
Linux 
Online - KernelAnalysis-HOWTO
The Linux Programmer's 
Guide
Unreliable Guide To Hacking The Linux Kernel
Linux Kernel 2.4 Internals
The Linux Kernel
 
Kernel debugging with Kprobes
Gaining 
insight into the Linux? kernel with Kprobes
Linux Kernel State Tracer
Linux Kernel Crash Dumps
 
Softirqs, 
Tasklets, Bottom Halves, Task Queues, Work Queues and Timers
Linux Frame Buffer Device 
Subsystem (paper and slides)
Mouse Drivers
Linux completion events
Elevator algorithm
How to NOT write kernel 
driver
Device Driver Basics
Linux 
character device drivers
Raw Disk I/O
Writing Linux Mouse 
Drivers
Virtual Network 
Interfaces
The Linux network device driver framework
Dynamic Kernels: 
Modularized Device Drivers
Dynamic Kernels: 
Discovery
The Devil's in the 
Details
Network Buffers and 
Memory Management
An introduction to 
block device drivers
The Network Block 
Device
Writing Device Drivers Under Linux
Write a Linux Hardware Device Driver
Writing Linux 
Device Drivers
Block 
Device Drivers
Linux 
Kernel Hacker's Guide - Device Drivers
Interrupts vs. Polling
RAID1, RAID5 and compressed RAID5 for Linux
Linux Device Drivers, 2nd 
Edition: Online Book
LWN: Porting device drivers to 
the 2.6 kernel
 
Journal File Systems 
in Linux
Journaling the Linux ext2fs
Design and 
Implementation of the Second Extended Filesystem
Linux Kernel 
Procfs Guide
Creating Linux virtual filesystems
EXT3, Journaling Filesystem
Porting XFS to Linux
Porting the SGI XFS 
file system to Linux
Scalability in the XFS File System
Jouraled File System (JFS) for Linux
Linux 
VFS slides
Common 
threads: Advanced filesystem implementor's guide, Part 1
Common threads: Advanced filesystem implementor's guide, Part 11
The Linux Virtual File-system Layer
Exploring /proc
Journaling 
Filesystems
Journal File Systems 
LG #55
Anatomy of a Read and Write Call
Exploring the 
ext3 Filesystem - Introduction to the ext3 Filesystem
OSRC: EXT/2 Filesystem:
The extended-2 filesystem overview
Second Extended File System
Interview with JFS, 
reiserfs, and XFS
Filesystems HOWTO
A tour of 
the Linux VFS
 
Wikipedia: Linux kernel
Linux Cross-Reference
Management & 
Virtual decentralized networks: The Linux project
The Case for Linux in 
Universities
The Age of 2.4 
(includes raw I/O)
Rick's Resources for Using, 
Administrating, and Programming Linux
How The 
Kernel Development Process Works
Linux Kernel Hackers' planet
 
Its history and current distributions: Linux vs. other platforms
Counting Source Lines of Code (SLOC)
Linux Not Just 
For Geeks Anymore (Linux use statistics)
History of Linux
Linux HeadQuarters (kernel info)
The Linux Kernel Archives
 
tmpfs: A Virtual Memory 
File System (shared memory)
The Linux 
Kernel: Signals & Interrupts (PDF)
The Pipes and Socks-page
Tmpfs 
file system documentation (used for shared memory)
Using the 
virtual memory (VM) filesystem and bind mounts
BSD Sockets: A Quick And Dirty Primer
An Advanced 4.4BSD 
Interprocess Communication Tutorial
Introductory 4.4BSD 
IPC / PSD:20
A Look at the Signal 
API
Pipes and FIFOs
The Linux Signals 
Handling Module
Linux Kernel 2.4 
Internals: IPC mechanisms
The Linux Programmer's Guide
The Linux Kernel: IPC
 
Kernel 
overview slides
Conceptual Architecture 
of the Linux Kernel
Concrete Architecture of 
the Linux Kernel
Making System Calls from 
Kernel Space
Linux Internals & 
Programming lecture notes (GOOD!)
 
Linux Loadable Kernel 
Module HOWTO
 
GNU licenses
GPL paper
OSI Approved Licenses
 
Linux Memory Management Subsystem Main 
Page
A Comparison of the MM sub-systems in FreeBSD and Linux
Paul 
Wilson's VM Overview
Outline of 
the Linux Memory Management System
Compressed Caching: Linux 
2.4 Virtual Memory Overview
Linux/Documentation/vm/balance
MMDOC. Linux Memory 
Management Documentation.
Design for the Linux zone based 
memory allocator
Linux Memory 
Management (purdue.edu)
Memory 
Management in Linux
Linux 2.4 VM Project
Memory Management Lecture
Secrets Inside the 
Linux Kernel Revealed
Linux Kernel Documentation (MM and NW)
Basics of 2.4.20 VM
Page replacement in 
Linux 2.4 memory management
Memory Management in 
Linux: Desktop Companion to the Linux Source Code
Linux Device Drivers, 
2nd Edition: Chapter 7: Getting Hold of Memory
Linux Device Drivers, 
2nd Edition: Chapter 13: mmap and DMA
 
Kernel 
networking overview (png image)
Linux - Advanced Networking 
Overview
The 
journey of a packet through the Linux 2.4 network stack
skb - Linux network 
buffers
The 
netfilter framework in Linux 2.4
Analysis and 
Evaluation of the TCP/IP Protocol Stack of Linux
Network Buffers and 
Memory Management
The Linux Socket 
Filter: Sniffing Bytes over the Network
Inside the Linux 
Packet Filter
Inside the Linux 
Packet Filter, Part II
Networking overview diagram (png image)
Linux netfilter Hacking HOWTO
Linux Device Drivers, 
2nd Edition: Chapter 14: Network Drivers
 
LWN.net
Linux Journal
DesktopLinux.com
LinuxDailyNews Network
InformationWeek.com
Kernel Traffic
KernelTrap
IBM Linux Technology Center
IBM developerWorks: Linux
osOpinion
 
2002 Linux 
Symposium Proceedings
2003 Linux 
Symposium Proceedings
2004 Linux Symposium Proceedings
2004 Linux Symposium Audio Proceedings
2005 
Linux Symposium Proceedings, Volume 1
2005 
Linux Symposium Proceedings, Volume 2
 
Node affine NUMA scheduler for 
Linux
Linux Process Scheduling
Scheduling in UNIX and 
Linux
The 
Linux Process Model
Process Scheduling In Linux
Linux 
Low-Latency Patches and Alternative Schedulers
The Ingo Scheduler
Design of a 
fully preemptable Linux Kernel
Understanding the Linux Kernel: Chapter 10: Process Scheduling
Linux 
Scheduler Page
 
Design 
and Implementation of Embedded Linux System for Networking ...
Linux Clustering Software
Linux-HA Project Web Site
Linux Scalability Effort Homepage
BKL Removal 
Patches for 2.4.17
SGI - Scalability 
Project
IBM Linux Technology Center : News Archive
Wireless : Linux system development on an embedded device
IBM 
Linux presentations (includes security, SMP, clustering...)
IBM whitepaper - Is Linux ready for the enterprise?
Embedded Linux Consortium - championing 
the advancement of embedded Linux
Embedded Linux Works- 
Articles.
Symmetrical Multiprocessing 
with Linux
Clustering HOWTO
SMP HOWTO
InformationWeek 
> Linux > Linux Gains Clustering Edge > August 2, 2002
Scalability and Symmetric 
Multiprocessing
Linux 2.4
The state of 
embedded Linux
Developer 
interest in embedded Linux skyrockets
Articles > 
uClinux: World's most popular embedded Linux distro?
Embedded Linux 
distribution info
Real-Time and 
Linux, Part 2: the Preemptible Kernel
A Taxonomy of 
Resources for Embedded Linux Developers
Lineo/Montavista 
interviews
Real Time and 
Linux, Part 3: Sub-Kernels and Benchmarks
The Embedded 
Linux Overview Quick Reference Guide
Linux's future in the embedded systems market
The embedded Linux portal
A High-Availability 
Cluster for Linux
Embedded Linux Journal Table 
of Contents
Enterprise Linux - Linux 
Scalability
 
Bastille Linux
Jay Beale's Linux/UNIX Security Articles
Scanning for Rootkits
Linux Kernel Hardening
Secrets Inside the 
Linux Kernel Revealed
Linux Security Documentation
LinuxSecurity - Resources
Phrack magazine
Linux Security HOWTO
 
Unreliable Guide To Locking
Mutual exclusion with seqlocks
Linux kernel 
documentation - spinlocks
Embedded Linux 
links
Kernel Locking 
Techniques
 
FreeBSD
OpenBSD
NetBSD
DragonFly BSD
TrustedBSD
BSD vs Linux
What every Linux user 
needs to know about BSD
The FreeBSD Almanac
NetBSD kernel documentation 
overview
The Design and Implementation of the 4.4BSD Operating System
Mach Kernel Manuals
OpenSolaris
Solaris OE White 
Papers
SUN - Solaris Operating 
System
BigAdmin System Administration 
Portal
SysAdmin magazine - Solaris
Mac OS X Technical Resources (apple.com)
Mac OS X System 
Architecture (apple.com)
Kernel Architecture
Virtual Memory on Mac OS X
Mac OS X performance overview
Mac OS X System Overview (book) (apple.com)
OopsWiki: 
MacOSTio/DeveloperDocs
Flirting With Mac OS X
Under the Hood of 
MacOS X
Mac OS white papers
MacInstruct: 
Introduction to Mac OS X
Mac 
OS X Basics -- System Architecture: Darwin
Mac OS X resources
The Challenges 
of Integrating the Unix and Mac OS Environments
The Elements of Style, William 
Strunk, Jr.
The Chicago manual of style
The King's English, H.W. Fowler
The Guardian stylebook
 
Useful Things to Know About Ph.D. Thesis Research, H.T. Kung at Harvard
Resources 
for Writers and Writing Instructors, Jack Lynch
Writing Guidelines for Engineering and 
Science Students
Technical Writing, Ronald B. Standler
How to 
Organize your Thesis, John W. Chinneck
How 
to write a grant proposal, Simon Peyton Jones and Alan Bundy
How to have your 
abstract rejected, Mary-Claire van Leunen and Richard Lipton
Suggestions for 
writting abstracts
Writing a Math Phase Two Paper, Steven L. Kleiman and Glenn P. Tesler
Three sins of authors in 
computer science and maths, Jonathan Shewchuk
A guide to 
refereeing computer science papers, Ian Parberry
Papers: Expectations, 
guidelines, advice, and grading, Jeannine DeLombard and Dan White
Guide to Grammar and 
Style, Jack Lynch
 
Speaker's 
guide for theoretical computer science, Ian Parberry
How to give a good research talk, Simon Peyton Jones, John Launchbury, and 
John Hughes
Non-Technical 
Talks, David Patterson
 
Survival 
manual for graduate students, Dianne O'Leary
How to 
Succeed in Graduate School, Marie desJardins
From Contract Drafting to 
Software Specification: Linguistic Sources of Ambiguity, A Handbook, Daniel 
M. Berry
Guidelines on Research Practice in Computer Science, Justin Zobel
The ethical practice of 
research, Justin Zobel
Ten Lessons I wish I Had Been 
Taught, Gian-Carlo Rota
Advice on Research and Writing, Mark Leone
Networking on the 
Network: A Guide to Professional Skills for PhD Students, Phil Agre
Richard 
Hamming -- You and Your Research
 
How to do 
Research At the MIT AI Lab, David Chapman
Burnout Prevention and Recovery
Robert Love
Dave Jones
David Miller
James Morris
Nat Friedman
Eric Raymond