图书介绍

Linux 0.01内核分析与操作系统设计 创造你自己的操作系统2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载

Linux 0.01内核分析与操作系统设计 创造你自己的操作系统
  • 卢军编著 著
  • 出版社: 北京:清华大学出版社
  • ISBN:7302094071
  • 出版时间:2004
  • 标注页数:315页
  • 文件大小:20MB
  • 文件页数:327页
  • 主题词:Linux操作系统

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

Linux 0.01内核分析与操作系统设计 创造你自己的操作系统PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

目录1

第1章 GNU和Linux简介1

1.1 自由的天地:GNU和Linux1

1.1.1 热爱和享受自由2

1.1.2 神奇的Linux3

1.2 在乐趣中获得成功6

1.2.1 11岁开始编程序6

1.2.2 一种操作系统的诞生7

1.3 GNU的开发工具8

1.3.1 编译器家族GCC8

1.3.2 和操作系统开发有关的工具9

1.4 本章小结12

2.1 操作系统介绍13

第2章 操作系统设计入门13

2.1.1 早期的操作系统14

2.1.2 DOS操作系统14

2.1.3 Unix和Windows操作系统两大阵营15

2.1.4 自由时代的宠儿Linux16

2.2 操作系统的基本功能16

2.3 编写操作系统的建议17

2.3.1 编程语言选择18

2.3.2 编译器和链接器18

2.3.3 运行时函数库19

2.3.4 使用汇编语言完成底层操作21

2.3.5 关于C++的使用21

2.4 x86虚拟机Bochs使用简介21

2.4.1 Bochs简介22

2.4.3 如何安装Bochs23

2.4.2 下载Bochs软件23

2.5 使用Bochs运行一个操作系统26

2.5.1 制作一个软盘镜像文件27

2.5.2 使用Bochs运行操作系统30

2.6 操作系统设计的基本准则31

2.6.1 简单就是优美31

2.6.2 利用已有的基础31

2.6.3 良好的设计31

2.6.4 单内核操作系统和微内核操作系统32

2.7 本章小结32

第3章 操作系统设计基础33

3.1 使用DJGPP33

3.1.1 DJGPP和RHIDE的安装与使用33

3.1.2 make的使用34

3.1.4 nasm的使用36

3.1.3 ld的使用36

3.2 保护模式汇编语言37

3.2.1 一个简单的实模式的汇编语言的例子37

3.2.2 Linux汇编程序设计38

3.3 实例:一些简单的例子程序40

3.3.1 识别CPU类型40

3.3.2 直接向视频缓冲区输出46

3.3.3 检测显示器类型49

3.3.4 移动光标49

3.4 本章小结49

第4章 Linux 0.01内核简介51

4.1 Linux 0.01内核简介51

4.1.1 Linux 0.01内核背景52

4.1.2 Linux 0.01内核的技术特色52

4.1.3 存储管理53

4.1.4 文件系统54

4.1.5 硬件平台移植和应用程序54

4.2 Linux 0.01核心代码目录54

4.3 核心源代码的目录分布55

4.3.1 boot目录55

4.3.2 fs目录57

4.3.3 include目录58

4.3.4 init目录58

4.3.5 kernel目录60

4.3.6 lib目录60

4.3.7 mm目录61

4.3.8 tools目录61

4.4 Linux 0.01的main.c分析61

4.5 编译和运行Linux 0.01系统65

4.6 本章小结66

第5章 操作系统引导68

5.1 操作系统引导的基本知识68

5.1.1 系统引导设备68

5.1.2 启动过程简介73

5.1.3 硬盘主引导扇区简介75

5.1.4 软盘主引导扇区78

5.1.5 Linux 0.01引导代码分析81

5.2 引导扇区和引导代码实例分析93

5.2.1 引导扇区的内容93

5.2.2 使用debug建立自己的第一张启动盘95

5.2.3 使用BIOS增强“操作系统”功能97

5.3.1 引导代码基础99

5.3.2 最简单的引导程序99

5.3 使用nasm生成引导代码99

5.3.3 如何设置段寄存器100

5.3.4 在引导程序中装入程序(基于扇区)101

5.4 本章小结105

第6章 存储管理分析106

6.1 操作系统内存管理策略简述106

6.1.1 连续分配存储管理方式106

6.1.2 虚存组织107

6.1.3 非连续存储管理机制109

6.2 物理存储管理110

6.2.1 技术细节111

6.2.2 物理存储管理器的组织112

6.2.3 物理存储管理器的初始化114

6.2.4 页面分配114

6.2.6 映射115

6.2.5 页面回收115

6.2.7 内存映射116

6.3 虚拟存储管理117

6.3.1 技术细节118

6.3.2 malloc()和free()118

6.3.3 缺页处理119

6.3.4 虚拟存储管理的页面分配120

6.3.5 可执行程序121

6.3.6 交换121

6.3.7 处理流程122

