By Robert Love
First Edition
September 2007
Pages: 388
ISBN 10: 0-596-00958-5 |
ISBN 13: 9780596009588
![]()
![]()
![]()
![]()
(Average of 2 Customer Reviews)
This book is about writing software that makes the most effective use of the system you're running on -- code that interfaces directly with the kernel and core system libraries, including the shell, text editor, compiler, debugger, core utilities, and system daemons. Written primarily for engineers looking to program (better) at the low level, this book can give any programmer an understanding of core internals that makes for better code, no matter where it appears in the stack.
Full Description
Written primarily for engineers looking to program (better) at the low level, this book is an ideal teaching tool for any programmer. Even with the trend toward high-level development, either through web software (such as PHP) or managed code (C#), someone still has to write the PHP interpreter and the C# virtual machine. Linux System Programming gives you an understanding of core internals that makes for better code, no matter where it appears in the stack. Debugging high-level code often requires you to understand the system calls and kernel behavior of your operating system, too.
Key topics include:
- An overview of Linux, the kernel, the C library, and the C compiler
- Reading from and writing to files, along with other basic file I/O operations, including how the Linux kernel implements and manages file I/O
- Buffer size management, including the Standard I/O library
- Advanced I/O interfaces, memory mappings, and optimization techniques
- The family of system calls for basic process management
- Advanced process management, including real-time processes
- File and directories-creating, moving, copying, deleting, and managing them
- Memory management -- interfaces for allocating memory, managing the memory you have, and optimizing your memory access
- Signals and their role on a Unix system, plus basic and advanced signal interfaces
- Time, sleeping, and clock management, starting with the basics and continuing through POSIX clocks and high resolution timers
Cover | Table of Contents | Colophon
Featured customer reviews
Good book for userspace developers, March 27 2008
I liked Robert's book.
This is a good book (quick reference) for userland developers. I liked his approach.
In my opinion, he could improve his book going deeper on some examples, adding sockets chapter, mix more userspace and kernelspace.
I agree with last comment too, there are others books around this topic that could explain more in details some topics.
In the Bibliography section, the author did not include two of the most important books that cover related material: 1. "Advanced Programming in the UNIX Environment," by W. Richard Stevens, and 2. "Programming with POSIX Threads," by David R. Butenhof.
Beware!, March 24 2008
Please note I do NOT own this book!
I look for this subject for some time now and I was enthusiastic when I saw the title in the list of Linux books. However reading the description of the book, words like C# or PHP brought me down at the ground level. I would have expected to read IPC, socket, thread,... These keywords are cruelly missing from the content of this book. I downloaded the Chapter IV, "Advanced File I/O" and my first impression got a strong confirmation. From what I saw in this fourth chapter this book is a gathering of man pages and raw, unexplained examples from the Net. A very unfortunate and hasty tentative to fill out a hole in the Linux literature. In my opinion this book will rather confuse the reader than enlighten.
If you want a good book about the System Programming buy rather the second edition of "Advanced UNIX Programming" written by Marc J. Rochkind and published by Addison-Wesley (sorry O'Reilly). It is not targeted at Linux but Linux is UNIX and the book covers well 99% of Linux System Programming.








