图书介绍
操作系统实现之路PDF|Epub|txt|kindle电子书版本网盘下载
- 辛庆祥编著 著
- 出版社: 北京:机械工业出版社
- ISBN:9787111414445
- 出版时间:2013
- 标注页数:485页
- 文件大小:281MB
- 文件页数:497页
- 主题词:操作系统-程序设计
PDF下载
下载说明
操作系统实现之路PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第1章 操作系统概述1
1.1操作系统的基本概念1
1.1.1操作系统的功能1
1.1.2操作系统的分类2
1.1.3操作系统的发展趋势2
1.1.4操作系统的基本概念3
1.2嵌入式系统和嵌入式操作系统6
1.2.1嵌入式系统概述6
1.2.2嵌入式操作系统概述7
1.2.3嵌入式操作系统的特点7
1.2.4嵌入式操作系统与通用操作系统的区别8
1.2.5嵌入式实时操作系统9
1.3 Hello China操作系统概述10
1.3.1 Hello China的主要功能10
1.3.2 Hello China的架构12
1.3.3 Hello China的主要特点12
1.3.4 Hello China的应用场景14
1.3.5面向对象思想的模拟17
1.4实例:一个简单的IP路由器的实现20
1.4.1概述20
1.4.2路由器的硬件结构21
1.4.3路由器的软件功能22
1.4.4各任务的实现23
第2章Hello China的安装和使用26
2.1 Hello China安装概述26
2.2 Hello China在Virtual PC上的安装26
2.2.1 Hello China在Virtual PC上的启动过程26
2.2.2 Hello China在Virtual PC上的安装过程28
2.3 Hello China在物理计算机上的安装31
2.3.1安装注意事项31
2.3.2在Windows XP操作系统上的安装31
2.3.3在Windows 7操作系统上的安装32
2.4 Hello China的卸载34
2.5 Hello China的使用34
2.6内核的编译和生成35
2.6.1 Hello China内核的开发环境35
2.6.2开发环境的搭建36
2.6.3内核映像文件的生成38
第3章Hello China的引导和初始化41
3.1概述41
3.2个人计算机的引导和初始化41
3.2.1 BIOS的引导工作41
3.2.2硬盘逻辑结构及引导扇区的功能42
3.2.3操作系统引导扇区的功能和局限44
3.2.4预置引导法概述45
3.2.5预置引导法在FAT32文件系统上的实现46
3.2.6预置引导法在NTFS文件系统上的实现47
3.2.7通过软盘启动Hello China49
3.3嵌入式操作系统的引导和初始化53
3.3.1典型嵌入式系统内存映射布局53
3.3.2嵌入式系统的启动概述54
3.3.3常见嵌入式操作系统的加载方式55
3.3.4嵌入式系统软件的写入59
3.4 Hello China的初始化61
3.4.1实地址模式下的初始化61
3.4.2保护模式下的初始化65
3.4.3操作系统核心功能的初始化68
3.4.4 Hello China的内存布局图73
3.5 Hello China的字符shell74
3.5.1字符shell的概述和启动74
3.5.2 shell的消息处理过程75
3.5.3实例:增加一个字符shell内置命令78
3.6从保护模式切换回实模式79
3.6.1模式切换概述79
3.6.2实模式服务调用举例81
3.6.3保护模式切换到实模式82
3.7引导和初始化总结87
第4章Hello China线程的实现88
4.1进程、线程和任务88
4.2 Hello China的线程实现89
4.2.1核心线程管理对象89
4.2.2线程的状态及其切换95
4.2.3核心线程对象96
4.2.4线程的上下文99
4.2.5线程的创建和初始化101
4.2.6线程的结束107
4.2.7线程的消息队列108
4.2.8线程的切换——中断上下文111
4.2.9线程的切换——系统调用上下文118
4.2.10上下文保存和切换的底层函数123
4.2.11线程的睡眠与唤醒128
4.2.12核心线程实现总结128
第5章 内存管理机制129
5.1内存管理机制概述129
5.2 IA32 CPU内存管理机制129
5.2.1 IA32 CPU内存管理机制概述129
5.2.2几个重要的概念131
5.2.3分段机制的应用132
5.2.4分页机制的应用135
5.3 Power PC CPU的内存管理机制142
5.4 Hello China内存管理模型144
5.4.1 Hello China的内存管理模型144
5.4.2 Hello China的内存布局146
5.4.3核心内存池的管理147
5.4.4页框管理对象149
5.4.5页面索引对象154
5.4.6虚拟内存管理对象158
5.5线程本地堆175
5.5.1线程本地堆概述175
5.5.2堆的功能需求定义175
5.5.3堆的实现概要177
5.5.4堆的详细实现181
5.6 Hello China的内存管理机制总结193
第6章 系统调用的原理与实现194
6.1系统调用概述194
6.2 Hello China系统调用的实现197
6.3系统调用时的参数传递199
第7章 线程互斥和同步机制的实现204
7.1互斥和同步概述204
7.2关键区段概述204
7.3关键区段产生的原因205
7.3.1多个线程之间的竞争205
7.3.2中断服务程序与线程之间的竞争206
7.3.3多个CPU之间的竞争206
7.4单CPU下关键区段的实现207
7.5多CPU下关键区段的实现209
7.5.1多CPU环境下的实现方式209
7.5.2 Hello China的未来实现210
7.6 Power PC下关键区段的实现211
7.6.1 Power PC提供的互斥访问机制211
7.6.2多CPU环境下的互斥机制212
7.7关键区段使用注意事项213
7.8 Semaphore概述214
7.9 Semaphore对象的定义214
7.10 Semaphore对象的实现215
7.10.1 Initialize和Uninitialize的实现216
7.10.2 WaitForThisObject的实现217
7.10.3 WaitForThisObjectEx的实现218
7.10.4 ReleaseSemaphore的实现222
7.11互斥和同步机制总结223
第8章 中断和定时处理机制的实现224
8.1中断和异常概述224
8.2硬件相关部分处理225
8.2.1 IA32中断处理过程225
8.2.2 IDT初始化226
8.3硬件无关部分处理230
8.3.1系统对象和中断对象230
8.3.2中断调度过程232
8.3.3缺省中断处理函数233
8.4对外服务接口234
8.5系统时钟中断235
8.5.1系统时钟中断概述235
8.5.2系统时钟中断的初始化236
8.5.3系统时钟中断处理函数的主要工作237
8.5.4时钟中断周期对系统实时性的影响分析239
8.6注意事项241
8.7定时器概述241
8.7.1 SetTimer函数的调用242
8.7.2 CancelTimer函数的调用243
8.7.3 ResetTimer函数的调用243
8.8设置定时器操作243
8.9定时器超时处理245
8.10定时器取消处理247
8.11定时器复位248
8.12定时器注意事项249
第9章 系统总线和设备管理251
9.1系统总线概述251
9.1.1系统总线251
9.1.2总线管理模型251
9.1.3设备标识符255
9.2系统资源管理255
9.2.1资源描述对象256
9.2.2 IO端口资源管理257
9.3驱动程序接口257
9.3.1 GetResource258
9.3.2 GetDevice258
9.3.3 CheckPortRegion258
9.3.4 ReservePortRegion258
9.3.5 ReleasePortRegion259
9.3.6 AppendDevice259
9.3.7 DeleteDevice259
9.4 PCI总线驱动程序概述260
9.4.1 PCI总线概述260
9.4.2 PCI设备的配置空间260
9.4.3配置空间关键字段的说明262
9.4.4 PCI配置空间的读取与设置269
9.5 PCI总线驱动程序的实现270
9.5.1探测PCI总线是否存在270
9.5.2对普通PCI设备进行枚举271
9.5.3配置PCI桥接设备277
第10章设备驱动程序管理279
10.1设备管理框架279
10.1.1概述279
10.1.2通用的操作系统设备管理机制281
10.1.3设备管理框架的实现285
10.1.4 IO管理器287
10.2设备驱动程序295
10.2.1设备请求控制块295
10.2.2设备驱动程序对象的定义298
10.2.3设备驱动程序的物理结构299
10.2.4设备驱动程序的功能函数300
10.2.5 DriverEntry的实现302
10.2.6 UnloadEntry的实现303
10.3设备对象304
10.3.1设备对象的定义304
10.3.2设备对象的命名304
10.3.3设备对象的类型305
10.3.4设备对象的设备扩展306
10.3.5设备的打开操作306
10.3.6设备命名策略307
10.4设备的中断管理308
10.5设备管理实例:串口通信程序309
10.5.1串行通信接口概述309
10.5.2串行通信编程方式312
10.6设备驱动程序管理总结334
第11章 图形用户界面336
11.1图形用户界面概述336
11.2符合VESA标准的显示卡操作方法337
11.2.1判断显示卡是否支持VBE标准338
11.2.2切换到0x118工作模式339
11.3对显示设备的封装——Video对象342
11.3.1 GUI模块的分层架构342
11.3.2 Video对象343
11.3.3通用绘制层简介349
11.4鼠标指针的实现351
11.5窗口消息传递机制概述354
11.6 Hello China的窗口机制355
11.6.1父窗口要完全包含子窗口355
11.6.2二层窗口剪切域357
11.6.3二层窗口剪切域的实现358
11.7 Hello China窗口机制的实现360
11.7.1窗口管理器与窗口对象361
11.7.2窗口函数与窗口消息363
11.7.3窗口归属线程366
11.7.4窗口树366
11.8用户输入处理和消息传递369
11.8.1用户输入和消息传递过程简介369
11.8.2设备驱动程序的工作372
11.8.3设备输入管理器379
11.8.4 GUI原始输入线程——GUIRAWIT383
11.8.5消息循环的本质388
11.8.6应用线程之间的窗口消息交互392
11.9 Hello China的GUI Shell393
11.9.1 GUI Shell概述393
11.9.2 GUI Shell的启动和初始化395
11.9.3加载一个应用程序399
11.9.4 GUI Shell的退出400
11.10 GUI模块的开发方法402
第12章 文件系统及其实现404
12.1文件系统概述404
12.1.1文件系统的基本概念404
12.1.2文件系统的操作——fs程序405
12.2 FAT32文件系统原理406
12.2.1 FAT32卷的布局406
12.2.2引导扇区和BPB407
12.2.3文件分配表408
12.2.4文件目录项410
12.2.5文件的查找411
12.3 Hello China文件系统的实现412
12.3.1 IO管理器412
12.3.2文件系统的加载和初始化418
12.3.3存储设备驱动程序419
12.3.4分区的识别和安装426
12.3.5文件的打开操作431
12.3.6文件的读取操作434
12.4文件系统API的使用举例437
12.5文件系统实现总结439
第13章 应用程序开发方法441
13.1概述441
13.2 HCX文件的结构和加载过程441
13.2.1 HCX文件的格式441
13.2.2 HCX文件的生成方式442
13.2.3 HCX文件的加载和执行443
13.3 Hello China应用程序开发步骤444
13.3.1建立应用程序开发环境444
13.3.2启动VS 2008,建立一个新的应用程序444
13.3.3在应用程序中添加源代码444
13.3.4对新建的应用程序进行设置446
13.3.5编写应用程序代码,并进行编译链接448
13.3.6对生成的DLL进行处理,形成HCX文件450
13.3.7运行生成的HCX文件451
13.4应用程序开发总结452
第14章 开发辅助工具453
14.1开发辅助工具概述453
14.2 PE文件格式简介453
14.2.1 MS-DOS头和DOS stub程序454
14.2.2 PE文件头455
14.2.3 PE文件中的节458
14.3开发辅助工具的实现和使用460
14.3.1 process工具460
14.3.2 hcxbuild工具461
14.3.3 append工具463
14.3.4 vfmaker工具464
14.3.5 dumpf32和mkntfsbs工具464
附录465
附录A关于操作系统开发的两篇博文465
A.1操作系统开发过程应遵循的一些原则465
A.2对操作系统开发的一些相关问题的思考469
附录B源代码组织结构说明473
附录C内核开发环境的搭建476
C.1概述476
C.2 Microsoft Visual C++的设置479
C.3操作系统开发中常用的MicrosoVisual C++特性479
C.4搭建操作系统开发环境480
C.5操作系统核心模块开发示例482
参考文献485