Introduction | p. xv |
Linux Core Kernel Code | |
Linux Core Kernel Code | p. 3 |
arch/i386/kernel/entry.S | p. 3 |
arch/i386/kernel/init_task.c | p. 9 |
arch/i386/kernel/irq.c | p. 9 |
arch/i386/kernel/irq.h | p. 20 |
arch/i386/kernel/process.c | p. 23 |
arch/i386/kernel/signal.c | p. 31 |
arch/i386/kernel/smp.c | p. 39 |
arch/i386/kernel/time.c | p. 59 |
arch/i386/kernel/traps.c | p. 66 |
arch/i386/lib/delay.c | p. 74 |
arch/i386/mm/fault.c | p. 75 |
arch/i386/mm/init.c | p. 77 |
fs/binfmt_elf.c | p. 83 |
fs/binfmt_java.c | p. 97 |
fs/exec.c | p. 99 |
include/asm-generic/smplock.h | p. 108 |
include/asm-i386/atomic.h | p. 109 |
include/asm-i386/current.h | p. 110 |
include/asm-i386/dma.h | p. 110 |
include/asm-i386/elf.h | p. 114 |
include/asm-i386/hardirq.h | p. 115 |
include/asm-i386/page.h | p. 115 |
include/asm-i386/pgtable.h | p. 116 |
include/asm-i386/ptrace.h | p. 123 |
include/asm-i386/semaphore.h | p. 124 |
include/asm-i386/shmparam.h | p. 125 |
include/asm-i386/sigcontext.h | p. 126 |
include/asm-i386/siginfo.h | p. 126 |
include/asm-i386/signal.h | p. 128 |
include/asm-i386/smp.h | p. 131 |
include/asm-i386/softirq.h | p. 133 |
include/asm-i386/spinlock.h | p. 134 |
include/asm-i386/system.h | p. 138 |
include/asm-i386/uaccess.h | p. 140 |
include/linux/binfmts.h | p. 147 |
include/linux/capability.h | p. 148 |
include/linux/elf.h | p. 151 |
include/linux/elfcore.h | p. 157 |
include/linux/interrupt.h | p. 158 |
include/linux/kernel.h | p. 159 |
include/linux/kernel_stat.h | p. 160 |
include/linux/limits.h | p. 161 |
include/linux/mm.h | p. 161 |
include/linux/module.h | p. 165 |
include/linux/msg.h | p. 169 |
include/linux/personality.h | p. 170 |
include/linux/reboot.h | p. 170 |
include/linux/resource.h | p. 171 |
include/linux/sched.h | p. 172 |
include/linux/sem.h | p. 180 |
include/linux/shm.h | p. 181 |
include/linux/signal.h | p. 182 |
include/linux/slab.h | p. 185 |
include/linux/smp.h | p. 185 |
include/linux/smp_lock.h | p. 186 |
include/linux/swap.h | p. 186 |
include/linux/swapctl.h | p. 188 |
include/linux/sysctl.h | p. 189 |
include/linux/tasks.h | p. 195 |
include/linux/time.h | p. 195 |
include/linux/timer.h | p. 196 |
include/linux/times.h | p. 197 |
include/linux/tqueue.h | p. 197 |
include/linux/wait.h | p. 199 |
init/main.c | p. 199 |
init/version.c | p. 213 |
ipc/msg.c | p. 214 |
ipc/sem.c | p. 219 |
ipc/shm.c | p. 228 |
ipc/util.c | p. 237 |
kernel/capability.c | p. 238 |
kernel/dma.c | p. 241 |
kernel/exec_domain.c | p. 242 |
kernel/exit.c | p. 243 |
kernel/fork.c | p. 249 |
kernel/info.c | p. 256 |
kernel/itimer.c | p. 256 |
kernel/kmod.c | p. 258 |
kernel/module.c | p. 260 |
kernel/panic.c | p. 271 |
kernel/printk.c | p. 272 |
kernel/sched.c | p. 276 |
kernel/signal.c | p. 296 |
kernel/softirq.c | p. 308 |
kernel/sys.c | p. 308 |
kernel/sysctl.c | p. 319 |
kernel/time.c | p. 331 |
mm/memory.c | p. 336 |
mm/mlock.c | p. 346 |
mm/mmap.c | p. 349 |
mm/mprotect.c | p. 359 |
mm/mremap.c | p. 362 |
mm/page_alloc.c | p. 364 |
mm/page_io.c | p. 369 |
mm/slab.c | p. 373 |
mm/swap.c | p. 395 |
mm/swap_state.c | p. 396 |
mm/swapfile.c | p. 399 |
mm/vmalloc.c | p. 407 |
mm/vmscan.c | p. 410 |
Linux Core Kernel Commentary | |
Introduction To Linux | p. 419 |
A Brief History Of Linux (And Unix) | p. 419 |
The Linux Development Process | p. 421 |
A First Look At The Code | p. 423 |
Some Characteristics Of The Linux Source Code | p. 423 |
Some Sample Code | p. 424 |
Configuring And Compiling The Kernel | p. 431 |
Kernel Architecture Overview | p. 435 |
Kernel Design Goals | p. 435 |
A First Look At The Kernel's Architecture | p. 436 |
A Closer Look At The Kernel's Architecture | p. 437 |
So, Is It Layered, Or Modular, Or What? | p. 437 |
The Relationship Between Design And Implementation | p. 439 |
System Initialization | p. 443 |
Booting The PC | p. 443 |
Initializing The Linux Kernel | p. 444 |
init | p. 448 |
System Calls | p. 451 |
What Is A System Call? | p. 451 |
How System Calls Are Invoked | p. 452 |
Some Example System Calls | p. 455 |
Signals, Interrupts, And Time | p. 459 |
A Brief Note About Locks | p. 459 |
Signals | p. 459 |
Interrupts | p. 470 |
Time | p. 476 |
Processes And Threads | p. 479 |
Scheduling And Timeslices | p. 479 |
Realtime Processes | p. 479 |
Priorities | p. 479 |
Process IDs (PIDs) | p. 480 |
Reference Counting | p. 480 |
Capabilities | p. 480 |
How Processes Are Represented In The Kernel | p. 481 |
Where Processes Come From: fork And __ clone | p. 483 |
Running A New Program | p. 484 |
Executable Formats | p. 486 |
Scheduling: See How They Run! | p. 487 |
Respecting Limits | p. 492 |
All Good Things Must Come To An End--And Here's How They Do It | p. 495 |
Memory | p. 499 |
Virtual Memory | p. 499 |
The Memory Layout Of A Process | p. 502 |
Paging | p. 505 |
Swap Devices | p. 509 |
Memory Mapping With mmap | p. 512 |
User-Space And Kernel-Space Dynamic Memory | p. 515 |
Dumping Core | p. 517 |
System V IPC | p. 521 |
Message Queues | p. 521 |
Semaphores | p. 529 |
Shared Memory | p. 535 |
Symmetric Multiprocessing (SMP) | p. 541 |
Parallel Programming Concepts And Primitives | p. 541 |
APICs and CPU-To-CPU Communication | p. 548 |
How SMP Support Affects The Kernel | p. 548 |
Tunable Kernel Parameters | p. 553 |
/proc/sys Support | p. 554 |
The sysctl System Call | p. 558 |
Linux 2.4 | p. 563 |
GNU General Public License | p. 565 |
Index | p. 569 |
Table of Contents provided by Syndetics. All Rights Reserved. |