Mastering Linux Kernel development : a kernel developer's reference manual /
Explore Implementation of core kernel subsystems About This Book Master the design, components, and structures of core kernel subsystems Explore kernel programming interfaces and related algorithms under the hood Completely updated material for the 4.12.10 kernel Who This Book Is For If you are a ke...
Clasificación: | Libro Electrónico |
---|---|
Autor principal: | |
Formato: | Electrónico eBook |
Idioma: | Inglés |
Publicado: |
Birmingham, UK :
Packt Publishing,
2017.
|
Temas: | |
Acceso en línea: | Texto completo Texto completo |
MARC
LEADER | 00000cam a2200000 i 4500 | ||
---|---|---|---|
001 | EBSCO_on1009869414 | ||
003 | OCoLC | ||
005 | 20231017213018.0 | ||
006 | m o d | ||
007 | cr unu|||||||| | ||
008 | 171106s2017 enka o 000 0 eng d | ||
040 | |a UMI |b eng |e rda |e pn |c UMI |d STF |d IDEBK |d OCLCF |d TOH |d COO |d UOK |d CEF |d KSU |d WYU |d LVT |d C6I |d N$T |d ZCU |d UAB |d QGK |d OCLCQ |d OCLCO |d OCLCQ | ||
020 | |a 1785886134 | ||
020 | |a 9781785886133 |q (electronic bk.) | ||
020 | |z 9781785883057 | ||
029 | 1 | |a GBVCP |b 1014938546 | |
035 | |a (OCoLC)1009869414 | ||
037 | |a CL0500000910 |b Safari Books Online | ||
050 | 4 | |a QA76.9.V5 | |
072 | 7 | |a COM |x 046070 |2 bisacsh | |
082 | 0 | 4 | |a 005.43 |2 23 |
049 | |a UAMI | ||
100 | 1 | |a Bharadwaj, Raghu, |e author. | |
245 | 1 | 0 | |a Mastering Linux Kernel development : |b a kernel developer's reference manual / |c Raghu Bharadwaj. |
264 | 1 | |a Birmingham, UK : |b Packt Publishing, |c 2017. | |
300 | |a 1 online resource (1 volume) : |b illustrations | ||
336 | |a text |b txt |2 rdacontent | ||
337 | |a computer |b c |2 rdamedia | ||
338 | |a online resource |b cr |2 rdacarrier | ||
588 | 0 | |a Online resource; title from title page (Safari, viewed November 2, 2017). | |
505 | 0 | |a Cover -- Title Page -- Copyright -- Credits -- About the Author -- About the Reviewer -- www.PacktPub.com -- Customer Feedback -- Table of Contents -- Preface -- Chapter 1: Comprehending Processes, Address Space, and Threads -- Processes -- The illusion called address space -- Kernel and user space -- Process context -- Process descriptors -- Process attributes -- key elements -- state -- pid -- tgid -- thread info -- flags -- exit_code and exit_signal -- comm -- ptrace -- Process relations -- key elements -- real_parent and parent -- children -- sibling -- group_leader -- Scheduling attributes -- key elements -- prio and static_prio -- se, rt, and dl -- policy -- cpus_allowed -- rt_priority -- Process limits -- key elements -- File descriptor table -- key elements -- fs -- files -- Signal descriptor -- key elements -- signal -- sighand -- sigset_t blocked, real_blocked -- pending -- sas_ss_sp -- sas_ss_size -- Kernel stack -- The issue of stack overflow -- Process creation -- fork() -- Copy-on-write (COW) -- exec -- vfork() -- Linux support for threads -- clone() -- Kernel threads -- do_fork() and copy_process() -- Process status and termination -- wait -- exit -- Namespaces and cgroups -- Mount namespaces -- UTS namespaces -- IPC namespaces -- PID namespaces -- Network namespaces -- User namespaces -- Cgroup namespaces -- Control groups (cgroups) -- Summary -- Chapter 2: Deciphering the Process Scheduler -- Process schedulers -- Linux process scheduler design -- Runqueue -- The scheduler's entry point -- Process priorities -- Scheduler classes -- Completely Fair Scheduling class (CFS) -- Computing priorities and time slices under CFS -- CFS's runqueue -- Group scheduling -- Scheduling entities under many-core systems -- Scheduling policies -- Real-time scheduling class -- FIFO -- RR -- Real-time group scheduling. | |
505 | 8 | |a Deadline scheduling class (sporadic task model deadline scheduling) -- Scheduler related system calls -- Processor affinity calls -- Process preemption -- Summary -- Chapter 3: Signal Management -- Signals -- Signal-management APIs -- Raising signals from a program -- Waiting for queued signals -- Signal data structures -- Signal descriptors -- Blocked and pending queues -- Signal handler descriptor -- Signal generation and delivery -- Signal-generation calls -- Signal delivery -- Executing user-mode handlers -- Setting up user-mode handler frames -- Restarting interrupted system calls -- Summary -- Chapter 4: Memory Management and Allocators -- Initialization operations -- Page descriptor -- Flags -- Mapping -- Zones and nodes -- Memory zones -- Memory nodes -- Node descriptor structure -- Zone descriptor structure -- Memory allocators -- Page frame allocator -- Buddy system -- GFP mask -- Zone modifiers -- Page mobility and placement -- Watermark modifiers -- Page reclaim modifiers -- Action modifiers -- Type flags -- Slab allocator -- Kmalloc caches -- Object caches -- Cache management -- Cache layout -- generic -- Slub data structures -- Vmalloc -- Contiguous Memory Allocator (CMA) -- Summary -- Chapter 5: Filesystems and File I/O -- Filesystem -- high-level view -- Metadata -- Inode (index node) -- Data block map -- Directories -- Superblock -- Operations -- Mount and unmount operations -- File creation and deletion operations -- File open and close operations -- File read and write operations -- Additional features -- Extended file attributes -- Filesystem consistency and crash recovery -- Access control lists (ACLs) -- Filesystems in the Linux kernel -- Ext family filesystems -- Ext2 -- Ext3 -- Ext4 -- Common filesystem interface -- VFS structures and operations -- struct superblock -- struct inode -- Struct dentry -- struct file. | |
505 | 8 | |a Special filesystems -- Procfs -- Sysfs -- Debugfs -- Summary -- Chapter 6: Interprocess Communication -- Pipes and FIFOs -- pipefs -- Message queues -- System V message queues -- Data structures -- POSIX message queues -- Shared memory -- System V shared memory -- Operation interfaces -- Allocating shared memory -- Attaching a shared memory -- Detaching shared memory -- Data structures -- POSIX shared memory -- Semaphores -- System V semaphores -- Data structures -- POSIX semaphores -- Summary -- Chapter 7: Virtual Memory Management -- Process address space -- Process memory descriptor -- Managing virtual memory areas -- Locating a VMA -- Merging VMA regions -- struct address_space -- Page tables -- Summary -- Chapter 8: Kernel Synchronization and Locking -- Atomic operations -- Atomic integer operations -- Atomic bitwise operations -- Introducing exclusion locks -- Spinlocks -- Alternate spinlock APIs -- Reader-writer spinlocks -- Mutex locks -- Debug checks and validations -- Wait/wound mutexes -- Operation interfaces: -- Semaphores -- Reader-writer semaphores -- Sequence locks -- API -- Completion locks -- Initialization -- Waiting for completion -- Signalling completion -- Summary -- Chapter 9: Interrupts and Deferred Work -- Interrupt signals and vectors -- Programmable interrupt controller -- Interrupt controller operations -- IRQ descriptor table -- High-level interrupt-management interfaces -- Registering an interrupt handler -- Deregistering an interrupt handler -- Threaded interrupt handlers -- Control interfaces -- IRQ stacks -- Deferred work -- Softirqs -- Tasklets -- Workqueues -- Interface API -- Creating dedicated workqueues -- Summary -- Chapter 10: Clock and Time Management -- Time representation -- Timing hardware -- Real-time clock (RTC) -- Timestamp counter (TSC) -- Programmable interrupt timer (PIT) -- CPU local timer. | |
505 | 8 | |a High-precision event timer (HPET) -- ACPI power management timer (ACPI PMT) -- Hardware abstraction -- Calculating elapsed time -- Linux timekeeping data structures, macros, and helper routines -- Jiffies -- Timeval and timespec -- Tracking and maintaining time -- Tick and interrupt handling -- Tick devices -- Software timers and delay functions -- Dynamic timers -- Race conditions with dynamic timers -- Dynamic timer handling -- Delay functions -- POSIX clocks -- Summary -- Chapter 11: Module Management -- Kernel modules -- Elements of an LKM -- Binary layout of a LKM -- Load and unload operations -- Module data structures -- Memory layout -- Summary -- Index. | |
520 | |a Explore Implementation of core kernel subsystems About This Book Master the design, components, and structures of core kernel subsystems Explore kernel programming interfaces and related algorithms under the hood Completely updated material for the 4.12.10 kernel Who This Book Is For If you are a kernel programmer with a knowledge of kernel APIs and are looking to build a comprehensive understanding, and eager to explore the implementation, of kernel subsystems, this book is for you. It sets out to unravel the underlying details of kernel APIs and data structures, piercing through the complex kernel layers and gives you the edge you need to take your skills to the next level. What You Will Learn Comprehend processes and fles - the core abstraction mechanisms of the Linux kernel that promote effective simplification and dynamism Decipher process scheduling and understand effective capacity utilization under general and real-time dispositions Simplify and learn more about process communication techniques through signals and IPC mechanisms Capture the rudiments of memory by grasping the key concepts and principles of physical and virtual memory management Take a sharp and precise look at all the key aspects of interrupt management and the clock subsystem Understand concurrent execution on SMP platforms through kernel synchronization and locking techniques In Detail Mastering Linux Kernel Development looks at the Linux kernel, its internal arrangement and design, and various core subsystems, helping you to gain significant understanding of this open source marvel. You will look at how the Linux kernel, which possesses a kind of collective intelligence thanks to its scores of contributors, remains so elegant owing to its great design. This book also looks at all the key kernel code, core data structures, functions, and macros, giving you a comprehensive foundation of the implementation details of the kernel's core services and mechanisms. You will also look at the Linux kernel as well-designed software, which gives us insights into software design in general that are easily scalable yet fundamentally strong and safe. By the end of this book, you will have considerable understanding of and appreciation for the Linux kernel. Style and approach Each chapter begins with the basic conceptual know-how for a subsystem and extends into the details of its implementation. We use appropriate code excerpts of critical routines and data structures for subsystems. | ||
590 | |a O'Reilly |b O'Reilly Online Learning: Academic/Public Library Edition | ||
590 | |a eBooks on EBSCOhost |b EBSCO eBook Subscription Academic Collection - Worldwide | ||
630 | 0 | 0 | |a Linux. |
630 | 0 | 7 | |a Linux. |2 fast |0 (OCoLC)fst01382136 |
650 | 0 | |a Virtual computer systems. | |
650 | 0 | |a Computer networks |x Management. | |
650 | 6 | |a Systèmes virtuels (Informatique) | |
650 | 6 | |a Réseaux d'ordinateurs |x Gestion. | |
650 | 7 | |a COMPUTERS |x Operating Systems |x Linux. |2 bisacsh | |
650 | 7 | |a Computer networks |x Management. |2 fast |0 (OCoLC)fst00872323 | |
650 | 7 | |a Virtual computer systems. |2 fast |0 (OCoLC)fst01167683 | |
856 | 4 | 0 | |u https://learning.oreilly.com/library/view/~/9781785883057/?ar |z Texto completo |
856 | 4 | 0 | |u https://ebsco.uam.elogim.com/login.aspx?direct=true&scope=site&db=nlebk&AN=1615018 |z Texto completo |
938 | |a EBSCOhost |b EBSC |n 1615018 | ||
938 | |a ProQuest MyiLibrary Digital eBook Collection |b IDEB |n cis39126003 | ||
994 | |a 92 |b IZTAP |