Linux System Programming and over 1.5 million other books are available for Amazon Kindle . Learn more

Buy New

or
Sign in to turn on 1-Click ordering.
Buy Used
Used - Very Good See details
Price: £25.50

or
Sign in to turn on 1-Click ordering.
 
   
Trade in Yours
For a £9.44 Gift Card
Trade in
More Buying Choices
Have one to sell? Sell yours here
Sorry, this item is not available in
Image not available for
Colour:
Image not available

 
Start reading Linux System Programming on your Kindle in under a minute.

Don't have a Kindle? Get your Kindle here, or download a FREE Kindle Reading App.

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

Robert Love
5.0 out of 5 stars  See all reviews (4 customer reviews)
Price: £38.50 & this item Delivered FREE in the UK with Super Saver Delivery. See details and conditions
o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o
Only 1 left in stock (more on the way).
Dispatched from and sold by Amazon. Gift-wrap available.
Want delivery by Saturday, 25 May? Choose Express delivery at checkout. See Details

Formats

Amazon Price New from Used from
Kindle Edition £27.15  
Paperback £38.50  
Trade In this Item for up to £9.44
Trade in Linux System Programming: Talking Directly to the Kernel and C Library for an Amazon.co.uk gift card of up to £9.44, which you can then spend on millions of items across the site. Trade-in values may vary (terms apply). Learn more
There is a newer edition of this item:
Linux System Programming: Talking Directly to the Kernel and C Library Linux System Programming: Talking Directly to the Kernel and C Library
£38.50
Available for pre-order

Book Description

25 Sep 2007 0596009585 978-0596009588 1

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.

Frequently Bought Together

Linux System Programming: Talking Directly to the Kernel and C Library + Linux Device Drivers + Understanding the Linux Kernel
Price For All Three: £87.76

Buy the selected items together


Product details


More About the Author

Discover books, learn about writers, and more.

Product Description

Book Description

SYSTEM AND LIBRARY CALLS EVERY PROGRAMMER NEEDS TO KNOW

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.


Inside This Book (Learn More)
Browse Sample Pages
Front Cover | Copyright | Table of Contents | Excerpt | Index | Back Cover
Search inside this book:

What Other Items Do Customers Buy After Viewing This Item?


Customer Reviews

4 star
0
3 star
0
2 star
0
1 star
0
5.0 out of 5 stars
5.0 out of 5 stars
Most Helpful Customer Reviews
20 of 20 people found the following review helpful
Format:Paperback
As a perl programmer recently thrown in to the world of C development on
Linux, I have been looking for something that would take my K&R level of
experience and bring it up to date with modern methods, hopefully
letting me write more efficient and reliable programs.

Robert Love, former "Chief Architect, Linux Desktop" at Novell, kernel
hacker of many years, and Gnome developer of well known features such as Beagle
and NetworkManager, attempts in this book to document the Linux system call
and C API to common systems programming tasks. Given that he developed
the pre-emptive kernel and inotify he has the knowledge.

Getting this book out of the box, I had wrongly been expecting a cookbook
style that I would get instant gratification from. Although structured
around common programming tasks, it doesn't lend itself to just dipping in.
The section on time lists a handful of ways that "time" is available to the
programmer; jump into the middle of the section and you might miss
the most suitable one for the job in hand. The book rewards reading it
in larger chunks.

This doesn't mean it is necessary to read it from cover to cover. Logically
organised into chapters around "things you want to do", such as file access,
memory management and process management it will lead you in with a survey of
techniques you might be familiar with, before drilling down with advanced
methods.

Knowing advanced methods for performance is great, but not at all costs. One
of the most useful and practical lessons this book gives is to encourage you
to think about error conditions that may occur during a system call. Early
on, in the section on reading files, a detailed example is given on reading
from a file. Every possible case of return code from the read call is described
together with what it means and how you should handle it - it can be surprising
that 7 possible outcomes are listed, with good descriptions of what to
do with each of them.

