Robert Love is a seasoned writer whose career spans three decades in magazine publishing, including significant roles at Rolling Stone and Best Life. His journalistic work has been featured in esteemed publications such as The New York Times, demonstrating a keen eye for compelling narratives. Love's extensive experience also informs his teaching, as he serves as an adjunct professor of journalism. His writing is characterized by a deep engagement with contemporary issues and a clear, accessible style.
This is a new approach to learning old English - as a living language. Leofwin and his family are your guides through six lively, entertaining, topic-based units. New vocabulary and grammar are presented in context, step by step, so that younger readers and non-language specialists can feel engaged rather than intimidated. The author has complemented the text with a wealth of illustrations throughout. This volume is the first part of the course.
1. Introduction and essential concepts : System programming ; APIs and ABIs ; Standards ; Concepts of Linux 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 -- 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 -- 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 -- 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 -- 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 -- 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 alocations ; 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
Zur System- oder Gerätetreiber-Programmierung unter Linux benötigen Sie einen Leitfaden, der den Aufbau des Linux-Kernels und das Zusammenwirken seiner Subsysteme und Schnittstellen in der nötigen Tiefe verständlich erklärt. Das „Linux-Kernel-Handbuch“ ist dieser Leitfaden. Der Autor – selbst langjähriger Kernel-Hacker – erschließt seinen Lesern die dunklen Tiefen des Allerheiligsten mit leicht verständlichen Erklärungen auch schwieriger und komplexer Sachverhalte.