成功加入购物车
无盘
卢军 著 / 清华大学出版社 / 2004-10 / 平装
售价 ¥ 36.00
品相 八五品
上书时间2021-10-18
Linux 0.01内核分析与操作系统设计
本书巧妙地结合了Linux内核源代码分析、操作系统设计原理和操作系统设计实践三个方面的内容,在对Linux0.01内核源代码进行深入分析的基础上,讲解了操作系统设计的基本原理和方法技巧。同时,还向读者提供了大量的操作系统实践方面的实例。通过对本书的学习,读者可以对操作系统的内核有深入的了解,掌握基本的硬件操作和控制能力,具有对操作系统的理解和实践能力。
本书中的所有例子,都可以使用GNU编译器来编译,所有的工具软件也都可以应用到GNU的自由软件中。本书内窜丰富、通俗易懂、可操作性强,既可作为大学高年级本科和研究生学习操作系统设计的辅导教材,也可作为计算机爱好者学习和分析Linux内核的教材。同时,也是软件工程师进行各类操作系统设计的最佳参考用书。
第1章GNU和Linux简介1.1自由的天地:GNU和Linux1.1.1热爱和享受自由1.1.2神奇的Linux1.2在乐趣中获得成功1.2.111岁开始编程序1.2.2一种操作系统的诞生1.3GNU的开发工具1.3.1编译器家族GCC1.3.2和操作系统开发有关的工具1.4本章小结第2章操作系统设计入门2.1操作系统介绍2.1.1早期的操作系统2.1.2DOS操作系统2.1.3Unix和Windows操作系统两大阵营2.1.4自由时代的宠儿Linux2.2操作系统的基本功能2.3编写操作系统的建议2.3.1编程语言选择2.3.2编译器和链接器2.3.3运行时函数库2.3.4使用汇编语言完成底层操作2.3.5关于C++的使用2.4x86虚拟机Bochs使用简介2.4.1Bochs简介2.4.2下载Bochs软件2.4.3如何安装Bochs2.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使用DJGPP3.1.1DJGPP和RHIDE的安装与使用3.1.2make的使用3.1.3ld的使用3.1.4nasm的使用3.2保护模式汇编语言3.2.1一个简单的实模式的汇编语言的例子3.2.2Linux汇编程序设计3.3实例:一些简单的例子程序3.3.1识别CPU类型3.3.2直接向视频缓冲区输出3.3.3检测显示器类型3.3.4移动光标3.4本章小结第4章Linux0.01内核简介4.1Linux0.01内核简介4.1.1Linux0.01内核背景4.1.2Linux0.01内核的技术特色4.1.3存储管理4.1.4文件系统4.1.5硬件平台移植和应用程序4.2Linux0.01核心代码目录4.3核心源代码的目录分布4.3.1boot目录4.3.2fs目录4.3.3include目录4.3.4init目录4.3.5kernel目录4.3.6lib目录4.3.7mm目录4.3.8tools目录4.4Linux0.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.5Linux0.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.2malloc()和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.5Linux0.01存储管理代码分析6.5.1memory.c分析6.5.2page.s分析6.6本章小结第7章进程管理和调度7.1进程介绍7.1.1进程的基本功能7.1.2进程的调度(schedule()函数)7.1.3线程7.2多任务实现基础7.3进程调度的性能分析7.4Linux进程调度源代码分析7.5实例:实现协作式多任务7.6本章小结第8章设备管理和调度8.1Linux设备管理概述8.1.1设备管理的基本要求8.1.2驱动程序(Drivers)8.1.3接口(Interfaces)8.1.4异步I/O(AsynchronousI/O)8.2Linux0.01中断处理8.2.1中断处理的基本过程8.2.2traps.c文件分析8.2.3/kernel/asm.s文件分析8.3如何编写中断服务程序ISR8.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.78048到8042的数据8.4.8键盘源代码8.4.9探测软盘驱动器8.5Linux0.01设备驱动程序源代码分析8.5.1终端控制代码:console.c8.5.2rs323驱动代码:serial.c和rs_io.s8.6本章小结第9章磁盘文件系统9.1硬盘驱动器结构简介9.1.1硬盘参数解释9.1.2基本INT13h调用简介9.1.3现代硬盘结构简介9.1.4扩展INT13h简介9.2Unix文件系统9.2.1磁盘的基础特性9.2.2现代磁盘的寻道延迟特性9.2.3Unix文件系统分析9.3VirtualFileSystem(VFS)简介9.3.1VFS的体系结构9.3.2文件的表示9.3.3磁盘布局(Disklayout)9.4文件系统设计步骤9.4.1磁盘函数库(Disklibrary)9.4.2文件系统(Filesystem)9.4.3容错性(Robustness)9.5自己编写的简单文件系统9.6Linux0.01文件系统源代码分析9.7本章小结第10章shell编程技术和实例10.1shell的基本概念10.2实例:最简单的shell程序10.3管道和I/O重定向10.3.1使用dup()重定向I/O10.3.2使用pipe()和dup()10.3.3使用dup2()的例子10.4t—shell实现代码分析10.4.1shell总体结构(不支持管道)10.4.2shell总体结构(支持管道)10.4.3main()函数10.4.4initialization()函数10.4.5getline()函数10.4.6parse()函数10.4.7command()函数10.4.8execute()函数10.4.9forkexec()函数10.4.10check()函数10.4.11getname()函数10.4.12t—shell的运行效果10.5本章小结第11章系统调用和C语言库的实现11.1Linux系统调用概述11.1.1系统调用11.1.2系统调用的实现11.1.3系统调用到INT0x80h中断请求的转换11.2Linux0.01系统调用实现分析11.2.1system_call.s11.2.2sys.c11.3试验:在Linux中添加新的系统调用11.3.1实现系统调用的代码11.3.2链接新的系统调用11.3.3重新编译Linux0.01的内核11.4C语言标准库函数的实现11.4.1字符串和内存操作函数11.4.2I/O函数库11.4.3工具函数:随机数11.5本章小结第12章Linux网络实现分析12.1TCP/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本章小结参考文献
展开全部
配送说明
...
相似商品
为你推荐
开播时间:09月02日 10:30