65,75 €*
Versandkostenfrei per Post / DHL
Lieferzeit 1-2 Wochen
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
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
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.
Foreword;
Preface;
Audience and Assumptions;
Contents of This Book;
Versions Covered in This Book;
Conventions Used in This Book;
Using Code Examples;
Safari® Books Online;
How to Contact Us;
Acknowledgments;
Chapter 1: Introduction and Essential Concepts;
1.1 System Programming;
1.2 APIs and ABIs;
1.3 Standards;
1.4 Concepts of Linux Programming;
1.5 Getting Started with System Programming;
Chapter 2: File I/O;
2.1 Opening Files;
2.2 Reading via read();
2.3 Writing with write();
2.4 Synchronized I/O;
2.5 Direct I/O;
2.6 Closing Files;
2.7 Seeking with lseek();
2.8 Positional Reads and Writes;
2.9 Truncating Files;
2.10 Multiplexed I/O;
2.11 Kernel Internals;
2.12 Conclusion;
Chapter 3: Buffered I/O;
3.1 User-Buffered I/O;
3.2 Standard I/O;
3.3 Opening Files;
3.4 Opening a Stream via File Descriptor;
3.5 Closing Streams;
3.6 Reading from a Stream;
3.7 Writing to a Stream;
3.8 Sample Program Using Buffered I/O;
3.9 Seeking a Stream;
3.10 Flushing a Stream;
3.11 Errors and End-of-File;
3.12 Obtaining the Associated File Descriptor;
3.13 Controlling the Buffering;
3.14 Thread Safety;
3.15 Critiques of Standard I/O;
3.16 Conclusion;
Chapter 4: Advanced File I/O;
4.1 Scatter/Gather I/O;
4.2 Event Poll;
4.3 Mapping Files into Memory;
4.4 Advice for Normal File I/O;
4.5 Synchronized, Synchronous, and Asynchronous Operations;
4.6 I/O Schedulers and I/O Performance;
4.7 Conclusion;
Chapter 5: Process Management;
5.1 Programs, Processes, and Threads;
5.2 The Process ID;
5.3 Running a New Process;
5.4 Terminating a Process;
5.5 Waiting for Terminated Child Processes;
5.6 Users and Groups;
5.7 Sessions and Process Groups;
5.8 Daemons;
5.9 Conclusion;
Chapter 6: Advanced Process Management;
6.1 Process Scheduling;
6.2 The Completely Fair Scheduler;
6.3 Yielding the Processor;
6.4 Process Priorities;
6.5 Processor Affinity;
6.6 Real-Time Systems;
6.7 Resource Limits;
Chapter 7: Threading;
7.1 Binaries, Processes, and Threads;
7.2 Multithreading;
7.3 Threading Models;
7.4 Threading Patterns;
7.5 Concurrency, Parallelism, and Races;
7.6 Synchronization;
7.7 Pthreads;
7.8 Further Study;
Chapter 8: File and Directory Management;
8.1 Files and Their Metadata;
8.2 Directories;
8.3 Links;
8.4 Copying and Moving Files;
8.5 Device Nodes;
8.6 Out-of-Band Communication;
8.7 Monitoring File Events;
Chapter 9: Memory Management;
9.1 The Process Address Space;
9.2 Allocating Dynamic Memory;
9.3 Managing the Data Segment;
9.4 Anonymous Memory Mappings;
9.5 Advanced Memory Allocation;
9.6 Debugging Memory Allocations;
9.7 Stack-Based Allocations;
9.8 Choosing a Memory Allocation Mechanism;
9.9 Manipulating Memory;
9.10 Locking Memory;
9.11 Opportunistic Allocation;
Chapter 10: Signals;
10.1 Signal Concepts;
10.2 Basic Signal Management;
10.3 Sending a Signal;
10.4 Reentrancy;
10.5 Signal Sets;
10.6 Blocking Signals;
10.7 Advanced Signal Management;
10.8 Sending a Signal with a Payload;
10.9 A Flaw in Unix?;
Chapter 11: Time;
11.1 Time's Data Structures;
11.2 POSIX Clocks;
11.3 Getting the Current Time of Day;
11.4 Setting the Current Time of Day;
11.5 Playing with Time;
11.6 Tuning the System Clock;
11.7 Sleeping and Waiting;
11.8 Timers;
GCC Extensions to the C Language;
GNU C;
Inline Functions;
Suppressing Inlining;
Pure Functions;
Constant Functions;
Functions That Do Not Return;
Functions That Allocate Memory;
Forcing Callers to Check the Return Value;
Marking Functions as Deprecated;
Marking Functions as Used;
Marking Functions or Parameters as Unused;
Packing a Structure;
Increasing the Alignment of a Variable;
Placing Global Variables in a Register;
Branch Annotation;
Getting the Type of an Expression;
Getting the Alignment of a Type;
The Offset of a Member Within a Structure;
Obtaining the Return Address of a Function;
Case Ranges;
Void and Function Pointer Arithmetic;
More Portable and More Beautiful in One Fell Swoop;
Bibliography;
Books on the C Programming Language;
Books on Linux Programming;
Books on the Linux Kernel;
Books on Operating System Design;
Index;
Colophon;
Erscheinungsjahr: | 2013 |
---|---|
Fachbereich: | Betriebssysteme & Benutzeroberflächen |
Genre: | Informatik |
Rubrik: | Naturwissenschaften & Technik |
Medium: | Taschenbuch |
Inhalt: |
XXIII
430 S. |
ISBN-13: | 9781449339531 |
ISBN-10: | 1449339530 |
Sprache: | Englisch |
Einband: | Kartoniert / Broschiert |
Autor: | Love, Robert |
Hersteller: |
O'Reilly Media
O'Reilly Media, Inc. |
Maße: | 231 x 179 x 27 mm |
Von/Mit: | Robert Love |
Erscheinungsdatum: | 02.07.2013 |
Gewicht: | 0,785 kg |
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.
Foreword;
Preface;
Audience and Assumptions;
Contents of This Book;
Versions Covered in This Book;
Conventions Used in This Book;
Using Code Examples;
Safari® Books Online;
How to Contact Us;
Acknowledgments;
Chapter 1: Introduction and Essential Concepts;
1.1 System Programming;
1.2 APIs and ABIs;
1.3 Standards;
1.4 Concepts of Linux Programming;
1.5 Getting Started with System Programming;
Chapter 2: File I/O;
2.1 Opening Files;
2.2 Reading via read();
2.3 Writing with write();
2.4 Synchronized I/O;
2.5 Direct I/O;
2.6 Closing Files;
2.7 Seeking with lseek();
2.8 Positional Reads and Writes;
2.9 Truncating Files;
2.10 Multiplexed I/O;
2.11 Kernel Internals;
2.12 Conclusion;
Chapter 3: Buffered I/O;
3.1 User-Buffered I/O;
3.2 Standard I/O;
3.3 Opening Files;
3.4 Opening a Stream via File Descriptor;
3.5 Closing Streams;
3.6 Reading from a Stream;
3.7 Writing to a Stream;
3.8 Sample Program Using Buffered I/O;
3.9 Seeking a Stream;
3.10 Flushing a Stream;
3.11 Errors and End-of-File;
3.12 Obtaining the Associated File Descriptor;
3.13 Controlling the Buffering;
3.14 Thread Safety;
3.15 Critiques of Standard I/O;
3.16 Conclusion;
Chapter 4: Advanced File I/O;
4.1 Scatter/Gather I/O;
4.2 Event Poll;
4.3 Mapping Files into Memory;
4.4 Advice for Normal File I/O;
4.5 Synchronized, Synchronous, and Asynchronous Operations;
4.6 I/O Schedulers and I/O Performance;
4.7 Conclusion;
Chapter 5: Process Management;
5.1 Programs, Processes, and Threads;
5.2 The Process ID;
5.3 Running a New Process;
5.4 Terminating a Process;
5.5 Waiting for Terminated Child Processes;
5.6 Users and Groups;
5.7 Sessions and Process Groups;
5.8 Daemons;
5.9 Conclusion;
Chapter 6: Advanced Process Management;
6.1 Process Scheduling;
6.2 The Completely Fair Scheduler;
6.3 Yielding the Processor;
6.4 Process Priorities;
6.5 Processor Affinity;
6.6 Real-Time Systems;
6.7 Resource Limits;
Chapter 7: Threading;
7.1 Binaries, Processes, and Threads;
7.2 Multithreading;
7.3 Threading Models;
7.4 Threading Patterns;
7.5 Concurrency, Parallelism, and Races;
7.6 Synchronization;
7.7 Pthreads;
7.8 Further Study;
Chapter 8: File and Directory Management;
8.1 Files and Their Metadata;
8.2 Directories;
8.3 Links;
8.4 Copying and Moving Files;
8.5 Device Nodes;
8.6 Out-of-Band Communication;
8.7 Monitoring File Events;
Chapter 9: Memory Management;
9.1 The Process Address Space;
9.2 Allocating Dynamic Memory;
9.3 Managing the Data Segment;
9.4 Anonymous Memory Mappings;
9.5 Advanced Memory Allocation;
9.6 Debugging Memory Allocations;
9.7 Stack-Based Allocations;
9.8 Choosing a Memory Allocation Mechanism;
9.9 Manipulating Memory;
9.10 Locking Memory;
9.11 Opportunistic Allocation;
Chapter 10: Signals;
10.1 Signal Concepts;
10.2 Basic Signal Management;
10.3 Sending a Signal;
10.4 Reentrancy;
10.5 Signal Sets;
10.6 Blocking Signals;
10.7 Advanced Signal Management;
10.8 Sending a Signal with a Payload;
10.9 A Flaw in Unix?;
Chapter 11: Time;
11.1 Time's Data Structures;
11.2 POSIX Clocks;
11.3 Getting the Current Time of Day;
11.4 Setting the Current Time of Day;
11.5 Playing with Time;
11.6 Tuning the System Clock;
11.7 Sleeping and Waiting;
11.8 Timers;
GCC Extensions to the C Language;
GNU C;
Inline Functions;
Suppressing Inlining;
Pure Functions;
Constant Functions;
Functions That Do Not Return;
Functions That Allocate Memory;
Forcing Callers to Check the Return Value;
Marking Functions as Deprecated;
Marking Functions as Used;
Marking Functions or Parameters as Unused;
Packing a Structure;
Increasing the Alignment of a Variable;
Placing Global Variables in a Register;
Branch Annotation;
Getting the Type of an Expression;
Getting the Alignment of a Type;
The Offset of a Member Within a Structure;
Obtaining the Return Address of a Function;
Case Ranges;
Void and Function Pointer Arithmetic;
More Portable and More Beautiful in One Fell Swoop;
Bibliography;
Books on the C Programming Language;
Books on Linux Programming;
Books on the Linux Kernel;
Books on Operating System Design;
Index;
Colophon;
Erscheinungsjahr: | 2013 |
---|---|
Fachbereich: | Betriebssysteme & Benutzeroberflächen |
Genre: | Informatik |
Rubrik: | Naturwissenschaften & Technik |
Medium: | Taschenbuch |
Inhalt: |
XXIII
430 S. |
ISBN-13: | 9781449339531 |
ISBN-10: | 1449339530 |
Sprache: | Englisch |
Einband: | Kartoniert / Broschiert |
Autor: | Love, Robert |
Hersteller: |
O'Reilly Media
O'Reilly Media, Inc. |
Maße: | 231 x 179 x 27 mm |
Von/Mit: | Robert Love |
Erscheinungsdatum: | 02.07.2013 |
Gewicht: | 0,785 kg |