BBS水木清华站∶精华区

发信人: axp33a (无聊中...), 信区: Linux 
标  题: Linux内核源代码分析 
发信站: BBS 水木清华站 (Thu Aug  3 11:14:21 2000) WWW-POST 
 
Linux 与自由软件资源丛书 
Linux内核源代码分析 
(美) Scott Maxwell   著 
冯锐   邢飞   刘隆国   陆丽娜   译 
 
Linux 拥有现代操作系统所有的功能,如真正的抢先式多任务处理、支持多用户,内存保 
护,虚拟内存,支持SMP、UP,符合POSIX标准,联网、图形用户接口和桌面环境。具有快 
速性、稳定性等特点。本书通过分析Linux的内核源代码,充分揭示了Linux作为操作系统 
的内核是如何完成保证系统正常运行、协调多个并发进程、管理内存等工作的。 
现实中,能让人自由获取的系统源代码并不多,通过本书的学习,将大大有助于读者编写 
自己的新程序。本书附赠光盘,有关光盘内容请见附录C。 
 
Scott Maxwell:Linux Core Kernel Commentary. 
Original English language edition published by The Coriolis Group LLC, 14455  
N.Hayden Drive, Suite 220, Scottsdale, Arizona 85260 USA, telephone(602)  
483-0192, fax(602) 483-0193. 
Copyright * 2000 by The Coriolis Group. All rights reserved. 
Simplified Chinese language edition copyright * 2000 by China Machine Press.  
All rights reserved. 
本书中文版由美国Coriolis公司授权机械工业出版社独家出版。未经出版者书面许可,不 
得以任何方式复制或抄袭本书内容。 
版权所有,侵权必究。 
本书版权登记号:图字:01-2000-1157 
图书在版编目(CIP)数据 
Linux 内核源代码分析/(美)马克斯韦尔(Maxwel 1,S.)著;冯锐等译. -北京:机 
械工业出版社,2000.6 
(Linux 与自由软件资源丛书) 
书名原文:Linux Core Kernel Commentary 
ISBN 7-111-08092-0 
I. L…  II. ①马…  ②冯…  III. Linux 操作系统-程序分析   IV.TP316.89 
中国版本图书馆CIP数据核字(2000)第32493号 
 
机械工业出版社(北京市西城区百万庄大街22号     邮政编码 100037) 
责任编辑:刘立卿 
                          印刷·新华书店北京发行所发行 
