Linux内核源码及其分析Word下载.docx
《Linux内核源码及其分析Word下载.docx》由会员分享,可在线阅读,更多相关《Linux内核源码及其分析Word下载.docx(102页珍藏版)》请在冰豆网上搜索。
2.2内存地址
2.3段机制和描述符
2.3.1段机制
2.3.2描述符的概念
2.3.3系统段描述符
2.3.4描述符表
2.3.5选择符与描述符表寄存器
2.3.6描述符投影寄存器
2.3.7Linux中的段
2.4分页机制
2.4.1分页机构
2.4.2页面高速缓存
2.5Linux中的分页机制
2.5.1与页相关的数据结构及宏的定义
2.5.2对页目录及页表的处理
2.6Linux中的汇编语言
2.6.1AT&
T与Intel汇编语言的比较
2.6.2AT&
T汇编语言的相关知识
2.6.3Gcc嵌入式汇编
2.6.4Intel386汇编指令摘要
第三章中断机制
3.1中断基本知识
3.1.1中断向量
3.1.2外设可屏蔽中断
3.1.3异常及非屏蔽中断
3.1.4中断描述符表
3.1.5相关汇编指令
3.2中断描述符表的初始化
3.2.1外部中断向量的设置
3.2.2中断描述符表IDT的预初始化
3.2.3中断向量表的最终初始化
3.3异常处理
3.3.1在内核栈中保存寄存器的值
3.3.2中断请求队列的初始化
3.3.3中断请求队列的数据结构
3.4中断处理
3.4.1中断和异常处理的硬件处理
3.4.2Linux对异常和中断的处理
3.4.3与堆栈有关的常量、数据结构及宏
3.4.4中断处理程序的执行
3.4.5从中断返回
3.5中断的后半部分处理机制
3.5.1为什么把中断分为两部分来处理
3.5.2实现机制
3.5.3数据结构的定义
3.5.4软中断、bh及tasklet的初始化
3.5.5后半部分的执行
3.5.6把bh移植到tasklet
第四章进程描述
4.1进程和程序(ProcessandProgram)
4.2Linux中的进程概述
4.3task_struct结构描述
4.4task_struct结构在内存中的存放
4.4.1进程内核栈
4.4.2当前进程(current宏)
4.5进程组织的方式
4.5.1哈希表
4.5.2双向循环链表
4.5.3运行队列
4.5.4等待队列
4.6内核线程
4.7进程的权能
4.8内核同步
4.8.1信号量
4.8.2原子操作
4.8.3自旋锁、读写自旋锁和大读者自旋锁
4.9本章小节
第五章进程调度
5.1Linux时间系统
5.1.1时钟硬件
5.1.2时钟运作机制
5.1.3Linux时间基准
5.1.4Linux的时间系统
5.2时钟中断
5.2.1时钟中断的产生
5.2.2.Linux实现时钟中断的全过程
5.3Linux的调度程序-Schedule()
5.3.1基本原理
5.3.2Linux进程调度时机
5.3.3进程调度的依据
5.3.4进程可运行程度的衡量
5.3.5进程调度的实现
5.4进程切换
5.4.1硬件支持
5.4.2进程切换
第六章Linux内存管理
6.1Linux的内存管理概述
6.1.1Linux虚拟内存的实现结构
6.1.2内核空间和用户空间
6.1.3虚拟内存实现机制间的关系
6.2Linux内存管理的初始化
6.2.1启用分页机制
6.2.2物理内存的探测
6.2.3物理内存的描述
6.2.4页面管理机制的初步建立
6.2.5页表的建立
6.2.6内存管理区
6.3内存的分配和回收
6.3.1伙伴算法
6.3.2物理页面的分配和释放
6.3.3Slab分配机制
6.4地址映射机制
6.4.1描述虚拟空间的数据结构
6.4.2进程的虚拟空间
6.4.3内存映射
6.5请页机制
6.5.1页故障的产生
6.5.2页错误的定位
6.5.3进程地址空间中的缺页异常处理
6.5.4请求调页
6.5.5写时复制
6.6交换机制
6.6.1交换的基本原理
6.6.2页面交换守护进程kswapd
6.6.3交换空间的数据结构
6.6.4交换空间的应用
6.7缓存和刷新机制
6.7.1Linux使用的缓存
6.7.2缓冲区高速缓存
6.7.3翻译后援存储器(TLB)
6.7.4刷新机制
6.8进程的创建和执行
6.8.1进程的创建
6.8.2程序执行
6.8.3执行函数
第七章进程间通信
7.1管道
7.1.1Linux管道的实现机制
7.1.2管道的应用
7.1.3命名管道(FIFO)
7.2信号(signal)
7.2.1信号种类
7.2.2信号掩码
7.2.3系统调用
7.2.4典型系统调用的实现
7.2.5进程与信号的关系
7.2.6信号举例
7.3SystemV的IPC机制
7.3.1信号量
7.3.2消息队列
7.3.3共享内存
第八章虚拟文件系统
8.1概述
8.2VFS中的数据结构
8.2.1超级块
8.2.2VFS的索引节点
8.2.3目录项对象
8.2.4与进程相关的文件结构
8.2.5主要数据结构间的关系
8.2.6有关操作的数据结构
8.3高速缓存
8.3.1块高速缓存
8.3.2索引节点高速缓存
8.3.3目录高速缓存
8.4文件系统的注册、安装与拆卸
8.4.1文件系统的注册
8.4.2文件系统的安装
8.4.3文件系统的卸载
8.5限额机制
8.6具体文件系统举例
8.6.1管道文件系统pipefs
8.6.2磁盘文件系统BFS
8.7文件系统的系统调用
8.7.1open系统调用
8.7.2read系统调用
8.7.3fcntl系统调用
8.8Linux2.4文件系统的移植问题
第九章Ext2文件系统
9.1基本概念
9.2Ext2的磁盘布局和数据结构
9.2.1Ext2的磁盘布局
9.2.2Ext2的超级块
9.2.3Ext2的索引节点
9.2.4组描述符
9.2.5位图
9.2.6索引节点表及实例分析
9.2.7Ext2的目录项及文件的定位
9.3文件的访问权限和安全
9.4链接文件
9.5分配策略
9.5.1数据块寻址
9.5.2文件的洞
9.5.3分配一个数据块
第十章模块机制
10.1概述
10.1.1什么是模块
10.1.2为什么要使用模块?
10.2实现机制
10.2.1数据结构
10.2.2实现机制的分析
10.3模块的装入和卸载
10.3.1实现机制
10.3.2如何插入和卸载模块
10.4内核版本
10.4.1内核版本与模块版本的兼容性
10.4.2从版本2.0到2.2内核API的变化
10.4.3把内核2.2移植到内核2.4
10.5编写内核模块
10.5.1简单内核模块的编写
10.5.2内核模块的Makefiles文件
10.5.3内核模块的多个文件
第十一章设备驱动程序
11.1概述
11.1.1I/O软件
11.1.2设备驱动程序
11.2设备驱动基础
11.2.1I/O端口
11.2.2I/O接口及设备控制器
11.2.3设备文件
11.2.4VFS对设备文件的处理
11.2.5中断处理
11.2.6驱动DMA工作
11.2.7I/O空间的映射
11.2.8设备驱动程序框架
11.3块设备驱动程序
11.3.1块设备驱动程序的注册
11.3.2块设备基于缓冲区的数据交换
11.3.3块设备驱动程序的几个函数
11.3.4RAM盘驱动程序的实现
11.3.5硬盘驱动程序的实现
11.4字符设备驱动程序
11.4.1简单字符设备驱动程序
11.4.2字符设备驱动程序的注册
11.4.3一个字符设备驱动程序的实例
11.4.4驱动程序的编译与装载
第十二章网络
12.1概述
12.2网络协议
12.2.1网络参考模型
12.2.2TCP/IP协议工作原理及数据流
12.2.3Internet协议
12.2.4TCP协议
12.3套接字(socket)
12.3.1套接字在网络中的地位和作用
12.3.2套接字接口的种类
12.3.3套接字的工作原理
12.3.4socket的通信过程
12.3.5socket为用户提供的系统调用
12.4套接字缓冲区(sk_buff)
12.4.1套接字缓冲区的特点
12.4.2套接字缓冲区操作基本原理
12.4.3sk_buff数据结构的核心内容
12.4.4套接字缓冲区提供的函数
12.4.5套接字缓冲区的上层支持例程
12.5网络设备接口
12.5.1基本结构
12.5.2命名规则
12.5.3设备注册
12.5.4网络设备数据结构
12.5.5支持函数
第十三章启动系统
13.1初始化流程
13.1.1系统加电或复位
13.1.2BIOS启动
13.1.3BootLoader
13.1.4操作系统的初始化
13.2初始化的任务
13.2.1处理器对初始化的影响
13.2.2其他硬件设备对处理器的影响
13.3Linux的BootLoarder
13.3.1软盘的结构
13.3.2硬盘的结构
13.3.3BootLoader
13.3.4LILO
13.3.5LILO的运行分析
13.4进入操作系统
13.4.1Setup.S
13.4.2Head.S
13.5main.c中的初始化
13.6建立init进程
13.6.1init进程的建立
13.6.2启动所需的Shell脚本文件
附录:
1Linux2.4内核API
2.1驱动程序的基本函数
2.2双向循环链表的操作
2.3基本C库函数
2.4Linux内存管理中Slab缓冲区
2.5Linux中