当前位置:首页 > 工业技术
Linux内核源代码分析
Linux内核源代码分析

Linux内核源代码分析PDF电子书下载

工业技术

  • 电子书积分:18 积分如何计算积分?
  • 作 者:(美)(S.麦克斯韦尔)Scott Maxwell著;冯锐等译
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2000
  • ISBN:7111080920
  • 页数:634 页
图书介绍:美国Coriolis公司授权出版:附光盘ISBN7-980007-34-4:本书通过分析Linux的内核源代码,充分揭示了Linux作为操作系统的内核是如何完成保证系统正常运行、协调多个并发进程、管理内存等工作的。
《Linux内核源代码分析》目录

第一部分 Linux内核源代码 1

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/siginfo.h 125

include/asm-i386/sigcontext.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/mm.h 160

include/linux/limits.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

1.1 Linux和Unix的简明历史 416

第二部分 Linux内核源代码分析 416

第1章 Linux简介 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.1 配置内核 434

2.3 配置与编译内核 434

2.3.3 备份的重要性 436

2.3.2 构建内核 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.1 内核源程序目录结构 446

3.5 设计和实现的关系 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.3 内存管理单元 537

8.1.2 地址空间 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

相关图书
作者其它书籍
返回顶部