深入分析Linux内核源码oss.org.cn/kernel-book/
Posted 沿
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了深入分析Linux内核源码oss.org.cn/kernel-book/相关的知识,希望对你有一定的参考价值。
本html页面地址:http://oss.org.cn/kernel-book/
深入分析Linux内核源码
前言
第一章 走进linux
1.1 GNU与Linux的成长
1.2 Linux的开发模式和运作机制
1.3走进Linux内核
1.3.1 Linux内核的特征
1.3.2 Linux内核版本的变化
1.4 分析Linux内核的意义
1.4.1 开发适合自己的操作系统
1.4.2 开发高水平软件
1.4.3 有助于计算机科学的教学和科研
1.5 Linux内核结构
1.5.1 Linux内核在整个操系统中的位置
1.5.2 Linux内核的作用
1.5.3 Linux内核的抽象结构
1.6 Linux内核源代码
1.6.1 多版本的内核源代码
1.6.2 Linux内核源代码的结构
1.6.3 从何处开始阅读源代码
1.7 Linux内核源代码分析工具
1.7.1 Linux超文本交叉代码检索工具
1.7.2 Windows平台下的源代码阅读工具Source Insight
第二章 Linux运行的硬件基础
2.1 i386的寄存器
2.1.1通用寄存器
2.1.2段寄存器
2.1.3状态和控制寄存器
2.1.4 系统地址寄存器
2.1.5 调试寄存器和测试寄存器
2.2 内存地址
2.3 段机制和描述符
2.3.1 段机制
2.3.2 描述符的概念
2.3.3系统段描述符
2.3.4 描述符表
2.3.5 选择符与描述符表寄存器
2.3.6 描述符投影寄存器
2.3.7 Linux中的段
2.4 分页机制
2.4.1 分页机构
2.4.2页面高速缓存
2.5 Linux中的分页机制
2.5.1 与页相关的数据结构及宏的定义
2.5.2 对页目录及页表的处理
2.6 Linux中的汇编语言
2.6.1 AT&T与Intel汇编语言的比较
2.6.2 AT&T汇编语言的相关知识
2.6.3 Gcc嵌入式汇编
2.6.4 Intel386汇编指令摘要
第三章中断机制
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.2 Linux对异常和中断的处理
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 进程和程序(Process and Program)
4.2 Linux中的进程概述
4.3 task_struct结构描述
4.4 task_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 本章小节
第七章 进程间通信
7.1 管道
7.1.1 Linux管道的实现机制
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.3 System V 的IPC机制
7.3.1 信号量
7.3.2 消息队列
7.3.3 共享内存
第八章 虚拟文件系统
8.1 概述
8.2 VFS中的数据结构
8.2.1 超级块
8.2.2 VFS的索引节点
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.1 open 系统调用
8.7.2 read 系统调用
8.7.3 fcntl 系统调用
8 .8 Linux2.4文件系统的移植问题
第九章 Ext2文件系统
9.1 基本概念
9.2 Ext2的磁盘布局和数据结构
9.2.1 Ext2的磁盘布局
9.2.2 Ext2的超级块
9.2.3 Ext2的索引节点
9.2.4 组描述符
9.2.5 位图
9.2.6 索引节点表及实例分析
9.2.7 Ext2的目录项及文件的定位
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.1 I/O软件
11.1.2 设备驱动程序
11.2 设备驱动基础
11.2.1 I/O端口
11.2.2 I/O接口及设备控制器
11.2.3 设备文件
11.2.4 VFS对设备文件的处理
11.2.5 中断处理
11.2.6 驱动DMA工作
11.2.7 I/O 空间的映射
11.2.8 设备驱动程序框架
11.3 块设备驱动程序
11.3.1 块设备驱动程序的注册
11.3.2 块设备基于缓冲区的数据交换
11.3.3 块设备驱动程序的几个函数
11.3.4 RAM 盘驱动程序的实现
11.3.5 硬盘驱动程序的实现
11.4 字符设备驱动程序
11.4.1 简单字符设备驱动程序
11.4.2 字符设备驱动程序的注册
11.4.3 一个字符设备驱动程序的实例
11.4.4 驱动程序的编译与装载
以上是关于深入分析Linux内核源码oss.org.cn/kernel-book/的主要内容,如果未能解决你的问题,请参考以下文章
第一次作业:深入源码分析进程模型
第一次作业:深入源码分析理解Linux进程模型
第一次作业:深入源码分析进程模型
Linux内核源码分析方法
linux内核源码安装
第一次作业:深入源码分析进程模型(linux)