| | |  | Hacking | Home » » » Linux System Programming: Talking Directly to the Kernel and C Library | | | | | | | Product Promotions: | | | | | 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, 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.
| | | Product Details: | | | Author:
| Robert Love | | Paperback:
| 392 pages | | Publisher:
| O'Reilly Media | | Publication Date:
| September 25, 2007 | | Language:
| English | | ISBN:
| 0596009585 | | Product Length:
| 9.14 inches | | Product Width:
| 7.08 inches | | Product Height:
| 0.96 inches | | Product Weight:
| 1.37 pounds | | Package Length:
| 9.06 inches | | Package Width:
| 7.01 inches | | Package Height:
| 0.94 inches | | Package Weight:
| 1.46 pounds | | Average Customer Rating:
| based on 6 reviews |
| | | | Customer Reviews: | |
Average Customer Review:
( 6 customer reviews )
Write an online review and share your thoughts with other customers.
Most Helpful Customer Reviews
38 of 38 found the following review helpful:
Not quite deep enoughNov 15, 2007
By Simon Perreault Overall this book is very good. It is particularly well written and enjoyable to read, as are all of Robert Love's previous books.
However, it's fairly small and could go into more detail. For example, I would have liked a discussion of edge-triggered vs. level-triggered epoll() usage. The author mentions that edge-triggered needs a different programming style. What is it? Is it better? Regarding signal handling, the author hints at injecting signals into the event loop, but how could one do it concretely? On the subject of I/O buffering, not much is said except that standard I/O exists. But I'm here for the meat, and I want to know how to implement my own I/O buffering! Pretty much every chapter ends when the fun is about to begin.
I'm still hungry. Nevertheless, every system programmer for Linux should read this book. I hope for an expanded second edition.
30 of 33 found the following review helpful:
a book full of hints, but seldom tells you how to actually do itNov 22, 2007
By a reader 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.
34 of 38 found the following review helpful:
Not worth moneyApr 13, 2008
By Jaebin Yoon
"Software Engineer"
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.
6 of 6 found the following review helpful:
The book truly is for all developersMay 16, 2008
By howard 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.
A good teorical review of the Linux System calls and the GLIB functions.May 09, 2010
By David A. Mora You need some background to get a real approach from this book... Good to get some tips on how the system works an why, really good explanations for all the points exposed, isn't a "Linux Specific" book, mostly based on POSIX and when not is well distinguished, also include some peculiar calls from other OS.
See all 6 customer reviews on Amazon.com
| | |
|