Understanding Linux Network Internals
by Christian Benvenuti
Understanding the Linux Kernel, 3rd Edition
by Daniel P. Bovet; Marco Cesati
Linux Device Drivers, 3rd Edition
by Jonathan Corbet; Alessandro Rubini; Greg Kroah-Hartman
Linux Kernel Development, Second Edition
by Robert Love
Essential Linux Device Drivers
by Sreekrishnan Venkateswaran
C++ GUI Programming with Qt 4, Second Edition
by Jasmin Blanchette; Mark Summerfield
Understanding the Linux Kernel, 3rd Edition
by Daniel P. Bovet; Marco Cesati
A Practical Guide to Fedora™ and Red Hat® Enterprise Linux®
by Mark G. Sobell
Ubuntu Hacks
by Kyle Rankin; Jonathan Oxer; Bill Childers
Linux Device Drivers, 3rd Edition
by Jonathan Corbet; Alessandro Rubini; Greg Kroah-Hartman
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, 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
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.
Average Amazon.com® Rating: ![]()
![]()
![]()
![]()
Based on 6 Ratings
a book full of hints, but seldom tells you how to actually do it - 2007-11-22
Reviewer Rating: ![]()
![]()
![]()
![]()
![]()
I have to agree completely with the previous reviewer that this book lacks meat. In this book, after discussing each issue, the author typically hints that there exists a solution, but does not tell you exactly how to implement the solution. The book is sprinkled with snippets of code that are almost always incomplete, and very rarely explained.
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. Perhaps the author did not want readers to compare his book to these two books, because in these two books, every important concept is illustrated with program code examples that are fully compilable, fully working, and fully explained!
The author could make a very significant contribution if only he could follow the examples of the above two books.
Not worth money - 2008-04-13
Reviewer Rating: ![]()
![]()
![]()
![]()
![]()
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.
a disappointment - 2007-12-18
Reviewer Rating: ![]()
![]()
![]()
![]()
![]()
nothing really useful in this book, too shallow to do anything with it, i like his other books though, but this one certainly is not good, if at all.
Easy to read-Your first step into system programming - 2007-12-20
Reviewer Rating: ![]()
![]()
![]()
![]()
![]()
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.
The book truly is for all developers - 2008-05-16
Reviewer Rating: ![]()
![]()
![]()
![]()
![]()
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. (It has been mentioned that I should state that I had been unaware of fread_unlocked and fwrite_unlocked before the book ... see comments for more detailed discussion).
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.
Top Level Categories:
Operating Systems
Programming
Sub-Categories:
Operating Systems > Linux
Linux > Kernel
Programming > Linux
Some information on this page was provided using data from Amazon.com®. View at Amazon >