Colophon

Our look is the result of reader comments, our own experimentation, and feedback from distribution channels. Distinctive covers complement our distinctive approach to technical topics, breathing personality and life into potentially dry subjects.

Mary Brady was the production editor and copyeditor for Understanding the Linux Kernel, Second Edition. Ann Schirmer was the proofreader. Sarah Sherman and Claire Cloutier provided quality control. Judy Hoer and Genevieve d'Entremont provided production assistance. John Bickelhaupt wrote the index.

Edie Freedman designed the cover of this book, based on a series design by herself and Hanna Dyer. The cover image of a man with a bubble is a 19th-century engraving from the Dover Pictorial Archive. Emma Colby produced the cover layout with QuarkXPress 4.1 using Adobe's ITC Garamond font.

David Futato designed the interior layout. The chapter opening images are from the Dover Pictorial Archive, Marvels of the New West: A Vivid Portrayal of the Stupendous Marvels in the Vast Wonderland West of the Missouri River, by William Thayer (The Henry Bill Publishing Co., 1888), and The Pioneer History of America: A Popular Account of the Heroes and Adventures, by Augustus Lynch Mason, A.M. (The Jones Brothers Publishing Company, 1884). This book was converted to FrameMaker 5.5.6 with a format conversion tool created by Erik Ray, Jason McIntosh, Neil Walls, and Mike Sierra that uses Perl and XML technologies. The text font is Linotype Birka; the heading font is Adobe Myriad Condensed; and the code font is LucasFont's TheSans Mono Condensed. The illustrations that appear in the book were produced by Robert Romano and Jessamyn Read using Macromedia FreeHand 9 and Adobe Photoshop 6.

The online edition of this book was created by the Safari production group (John Chodacki, Becki Maisch, and Madeleine Newell) using a set of Frame-to-XML conversion and cleanup tools written and maintained by Erik Ray, Benn Salter, John Chodacki, and Jeff Liggett.

I [email protected] RuBoard

[SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] H] [U] [V] [W] [X]

I [email protected] RuBoard

[SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [J] [U] [V] [W] [X] [Z]

. (period) and ..(double period) notation 80 x 86 processors clocks exceptions I/O architecture memory

Task State Segment 802.3 standard

I [email protected] RuBoard

[SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [J] [U] [V] [W] [X] [Z]

aborts absolute pathnames Accelerated Graphics Port (AGP) access rights

ACLs (access control lists) active lists active swap areas active transactions address buses address resolution Address Resolution Protocol (ARP) address spaces 2nd creating deleting address space objects page descriptors addresses adjacent bytes

Advanced Power Management (APM)

Advanced Programmable Interrupt Controllers [See APICs]

advisory file locks

AGP (Accelerated Graphics Port)

alignment factors anonymous mapping

APICs (Advanced Programmable Interrupt Controllers) 2nd CPU local timer local, interrupt handlers for timers, synchronization APM (Advanced Power Management) arch directory

ARP (Address Resolution Protocol) arp cache

Assembler OUTput executable format (a.out) asynchronous buffer heads asynchronous interrupts asynchronous notifications asynchronous read-ahead operations 2nd atomic operation handles 2nd atomic operations 2nd AVL tree

I [email protected] RuBoard

[SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [I] [U] [V] [W] [X] [Z]

base priority base time quanta batch processes bdflush kernel thread big kernel locks (BKLs)

big reader read/write spin locks

BIOS

bootstrap process Real Mode addressing, usage of bitmap bitmap caches block clustering block device descriptors block device drivers 2nd [See also I/O devices] architecture low-level driver descriptors request descriptors request queue descriptors block I/O operations blocks buffers buffer heads data structures for default file operation methods initializing kernel, monitoring by low-level request handling page I/O operations requesting function sectors block device files prepare write and commit write methods block device inode block device request block fragmentation block group block I/O operation blocked signals modifying blocks filetypes, usage by preallocation bootstrap bottom halves 2nd 3rd imminent obsolescence of TIMER BH bottom half BSD sockets methods bss segments buddy system algorithm blocks, allocation of freeing of data structures example slab allocator and buffer caches 2nd bdflush kernel thread buffer head data structures buffer pages dirty buffers, flushing to disk dirty buffers, writing to disk get blk function I/O operations, usage by kupdate kernel thread buffer heads for cached buffers unused buffer heads buffer pages buffers bus addresses bus mouse interface buses Busy bit

I [email protected] RuBoard

[SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [I] [U] [V] [W] [X] [Z]

cache controllers write-through and write-back cache descriptors cache entry tags cache hits cache lines cache misses cache snooping caches 2nd allocating slabs to slabs, releasing from types of character device drivers character device files child filesystems clocks

Code Segment Descriptors code segment registers Columbus Unix command-line arguments 2nd commit write method common file model object types completions 2nd concurrency level context switch control buses control registers 2nd Copy On Write [See COW] core dump

COW (Copy On Write)

CPL (Current Privilege Level) 2nd 3rd segment updating and CPU local timer CPU resource limit CPU-bound processes cr0 control register cr3 control register critical regions 2nd current macro

Current Privilege Level [See CPL] current working directory custom I/O interfaces 2nd

I [email protected] RuBoard

[SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Z]

data buses

Data Segment Descriptors data segment registers dates, updating by the kernel deadlocked state default routers defective page slots deferrable functions activation of disabling execution of initialization of operations performed on demand paging 2nd limitations for memory mapping dentry caches objects 2nd operations dependencies

Descriptor Privilege Level (DPL) 2nd destination caches devfs device files 2nd device controllers device drivers 2nd 3rd [See also I/O devices] buffering strategies IRQ-configuration registering resource functions device files examples

Virtual Filesystem, handling by device plugging device unplugging direct access buffers direct I/O transfers direct access buffers direct mapped caches

Direct Memory Access Controller [See DMAC] directories dirty buffers, writing to disk disk caches 2nd buffer caches [See buffer caches] page caches [See page caches] disk controllers disk interface disk-based filesystems write methods of displacement of a logical address DMAC (Direct Memory Access Controller) doubly linked lists runqueues wait queues DPL (Descriptor Privilege Level) 2nd dynamic address checking, exception tables generating dynamic caching mode dynamic distribution of IRQs dynamic memory dynamic priority dynamic timers example handling race conditions and I [email protected] RuBoard

[SYMBOL] [A] [B] [C] [D] [E ] [F] [G] [H] [I] [J] [K [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Z]

e2fsck external program elevator algorithm

ELF (Executable and Linking Format) emulation environment variables 2nd epochs errno variable ESCAPE instructions esp registers Ethernet exception handling exception handlers down( ) and entering and leaving nested execution of exception tables generating exceptions 2nd 3rd hardware handling of process switching, contrasted with termination phase types of exclusive processes Executable and Linking Format (ELF) executable files 2nd Execute access rights execution context execution domain descriptors exit() library function Ext FS (Extended Filesystem) Ext2 (Second Extended Filesystem) bitmap bitmap caches block groups blocks, usage by file types creating data blocks addressing allocating file holes releasing device files, pipes, and sockets directories disk data structures disk space management features group descriptors 2nd inode tables inodes creating deleting memory data structures filesystem images RAM copy methods file operations inode operations superblock operations partition boot sector preallocation of blocks regular files superblocks 2nd symbolic links VFS superblock data Ext3 filesystem atomic operation handles journaling journaling block device layer journaling filesystem logging metadata transactions Extended Filesystem (Ext FS) extended frames extended paging external device external fragmentation external object descriptors external slab descriptors

I [email protected] RuBoard

[SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [I] [U] [V] [W] [X] [Z]

f00f bug faults

FIB (Forwarding Information Base) FIFOs creating and opening file operations pipes, contrasted with file block numbers file control blocks file descriptors 2nd file handles file hard links file holes file locking file modes file objects 2nd file operations 2nd file pointers 2nd file soft links files accesses and memory-mapping accessing 2nd direct I/O transfers [See direct I/O transfers] memory mapping [See memory mapping] addressing of closing deleting device files filename length fragmentation opening reading from page basis of read operation descriptors read-ahead technique [See read-ahead of files] renaming undeletion of writing to 2nd prepare write and commit write methods write methods, disk-based filesystems filesystem control blocks filesystem type registration filesystems 2nd 3rd [See also Virtual Filesystem] Ext2 [See Ext2] Ext3 [See Ext3 filesystem] mounting generic filesystems root filesystem special filesystems types

Unix filesystem unmounting filetypes fix-mapped linear addresses fixed preemption point fixed-limit caching mode floating-point unit (FPU) floppy disks, formatting for Linux flushing dirty buffers system calls for focus processors

Forwarding Information Base (FIB) FPU (floating-point unit) frame buffer frames 2nd extended frames free page frame full-duplex pipe fully associative caches function footprints

I [email protected] RuBoard

[SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [J] [U] [V] [W] [X] [Z]

G granularity flags

GART (Graphics Address Remapping Table) GDT (Global Descriptor Table) general caches general-purpose I/O interfaces 2nd GID (Group ID) Global Descriptor Table (GDT) global interrupt disabling concurrency and global kernel locks

GNU/Linux kernel vs. commercial distributions goal graphic interface

Graphics Address Remapping Table (GART) Group ID (GID) 2nd group leader

I [email protected] RuBoard

[SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [I] [U] [V] [W] [X]

half-duplex pipes hardware cache memory hardware caches handling lines hardware clocks hardware context hardware context switches hardware error codes hardware header cache hash chaining hash collision heaps 2nd managing hidden scheduling high-level driver host identifiers hot spot hyper-threaded microprocessors I [email protected] RuBoard

[SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [I] [U] [V] [W] [X] [Z]

I/O APIC (Advanced Programmable Interrupt Controller)

initialization at bootstrap I/O architecture I/O buses I/O devices block device drivers [See block device drivers] character device drivers device controllers device drivers buffering strategies registering resources device files

DMAC (Direct Memory Access Controller)

I/O interfaces

I/O operations, monitoring

I/O ports

I/O shared memory accessing address mapping kernel, levels of support by I/O interrupt handlers I/O interrupt handling I/O-bound processes idtr CPU registers IDIs (Interrupt Descriptor Tables) initializing preliminary initialization IEEE 802 standards immutable files inactive lists include directory INEI sockets methods info structure init process 2nd initialized data segments inode objects 2nd inode operations inode semaphores inode tables inodes caches numbers input registers insmod program int instruction interactive processes internal device internal fragmentation internal object descriptors internal slab descriptors Internet

Internet Protocol Suite (IPS) network architecture interpreted scripts interprocess communications 2nd FIFOs creating and opening file operations pipes creating and destroying data structures limitations of read and write channels reading from writing into System V IPC [See System V IPC] Unix, mechanisms available in interprocessor interrupts Interrupt Controllers Interrupt Descriptor Tables [See IDTs] interrupt descriptors interrupt gates 2nd 3rd interrupt handling interrupt handlers for local timers nested execution of registers, saving vs exception handlers interrupt mode Interrupt Redirection Tables Interrupt ReQuests [See IRQs] interrupt service routines (ISRs) 2nd interrupt signals 2nd interrupt vectors interrupts actions following bottom halves disabling 2nd hardware handling of

IRQs (Interrupt ReQuests) and laptops and multiprocessor systems, handling on numerical identification process switching, contrasted with termination phase top halves types of vectors interval timers

IPC [See System V IPC][See also interprocess communications!2nd [See System V IPC] IPS (Internet Protocol Suite) network architecture IRQs (Interrupt ReQuests)

allocation of IRQ lines data structures I/O APIC and line selection, IRQ configurable devices ISA buses, memory mapping ISRs (interrupt service routines) 2nd 3rd

I [email protected] RuBoard

[SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [I] [U] [V] [W] [X] [Z]

JBD (Journaling Block Device) jiffies timer implementation and journal journaling 2nd Journaling Block Device (JBD) journaling block device layer journaling filesystems

I [email protected] RuBoard

[SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [I] [U] [V] [W] [X] [Z]

kapm kernel code segment kernel control paths 2nd 3rd interleaving conditions Linux, interleaving in race conditions and kernel data segment kernel master Page Global Directory Kernel Memory Allocator (KMA) Kernel Mode 2nd 3rd exceptions in

User Mode, contrasted with kernel oops 2nd kernel page cache self-caching applications and kernel page tables kernel requests, issuing of kernel semaphores acquiring releasing kernel symbol table kernel threads 2nd kernel wrapper routines 2nd kernels 2nd 3rd code profilers concurrency and global interrupt disabling concurrency level

CPU activity, tracking by data structures, synchronization of access destination caches

GNU/Linux vs. commercial distributions interprocess communications [See also interprocess communications]!^

interrupt handling kernel threads

Linux compared to Unix loading and execution mappings, high-memory page frames modules nonpreemptive preemptive vs. nonpreemptive priority of process management processes, contrasted with read/write semaphores, handling of signals usage of source code and instruction order source code directory tree (Linux)

synchronization conditions not requiring techniques [See synchronization primitives] threads, memory descriptors of timekeeping Unix kernels demand paging device drivers reentrant kernels keyboard interface KMA (Kernel Memory Allocator) kswapd kernel threads 2nd kupdate kernel threads

I [email protected] RuBoard

[SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [I] [U] [V] [W] [X]

L1-caches L2-caches lazy ILB mode ld.so

LDTDs (Local Descriptor Table Descriptors) LDIs (Local Descriptor Tables) 2nd 3rd lease locks

Least Recently Used (LRU) lists [See LRU lists] left children, red-black trees lightweight processes 2nd creation in Linux linear address fields linear address intervals allocating releasing memory regions, scanning Page Tables, updating linear addresses and noncontiguous memory areas links Linux advantages emulation of other operating systems filesystems

Unix filesystem and hardware dependency kernel kernel control paths, interleaving kernel threading lightweight processes, reliance on memory barriers paging platforms

POSIX compliance segmentation segments used source code [See source code] timekeeping [See timekeeping architecture] Unix kernel and version numbering Linux kernels [See kernels] Linuxlhreads library local APICs arbitration interrupt handlers Local Descriptor Table Descriptors (LDTDs) Local Descriptor Tables (LDIs) 2nd local interrupts, disabling local TLB

locality principle locking locks, global kernel log record logical addresses logical block number login name login sessions loopback low-level driver low-level driver descriptor LRU (Least Recently Used) lists pages, moving across

I [email protected] RuBoard

[SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [I] [U] [V] [W] [X] [Z]

magic structure major faults major numbers mandatory file locks maskable interrupts masked signals masking of deferrable functions Master Boot Record (MBR) master kernel Page Global Directory master memory descriptor mathematical coprocessors MBR (Master Boot Record) memory initialization of data structures for management buddy system algorithm page frames permanent kernel mappings swapping [See swapping] temporary kernel mappings memory addresses memory addressing memory alignment memory allocation and demand paging memory arbiters 2nd 3rd memory area descriptors memory area management cache descriptors caches interface, slab allocator and buddy system algorithm multiprocessor systems noncontiguous areas [See noncontiguous memory area management] object descriptors aligning objects in memory slab allocators slab coloring slab descriptors slabs allocating to caches releasing from caches memory barriers memory descriptors fields of kernel threads mmap cache read/write semaphores red-black trees memory fragmentation Memory Management Unit (MMU)

memory mapping 2nd creating data structures demand paging for destroying flushing dirty pages to disk memory nodes memory regions 2nd 3rd access rights assignment to processes data structures fields flags handling finding a free interval finding a region that ovelaps an interval finding the closest region to an address inserting a region in the memory descriptor list linear address intervals merging pages, relation to system calls for creation, deletion memory swapping [See swapping] memory zones message queues metadata microkernels microprocessors, hyper-threaded minor faults minor numbers mke2fs utility program mkswap command MMU (Memory Management Unit) MMX instructions modprobe program modules 2nd 3rd advantages data structures and dependencies exception tables exporting of symbols implementation licenses linking and unlinking linking on demand module objects module usage counters request module function mount points mounted filesystem descriptors multiprocessing multiprocessor systems caches and interrupt disabling and interrupt handling on memory and memory area management nonpreemptive kernels and processes, scheduling on timekeeping architecture initialization multiprogramming multithreaded applications 2nd multiuser systems

I [email protected] RuBoard

[SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [I] [U] [V] [W] [X] [Z]

N-way set associative caches named pipes neighbor caches Net-4

network addresses network filesystems network interface network interface cards (NICs)

network masks networking data structures BSD sockets destination caches Forwarding Information Base (FIB) INEI sockets neighbor caches NICs (network interface cards) routing caches socket buffers frames

IP (Internet Protocol layer) network architectures Linux, supported by network cards 2nd receiving packets from sending packets to network layers 2nd payload programming for networks protocols sockets initialization static routing table system calls related to data link layer network layers transport layer zones

NGPI (Next Generation Posix Threading Package) NMI interrupts nodes, red-black trees noncontiguous memory area management allocating noncontiguous area descriptors linear addresses

Page Fault exception handlers and Page Faults and releasing memory area nonexclusive processes nonmaskable interrupts nonpreemptive kernels multiprocessor systems and nonpreemptive processes NUMA (Non-Uniform Memory Access) 2nd nodes nodes descriptors I [email protected] RuBoard

[SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [I] [U] [V] [W] [X]

object descriptors object files objects caches, allocating in multiprocessors uniprocessors caches, releasing from multiprocessors uniprocessors general purpose offsets, of logical addresses old-style device files 2nd older siblings operating systems execution modes output registers owners

I [email protected] RuBoard

[SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [I] [U] [V] [W] [X] [Z]

PAEs (Physical Address Extensions) 2nd Page Cache Disable (PCD) flag page caches 2nd address space objects data structures direct I/O transfers, bypassing with handling functions I/O operations, usage by page descriptor fields page hash tables page descriptor lists page descriptors Page Directories Page Fault exceptions 2nd Page Fault exception handlers Copy On Write demand paging faulty addresses inside address space, handling outside address space, handling noncontiguous memory area accesses, handling process flow Page Faults, noncontiguous memory areas and page frame reclaiming algorithm from the dentry cache functions from the inode cache kswapd kernel threads Least Recently Used (LRU) lists pages, moving across purpose page frames 2nd avoiding race conditions on free page frame high-memory, kernel mapping of management memory zones page descriptors processes, sharing among request and release of reserved page I/O operation page slots defective slots functions for allocation and release of Page Tables 2nd handling for kernels provisional for processes protection bits pages

LRU lists, moving across memory regions, relation to swapping [See swapping] paging demand paging in hardware in Linux vs. segmentation paging units parallel ports parent filesystems password pathname lookup pathnames payload

PCD (Page Cache Disable) flag PCI buses, memory mapping PCMCIA interfaces pending blocked signals pending signal queues pending signals Pentium processors caching f00f bug three-level paging and periods in directory notation permanent kernel mappings temporary kernal mappings, contrasted with personalities

Linux, supported by Physical Address Extensions (PAEs) 2nd physical addresses physical pages PID (process ID) pipe buffer pipe size pipes creating and destroying data structures FIFOs, contrasted with limitations of read and write channels reading from writing into PIT (Programmable Interval Timer) interrupt service routine multiprocessor systems and polling mode ports

I/O ports

POSIX (Portable Operating Systems based on Unix) signals

Power-On Self-Test (POST) preemptive kernels preemptive processes 2nd prepare write method primitive semaphores priority inversion private memory mapping process 0 process 1

process capabilities process credentials process descriptors 2nd 3rd hardware context, saving of memory, storage in process 0

process descriptor pointers process lists doubly linked lists representation process group ID process groups process ID (PID) process page tables process switches hardware context interrupt handling, contrasted with kernels, performance by process time-outs process/kernel model processes 2nd 3rd 4th address spaces 2nd creating deleting functions and macros for accessing linear addresses children 2nd communication between [See interprocess communication]

creating destroying execution domains, specification files associated with files, reading from

I/O-bound or CPU-bound implementation init kernel stack representation lightweight processes creation in Linux management memory regions, assignment circumstances memory requests original parents page frames, sharing of parents 2nd personality fields preemption of program execution [See program execution]

quantum duration removal resource limits scheduling algorithm [See scheduling algorithm]

base priority base time quanta data structures dynamic priority epochs evaluating priority multiprocessor systems policy priority, assignment of 2nd real-time processes, system calls related to schedule function static priority system calls related to 2nd signals, response to sleeping processes suspending swapper termination time sharing types of younger siblings zombies processor-detected exceptions profile program counters program execution command-line arguments environment variables exec functions executable files executable formats execution domains libraries process capabilities process memory regions segments program interpreters Programmable Interval Iimer (PII) programmed exceptions protected mode protocols provisional Page Global Directory pthread (POSIX thread) libraries PWI (Page Write-Ihrough) cache

[SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [J] [U] [V] [W] [X] [Z]

quanta 2nd 3rd quantum duration

I [email protected] RuBoard

[SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Z]

race conditions dynamic timers and prevention swap caches and RAM (random access memory) dynamic memory and swapping [See swapping] Unix, usage in random access memory [See RAM] Read access rights read file locks read operation descriptors read-ahead algorithm read-ahead groups read-ahead of files asynchronous read-ahead operations 2nd synchronous read-ahead operations 2nd read-ahead windows read/write semaphores read/write spin locks real mode

Real Mode addresses Real Time Clock (RTC) real-time processes system calls related to real-time signals 2nd red-black trees reentrant functions reentrant kernels synchronization interrupt disabling reference counters registering a device driver regular files regular signals relative pathnames request descriptors request queues Requestor Privilege Level reserved page frames resource resource limits right children, red-black trees root root directories 2nd root filesystems 2nd mounting routers routing caches routing data structures routing zone runqueues

I [email protected] RuBoard

[SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [I] [U] [V] [W] [X] [Z]

S system flags schedule function direct invocation lazy invocation process switches actions performed after actions performed before scheduler scheduling algorithm

I/O-bound process boosting, effectiveness of performance of real-time application support scaling system load and scheduling policy

SCSIs (Small Computer System Interfaces) bus standard

Second Extended Filesystem [See Ext2] sectors

Segment Descriptors Segment Selectors segmentation in Linux vs. paging segmentation registers segmentation units 2nd segments

CPL (Current Privilege Level) and Linux, used in of logical addresses self-caching applications semaphores acquiring kernel semaphores race conditions, preventing with read/write semaphores releasing System V IPC serial ports Set Group ID (sgid) Set User ID (suid) setuid programs sgid (Set Group ID) share-mode mandatory looks shared libraries shared linked lists, insertion of elements into shared memory shared memory mapping shared page swapping signals 2nd blocked signals, modifying of blocking of catching frames, setting up signal flags, evaluating signal handlers, starting and terminating changing the action of data structures operations on default actions delivering 2nd descriptors exception handlers executing default actions for forcing functions generating 2nd ignoring

Linux 2.4, first 31 in masking of pending blocked signals, examining pending signal queues pending signals phases of transmission process descriptor fields for handling processes, response of processes, suspending purpose real-time signals real-time signals, system calls for regular signals sender codes sending functions SIG prefix SIGKILL SIGSTOP system calls for handling of reexecuting slab allocators buddy system algorithm, interfacing with slab cache list semaphores slab caches slab coloring slab descriptors slab object constructors slab object destructors slab objects slabs caches, allocating to realeasing from caches sleeping processes slices slot indexes slot usage sequence numbers slots 2nd

Small Computer System Interfaces [See SCSIs] SMP (symmetric multiprocessing) 2nd 3rd systems, timekeeping in socket buffers socket control messages sockets initialization softirqs 2nd tasklets, contrasted with software interrupts 2nd software timers source code

GNU/Linux kernel vs. commercial distributions source code and instruction order source code directory tree special filesystems 2nd specific caches spin locks 2nd global kernel locks SSE extensions (Streaming SIMD Extensions) stack segment registers stack segments static distribution of IRQs static libraries static priority static routing table static timers status registers sticky flag strategy routine suid (Set User ID) superblock superblock objects 2nd superblock operations superformat utility program superuser supervisor swap areas 2nd activation activation service routine deactivation service routine descriptors format multiple areas, advantages page slots allocating and releasing prioritization swap-in and updating function swap caches helper functions swapoff program swapon program swapped-out page identifiers page table value entries swapper 2nd 3rd timesharing and swapping drawbacks pages choosing distribution functions for

Least Recently Used (LRU) algorithms page frame reclaiming [See page frame reclaiming] selection swapping in swapping out timing of transferring of process address space purpose share page swapping swap areas [See swap areas] symbolic links 2nd symmetric multiprocessing [See SMP] synchronization primitives atomic operations choosing among, considerations completions kernel data structures, access using memory barriers semaphores spin locks synchronous errors or exceptions synchronous interrupts synchronous read-ahead operations 2nd system administrators system bootstrap

I/O APIC initialization system call dispatch tables system call numbers system call service routines system calls 2nd dynamic address checking file-handling handler and service routines initializing kernel wrapper routines networking, related to parameters passing verifying POSIX APIs and process address spaces, accessing process scheduling, for 2nd processes, suspending real-time processes, related to reexecuting signals 2nd changing action of system call function timing measurements, related to Virtual Filesystem, handled by system concurrency level system gates system load System Segment system startup BIOS

boot loader Linux boot from floppy disk from hard disk system statistics, updating by kernel

System V IPC (Interprocess Communication) [See also interprocess communications]2nd 3rd IPC identifiers IPC keys

IPC resources 2nd 3rd IPC shared memory region messages semaphores shared memory data structures demand paging page swapping shm filesystem system calls

I [email protected] RuBoard

[SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X]

Table Indicator task gates task priority registers task queues

Task State Segment Descriptors (TSSDs) 2nd

Task State Segments (TSSs) 2nd task switch tasklet descriptors tasklets 2nd softirqs, contrasted with tasks

TCP/IP network architecture temporary kernel mappings permanent kernel mappings, contrasted with text segments thread groups threads 2nd three-level paging 2nd

Pentium processors and ticks time multiplexing time quantum time sharing in the CPU

Time Stamp Counter time-outs time-sharing timekeeping system calls related to time and date updates timekeeping architecture initialization, multiprocessor systems multiprocessor systems uniprocessor systems timer interrupts timers real-time applications and timing measurements via hardware types

TLBs (Translation Lookaside Buffers)

handling top halves Torvalds, Linus transactions

Translation Lookaside Buffers [See TLBs]

trap gates 2nd traps

TSC (Time Stamp Counter) two-level paging

[SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [I] [U] [V] [W] [X] [Z]

UID (User ID) umask uniprocessor systems timekeeping architecture unitialized data segments universal serial buses (USBs) Unix process management System V interprocess communication Unix filesystem access rights directory structure file-handling system calls files file types Unix kernels [See under kernels] Unix operating systems

Linux and USBs (universal serial buses) user code segment user data segment user group User ID (UID) 2nd User Mode 2nd exceptions in

Kernel Mode, contrasted with memory, allocation to processes, synchronization of [See interprocess communications] system calls [See system calls] user threads

I [email protected] RuBoard

[SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [I] [U] [V] [W] [X] [Z]

vectors

VESA Local Buses (VLBs), memory mapping virtual address space virtual addresses virtual block devices Virtual Filesystem (VFS) common file model data structures dentry objects file objects inode objects processes superblock objects description device files, handling of Ext2 superblock data file locking filesystems types objects pathname lookup superblock operations supported filesystems system calls implementation virtual filesystems virtual memory

I [email protected] RuBoard

[SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [I] [U] [V] [W] [X] [Z]

wait queue head wait queues watchdog system windows, kernel address space wrapper routines [See also kernel wrapper routines]2nd Write access rights write file locks

I [email protected] RuBoard

[SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [I] [U] [V] [W] [X] [Z]

XMM registers I [email protected] RuBoard

[SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X]

zero page zombie processes zone modifier zones 2nd size and addressing

I [email protected] RuBoard

► REGISTER ■ ► LOG IN/LOG OUT

Was this article helpful?

0 0
Photoshop CS Mastery

Photoshop CS Mastery

Artists, photographers, graphic artists and designers. In fact anyone needing a top-notch solution for picture management and editing. Set Your Photographic Creativity Free. Master Adobe Photoshop Once and For All - Create Flawless, Dramatic Images Using The Tools The Professionals Choose. Get My Video Tutorials and Retain More Information About Adobe Photoshop.

Get My Free Videos


Post a comment