Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Save more on your purchases! discount-offer-chevron-icon
Savings automatically calculated. No voucher code required.
Arrow left icon
All Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Newsletter Hub
Free Learning
Arrow right icon
timer SALE ENDS IN
0 Days
:
00 Hours
:
00 Minutes
:
00 Seconds
Arrow up icon
GO TO TOP
Mastering Linux Kernel Development

You're reading from   Mastering Linux Kernel Development A kernel developer's reference manual

Arrow left icon
Product type Paperback
Published in Oct 2017
Publisher Packt
ISBN-13 9781785883057
Length 354 pages
Edition 1st Edition
Tools
Arrow right icon
Author (1):
Arrow left icon
CH Raghav Maruthi CH Raghav Maruthi
Author Profile Icon CH Raghav Maruthi
CH Raghav Maruthi
Arrow right icon
View More author details
Toc

Table of Contents (19) Chapters Close

Title Page
Credits
About the Author
About the Reviewer
www.PacktPub.com
Customer Feedback
Preface
1. Comprehending Processes, Address Space, and Threads FREE CHAPTER 2. Deciphering the Process Scheduler 3. Signal Management 4. Memory Management and Allocators 5. Filesystems and File I/O 6. Interprocess Communication 7. Virtual Memory Management 8. Kernel Synchronization and Locking 9. Interrupts and Deferred Work 10. Clock and Time Management 11. Module Management Index

Index

A

  • absolute time / Time representation
  • access control lists (ACLs) / Access control lists (ACLs)
  • ACPI power management timer (ACPI PMT) / ACPI power management timer (ACPI PMT)
  • action modifiers
    • about / GFP mask
    • __GFP_COLD / Action modifiers
    • __GFP_NOWARN / Action modifiers
    • __GFP_COMP / Action modifiers
    • __GFP_ZERO / Action modifiers
    • __GFP_NOTRACK / Action modifiers
    • __GFP_NOTRACK_FALSE_POSITIVE / Action modifiers
    • __GFP_OTHER_NODE / Action modifiers
  • address space / The illusion called address space
  • Advanced Programmable Interrupt Controller(APIC)
    • I/O APIC / Programmable interrupt controller
    • about / Programmable interrupt controller
    • Local APIC / Programmable interrupt controller
  • API interface, POSIX message queues
    • mq_open() / POSIX message queues
    • mq_send() / POSIX message queues
    • mq_timedsend() / POSIX message queues
    • mq_receive() / POSIX message queues
    • mq_timedreceive() / POSIX message queues
    • mq_close() / POSIX message queues
    • mq_unlink() / POSIX message queues
    • mq_notify() / POSIX message queues
    • mq_getattr() / POSIX message queues
    • mq_setattr() / POSIX message queues
  • asynchronous interrupts / Interrupt signals and vectors
  • atomic operations
    • about / Atomic operations
    • integer operations / Atomic integer operations
    • atomic bitwise operations / Atomic bitwise operations

B

  • bitmap / Inode (index node)
  • blocked queues / Blocked and pending queues
  • block size / Metadata
  • Buddy System / Page frame allocator, Buddy system
  • buffer cache / struct address_space

C

  • cache / struct address_space
  • cache list / Cache management
  • clone() / clone()
  • code / Processes
  • comm field / comm
  • Completely Fair Scheduling class (CFS)
    • about / Linux process scheduler design, Completely Fair Scheduling class (CFS)
    • priorities, computing / Computing priorities and time slices under CFS
    • time slices, computing / Computing priorities and time slices under CFS
    • runqueue / CFS's runqueue
    • group scheduling / Group scheduling
    • entities, scheduling under many-core systems / Scheduling entities under many-core systems
    • policies, scheduling / Scheduling policies
  • completion locks
    • about / Completion locks
    • initialization / Initialization
    • waiting for completion / Waiting for completion
    • signalling / Signalling completion
  • contiguous Memory Allocator (CMA) / Contiguous Memory Allocator (CMA)
  • control groups (cgroups) / Namespaces and cgroups, Control groups (cgroups)
  • control interfaces / Control interfaces
  • copy-on-write (COW) / Copy-on-write (COW)
  • copy_process() / do_fork() and copy_process()
  • cpu interface / Programmable interrupt controller
  • CPU local timer / CPU local timer

