Mastering Linux Kernel Development Год издания: 2017 Автор: Bharadwaj R. Жанр или тематика: linux Издательство: Packt Publishing ISBN: 978-1-78588-305-7 Язык: Английский Формат: PDF Качество: Издательский макет или текст (eBook) Количество страниц: 346 Описание: 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.
Примеры страниц
Оглавление
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 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 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 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
[only-soft.org].t89883.torrent
Торрент:
Зарегистрирован
[ 2018-10-20 23:45 ]
5 KB
Статус:
√проверено
Скачан:
1 раз
Размер:
7 MB
Оценка:
(Голосов: 0)
Поблагодарили:
0
Bharadwaj R. - Mastering Linux Kernel Development [2017, PDF, ENG] скачать торрент бесплатно и без регистрации
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете прикреплять файлы к сообщениям Вы можете скачивать файлы