| help | account  


Linux System Programming
View Larger Image
Robert Love
O'Reilly Media, Paperback, Published September 2007, 456 pages, ISBN 0596009585
List Price: $49.99
Our Price: $30.50
You Save: $19.49 (39% Off)


FREE Shipping on Orders over $40!*
Availability: In-Stock

Be the First to Write a Review and tell the world about this title!

People who purchase this book frequently purchase:

Books on similar topics, in best-seller order:Books from the same publisher, in best-seller order:

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.

 

Table of Contents

Foreword

Preface

1. Introduction and Essential Concepts
     System Programming
     APIs and ABIs
     Standards
     Concepts of Linux Programming
     Getting Started with System Programming

2. File I/O
     Opening Files
     Reading via read( )
     Writing with write( )
     Synchronized I/O
     Direct I/O
     Closing Files
     Seeking with lseek( )
     Positional Reads and Writes
     Truncating Files
     Multiplexed I/O
     Kernel Internals
     Conclusion

3. Buffered I/O
     User-Buffered I/O
     Standard I/O
     Opening Files
     Opening a Stream via File Descriptor
     Closing Streams
     Reading from a Stream
     Writing to a Stream
     Sample Program Using Buffered I/O
     Seeking a Stream
     Flushing a Stream
     Errors and End-of-File
     Obtaining the Associated File Descriptor
     Controlling the Buffering
     Thread Safety
     Critiques of Standard I/O
     Conclusion

4. Advanced File I/O
     Scatter/Gather I/O
     The Event Poll Interface
     Mapping Files into Memory
     Advice for Normal File I/O
     Synchronized, Synchronous, and Asynchronous Operations
     I/O Schedulers and I/O Performance
     Conclusion

5. Process Management
     The Process ID
     Running a New Process
     Terminating a Process
     Waiting for Terminated Child Processes
     Users and Groups
     Sessions and Process Groups
     Daemons
     Conclusion

6. Advanced Process Management
     Process Scheduling
     Yielding the Processor
     Process Priorities
     Processor Affinity
     Real-Time Systems
     Resource Limits

7. File and Directory Management
     Files and Their Metadata
     Directories
     Links
     Copying and Moving Files
     Device Nodes
     Out-of-Band Communication
     Monitoring File Events

8. Memory Management
     The Process Address Space
     Allocating Dynamic Memory
     Managing the Data Segment
     Anonymous Memory Mappings
     Advanced Memory Allocation
     Debugging Memory Allocations
     Stack-Based Allocations
     Choosing a Memory Allocation Mechanism
     Manipulating Memory
     Locking Memory
     Opportunistic Allocation

9. Signals
     Signal Concepts
     Basic Signal Management
     Sending a Signal
     Reentrancy
     Signal Sets
     Blocking Signals
     Advanced Signal Management
     Sending a Signal with a Payload
     Conclusion

10. Time
     Time's Data Structures
     POSIX Clocks
     Getting the Current Time of Day
     Setting the Current Time of Day
     Playing with Time
     Tuning the System Clock
     Sleeping and Waiting
     Timers

Appendix. GCC Extensions to the C Language

Bibliography

Index

 

About the Author

Robert Love has used Linux since the early days. He is involved in and passionate about both the Linux kernel and GNOME communities. He has written and maintained numerous projects, including the preemptive kernel, GNOME Volume Manager, and inotify.

Robert is Chief Architect, Linux Desktop, at Novell.

He is the author of Linux Kernel Development (SAMS 2005) and the co-author of Linux in a Nutshell (2006 O'Reilly). He is currently working on a new work for O'Reilly that will be the greatest book ever written, give or take.

Robert is a Contributing Editor at Linux Journal.

He holds a B.A. in Mathematics and a B.S. in Computer Science from the University of Florida. A proud Gator, Robert was born in South Florida but currently calls home Cambridge, MA.




Forgot your password?
FAQs
Shipping Options
Returns
Your Orders
Your Account