Linux is a member of the large family of Unix-like operating systems. A relative newcomer
experiencing sudden spectacular popularity starting in the late 1990s, Linux joins such wellknown
commercial Unix operating systems as System V Release 4 (SVR4), developed by
AT&T (now owned by the SCO Group); the 4.4 BSD release from the University of California
at Berkeley (4.4BSD); Digital Unix from Digital Equipment Corporation (now Hewlett-
Packard); AIX from IBM; HP-UX from Hewlett-Packard; Solaris from Sun Microsystems; and
Mac OS X from Apple Computer, Inc....
Kernel development can be a daunting task and is very different from programming traditional user
applications. The kernel environment is more volatile and complex. Extraordinary care must be taken to
ensure that kernel code is free of bugs because any issue may have serious consequences to the stability,
security, and performance of the system. This book covers the fundamentals necessary to begin
programming in the kernel. We cover kernel development from a theoretical and practical point of view.
Concurrent Programming introducing some principles of reentrancy, mutual exclusion and thread synchronization: Problems with ‘stash.c’, One cure is communication, Kernel semaphores, Mutual-exclusion syntax, struct file_operations.