6.4 存储管理系统代码实例123

6.4.1 实例1:探测计算机的物理内存容量123

6.4.2 实例2:malloc()和free()的实现138

6.5 Linux 0.01存储管理代码分析138

6.5.2 page.s分析139

6.5.1 memory.c分析139

6.6 本章小结140

第7章 进程管理和调度141

7.1 进程介绍141

7.1.1 进程的基本功能141

7.1.2 进程的调度(schedule()函数)145

7.1.3 线程147

7.2 多任务实现基础148

7.3 进程调度的性能分析152

7.4 Linux进程调度源代码分析153

7.5 实例:实现协作式多任务154

7.6 本章小结158

8.1 Linux设备管理概述159

8.1.1 设备管理的基本要求159

第8章 设备管理和调度159

8.1.2 驱动程序(Drivers)160

8.1.3 接口(Interfaces)160

8.1.4 异步I/O(Asynchronous I/O)162

8.2 Linux 0.01中断处理164

8.2.1 中断处理的基本过程164

8.2.2 traps.c文件分析165

8.2.3 /kernel/asm.s文件分析168

8.3 如何编写中断服务程序ISR172

8.4 设备驱动程序实例174

8.4.1 利用BIOS的探测系统设备174

8.4.2 块设备驱动177

8.4.3 键盘驱动178

8.4.4 访问8042芯片各端口180

8.4.5 发给8042的命令182

8.4.6 发给8048的命令185

8.4.7 8048到8042的数据186

8.4.8 键盘源代码187

8.4.9 探测软盘驱动器187

8.5 Linux 0.01设备驱动程序源代码分析189

8.5.1 终端控制代码:console.c190

8.5.2 rs323驱动代码:serial.c和rs_io.s203

8.6 本章小结208

第9章 磁盘文件系统209

9.1 硬盘驱动器结构简介209

9.1.1 硬盘参数解释209

9.1.2 基本INT13h调用简介210

9.1.3 现代硬盘结构简介210

9.1.4 扩展INT13h简介210

9.2 Unix文件系统210

9.2.1 磁盘的基础特性211

9.2.2 现代磁盘的寻道延迟特性212

9.2.3 Unix文件系统分析213

9.3 Virtual File System(VFS)简介214

9.3.1 VFS的体系结构215

9.3.2 文件的表示216

9.3.3 磁盘布局(Disk layout)216

9.4 文件系统设计步骤217

9.4.1 磁盘函数库(Disk library)217

9.4.2 文件系统(File system)218

9.4.3 容错性(Robustness)220

9.5 自己编写的简单文件系统220

9.6 Linux 0.01文件系统源代码分析226

9.7 本章小结227

10.1 shell的基本概念228

第10章 shell编程技术和实例228

10.2 实例:最简单的shell程序230

10.3 管道和I/O重定向235

10.3.1 使用dup()重定向I/O235

10.3.2 使用pipe()和dup()236

10.3.3 使用dup2()的例子237

10.4 t-shell实现代码分析239

10.4.1 shell总体结构(不支持管道)240

10.4.2 shell总体结构(支持管道)240

10.4.3 main()函数241

10.4.4 initialization()函数242

10.4.5 getline()函数243

10.4.6 parse()函数244

10.4.7 command()函数245

10.4.8 execute()函数247

10.4.9 forkexec()函数249

10.4.10 check()函数251

10.4.11 getname()函数251

10.4.12 t-shell的运行效果252

10.5 本章小结253

第11章 系统调用和C语言库的实现254

11.1 Linux系统调用概述254

11.1.1 系统调用254

11.1.2 系统调用的实现255

11.1.3 系统调用到INT 0x80h中断请求的转换261

11.2 Linux 0.01系统调用实现分析262

11.2.1 system_call.s262

11.2.2 sys.c267

11.3.2 链接新的系统调用268

11.3.1 实现系统调用的代码268

11.3 试验:在Linux中添加新的系统调用268

11.3.3 重新编译Linux 0.01的内核269

11.4 C语言标准库函数的实现269

11.4.1 字符串和内存操作函数269

11.4.2 I/O函数库272

11.4.3 工具函数:随机数274

11.5 本章小结274

第12章 Linux网络实现分析276

12.1 TCP/IP概述276

12.1.1 协定分层原则277

12.1.2 网络访问层279

12.1.3 网络层279

12.1.4 传论层282

12.2.1 环形缓冲区的实现原理289

12.1.5 应用层289

12.2 环形缓冲区289

12.2.2 实例:环形缓冲区的实现290

12.3 通信协议中的定时器编程293

12.3.1 基本定时编程293

12.3.2 高精度定时中断编程295

12.4 简单停等协议297

12.4.1 停等协议简介297

12.4.2 有限状态机299

12.4.3 差错控制300

12.5 实例:串口数据通信300

12.6 实例:停等协议的实现303

12.7 本章小结314

参考文献315

热门推荐