D

  • data / Processes
  • data structures / Operations
  • deadline scheduling class / Deadline scheduling class (sporadic task model deadline scheduling)
  • debugfs / Debugfs
  • default action, kernel handler
    • about / Signal delivery
    • term / Signal delivery
    • ign / Signal delivery
    • core / Signal delivery
    • stop / Signal delivery
    • cont / Signal delivery
  • deferred work
    • about / Deferred work
    • softirqs framework / Softirqs
    • tasklet framework / Tasklets
    • workqueues (wqs) framework / Workqueues
  • delay functions / Software timers and delay functions, Delay functions
  • dentry operations / Struct dentry
  • device / Memory zones
  • directories / Filesystem - high-level view
  • direct pointers / Data block map
  • direct references / Data block map
  • distributor / Programmable interrupt controller
  • do_fork() / do_fork() and copy_process()
  • drivers / Memory zones
  • dynamic priorities / Process priorities
  • dynamic timers
    • about / Dynamic timers
    • creating / Dynamic timers
    • activating / Dynamic timers
    • resources, deallocating / Race conditions with dynamic timers
    • handling / Dynamic timer handling

E

  • elapsed time
    • calculating / Calculating elapsed time
  • entities
    • scheduling, under many-core systems / Scheduling entities under many-core systems
  • exclusion locks
    • about / Introducing exclusion locks
    • spinlocks / Spinlocks
    • mutex locks / Mutex locks
    • semaphores / Semaphores
    • sequence locks / Sequence locks
    • completion locks / Completion locks
  • exit_code field / exit_code and exit_signal
  • exit_signal field / exit_code and exit_signal
  • extent / Data block map
  • extent lists / Data block map
  • ext family filesystems
    • about / Ext family filesystems
    • Ext2 / Ext2
    • Ext3 / Ext3
    • Ext4 / Ext4

F

  • FIFOs
    • about / FIFO, Pipes and FIFOs
    • pipefs / pipefs
  • file descriptor / File open and close operations
  • file descriptor table
    • key elements / File descriptor table - key elements
    • fs field / fs
    • files field / files
  • files / Filesystem - high-level view
  • filesystem interface
    • about / Common filesystem interface
    • VFS, structures / VFS structures and operations
    • VFS, operations / VFS structures and operations
  • filesystems
    • about / Filesystem - high-level view
    • metadata / Metadata
    • operations / Operations
    • features / Additional features
    • extended file attributes / Extended file attributes
    • indexing / Extended file attributes
    • consistency / Filesystem consistency and crash recovery
    • crash recovery / Filesystem consistency and crash recovery
    • ACLs / Access control lists (ACLs)
  • filesystems, Linux kernel
    • about / Filesystems in the Linux kernel
    • storage filesystems / Filesystems in the Linux kernel
    • disk filesystems / Filesystems in the Linux kernel
    • removable media filesystems / Filesystems in the Linux kernel
    • semiconductor storage filesystems / Filesystems in the Linux kernel
    • ext family filesystems / Ext family filesystems
  • flag bits / Process memory descriptor
  • flag constants
    • PG_locked / Flags
    • PG_error / Flags
    • PG_referenced / Flags
    • PG_uptodate / Flags
    • PG_dirty / Flags
    • PG_lru / Flags
    • PG_active / Flags
    • PG_slab / Flags
    • PG_reserved / Flags
    • PG_private / Flags
    • PG_writeback / Flags
    • PG_head / Flags
    • PG_swapcache / Flags
    • PG_mappedtodisk / Flags
    • PG_swapbacked / Flags
    • PG_unevictable / Flags
    • PG_mlocked / Flags
  • flags field / flags
  • fork() / fork()
  • fragmentation / Memory zones
  • function interfaces, POSIX semaphores
    • about / POSIX semaphores
    • sem_open() / POSIX semaphores
    • sem_init() / POSIX semaphores
    • sem_post() / POSIX semaphores
    • sem_wait() / POSIX semaphores
    • sem_timedwait() / POSIX semaphores
    • sem_getvalue() / POSIX semaphores
    • sem_unlink() / POSIX semaphores

