|
Book details / order |
LINUX SYSTEM PROGRAMMING, 2ND EDITION TALKING DIRECTLY TO THE KERNEL AND C LIBRARY |
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
about the author
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.
chapter 1 introduction and essential concepts
system programming
apis and abis
standards
concepts of linux programming
getting started with system programming
chapter 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
chapter 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
chapter 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
chapter 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
chapter 6 advanced process management
process scheduling
the completely fair scheduler
yielding the processor
process priorities
processor affinity
real-time systems
resource limits
chapter 7 threading
binaries, processes, and threads
multithreading
threading models
threading patterns
concurrency, parallelism, and races
synchronization
pthreads
further study
chapter 8 file and directory management
files and their metadata
directories
links
copying and moving files
device nodes
out-of-band communication
monitoring file events
chapter 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
chapter 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?
chapter 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 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
appendix bibliography
books on the c programming language
books on linux programming
books on the linux kernel
books on operating system design
index
colophon.
Author : Robert love
Publication : Oreilly
Isbn : 9789351107729
Store book number : 105
NRS 760.00
|
|
|
|
|
|
|
|
|
|