2000年6月第1版第1次印刷 
787mm×1092 mm  1/16·40.25印张 
印数:0 001-7 000册 
定价:98.00元(附光盘) 
凡购本书,如有倒页、脱页、缺页,由本社发行部调换 
译者序 
前言 
第一部分   Linux 内核源代码 
arch/i386/kernel/entry.S  2 
arch/i386/kernel/init_task.c 8 
arch/i386/kernel/irq.c  8 
arch/i386/kernel/irq.h 19 
arch/i386/kernel/process.c  22 
arch/i386/kernel/signal.c  30 
arch/i386/kernel/smp.c  38 
arch/i386/kernel/time.c  58  
arch/i386/kernel/traps.c  65 
arch/i386/lib/delay.c  73 
arch/i386/mm/fault.c  74 
arch/i386/mm/init.c  76 
fs/binfmt-elf.c  82 
fs/binfmt_java.c 96 
fs/exec.c 98 
include/asm-generic/smplock.h 107  
include/asm-i386/atomic.h 108 
include/asm-i386/current.h  109 
include/asm-i386/dma.h  109 
include/asm-i386/elf.h  113  
include/asm-i386/hardirq.h  114 
include/asm-i386/page.h  114 
include/asm-i386/pgtable.h 115 
include/asm-i386/ptrace.h 122 
include/asm-i386/semaphore.h 123 
include/asm-i386/shmparam.h  124  
include/asm-i386/sigcontext.h  125 
include/asm-i386/siginfo.h 125 
include/asm-i386/signal.h  127 
include/asm-i386/smp.h  130 
include/asm-i386/softirq.h 132 
include/asm-i386/spinlock.h 133  
include/asm-i386/system.h 137 
include/asm-i386/uaccess.h 139 
include/linux/binfmts.h 146 
include/linux/capability.h  147 
include/linux/elf.h 150 
include/linux/elfcore.h 156 
include/linux/interrupt.h 157 
include/linux/kernel.h 158 
include/linux/kernel_stat.h 159 
include/linux/limits.h 160 
include/linux/mm.h 160 
include/linux/module.h 164 
include/linux/msg.h 168 
include/linux/personality.h 169 
include/linux/reboot.h 169 
include/linux/resource.h 170 
include/linux/sched.h  171 
include/linux/sem.h 179 
include/linux/shm.h  180 
include/linux/signal.h  181 
include/linux/slab.h  184 
include/linux/smp.h  184 
include/linux/smp_lock.h 185 
include/linux/swap.h 185 
include/linux/swapctl.h 187 
include/linux/sysctl.h 188 
include/linux/tasks.h 194 
include/linux/time.h 194 
include/linux/timer.h 195 
include/linux/times.h 196 
include/linux/tqueue.h 196 
include/linux/wait.h 198 
init/main.c 198 
init/version.c 212 
ipc/msg.c 213 
ipc/sem.c 218 
ipc/shm.c  227 
ipc/util.c 236 
kernel/capability.c  237 
kernel/dma.c  240 
kernel/exec_domain.c 241 
kernel/exit.c  242 
kernel/fork.c  248 
kernel/info.c  255 
kernel/itimer.c  255 
kernel/kmod.c 257 
kernel/module.c  259 
kernel/panic.c  270 
kernel/printk.c 271 
kernel/sched.c 275 
kernel/signal.c  295 
kernel/softirq.c  307 
kernel/sys.c  307 
kernel/sysctl.c 318 
kernel/time.c 330 
mm/memory.c  335 
mm/mlock.c  345 
mm/mmap.c 348 
mm/mprotect.c  358 
mm/mremap.c  361 
mm/page_alloc.c 363 
mm/page_io.c  368 
mm/slab.c 372 
mm/swap.c 394 
mm/swap_state.c  395 
mm/swapfile.c 398 
mm/vmalloc.c  406 
mm/vmscan.c  409 
第二部分   Linux 内核源代码分析 
第1章   Linux简介 416 
1.1   Linux和Unix的简明历史 416 
1.2   GNU通用公共许可证 418 
1.3   Linux开发过程 419 
第2章   代码初识 421 
2.1   Linux内核源程序的部分特点 421 
2.1.1   gcc特性的使用 421 
2.1.2   内核代码习惯用语 422 
2.1.3   减少#if和#ifdef的使用 423 
2.2   代码样例 424 
2.2.1   printk 424 
2.2.2   等待队列 429 
2.2.3   内核模块 432 
2.3   配置与编译内核 434 
2.3.1   配置内核 434 
2.3.2   构建内核 436 
2.3.3   备份的重要性 436 
2.3.4   发布你的改进 437 
第3章   内核体系结构概述 439 
3.1   内核设计目标 439 
3.1.1   清晰性 439 
3.1.2   兼容性 439 
3.1.3   可移植性 440 
3.1.4   健壮性和安全性 440 
3.1.5   速度 441 
3.2   内核体系结构初识 441 
3.3   内核体系结构的深入了解 442 
3.4   Linux 内核的类型 444 
3.5   设计和实现的关系 446 
3.5.1   内核源程序目录结构 446 
3.5.2   体系结构相关和体系结构无关的 
代码 450 
第4章   系统初始化 451 
4.1   引导PC机 451 
4.2   初始化Linux内核 452 
4.2.1   BogoMIPS 455 
4.2.2   分析内核选项 456 
4.3   init 459 
第5章   系统调用 462 
5.1   什么是系统调用 462 
5.2   如何激活系统调用 463 
5.2.1   system_call 464 
5.2.2   lcall7 468 
5.3   系统调用样例 469 
第6章   信号、中断和时间 474 
6.1   锁的概述 474 
6.2   信号 474 
6.2.1   数据结构 475 
6.2.2   应用函数 476 
6.2.3   传送信号 480 
6.2.4   其他有关信号的函数 489 
6.2.5   内核如何区分实时信号和非 
实时信号 491 
6.3   中断 492 
6.3.1   中断请求:IRQ 492 
6.3.2   下半部分 493 
6.3.3   数据结构 493 
6.3.4   操作和IRQ 496 
6.3.5   硬件中断处理程序和下半部分 499 
6.4   时间 502 
第7章   进程和线程 505 
7.1   调度和时间片 505 
7.2   实时进程 506 
7.3   优先级 506 
7.4   进程ID:PID 506 
7.5   引用计数 506 
7.6   权能 507 
7.7   进程在内核中是如何表示的 508 
7.8   进程来源:fork和_ _clone 511 
7.9   运行新程序 514 
7.10   可执行格式 517 
7.11   调度及它们是如何运行的 519 
7.11.1   调度函数和调度策略 519 
7.11.2   计算goodness值 522 
7.11.3   非实时优先级 523 
7.11.4   实时优先级 525 
7.12   遵守限制 526 
7.12.1   权能 526 
7.12.2   用户ID和组ID 529 
7.12.3   资源限制 530 
7.13   进程的结束 530 
7.13.1   exit 530 
7.13.2   wait 532 
第8章   内存 535 
8.1   虚拟内存 535 
8.1.1   交换和分页 536 
8.1.2   地址空间 537 
8.1.3   内存管理单元 537 
8.1.4   页目录和页表 538 
8.1.5   转换后备缓存 540 
8.1.6   段 540 
8.2   进程的内存组织 541 
8.2.1   struct vm_area_struct 541 
8.2.2   struct vm_operations_struct 542 
8.2.3   struct mm_struct 542 
8.2.4   VMA的操作 542 
8.3   分页 544 
8.3.1   页面保护详述 544 
8.3.2   写拷贝 545 
8.3.3   页面错误 546 
8.3.4   页面调出 551 
8.4   交换设备 552 
8.5   内存映射mmap 556 
8.6   用户空间和内核空间的动态内存 560 
8.6.1   brk 561 
8.6.2   vmalloc和vfree 562 
8.7   主存储器信息转储 565 
第9章   System V IPC 568 
9.1   消息队列 568 
9.2   信号量 581 
9.3   共享内存 590 
第10章   对称多处理 596 
10.1   并行程序设计概念及其原语 597 
10.1.1   原子操作 597 
10.1.2   test-and-set 599 
10.1.3   信号量 600 
10.1.4   自旋锁 604 
10.2   APIC和CPU-To-CPU通信 607 
10.3   SMP支持如何影响内核 607 
10.3.1   对调度的影响 607 
10.3.2   smp_local_timer_interrupt 610 
10.3.3   lock_kernel和unlock_kernel 611 
10.3.4   softirq_trylock 612 
10.3.5   cli和sti 612 
10.3.6   irq_enter和irq_exit 613 
第11章   可调内核参数 614 
11.1   /proc/sys 支持 616 
11.2   sysctl系统调用 621 
附录A   Linux 2.4 627 
附录B   GNU通用公共许可证 629 
附录C   光盘上的内容及系统需求 634 
 
-- 
※ 来源:·BBS 水木清华站 smth.org·[FROM: 166.111.196.22]  

BBS水木清华站∶精华区