G

  • generic interrupt controller(GIC) / Programmable interrupt controller
  • Generic Scheduler / Linux process scheduler design
  • GFP mask
    • about / GFP mask
    • zone modifiers / Zone modifiers
    • page mobility and placement flags / Page mobility and placement
    • watermark modifiers / Watermark modifiers
    • page reclaim modifiers / Page reclaim modifiers
    • action modifiers / Action modifiers
    • type flags / Type flags
  • group scheduling / Group scheduling

H

  • hardware abstraction
    • about / Hardware abstraction
    • elapsed time, calculating / Calculating elapsed time
  • hardware interrupt / Interrupt signals and vectors
  • heap / Process address space
  • high-level interrupt-management interfaces
    • about / High-level interrupt-management interfaces
    • interrupt handler, registering / Registering an interrupt handler
    • interrupt handler, deregistering / Deregistering an interrupt handler
    • threaded interrupt handlers / Threaded interrupt handlers
    • control interfaces / Control interfaces
    • IRQ stacks / IRQ stacks
  • high precision event timer (HPET) / High-precision event timer (HPET)

I

  • I/O bound process / Process priorities
  • index / Inode (index node)
  • indirect block / Data block map
  • indirect pointer / Data block map
  • initializer routine / Spinlocks
  • inode table / Inode (index node)
  • instruction pointer (ip) / Setting up user-mode handler frames
  • integer operations / Atomic integer operations
  • inter-processor interrupts (IPIs) / Programmable interrupt controller
  • interrupt
    • software interrupts / Interrupt signals and vectors
    • disabling, macros used / Control interfaces
    • handling / Tick and interrupt handling
  • interrupt controller operations / Interrupt controller operations
  • interrupt descriptor table (IDT) / Interrupt signals and vectors
  • interrupted system calls
    • restarting / Restarting interrupted system calls
    • no restart / Restarting interrupted system calls
    • auto restart / Restarting interrupted system calls
    • explicit restart / Restarting interrupted system calls
  • interrupt handler
    • registering / Registering an interrupt handler
    • deregistering / Deregistering an interrupt handler
  • Interrupt Request lines (IRQ) / Programmable interrupt controller
  • interrupt service / Interrupt signals and vectors
  • interrupt service routine (ISR) / Interrupt signals and vectors
  • interrupt signals / Interrupt signals and vectors
  • interrupt vectors / Interrupt signals and vectors
  • interrupt vector tables / Interrupt signals and vectors
  • IPC namespaces / IPC namespaces
  • IRQ descriptor table / IRQ descriptor table
  • IRQ stacks / IRQ stacks

J

  • jiffies variable / Jiffies
  • journal block / Filesystem consistency and crash recovery
  • journal checksums / Ext4
  • journaling / Filesystem consistency and crash recovery
  • journaling modes
    • about / Ext3
    • journal mode / Ext3
    • ordered mode / Ext3
    • writeback mode / Ext3

K

  • kernel-defined default handler routines
    • actions / Signals
  • kernel bootstrap / Initialization operations
  • kernel handler / Signals
  • kernel modules (LKM)
    • about / Kernel modules
    • functionalities / Kernel modules
    • elements / Elements of an LKM
    • binary layout / Binary layout of a LKM
    • load operation / Load and unload operations
    • unload operation / Load and unload operations
    • data structures / Module data structures
    • memory layout / Memory layout
  • kernel space
    • about / Kernel and user space
    • process / Process context
  • kernel stack
    • about / Kernel stack
    • overflow, issues / The issue of stack overflow
  • kernel threads
    • about / Kernel threads
    • copy_process() / do_fork() and copy_process()
    • do_fork() / do_fork() and copy_process()
  • kmalloc caches / Kmalloc caches