This good practice by example continues throughout the book. Every system call
described also lists the errors that may occur. This does show up a slight
weakness: many system calls share a common set of errors which are repeated
many times in the text. If you are not paying attention it may feel like you
are just flipping through man pages. However you are soon halted by the easy
introduction of an advanced concept to get your teeth into.

These are done in a nicely graded level for each topic. In "file access" to give
an example, you are lead from simple read/write calls, through to what
the C library can provide in buffering, to improved performance using
mmap. The techniques continue with descriptions of I/O schedulers and
how the kernel will order hardware disk access, scatter/gather, and ends up
with how it is possible to order block reads/writes yourself bypassing any
scheduler.

You are hardly aware of the progression, as the pacing is very well done.
New concepts clearly fit into what you have seen so far - current sections
signpost the practical use of what is being explained and at what cost,
allowing clear consideration of the use of advanced features against any
consequences.

For process management discussion starts with fork and exec, before moving
onto user ids and groups, covers daemonification and goes onto process
scheduling, including real time scheduling. Throughout the book each new
call is illustrated with a short code snippet showing the call being used in a
practical situation.

Not everything is present and correct. The author immediately states that
networking is not covered at all. This is a shame as this subject would
benefit from the depth of coverage given to the topics in this book - although
no doubt would increase the number of pages considerably. Perhaps scope for
a second volume. The length of some sections seems odd - Asynchronous file I/O
is whizzed through in a page with no code example, whereas I/O schedulers gets
a luxurious 12.

On the other hand there are some unexpected and useful extras, such as a
discussion in the appendix of gcc C language extensions and how they
might be used to fine tune your code.

The books stated target is for modern Linux development, a 2.6.22 kernel,
gcc 4.2 and glibc 2.5. Many calls have been standardised by POSIX, and where
this is so it are noted in the text, so a large portion of the content is
useful on other systems. There is even the occasional mention of non-Linux
system calls, the use of which is not encouraged, but shown so you know how
they function if you come across them in older code.

I recommend this book to anyone who has a need to developing Linux
applications. The book is not a primer in C on Unix, so you are expected
to be familar at least to the level of K&R. From this level though the
journey into getting the best from the kernel and C library into your
programs is easy going and enjoyable.
Comment | 
Was this review helpful to you?
3 of 3 people found the following review helpful
5.0 out of 5 stars Recommended 3 Sep 2010
Format:Paperback|Amazon Verified Purchase
The first thing to say about this book is that it is very well written, very readable and with a good writing style. It is concise without being cryptic. It lends itself to being both a reference and a book that you could read from cover to cover. I wanted it as a refresher having done some Unix system programming, but with a lot a recent Windows work, for which it was ideal - I actually read the whole book (kindle version) in a day or so and found this was feasible and effective due to the writing quality. It doesn't discuss threads and sockets which is a pity, but there are other books which concentrate on these things. I only wish that some of the other books I've read recently had been as well written.
Comment | 
Was this review helpful to you?
4 of 5 people found the following review helpful
5.0 out of 5 stars T Taktakci 12 Nov 2008
Format:Paperback
When you talk about programming in Linux environment, you have to think user level and kernel level seperately. This book is a quite nice one explaining the topics in user level programming. I bought this book and read it in about two weeks, in parallel to my other tasks. I must say that it really helped me understand what system programming is. Even if your task is developing kernel level software/driver/module you have to be well versed in user level. I would suggest you read a user level programming book, strongly recommend this one, then study another kernel book which would make things much better for you. When you read the book you feel the writer's overall knowledge and experience on linux environment.
Comment | 
Was this review helpful to you?
Would you like to see more reviews about this item?
Were these reviews helpful?   Let us know
Most Recent Customer Reviews
Search Customer Reviews
Only search this product's reviews

Customer Discussions

This product's forum
Discussion Replies Latest Post
No discussions yet

Ask questions, Share opinions, Gain insight
Start a new discussion
Topic:
First post:
Prompts for sign-in
 

Search Customer Discussions
Search all Amazon discussions
   


Listmania!


Look for similar items by category


Feedback


Amazon.co.uk Privacy Statement Amazon.co.uk Delivery Information Amazon.co.uk Returns & Exchanges