Linux Kernel Architecture

(Jacob Rumans) #1
Mauerer bindex.tex V1 - 09/05/2008 9:44am Page 1312

kernel, introduction to(continued)


kernel, introduction to(continued)


page tables, 11–13
processes, task switching, and
scheduling, 4
pros/cons of, 28–29
summary, 33
system calls, 17
tasks of, 2–3
timing, 16
Unix processes, 4–7

kernel daemons.Seekernel threads


kernel development process


academia and, 1281–1282
coding styles, 1274–1276
command chain, 1269
community processes, 1284–1287
development cycle, 1269–1272
documenting code, 1276–1277
examples of improvements to Linux,
1282–1284
online resources and, 1272–1273
overview of, 1267–1268
patches and, 1273
portability, 1276
submission and review processes,
1277–1281
summary, 1287
technical issues and, 1273
tree structure and, 1268

kernel mode, 847–891


calling flow handler routines, 870–872
calling high-level ISR, 872–873
completions, 887–888
controller hardware settings, 860–861
data structures, 853–856
entry and exit tasks, 850–852
flow handling, 861–864
freeing IRQs, 865–866
handler function representation, 859–860
hardware IRQs, 849–850
implementing handler routines, 873–874
interrupt flow handling, 860

interrupt handlers, 852
interrupt types, 848–849
IRQ controller abstraction, 856–859
IRQ stacks, 869
overview of, 847
preemptive multitasking and, 40–41
privilege levels and, 8–10
processing interrupts, 850
registering interrupts, 866
registering IRQs, 864–865
servicing IRQs, 866–867
softIRQ daemon, 878–879
software interrupts (softIRQs), 875–877
starting softIRQ processing, 877–878
summary, 889–891
switching between user and kernel mode,
833, 867–869
tasklets, 879–882
wait queues, 882–887
work queues, 889–891
kernel page faults, 341–343
kernel preemption
overview of, 41
scheduler, 127–131
kernel space
copying data between userspace and,
344–345
defined, 11
divisions of virtual address space,
7–8
kernel threads, 77–79
address spaces and, 9–10
implementing, 78–79
tasks performed by, 77
types of, 77–78
kfree
freeing memory, 259
freeing objects, 280
general caches and, 283
implementing, 285
KGDB, 1172–1173
KiB, units of measurements, 7
Free download pdf