L

  • light weight process (LWP) / Linux support for threads
  • linear addresses / Page frame allocator
  • Linux
    • supporting, for threads / Linux support for threads
    • clone() / clone()
  • Linux kernel
    • filesystems / Filesystems in the Linux kernel
  • Linux process scheduler design / Linux process scheduler design
  • load operation / Load and unload operations
  • locking reader / Sequence locks
  • lock routine / Spinlocks

M

  • memory / Memory zones
  • memory allocators
    • about / Memory allocators
    • page frame allocator / Page frame allocator
    • GFP mask / GFP mask
    • slab allocator / Slab allocator
    • vmalloc / Vmalloc
    • contiguous Memory Allocator (CMA) / Contiguous Memory Allocator (CMA)
  • memory nodes
    • about / Memory nodes
    • node descriptor structure / Node descriptor structure
    • zone descriptor structure / Zone descriptor structure
  • memory zones / Memory zones
  • message queues
    • about / Message queues
    • system V message queues / System V message queues
    • POSIX message queues / POSIX message queues
  • metadata, filesystem
    • about / Metadata
    • inode / Inode (index node)
    • data block map / Data block map
    • directories / Directories
    • superblock / Superblock
  • mmap / Process address space
  • modutils / Load and unload operations
  • monotonic time / Time representation
  • mount namespaces / Mount namespaces
  • mount operation / Mount and unmount operations
  • multi-faceted / Process priorities
  • multi-level indexing / Data block map
  • mutex locks / Mutex locks
    • checks, debugging / Debug checks and validations
    • validations, debugging / Debug checks and validations
    • wait/wound mutexes / Wait/wound mutexes

N

  • named pipes / Pipes and FIFOs
  • namespaces
    • about / Namespaces and cgroups
    • mount namespaces / Mount namespaces
    • UTS namespaces / UTS namespaces
    • IPC namespaces / IPC namespaces
    • PID namespace / PID namespaces
    • network namespaces / Network namespaces
    • user namespaces / User namespaces
    • cgroup namespace / Cgroup namespaces
  • network namespaces / Network namespaces
  • node descriptor structure
    • node_zones / Node descriptor structure
    • node_zonelists / Node descriptor structure
    • nr_zones / Node descriptor structure
    • node_mem_map / Node descriptor structure
    • bdata / Node descriptor structure
    • node_start_pfn / Node descriptor structure
    • node_present_pages / Node descriptor structure
    • node_id / Node descriptor structure
    • node_spanned_pages / Node descriptor structure
    • kswapd_wait / Node descriptor structure
    • kswapd / Node descriptor structure
    • totalreserve_pages / Node descriptor structure
  • nodes
    • about / Zones and nodes
    • memory nodes / Memory nodes
  • Non-Uniform Memory Access Architecture (NUMA) / Memory nodes

O

  • object cache / Slab allocator, Object caches
  • operations
    • initialization / Initialization operations
    • page descriptor / Page descriptor
  • operations, filesystem
    • about / Operations
    • mount operation / Mount and unmount operations
    • unmount operation / Mount and unmount operations
    • file creation operation / File creation and deletion operations
    • file deletion operation / File creation and deletion operations
    • file closing operation / File open and close operations
    • file opening operation / File open and close operations
    • file reading operation / File read and write operations
    • file writing operations / File read and write operations
  • optimistic spinning (midpath) / Mutex locks
  • ordered mode / Ext3

