微信扫一扫,移动浏览光盘
简介
Linux拥有现代操作系统所有的功能,如真正的抢先式多任务处理、支持多用户,内存保护,虚拟内存,支持SMP、UP,符合POSIX标准,联网、图形用户接口和桌面环境。具有快速性、稳定性等特点。本书通过分析Linux的内核源代码,充分揭示了Linux作为操作系统的内核是如何完成保证系统正常运行、协调多个并发进程、管理内存等工作的。
现实中,能让人自由获取的系统源代码并不多,通过本书的学习,将大大有助于读者编写自己的新程序。本书附赠光盘,有关光盘内容请见附录C。
目录
第一部分 Linux内核源代码
arch/i386/kemel/entry.S
arch/i386/kemeVinit_task.c
arch/i386/kemel/irq.c
arch/i386/kemel/irq.h
arch/i386/kernel/process.c
arch/i386/kemel/signal.c
arch/i386/kemel/smp.c
arch/i386/kemel/time.c
arch/i386/kemel/traps.c
arch/i386/lib/delay.c
arch/i386/mm/fault.c
arch/i386/mm/init.c
fs/binfmt-elf.c
fs/binfmt_java.c
fs/exec.c
include/asm-generic/smplock.h
include/asm-i386/atomic.h
include/asm-1386/current.h
include/asm-i386/dma.h
include/asm-i386/elf.h
include/asm-i386/hardirq.h
include/asm-i386/page.h
include/asm-i386/pgtable.h
include/asm-i386/ptrace.h
include/asm-i386/semaphore.h
include/asm-i386/shmparam.h
include/asm-i386/sigcontext.h
include/asm-i386/siginfo.h
include/asm-i386/signal.h
include/asm-i386/smp.h
include/asm-i386/softirq.h
include/asm-1386/spinlock.h
include/asm-i386/system.h
include/asm-i386/uaccess.h
include/linux/binfmts.h
include/linux/capability.h
include/linux/elf.h
include/linux/elfcore.h
include/linux/interrupt.h
include/linux/kemel.h
include/linux/kemel_stat.h
include/linux/limits.h
include/linux/mm.h
include/linux/module.h
includeAinux/ms.h
include/linux/personality.h
include/linux/reboot.h
include/linux/resource.h
include/linux/sched.h
include/linux/sem.h
include/linux/shm.h
include/linux/signal.h
include/linux/slab.h
include/linux/smp.h
include/linux/smp_lock.h
include/linux/swap.h
include/linux/swapctl.h
include/linux/sysctl.h
include/linux/taskc.h
include/linux/time.h
include/linux/timer.h
include/linux/times.h
include/linux/tqueue.h
include/linux/wait.h
init/main.c
init/version.c
ipc/msg.c
ipc/sem.c
ipc/shm.c
ipc/util.c
kernel/capability.c
kernel/dma.c
kernel/execes_domain.c
kernel/exit.c
kernel/fork.c
kemel/info.c
kemel/itimer.c
kernel/kmod.c
kemel/module.c
kernel/panic.c
kernel/printk.c
kernel/sched.c
kemel/signal.c
kernel/softirq.c
kernel/sys.c
kernel/sysctl.c
kernel/time.c
mm/memory.c
mm/mlock.c
mm/mmap.c
mm/mprotect.c
mm/mremap.c
mm/page_alloc.c
mm/page_io.c
mm/slab.c
mm/swap.c
mm/swap state.c
mm/swapfile.c
mm/vmalloc.c
mm/vmscan.c
第二部分 Linux内核源代码分析
第1章 Linux简介
1.1 Linux和Unix的简明历史
1.2 GNU通用公共许可证
1.3 Linux开发过程
第2章 代码初识
2.1 Linux内核源程序的部分特点
2.1.1 gcc特性的使用
2.1.2 内核代码习惯用语
2.1.3 减少#if和#ifde哟使用
2.2 代码样例
2.2.1 printk
2.2.2 等待队列
2.2.3 内核模块
2.3 配置与编译内核
2.3.1 配置内核
2.3.2 构建内核
2.3.3 备份的重要性
2.3.4 发布你的改进
第3章 内核体系结构概述
3.1 内核设计目标
3.1.1 清晰性
3.1.2 兼容性
3.1.3 可移植性
3.1.4 健壮性和安全性
3.1.5 速度
3.2 内核体系结构初识
3.3 内核体系结构的深入了解
3.4 Linux内核的类型
3.5 设计和实现的关系
3.5.1 内核源程序目录结构
3.5.2 体系结构相关和体系结构无关的代码
第4章 系统初始化
4.1 引导PC机
4.2 初始化Linux内核
4.2.1 BogoMIPS
4.2.2 分析内核选项
4.3 init
第5章 系统调用
5.1 什么是系统调用
5.2 如何激活系统调用
5.2.1 system_call
5.2.2 IMP
5.3 系统调用样例
第6章 信号、中断和时间
6.1 锁的概述
6.2 信号
6.2.1 数据结构
6.2.2 应用函数
6.2.3 传送信号
6.2.4 其他有关信号的函数
6.2.5 内核如何区分实时信号和非实时信号
6.3 中断
6.3.1 中断请求:IRQ
6.3.2 下半部分
6.3.3 数据结构
6.3.4 操作和IRQ
6.3.5 硬件中断处理程序和下半部分
6.4 时间
第7章 进程和线程
7.1 调度和时间片
7.2 实时进程
7.3 优先级
7.4 进程ID: PID
7.5 引用计数
7.6 权能
7.7 进程在内核中是如何表示的
7.8 进程来源:fork和_ _clone
7.9 运行新程序
7.10 可执行格式
7.11 调度及它们是如何运行的
7.11.1 调度函数和调度策略
7.11.2 计算goodness值
7.11.3 非实时优先级
7.11.4 实时优先级
7.12 遵守限制
7.12.1 权能
7.12.2 用户ID和组ID
7.12.3 资源限制
7.13 进程的结束
7.13.1 exit
7.13.2 wait
第8章 内存
8.1 虚拟内存
8.1.1 交换和分页
8.1.2 地址空间
8.1.3 内存管理单元
8.1.4 页目录和页表
8.1.5 转换后备缓存
8.1.6 段
8.2 进程的内存组织
8.2.1 struct vm_area_struct
8.2.2 struct vm_operations_struct
8.2.3 struct mm_struct
8.2.4 VMA的操作
8.3 分页
8.3.1 页面保护详述
8.3.2 写拷贝
8.3.3 页面错误
8.3.4 页面调出
8.4 交换设备
8.5 内存映射mmap
8.6 用户空间和内核空间的动态内存
8.6.1 brk
8.6.2 vmalloc和vfree
8.7 主存储器信息转储
第9章 System V IPC
9.1 消息队列
9.2 信号量
9.3 共享内存
第10章 对称多处理
10.1 并行程序设计概念及其原语
10.1.1 原子操作
10.1.2 test-and-set
10.1.3 信号量
10.1.4 自旋锁
10.2 APIC和CPU-To-CPU通信
10.3 SMP支持如何影响内核
10.3.1 对调度的影响
10.3.2 smp_local_timer_interrupt
10.3.3 lock_kernel和unlock_kernel
10.3.4 softirq_trylock
10.3.5 cli和sti
10.3.6 irq_enter和irq_exit
第11章 可调内核参数
11.1 /proc/sys支持
11.2 sysctl系统调用
附录A Linux 2.4
附录B GNU通用公共许可证
附录C 光盘上的内容及系统需求
arch/i386/kemel/entry.S
arch/i386/kemeVinit_task.c
arch/i386/kemel/irq.c
arch/i386/kemel/irq.h
arch/i386/kernel/process.c
arch/i386/kemel/signal.c
arch/i386/kemel/smp.c
arch/i386/kemel/time.c
arch/i386/kemel/traps.c
arch/i386/lib/delay.c
arch/i386/mm/fault.c
arch/i386/mm/init.c
fs/binfmt-elf.c
fs/binfmt_java.c
fs/exec.c
include/asm-generic/smplock.h
include/asm-i386/atomic.h
include/asm-1386/current.h
include/asm-i386/dma.h
include/asm-i386/elf.h
include/asm-i386/hardirq.h
include/asm-i386/page.h
include/asm-i386/pgtable.h
include/asm-i386/ptrace.h
include/asm-i386/semaphore.h
include/asm-i386/shmparam.h
include/asm-i386/sigcontext.h
include/asm-i386/siginfo.h
include/asm-i386/signal.h
include/asm-i386/smp.h
include/asm-i386/softirq.h
include/asm-1386/spinlock.h
include/asm-i386/system.h
include/asm-i386/uaccess.h
include/linux/binfmts.h
include/linux/capability.h
include/linux/elf.h
include/linux/elfcore.h
include/linux/interrupt.h
include/linux/kemel.h
include/linux/kemel_stat.h
include/linux/limits.h
include/linux/mm.h
include/linux/module.h
includeAinux/ms.h
include/linux/personality.h
include/linux/reboot.h
include/linux/resource.h
include/linux/sched.h
include/linux/sem.h
include/linux/shm.h
include/linux/signal.h
include/linux/slab.h
include/linux/smp.h
include/linux/smp_lock.h
include/linux/swap.h
include/linux/swapctl.h
include/linux/sysctl.h
include/linux/taskc.h
include/linux/time.h
include/linux/timer.h
include/linux/times.h
include/linux/tqueue.h
include/linux/wait.h
init/main.c
init/version.c
ipc/msg.c
ipc/sem.c
ipc/shm.c
ipc/util.c
kernel/capability.c
kernel/dma.c
kernel/execes_domain.c
kernel/exit.c
kernel/fork.c
kemel/info.c
kemel/itimer.c
kernel/kmod.c
kemel/module.c
kernel/panic.c
kernel/printk.c
kernel/sched.c
kemel/signal.c
kernel/softirq.c
kernel/sys.c
kernel/sysctl.c
kernel/time.c
mm/memory.c
mm/mlock.c
mm/mmap.c
mm/mprotect.c
mm/mremap.c
mm/page_alloc.c
mm/page_io.c
mm/slab.c
mm/swap.c
mm/swap state.c
mm/swapfile.c
mm/vmalloc.c
mm/vmscan.c
第二部分 Linux内核源代码分析
第1章 Linux简介
1.1 Linux和Unix的简明历史
1.2 GNU通用公共许可证
1.3 Linux开发过程
第2章 代码初识
2.1 Linux内核源程序的部分特点
2.1.1 gcc特性的使用
2.1.2 内核代码习惯用语
2.1.3 减少#if和#ifde哟使用
2.2 代码样例
2.2.1 printk
2.2.2 等待队列
2.2.3 内核模块
2.3 配置与编译内核
2.3.1 配置内核
2.3.2 构建内核
2.3.3 备份的重要性
2.3.4 发布你的改进
第3章 内核体系结构概述
3.1 内核设计目标
3.1.1 清晰性
3.1.2 兼容性
3.1.3 可移植性
3.1.4 健壮性和安全性
3.1.5 速度
3.2 内核体系结构初识
3.3 内核体系结构的深入了解
3.4 Linux内核的类型
3.5 设计和实现的关系
3.5.1 内核源程序目录结构
3.5.2 体系结构相关和体系结构无关的代码
第4章 系统初始化
4.1 引导PC机
4.2 初始化Linux内核
4.2.1 BogoMIPS
4.2.2 分析内核选项
4.3 init
第5章 系统调用
5.1 什么是系统调用
5.2 如何激活系统调用
5.2.1 system_call
5.2.2 IMP
5.3 系统调用样例
第6章 信号、中断和时间
6.1 锁的概述
6.2 信号
6.2.1 数据结构
6.2.2 应用函数
6.2.3 传送信号
6.2.4 其他有关信号的函数
6.2.5 内核如何区分实时信号和非实时信号
6.3 中断
6.3.1 中断请求:IRQ
6.3.2 下半部分
6.3.3 数据结构
6.3.4 操作和IRQ
6.3.5 硬件中断处理程序和下半部分
6.4 时间
第7章 进程和线程
7.1 调度和时间片
7.2 实时进程
7.3 优先级
7.4 进程ID: PID
7.5 引用计数
7.6 权能
7.7 进程在内核中是如何表示的
7.8 进程来源:fork和_ _clone
7.9 运行新程序
7.10 可执行格式
7.11 调度及它们是如何运行的
7.11.1 调度函数和调度策略
7.11.2 计算goodness值
7.11.3 非实时优先级
7.11.4 实时优先级
7.12 遵守限制
7.12.1 权能
7.12.2 用户ID和组ID
7.12.3 资源限制
7.13 进程的结束
7.13.1 exit
7.13.2 wait
第8章 内存
8.1 虚拟内存
8.1.1 交换和分页
8.1.2 地址空间
8.1.3 内存管理单元
8.1.4 页目录和页表
8.1.5 转换后备缓存
8.1.6 段
8.2 进程的内存组织
8.2.1 struct vm_area_struct
8.2.2 struct vm_operations_struct
8.2.3 struct mm_struct
8.2.4 VMA的操作
8.3 分页
8.3.1 页面保护详述
8.3.2 写拷贝
8.3.3 页面错误
8.3.4 页面调出
8.4 交换设备
8.5 内存映射mmap
8.6 用户空间和内核空间的动态内存
8.6.1 brk
8.6.2 vmalloc和vfree
8.7 主存储器信息转储
第9章 System V IPC
9.1 消息队列
9.2 信号量
9.3 共享内存
第10章 对称多处理
10.1 并行程序设计概念及其原语
10.1.1 原子操作
10.1.2 test-and-set
10.1.3 信号量
10.1.4 自旋锁
10.2 APIC和CPU-To-CPU通信
10.3 SMP支持如何影响内核
10.3.1 对调度的影响
10.3.2 smp_local_timer_interrupt
10.3.3 lock_kernel和unlock_kernel
10.3.4 softirq_trylock
10.3.5 cli和sti
10.3.6 irq_enter和irq_exit
第11章 可调内核参数
11.1 /proc/sys支持
11.2 sysctl系统调用
附录A Linux 2.4
附录B GNU通用公共许可证
附录C 光盘上的内容及系统需求
Linux core kernel commentary
光盘服务联系方式: 020-38250260 客服QQ:4006604884
云图客服:
用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问
Video Player
×
Audio Player
×
pdf Player
×
亲爱的云图用户,
光盘内的文件都可以直接点击浏览哦
无需下载,在线查阅资料!