Linux 版 (精华区)

发信人: redfox (NetAnt), 信区: Linux
标  题: Linux内核源代码分析1-1
发信站: 哈工大紫丁香 (Thu Nov  2 12:14:51 2000), 转信

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.hit.edu.cn.[FROM: hitredfox.bbs@smth.o]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:5.237毫秒