Robert Love ist ein erfahrener Autor, dessen Karriere sich über drei Jahrzehnte im Verlagswesen erstreckt, einschließlich bedeutender Positionen bei Rolling Stone und Best Life. Seine journalistischen Arbeiten wurden in angesehenen Publikationen wie der New York Times veröffentlicht, was sein scharfes Gespür für packende Erzählungen unter Beweis stellt. Loves umfangreiche Erfahrung fließt auch in seine Lehrtätigkeit als außerordentlicher Professor für Journalismus ein. Sein Schreiben zeichnet sich durch eine tiefe Auseinandersetzung mit aktuellen Themen und einen klaren, zugänglichen Stil aus.
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.