Cantitate/Preț
Produs

Linux System Programming

Autor Robert Love
en Limba Engleză Paperback – 2 iul 2013

Considerăm că a doua ediție a Linux System Programming reprezintă un instrument indispensabil pentru inginerii care doresc să interacționeze direct cu serviciile nucleului Linux și bibliotecile de sistem fundamentale. Scrisă de Robert Love, un cunoscut contributor al nucleului, această lucrare nu se rezumă la o simplă documentare a funcțiilor, ci oferă o perspectivă tehnică asupra modului în care se scrie cod performant și optimizat pentru mediul Linux. Recomandăm acest volum în special pentru claritatea cu care autorul delimitează standardele POSIX de extensiile specifice arhitecturii Linux, permițând dezvoltatorilor să aleagă între portabilitate și performanță maximă. Structura este una aplicată, pornind de la operațiuni de bază I/O și gestiunea fișierelor, până la concepte avansate precum maparea memoriei și semnalele de sistem. Un punct forte al acestei ediții este capitolul dedicat programării multithreaded, unde conceptele de Pthreads sunt explicate în contextul planificatorului de sarcini din Linux. Dacă The Linux Programming Interface de Michael Kerrisk v-a oferit cadrul teoretic exhaustiv și o referință enciclopedică, această carte oferă instrumentele practice și viziunea internă a unui programator de nucleu pentru a implementa soluții eficiente. Față de Beginning Linux Programming, care este orientat către inițiere, volumul lui Love intră adânc în mecanismele de gestiune a proceselor în timp real și a ceasurilor POSIX, fiind o resursă de nivel intermediar și avansat. Fiecare secțiune este susținută de exemple de cod în limbajul C, ilustrând utilizarea corectă a apelurilor de sistem pentru alocarea memoriei sau gestionarea priorităților proceselor. Este, în esență, un manual de referință care transformă teoria sistemelor de operare în aplicații practice solide, optimizate pentru ecosistemul Linux actual.

Citește tot Restrânge

Preț: 33873 lei

Preț vechi: 42341 lei
-20%

Puncte Express: 508

Carte disponibilă

Livrare economică 26 septembrie-10 octombrie
Livrare express 12-18 septembrie pentru 6813 lei

Livrare prin curier în România Termenul estimat este afișat lângă disponibilitate.
Transport gratuit de la 40000 lei Plată online sau ramburs, în funcție de opțiunile comenzii.
Retur gratuit în 14 zile Comandă securizată și suport în română.

Specificații

ISBN-13: 9781449339531
ISBN-10: 1449339530
Pagini: 400
Ilustrații: black & white illustrations
Dimensiuni: 179 x 231 x 27 mm
Greutate: 0.73 kg
Ediția:2. Auflage
Editura: O'Reilly

De ce să citești această carte

Recomandăm această carte programatorilor C care vor să stăpânească interfața dintre software și nucleul Linux. Veți câștiga o înțelegere profundă a apelurilor de sistem și a optimizării memoriei, trecând dincolo de bibliotecile standard. Este alegerea ideală pentru cei care dezvoltă aplicații de sistem, drivere sau software unde performanța la nivel de proces este critică.


Descriere

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 overviewBasic I/O operations, such as reading from and writing to filesAdvanced I/O interfaces, memory mappings, and optimization techniquesThe family of system calls for basic process managementAdvanced process management, including real-time processesThread concepts, multithreaded programming, and PthreadsFile and directory managementInterfaces for allocating memory and optimizing memory accessBasic and advanced signal interfaces, and their role on the systemClock management, including POSIX clocks and high-resolution timers

Cuprins

Dedication; 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;