Linux System Programming

Talking directly to the Kernel and C Library (Updated for the 3.0 Linux Kernel)

Specificaties
Paperback, 429 blz. | Engels
O'Reilly | 2e druk, 2013
ISBN13: 9781449339531
Rubricering
Hoofdrubriek : Computer en informatica
O'Reilly 2e druk, 2013 9781449339531
Verwachte levertijd ongeveer 16 werkdagen

Samenvatting

Write software that draws directly on services offered by the Linux kernel and core system libraries. With this comprehensive book, Linux kernel contributor Robert Love provides you with a tutorial on Linux system programming, a reference manual on Linux system calls, and an insider's guide to writing smarter, faster code.

Love clearly distinguishes between POSIX standard functions and special services offered only by Linux. With a new chapter on multithreading, this updated and expanded edition provides an in-depth look at Linux from both a theoretical and applied perspective over a wide range of programming topics, including:
- A Linux kernel, C library, and C compiler overview
- Basic I/O operations, such as reading from and writing to files
- 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
- Thread concepts, multithreaded programming, and Pthreads
- File and directory management
- Interfaces for allocating memory and optimizing memory access
- Basic and advanced signal interfaces, and their role on the system
- Clock management, including POSIX clocks and high-resolution timers

Specificaties

ISBN13:9781449339531
Taal:Engels
Bindwijze:paperback
Aantal pagina's:429
Uitgever:O'Reilly
Druk:2
Verschijningsdatum:20-5-2013

Over Robert Love

Robert Love has been a Linux user and hacker since the early days. He is active in--and passionate about--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. Robert is the author of Linux Kernel Development (SAMS 2005) and the co-author of Linux in a Nutshell (2006 O'Reilly). He is also a Contributing Editor at Linux Journal. He is currently working on a new work for O'Reilly that will be the greatest book ever written, give or take. Robert 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.

Andere boeken door Robert Love

Inhoudsopgave

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
-Event Poll
-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
-Programs, Processes, and Threads
-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
-The Completely Fair Scheduler
-Yielding the Processor
-Process Priorities
-Processor Affinity
-Real-Time Systems
-Resource Limits

7. Threading
-Binaries, Processes, and Threads
-Multithreading
-Threading Models
-Threading Patterns
-Concurrency, Parallelism, and Races
-Synchronization
-Pthreads
-Further Study

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

9. 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

10. Signals
-Signal Concepts
-Basic Signal Management
-Sending a Signal
-Reentrancy
-Signal Sets
-Blocking Signals
-Advanced Signal Management
-Sending a Signal with a Payload
-A Flaw in Unix?

11. 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 A: GCC Extensions to the C Language
Appendix B: ibliography

Index

Net verschenen

Rubrieken

Populaire producten

    Personen

      Trefwoorden

        Linux System Programming