P

  • PaaS (platform as a service) / Namespaces and cgroups
  • page cache / struct address_space
  • page descriptor
    • about / Page descriptor
    • flag constants / Flags
    • mapping / Mapping
  • page faults / Process address space
  • page frame allocator
    • about / Page frame allocator
    • Buddy System / Buddy system
  • page frames / Page descriptor
  • page migration
    • about / Buddy system
    • unmovable pages / Buddy system
    • reclaimable pages / Buddy system
    • movable pages / Buddy system
  • page mobility and placement flags
    • about / GFP mask, Page mobility and placement
    • __GFP_RECLAIMABLE / Page mobility and placement
    • __GFP_WRITE / Page mobility and placement
    • __GFP_HARDWALL / Page mobility and placement
    • __GFP_THISNODE / Page mobility and placement
    • __GFP_ACCOUNT / Page mobility and placement
  • page reclaim algorithms / Page reclaim modifiers
  • page reclaim modifiers / Page reclaim modifiers
    • about / GFP mask
    • __GFP_IO / Page reclaim modifiers
    • __GFP_FS / Page reclaim modifiers
    • __GFP_DIRECT_RECLAIM / Page reclaim modifiers
    • __GFP_KSWAPD_RECLAIM / Page reclaim modifiers
    • __GFP_RECLAIM / Page reclaim modifiers
    • __GFP_REPEAT / Page reclaim modifiers
    • __GFP_NOFAIL / Page reclaim modifiers
    • __GFP_NORETRY / Page reclaim modifiers
  • page structure / Page descriptor
  • page tables / Page tables
  • paging / Initialization operations
  • pending queues / Blocked and pending queues
  • persistent memories / Memory zones
  • pid field /
  • PID namespace / PID namespaces
  • pipes
    • about / Pipes and FIFOs
    • pipefs / pipefs
  • policies
    • scheduling / Scheduling policies
  • POSIX clocks
    • about / POSIX clocks
    • CLOCK_REALTIME / POSIX clocks
    • CLOCK_MONOTONIC / POSIX clocks
    • CLOCK_BOOTTIME / POSIX clocks
  • POSIX message queues / POSIX message queues
  • POSIX semaphores / POSIX semaphores
  • POSIX shared memory
    • about / POSIX shared memory
    • interfaces / POSIX shared memory
  • private memory mapping / Process address space
  • process-communication / Raising signals from a program
  • process address space
    • about / Process address space
    • stack segment / Process address space
    • mmap segment / Process address space
    • heap segment / Process address space
    • BSS segment / Process address space
    • data segment / Process address space
    • text segment / Process address space
    • process memory descriptor / Process memory descriptor
    • page tables / Page tables
  • process attributes
    • about / Process attributes - key elements
    • key elements / Process attributes - key elements
    • state / state
    • pid field /
    • tgid field / tgid
    • thread_info / thread info
    • flags field / flags
    • exit_signal field / exit_code and exit_signal
    • exit_code field / exit_code and exit_signal
    • comm field / comm
    • ptrace / ptrace
  • process defined handler / Signals
  • process descriptors
    • about / Process descriptors
    • attributes / Process attributes - key elements
    • relations / Process relations - key elements
    • scheduling attributes / Scheduling attributes - key elements
    • limits / Process limits - key elements
    • file descriptor table / File descriptor table - key elements
    • signal descriptor / Signal descriptor - key elements
  • processes
    • about / Processes
    • address space / The illusion called address space
    • Kernel space / Kernel and user space
    • user space / Kernel and user space
    • creating / Process creation
    • fork() / fork()
    • copy-on-write (COW) / Copy-on-write (COW)
    • exec / exec
    • vfork() / vfork()
    • threads, Linux supporting / Linux support for threads
  • process limits
    • key elements / Process limits - key elements
  • process memory descriptor
    • about / Process memory descriptor
    • virtual memory areas, managing / Managing virtual memory areas
    • struct address_space / struct address_space
  • processor affinity calls / Processor affinity calls
  • processor bound process / Process priorities
  • process preemption / Process preemption
  • process priorities
    • about / Process priorities
    • dynamic priorities / Process priorities
    • static priorities / Process priorities
  • process relations
    • key element / Process relations - key elements
    • parent pointer / real_parent and parent
    • real_parent pointer / real_parent and parent
    • children pointer / children
    • sibling pointer / sibling
    • group_leader pointer / group_leader
  • process schedulers
    • about / Process schedulers
    • task / Process schedulers
    • entry point / The scheduler's entry point
  • process states / state
  • process status
    • about / Process status and termination
    • wait / wait
  • process termination
    • about / Process status and termination
    • exit / exit
  • process time / Time representation
  • procfs
    • about / Procfs
    • important files / Procfs
    • subdirectories / Procfs
  • programmable interrupt controller (PIC)
    • about / Programmable interrupt controller
    • interrupt controller operations / Interrupt controller operations
    • IRQ descriptor table / IRQ descriptor table
  • programmable interrupt timer (PIT) / Programmable interrupt timer (PIT)
  • protected mode / Initialization operations
  • ptrace field / ptrace

