Pages

Friday, October 17, 2008

Linux System Programming: Talking Directly to the Kernel and C Library


Product Description

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. The majority of both Unix and Linux code is still written at the system level, and Linux System Programming focuses on everything above the kernel, where applications such as Apache, bash, cp, vim, Emacs, gcc, gdb, glibc, ls, mv, and X exist. 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, managingthe 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 With Linux System Programming, you will be able to take an in-depth look at Linux from both a theoretical and an applied perspective as you cover a wide range of programming topics.
Product Details

* Amazon Sales Rank: #168538 in Books
* Published on: 2007-09-18
* Format: Illustrated
* Original language: English
* Number of items: 1
* Binding: Paperback
* 388 pages

Editorial Reviews

About the Author
Robert Love has been a Linux user and hacker since the early days. He is active in, and passionate about, both the Linux kernel and GNOME desktop communities. His recent contributions to the Linux kernel include work on the kernel event layer and inotify. GNOME-related contributions include Beagle, GNOME Volume Manager, NetworkManager, and Project Utopia. Currently Robert works in the Open Source Program Office at Google.

As an author, Robert is responsible for Linux Kernel Development (SAMS), now in its second edition, and Linux System Programming (O'Reilly). He is also a coauthor of the fifth edition of O'Reilly's Linux in a Nutshell. He's a Contributing Editor for Linux Journal, has written numerous articles, and has been invited to speak around the world on Linux.

Robert graduated from the University of Florida with a B.A. in Mathematics and a B.S. in Computer Science. Hailing from South Florida, he currently calls Boston home.
Customer Reviews

The book truly is for all developers5
I have been programming C/C++ professionally since 1986 and was surprised at how much I've learned in the first few chapters.

One of the programs that I've been working on is an I/O intensive conversion from a legacy platform to Linux. The original code took about 8 minutes per gigabyte of data to process. I had worked and squeezed every trick I could think of and got the application down to 10 seconds per gigabyte. From what I learned in just the first few chapters, I was able to knock an additional 3% off the application performance.

When I finish the book, I fully intend on passing it over to one of our junior members so that they can benefit from it.

Not worth money1
If you expect the quality of the author's other books from this book, you'll be disappointed. It just lists system calls and their descriptions that you can find from man pages without any serious examples. It doesn't provide any insight or thorough coverage you can find from other books such as Steven's book (Advance Programmng in Unix environment).

From the book title, I expected the author's insight over interface between user space program and kernel but it just looks like that it copied man pages in some order. If you want to learn sysetm programming in Linux environment, look for other books, seriously.

Easy to read-Your first step into system programming5
Up-side
Its a very easily readable book.
Unlike other heavy weight books on system programming in this book code is very simple. All the codes are on one place no extra header files.
So if you are new to system-kernel programming, like my self, this is the book for you.
I did have problem reading kernel development books("Linux device driver" Linux kernel Programming). But after reading this book so many things are in perspective now. I cold do advance study in kernel development.

Down Side.
Some light/sweet projects could have made this book the best.
Some socket programming examples would be nice.