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