Q

  • queued signals
    • waiting / Waiting for queued signals

R

  • read-modify-write (RMW) / Atomic integer operations
  • real-time clock (RTC) / Real-time clock (RTC)
  • real-time group scheduling / Real-time group scheduling
  • real-time scheduling class
    • about / Real-time scheduling class
    • FIFO / FIFO
    • round-robin policy / RR
    • deadline scheduling class / Deadline scheduling class (sporadic task model deadline scheduling)
  • real mode / Initialization operations
  • real mode kernel / Initialization operations
  • relative time / Time representation
  • reset vector / Initialization operations
  • rootfs / Common filesystem interface, Pipes and FIFOs
  • round-robin policy / RR
  • runqueue
    • about / Runqueue
    • nr_running / Runqueue
    • load / Runqueue
    • curr / Runqueue
    • idle / Runqueue

S

  • scheduler classes
    • about / Scheduler classes
    • enqueue_task / Scheduler classes
    • dequeue_task / Scheduler classes
    • yield_task / Scheduler classes
    • pick_next_task / Scheduler classes
  • scheduling attributes
    • key elements / Scheduling attributes - key elements
    • prio / prio and static_prio
    • static_prio / prio and static_prio
    • se / se, rt, and dl
    • rt / se, rt, and dl
    • dl / se, rt, and dl
    • policy field / policy
    • cpus_allowed field / cpus_allowed
    • rt_priority / rt_priority
  • scheduling entity / Group scheduling
  • scheduling period / Group scheduling
  • second extended filesystem (Ext2) / Ext family filesystems, Ext2
  • sectors / Metadata
  • semaphores
    • about / Semaphores, Semaphores
    • system V semaphores / System V semaphores
    • POSIX semaphores / POSIX semaphores
    • reader-writer semaphores / Reader-writer semaphores
  • sequence locks
    • API / API
  • sequence reader / Sequence locks
  • shared memory
    • about / Shared memory
    • system V shared memory / System V shared memory
    • allocating / Allocating shared memory
    • attaching / Attaching a shared memory
    • detaching / Detaching shared memory
    • POSIX shared memory / POSIX shared memory
  • shared peripheral interrupts(SPI) / Programmable interrupt controller
  • shrinker interface / Page mobility and placement
  • siblings / Process relations - key elements
  • sigaction / Signal delivery
  • signal-generation calls / Signal-generation calls
  • signal-management APIs
    • about / Signal-management APIs
    • attribute flags / Signal-management APIs
    • signals, raising from program / Raising signals from a program
    • queued signals, waiting / Waiting for queued signals
  • signal data structures
    • about / Signal data structures
    • signal descriptors / Signal descriptors
    • pending queues / Blocked and pending queues
    • blocked queues / Blocked and pending queues
    • Signal handler descriptor / Signal handler descriptor
  • signal delivery
    • about / Signal generation and delivery, Signal delivery
    • user-mode handlers, executing / Executing user-mode handlers
    • user-mode handler frames, setting up / Setting up user-mode handler frames
  • signal descriptor
    • key elements / Signal descriptor - key elements
    • signals / signal
    • sighand / sighand
    • sigset_t blocked / sigset_t blocked, real_blocked
    • real_blocked / sigset_t blocked, real_blocked
    • pending / pending
    • sas_ss_sp / sas_ss_sp
    • sas_ss_size / sas_ss_size
    • about / Signal descriptors
  • signal disposition
    • about / Signals
    • actions / Signals
    • kernel handler / Signals
    • process defined handler / Signals
  • signal generation / Signal generation and delivery
  • Signal handler descriptor / Signal handler descriptor
  • signals
    • about / Signals
    • raising, from program / Raising signals from a program
  • slab allocator
    • about / Slab allocator
    • kmalloc caches / Kmalloc caches
    • object cache / Object caches
    • object caches / Object caches
    • cache management / Cache management
    • cache layout / Cache layout - generic
    • data structures / Slub data structures
  • slab caches / Slab allocator
  • slab core / Cache management
  • slab descriptor / Cache layout - generic
  • sleeping locks / Mutex locks
  • slub / Cache management
  • softirqs framework / Deferred work, Softirqs
  • software timer
    • about / Software timers and delay functions
    • dynamic timers / Dynamic timers
    • dynamic timers, resources deallocating / Race conditions with dynamic timers
    • dynamic timers, handling / Dynamic timer handling
  • special filesystems
    • about / Special filesystems
    • procfs / Procfs
    • sysfs / Sysfs
    • debugfs / Debugfs
  • spinlocks
    • about / Spinlocks
    • alternate spinlock APIs / Alternate spinlock APIs
    • reader-writer spinlocks / Reader-writer spinlocks
    • interface operations / Reader-writer spinlocks
  • sporadic process / Deadline scheduling class (sporadic task model deadline scheduling)
  • stack / Processes
  • stack frames / Process address space
  • stack pointer (sp) / Setting up user-mode handler frames
  • static priorities / Process priorities
  • struct inode
    • lookup / struct inode
    • create / struct inode
    • link / struct inode
    • unlink / struct inode
    • mkdir / struct inode
    • mknod / struct inode
    • listxattr / struct inode
    • update_time / struct inode
    • other operations / struct inode
  • struct superblock
    • alloc_inode / struct superblock
    • destroy_inode / struct superblock
    • dirty_inode / struct superblock
    • write_inode / struct superblock
    • put_super / struct superblock
    • sync_fs / struct superblock
    • statfs / struct superblock
    • remount_fs / struct superblock
    • umount_begin / struct superblock
    • show_options / struct superblock
    • quota_read / struct superblock
  • superblock / Superblock
    • elements / struct superblock
  • synchronous interrupts / Interrupt signals and vectors
  • sysfs / Sysfs
  • sysfs, subdirectories
    • devices / Sysfs
    • bus type / Sysfs
    • class / Sysfs
    • firmware / Sysfs
    • modules / Sysfs
  • system calls, scheduler
    • about / Scheduler related system calls
    • processor affinity calls / Processor affinity calls
  • system V message queues
    • about / System V message queues
    • data structures / Data structures
  • system V semaphores
    • about / System V semaphores
    • data structures / Data structures
  • system V shared memory
    • about / System V shared memory, Operation interfaces
    • data structures / Data structures

