书籍详情
Linux 0.01内核分析与操作系统设计:创造你自己的操作系统
作者:卢军编著
出版社:清华大学出版社
出版时间:2004-10-01
ISBN:9787302094074
定价:¥32.00
购买这本书可以去
内容简介
本书巧妙地结合了Linux内核源代码分析、操作系统设计原理和操作系统设计实践三个方面的内容,在对Linux 0.01内核源代码进行深入分析的基础上,讲解了操作系统设计的基本原理和方法技巧。同时,还向读者提供了大量的操作系统实践方面的实例。通过对本书的学习,读者可以对操作系统的内核有深入的了解,掌握基本的硬件操作和控制能力,具有对操作系统的理解和实践能力。本书中的所有例子,都可以使用GNU编译器来编译,所有的工具软件也都可以应用到GNU的自由软件中。本书内容丰富、通俗易懂、可操作性强,既可作为大学高年级本科和研究生学习操作系统设计的辅导教材,也可作为计算机爱好者学习和分析Linux内核的教材。同时,也是软件工程师进行各类操作系统设计的最佳参考用书。
作者简介
暂缺《Linux 0.01内核分析与操作系统设计:创造你自己的操作系统》作者简介
目录
第1章 GNU和Linux简介
1. 1 自由的天地:GNU和Linux
1. 1. 1 热爱和享受自由
1. 1. 2 神奇的Linux
1. 2 在乐趣中获得成功
1. 2. 1 11岁开始编程序
1. 2. 2 一种操作系统的诞生
1. 3 GNU的开发工具
1. 3. 1 编译器家族GCC
1. 3. 2 和操作系统开发有关的工具
1. 4 本章小结
第2章 操作系统设计入门
2. 1 操作系统介绍
2. 1. 1 早期的操作系统
2. 1. 2 DOS操作系统
2. 1. 3 Unix和Windows操作系统两大阵营
2. 1. 4 自由时代的宠儿Linux
2. 2 操作系统的基本功能
2. 3 编写操作系统的建议
2. 3. 1 编程语言选择
2. 3. 2 编译器和链接器
2. 3. 3 运行时函数库
2. 3. 4 使用汇编语言完成底层操作
2. 3. 5 关于C++的使用
2. 4 x86虚拟机Bochs使用简介
2. 4. 1 Bochs简介
2. 4. 2 下载Bochs软件
2. 4. 3 如何安装Bochs
2. 5 使用Bochs运行一个操作系统
2. 5. 1 制作一个软盘镜像文件
2. 5. 2 使用Bochs运行操作系统
2. 6 操作系统设计的基本准则
2. 6. 1 简单就是优美
2. 6. 2 利用已有的基础
2. 6. 3 良好的设计
2. 6. 4 单内核操作系统和微内核操作系统
2. 7 本章小结
第3章 操作系统设计基础
3. 1 使用DJGPP
3. 1. 1 DJGPP和RHIDE的安装与使用
3. 1. 2 make的使用
3. 1. 3 ld的使用
3. 1. 4 nasm的使用
3. 2 保护模式汇编语言
3. 2. 1 一个简单的实模式的汇编语言的例子
3. 2. 2 Linux汇编程序设计
3. 3 实例:一些简单的例子程序
3. 3. 1 识别CPU类型
3. 3. 2 直接向视频缓冲区输出
3. 3. 3 检测显示器类型
3. 3. 4 移动光标
3. 4 本章小结
第4章 Linux0. 01内核简介
4. 1 Linux0. 01内核简介
4. 1. 1 Linux 0. 01内核背景
4. 1. 2 Linux0. 01内核的技术特色
4. 1. 3 存储管理
4. 1. 4 文件系统
4. 1. 5 硬件平台移植和应用程序
4. 2 Linux0. 01核心代码目录
4. 3 核心源代码的目录分布
4. 3. 1 boot目录
4. 3. 2 fs目录
4. 3. 3 include目录
4. 3. 4 init目录
4. 3. 5 kernel目录
4. 3. 6 lib目录
4. 3. 7 mm目录
4. 3. 8 tools目录
4. 4 Linux0. 01的main. c分析
4. 5 编译和运行Linux0. 01系统
4. 6 本章小结
第5章 操作系统引导
5. 1 操作系统引导的基本知识
5. 1. 1 系统引导设备
5. 1. 2 启动过程简介
5. 1. 3 硬盘主引导扇区简介
5. 1. 4 软盘主引导扇区
5. 1. 5 Linux0. 01引导代码分析
5. 2 引导扇区和引导代码实例分析
5. 2. 1 引导扇区的内容
5. 2. 2 使用debug建立自己的第一张启动盘
5. 2. 3 使用BIOS增强"操作系统"功能
5. 3 使用nasm生成引导代码
5. 3. 1 引导代码基础
5. 3. 2 最简单的引导程序
5. 3. 3 如何设置段寄存器
5. 3. 4 在引导程序中装入程序(基于扇区)
5. 4 本章小结
第6章 存储管理分析
6. 1 操作系统内存管理策略简述
6. 1. 1 连续分配存储管理方式
6. 1. 2 虚存组织
6. 1. 3 非连续存储管理机制
6. 2 物理存储管理
6. 2. 1 技术细节
6. 2. 2 物理存储管理器的组织
6. 2. 3 物理存储管理器的初始化
6. 2. 4 页面分配
6. 2. 5 页面回收
6. 2. 6 映射
6. 2. 7 内存映射
6. 3 虚拟存储管理
6. 3. 1 技术细节
6. 3. 2 malloc()和free()
6. 3. 3 缺页处理
6. 3. 4 虚拟存储管理的页面分配
6. 3. 5 可执行程序
6. 3. 6 交换
6. 3. 7 处理流程
6. 4 存储管理系统代码实例
6. 4. 1 实例1:探测计算机的物理内存容量
6. 4. 2 实例2:malloc()和free()的实现
6. 5 Linux0. 01存储管理代码分析
6. 5. 1 memory. c分析
6. 5. 2 page. s分析
6. 6 本章小结
第7章 进程管理和调度
7. 1 进程介绍
7. 1. 1 进程的基本功能
7. 1. 2 进程的调度(schedule()函数)
7. 1. 3 线程
7. 2 多任务实现基础
7. 3 进程调度的性能分析
7. 4 Linux进程调度源代码分析
7. 5 实例:实现协作式多任务
7. 6 本章小结
第8章 设备管理和调度
8. 1 Linux设备管理概述
8. 1. 1 设备管理的基本要求
8. 1. 2 驱动程序(Drivers)
8. 1. 3 接口(Interfaces)
8. 1. 4 异步I/O(AsynchronousI/O)
8. 2 Linux0. 01中断处理
8. 2. 1 中断处理的基本过程
8. 2. 2 traps. c文件分析
8. 2. 3/kemel/asm. s文件分析
8. 3 如何编写中断服务程序ISR
8. 4 设备驱动程序实例
8. 4. 1 利用BIOS的探测系统设备
8. 4. 2 块设备驱动
8. 4. 3 键盘驱动
8. 4. 4 访问8042芯片各端口
8. 4. 5 发给8042的命令
8. 4. 6 发给8048的命令
8. 4. 7 8048到8042的数据
8. 4. 8 键盘源代码
8. 4. 9 探测软盘驱动器
8. 5 Linux0. 01设备驱动程序源代码分析
8. 5. 1 终端控制代码:console. c
8. 5. 2 rs323驱动代码:serial. c和rs io. s
8. 6 本章小结
第9章 磁盘文件系统
9. 1 硬盘驱动器结构简介
9. 1. 1 硬盘参数解释
9. 1. 2 基本INTl3h调用简介
9. 1. 3 现代硬盘结构简介
9. 1. 4 扩展INTl3h简介
9. 2 Unix文件系统
9. 2. 1 磁盘的基础特性
9. 2. 2 现代磁盘的寻道延迟特性
9. 2. 3 Unix文件系统分析
9. 3 Virtual File System(VFS)简介
9. 3. 1 VFS的体系结构
9. 3. 2 文件的表示
9. 3. 3 磁盘布局(Disklayout)
9. 4 文件系统设计步骤
9. 4. 1 磁盘函数库(Disklibrary)
9. 4. 2 文件系统(Piles~tem)
9. 4. 3 容错性(Robustness)
9. 5 自己编写的简单文件系统
9. 6 Linux0. 01文件系统源代码分析
9. 7 本章小结
第10章 shell编程技术和实例
10. 1 shell的基本概念
10. 2 实例:最简单的shell程序
10. 3 管道和I/O重定向
10. 3. 1 使用dup()重定向I/O
10. 3. 2 使用pipe()和dup()
10. 3. 3 使用dup2()的例子
10. 4 t-shell实现代码分析
10. 4. 1 shell总体结构(不支持管道)
10. 4. 2 shell总体结构(支持管道)
10. 4. 3 main()函数
10. 4. 4 initialization()函数
10. 4. 5 getline()函数
10. 4. 6 parse()函数
10. 4. 7 command()函数
10. 4. 8 execute()函数
10. 4. 9 forkexec()函数
10. 4. 10 check()函数
10. 4. 11 getname()函数
10. 4. 12 t-shell的运行效果
10. 5 本章小结
第11章 系统调用和C语言库的实现
11. 1 Linux系统调用概述
11. 1. 1 系统调用
11. 1. 2 系统调用的实现
11. 1. 3 系统调用到INT0x80h中断请求的转换
11. 2 Linux0. 01系统调用实现分析
11. 2. 1 system-call. s
11. 2. 2 sys. c
11. 3 试验:在Linux中添加新的系统调用
11. 3. 1 实现系统调用的代码
11. 3. 2 链接新的系统调用
11. 3. 3 重新编译Linux0. 01的内核
11. 4 C语言标准库函数的实现
11. 4. 1 字符串和内存操作函数
11. 4. 2 I/O函数库
11. 4. 3 工具函数:随机数
11. 5 本章小结
第12章 Linux网络实现分析
12. 1 TCP/IP概述
12. 1. 1 协定分层原则
12. 1. 2 网络访问层
12. 1. 3 网络层
12. 1. 4 传输层
12. 1. 5 应用层
12. 2 环形缓冲区
12. 2. 1 环形缓冲区的实现原理
12. 2. 2 实例:环形缓冲区的实现
12. 3 通信协议中的定时器编程
12. 3. 1 基本定时编程
12. 3. 2 高精度定时中断编程
12. 4 简单停等协议
12. 4. 1 停等协议简介
12. 4. 2 有限状态机
12. 4. 3 差错控制
12. 5 实例:串口数据通信
12. 6 实例:停等协议的实现
12. 7 本章小结
参考文献
1. 1 自由的天地:GNU和Linux
1. 1. 1 热爱和享受自由
1. 1. 2 神奇的Linux
1. 2 在乐趣中获得成功
1. 2. 1 11岁开始编程序
1. 2. 2 一种操作系统的诞生
1. 3 GNU的开发工具
1. 3. 1 编译器家族GCC
1. 3. 2 和操作系统开发有关的工具
1. 4 本章小结
第2章 操作系统设计入门
2. 1 操作系统介绍
2. 1. 1 早期的操作系统
2. 1. 2 DOS操作系统
2. 1. 3 Unix和Windows操作系统两大阵营
2. 1. 4 自由时代的宠儿Linux
2. 2 操作系统的基本功能
2. 3 编写操作系统的建议
2. 3. 1 编程语言选择
2. 3. 2 编译器和链接器
2. 3. 3 运行时函数库
2. 3. 4 使用汇编语言完成底层操作
2. 3. 5 关于C++的使用
2. 4 x86虚拟机Bochs使用简介
2. 4. 1 Bochs简介
2. 4. 2 下载Bochs软件
2. 4. 3 如何安装Bochs
2. 5 使用Bochs运行一个操作系统
2. 5. 1 制作一个软盘镜像文件
2. 5. 2 使用Bochs运行操作系统
2. 6 操作系统设计的基本准则
2. 6. 1 简单就是优美
2. 6. 2 利用已有的基础
2. 6. 3 良好的设计
2. 6. 4 单内核操作系统和微内核操作系统
2. 7 本章小结
第3章 操作系统设计基础
3. 1 使用DJGPP
3. 1. 1 DJGPP和RHIDE的安装与使用
3. 1. 2 make的使用
3. 1. 3 ld的使用
3. 1. 4 nasm的使用
3. 2 保护模式汇编语言
3. 2. 1 一个简单的实模式的汇编语言的例子
3. 2. 2 Linux汇编程序设计
3. 3 实例:一些简单的例子程序
3. 3. 1 识别CPU类型
3. 3. 2 直接向视频缓冲区输出
3. 3. 3 检测显示器类型
3. 3. 4 移动光标
3. 4 本章小结
第4章 Linux0. 01内核简介
4. 1 Linux0. 01内核简介
4. 1. 1 Linux 0. 01内核背景
4. 1. 2 Linux0. 01内核的技术特色
4. 1. 3 存储管理
4. 1. 4 文件系统
4. 1. 5 硬件平台移植和应用程序
4. 2 Linux0. 01核心代码目录
4. 3 核心源代码的目录分布
4. 3. 1 boot目录
4. 3. 2 fs目录
4. 3. 3 include目录
4. 3. 4 init目录
4. 3. 5 kernel目录
4. 3. 6 lib目录
4. 3. 7 mm目录
4. 3. 8 tools目录
4. 4 Linux0. 01的main. c分析
4. 5 编译和运行Linux0. 01系统
4. 6 本章小结
第5章 操作系统引导
5. 1 操作系统引导的基本知识
5. 1. 1 系统引导设备
5. 1. 2 启动过程简介
5. 1. 3 硬盘主引导扇区简介
5. 1. 4 软盘主引导扇区
5. 1. 5 Linux0. 01引导代码分析
5. 2 引导扇区和引导代码实例分析
5. 2. 1 引导扇区的内容
5. 2. 2 使用debug建立自己的第一张启动盘
5. 2. 3 使用BIOS增强"操作系统"功能
5. 3 使用nasm生成引导代码
5. 3. 1 引导代码基础
5. 3. 2 最简单的引导程序
5. 3. 3 如何设置段寄存器
5. 3. 4 在引导程序中装入程序(基于扇区)
5. 4 本章小结
第6章 存储管理分析
6. 1 操作系统内存管理策略简述
6. 1. 1 连续分配存储管理方式
6. 1. 2 虚存组织
6. 1. 3 非连续存储管理机制
6. 2 物理存储管理
6. 2. 1 技术细节
6. 2. 2 物理存储管理器的组织
6. 2. 3 物理存储管理器的初始化
6. 2. 4 页面分配
6. 2. 5 页面回收
6. 2. 6 映射
6. 2. 7 内存映射
6. 3 虚拟存储管理
6. 3. 1 技术细节
6. 3. 2 malloc()和free()
6. 3. 3 缺页处理
6. 3. 4 虚拟存储管理的页面分配
6. 3. 5 可执行程序
6. 3. 6 交换
6. 3. 7 处理流程
6. 4 存储管理系统代码实例
6. 4. 1 实例1:探测计算机的物理内存容量
6. 4. 2 实例2:malloc()和free()的实现
6. 5 Linux0. 01存储管理代码分析
6. 5. 1 memory. c分析
6. 5. 2 page. s分析
6. 6 本章小结
第7章 进程管理和调度
7. 1 进程介绍
7. 1. 1 进程的基本功能
7. 1. 2 进程的调度(schedule()函数)
7. 1. 3 线程
7. 2 多任务实现基础
7. 3 进程调度的性能分析
7. 4 Linux进程调度源代码分析
7. 5 实例:实现协作式多任务
7. 6 本章小结
第8章 设备管理和调度
8. 1 Linux设备管理概述
8. 1. 1 设备管理的基本要求
8. 1. 2 驱动程序(Drivers)
8. 1. 3 接口(Interfaces)
8. 1. 4 异步I/O(AsynchronousI/O)
8. 2 Linux0. 01中断处理
8. 2. 1 中断处理的基本过程
8. 2. 2 traps. c文件分析
8. 2. 3/kemel/asm. s文件分析
8. 3 如何编写中断服务程序ISR
8. 4 设备驱动程序实例
8. 4. 1 利用BIOS的探测系统设备
8. 4. 2 块设备驱动
8. 4. 3 键盘驱动
8. 4. 4 访问8042芯片各端口
8. 4. 5 发给8042的命令
8. 4. 6 发给8048的命令
8. 4. 7 8048到8042的数据
8. 4. 8 键盘源代码
8. 4. 9 探测软盘驱动器
8. 5 Linux0. 01设备驱动程序源代码分析
8. 5. 1 终端控制代码:console. c
8. 5. 2 rs323驱动代码:serial. c和rs io. s
8. 6 本章小结
第9章 磁盘文件系统
9. 1 硬盘驱动器结构简介
9. 1. 1 硬盘参数解释
9. 1. 2 基本INTl3h调用简介
9. 1. 3 现代硬盘结构简介
9. 1. 4 扩展INTl3h简介
9. 2 Unix文件系统
9. 2. 1 磁盘的基础特性
9. 2. 2 现代磁盘的寻道延迟特性
9. 2. 3 Unix文件系统分析
9. 3 Virtual File System(VFS)简介
9. 3. 1 VFS的体系结构
9. 3. 2 文件的表示
9. 3. 3 磁盘布局(Disklayout)
9. 4 文件系统设计步骤
9. 4. 1 磁盘函数库(Disklibrary)
9. 4. 2 文件系统(Piles~tem)
9. 4. 3 容错性(Robustness)
9. 5 自己编写的简单文件系统
9. 6 Linux0. 01文件系统源代码分析
9. 7 本章小结
第10章 shell编程技术和实例
10. 1 shell的基本概念
10. 2 实例:最简单的shell程序
10. 3 管道和I/O重定向
10. 3. 1 使用dup()重定向I/O
10. 3. 2 使用pipe()和dup()
10. 3. 3 使用dup2()的例子
10. 4 t-shell实现代码分析
10. 4. 1 shell总体结构(不支持管道)
10. 4. 2 shell总体结构(支持管道)
10. 4. 3 main()函数
10. 4. 4 initialization()函数
10. 4. 5 getline()函数
10. 4. 6 parse()函数
10. 4. 7 command()函数
10. 4. 8 execute()函数
10. 4. 9 forkexec()函数
10. 4. 10 check()函数
10. 4. 11 getname()函数
10. 4. 12 t-shell的运行效果
10. 5 本章小结
第11章 系统调用和C语言库的实现
11. 1 Linux系统调用概述
11. 1. 1 系统调用
11. 1. 2 系统调用的实现
11. 1. 3 系统调用到INT0x80h中断请求的转换
11. 2 Linux0. 01系统调用实现分析
11. 2. 1 system-call. s
11. 2. 2 sys. c
11. 3 试验:在Linux中添加新的系统调用
11. 3. 1 实现系统调用的代码
11. 3. 2 链接新的系统调用
11. 3. 3 重新编译Linux0. 01的内核
11. 4 C语言标准库函数的实现
11. 4. 1 字符串和内存操作函数
11. 4. 2 I/O函数库
11. 4. 3 工具函数:随机数
11. 5 本章小结
第12章 Linux网络实现分析
12. 1 TCP/IP概述
12. 1. 1 协定分层原则
12. 1. 2 网络访问层
12. 1. 3 网络层
12. 1. 4 传输层
12. 1. 5 应用层
12. 2 环形缓冲区
12. 2. 1 环形缓冲区的实现原理
12. 2. 2 实例:环形缓冲区的实现
12. 3 通信协议中的定时器编程
12. 3. 1 基本定时编程
12. 3. 2 高精度定时中断编程
12. 4 简单停等协议
12. 4. 1 停等协议简介
12. 4. 2 有限状态机
12. 4. 3 差错控制
12. 5 实例:串口数据通信
12. 6 实例:停等协议的实现
12. 7 本章小结
参考文献
猜您喜欢