T

  • tags / struct address_space
  • tasklet framework / Deferred work, Tasklets
  • task_struct / Kernel stack
  • tgid field / tgid
  • third extended filesystem (Ext3) / Ext3
  • thread / Linux support for threads
  • threaded interrupt handlers / Threaded interrupt handlers
  • thread_info / thread info, Kernel stack
  • tick
    • about / Programmable interrupt timer (PIT)
    • handling / Tick and interrupt handling
  • tick devices / Tick devices
  • tick rate / Programmable interrupt timer (PIT)
  • time
    • maintaining / Tracking and maintaining time
    • tracking / Tracking and maintaining time
  • timekeeping data structures
    • about / Linux timekeeping data structures, macros, and helper routines
    • jiffies / Jiffies
    • timeval / Timeval and timespec
    • timespec / Timeval and timespec
    • time, tracking / Tracking and maintaining time
    • time, maintaining / Tracking and maintaining time
    • interrupt, handling / Tick and interrupt handling
    • tick, handling / Tick and interrupt handling
    • tick devices / Tick devices
  • timekeeping helper routines / Linux timekeeping data structures, macros, and helper routines
  • timekeeping macros / Linux timekeeping data structures, macros, and helper routines
  • time representation
    • about / Time representation
    • wall time / Time representation
    • process time / Time representation
    • monotonic time / Time representation
  • timespec / Timeval and timespec
  • timestamp counter (TSC) / Timestamp counter (TSC)
  • timeval / Timeval and timespec
  • timing hardware
    • about / Timing hardware
    • real-time clock (RTC) / Real-time clock (RTC)
    • timestamp counter (TSC) / Timestamp counter (TSC)
    • programmable interrupt timer (PIT) / Programmable interrupt timer (PIT)
    • CPU local timer / CPU local timer
    • high precision event timer (HPET) / High-precision event timer (HPET)
    • ACPI power management timer (ACPI PMT) / ACPI power management timer (ACPI PMT)
  • triple-indirection pointer / Data block map
  • type flags
    • about / Type flags
    • list / Type flags
    / Type flags

U

  • udev / Sysfs
  • undoable operations / System V semaphores
  • Uniform Memory Access Architecture (UMA) / Memory nodes
  • unit / Slab allocator
  • unload operation / Load and unload operations
  • unlock routine / Spinlocks
  • unmount operation / Mount and unmount operations
  • unnamed pipes / Pipes and FIFOs
  • user-mode handler frames
    • setting up / Setting up user-mode handler frames
  • user-mode handlers
    • executing / Executing user-mode handlers
  • user namespaces / User namespaces
  • UTS namespaces / UTS namespaces

V

  • vfork() / vfork()
  • virtual addressing / Initialization operations
  • virtual address space / The illusion called address space
  • virtual file system (VFS)
    • about / Common filesystem interface
    • structures / VFS structures and operations
    • operations / VFS structures and operations
    • struct superblock / struct superblock
    • struct inode / struct inode
    • struct dentry / Struct dentry
    • struct file / struct file
  • virtual memory / The illusion called address space
  • virtual memory areas (VMA)
    • managing / Managing virtual memory areas
    • locating / Locating a VMA
    • regions, merging / Merging VMA regions
  • vmalloc / Vmalloc
  • vmalloc range / The issue of stack overflow

W

  • wait/wound mutexes
    • about / Wait/wound mutexes
    • operation interfaces / Operation interfaces:
  • wall time / Time representation
  • watermark modifiers
    • about / GFP mask, Watermark modifiers
    • __GFP_ATOMIC / Watermark modifiers
    • __GFP_HIGH / Watermark modifiers
    • __GFP_MEMALLOC / Watermark modifiers
    • __GFP_NOMEMALLOC / Watermark modifiers
  • workqueues (wqs) framework
    • about / Deferred work, Workqueues
    • interface API / Interface API
    • creating / Creating dedicated workqueues
    • WQ_UNBOUND / Creating dedicated workqueues
    • WQ_FREEZABLE / Creating dedicated workqueues
    • WQ_MEM_RECLAIM / Creating dedicated workqueues
    • WQ_HIGHPRI / Creating dedicated workqueues
    • WQ_CPU_INTENSIVE / Creating dedicated workqueues
    • WQ_POWER_EFFICIENT / Creating dedicated workqueues
  • wrapper / Page frame allocator
  • writeback mode / Ext3

Z

  • zone descriptor structure
    • fields / Zone descriptor structure
    • watermark / Zone descriptor structure
    • nr_reserved_highatomic / Zone descriptor structure
    • lowmem_reserve / Zone descriptor structure
    • zone_pgdat / Zone descriptor structure
    • pageset / Zone descriptor structure
    • free_area / Zone descriptor structure
    • flags / Zone descriptor structure
    • zone_start_pfn / Zone descriptor structure
    • vm_stat / Zone descriptor structure
  • zone modifiers / Zone modifiers
  • zones
    • about / Zones and nodes, Memory zones
    • memory zones / Memory zones
lock icon The rest of the chapter is locked
arrow left Previous Section
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at £13.99/month. Cancel anytime
Visually different images