<p>本书以三个“面向”为导向,即面向经典基础理论与方法,面向国际前沿研究,面向工业界实践,深入浅出地介绍操作系统的理论、架构、设计方法与具体实现。本书是首本以ARM64为主体介绍操作系统的教材,将学术前沿与工业实践充分结合,不仅介绍了现有的Linux宏内核操作系统架构,而且介绍了微内核、外核等操作系统架构。</p> <p>本书共分为三个部分,其中第一部分(操作系统基础)以纸质版的形式出版,第二部分(操作系统进阶)和第三部分(ChCore课程实验)则以电子版的形式在本书网站发布。第一部分共分为11章,内容包括:操作系统概述、硬件结构、操作系统结构、内存管理、进程与线程、操作系统调度、进程间通
操作系统实现之路: 操作系统实现之路
✍ Scribed by 辛庆祥
- Publisher
- 机械工业出版社
- Year
- 2013
- Tongue
- Chinese
- Leaves
- 497
- Category
- Library
No coin nor oath required. For personal study only.
✦ Synopsis
《信息科学与技术丛书:操作系统实现之路》以Hello China操作系统为例,详细讲解了操作系统的内核、文件系统、图形界面、设备驱动程序、SDK 和系统调用等主要功能模块的实现原理。讲解过程中不仅陈述概念,还配以详细的实现源代码对概念进行说明,达到理论联系实际的目的。书中穿插了大量的案例,读者可通过亲手操作这些案例来更加深入地理解操作系统原理。此外,《信息科学与技术丛书:操作系统实现之路》还对操作系统发展趋势和商业模式进行了探讨。
《信息科学与技术丛书:操作系统实现之路》可供程序员和计算机相关专业师生阅读。
✦ Table of Contents
操作系统实现之路
书名页
版权页
出版说明
前言
目录
第1章 操作系统概述
1.1 操作系统的基本概念
1.1.1 操作系统的功能
1.1.2 操作系统的分类
1.1.3 操作系统的发展趋势
1.1.4 操作系统的基本概念
1.2 嵌入式系统和嵌入式操作系统
1.2.1 嵌入式系统概述
1.2.2 嵌入式操作系统概述
1.2.3 嵌入式操作系统的特点
1.2.4 嵌入式操作系统与通用操作系统的区别
1.2.5 嵌入式实时操作系统
1.3 Hello China操作系统概述
1.3.1 Hello China的主要功能
1.3.2 Hello China的架构
1.3.3 Hello China的主要特点
1.3.4 Hello China的应用场景
1.3.5 面向对象思想的模拟
1.4 实例:一个简单的IP路由器的实现
1.4.1 概述
1.4.2 路由器的硬件结构
1.4.3 路由器的软件功能
1.4.4 各任务的实现
第2章 Hello China的安装和使用
2.1 Hello China安装概述
2.2 Hello China在Virtual PC上的安装
2.2.1 Hello China在Virtual PC上的启动过程
2.2.2 Hello China在Virtual PC上的安装过程
2.3 Hello China在物理计算机上的安装
2.3.1 安装注意事项
2.3.2 在Windows XP操作系统上的安装
2.3.3 在Windows 7操作系统上的安装
2.4 Hello China的卸载
2.5 Hello China的使用
2.6 内核的编译和生成
2.6.1 Hello China内核的开发环境
2.6.2 开发环境的搭建
2.6.3 内核映像文件的生成
第3章 Hello China的引导和初始化
3.1 概述
3.2 个人计算机的引导和初始化
3.2.1 BIOS的引导工作
3.2.2 硬盘逻辑结构及引导扇区的功能
3.2.3 操作系统引导扇区的功能和局限
3.2.4 预置引导法概述
3.2.5 预置引导法在FAT32文件系统上的实现
3.2.6 预置引导法在NTFS文件系统上的实现
3.2.7 通过软盘启动Hello China
3.3 嵌入式操作系统的引导和初始化
3.3.1 典型嵌入式系统内存映射布局
3.3.2 嵌入式系统的启动概述
3.3.3 常见嵌入式操作系统的加载方式
3.3.4 嵌入式系统软件的写入
3.4 Hello China的初始化
3.4.1 实地址模式下的初始化
3.4.2 保护模式下的初始化
3.4.3 操作系统核心功能的初始化
3.4.4 Hello China的内存布局图
3.5 Hello China的字符shell
3.5.1 字符shell的概述和启动
3.5.2 Shell的消息处理过程
3.5.3 实例:增加一个字符shell内置命令
3.6 从保护模式切换回实模式
3.6.1 模式切换概述
3.6.2 实模式服务调用举例
3.6.3 保护模式切换到实模式
3.7 引导和初始化总结
第4章 Hello China线程的实现
4.1 进程、线程和任务
4.2 Hello China的线程实现
4.2.1 核心线程管理对象
4.2.2 线程的状态及其切换
4.2.3 核心线程对象
4.2.4 线程的上下文
4.2.5 线程的创建和初始化
4.2.6 线程的结束
4.2.7 线程的消息队列
4.2.8 线程的切换——中断上下文
4.2.9 线程的切换——系统调用上下文
4.2.10 上下文保存和切换的底层函数
4.2.11 线程的睡眠与唤醒
4.2.12 核心线程实现总结
第5章 内存管理机制
5.1 内存管理机制概述
5.2 lA32 CPU内存管理机制
5.2.1 IA32 CPU内存管理机制概述
5.2.2 几个重要的概念
5.2.3 分段机制的应用
5.2.4 分页机制的应用
5.3 Power PC CPU的内存管理机制
5.4 Hello China内存管理模型
5.4.1 Hello China的内存管理模
5.4.2 Hello China的内存布局
5.4.3 核心内存池的管理
5.4.4 页框管理对象
5.4.5 页面索引对象
5.4.6 虚拟内存管理对象
5.5 线程本地堆
5.5.1 线程本地堆概述
5.5.2 堆的功能需求定义
5.5.3 堆的实现概要
5.5.4 堆的详细实现
5.6 Hello China的内存管理机制总结
第6章 系统调用的原理与实现
6.1 系统调用概述
6.2 Hello China系统调用的实现
6.3 系统调用时的参数传递
第7章 线程互斥和同步机制的实现
7.1 互斥和同步概述
7.2 关键区段概述
7.3 关键区段产生的原因
7.3.1 多个线程之间的竞争
7.3.2 中断服务程序与线程之间的竞争
7.3.3 多个CPU之间的竞争
7.4 单CPU下关键区段的实现
7.5 多CPU下关键区段的实现
7.5.1 多CPU环境下的实现方式
7.5.2 Hello China的未来实现
7.6 Power PC下关键区段的实现
7.6.1 Power PC提供的互斥访问机制
7.6.2 多CPU环境下的互斥机制
7.7 关键区段使用注意事项
7.8 Semaphore概述
7.9 Semaphore对象的定义
7.10 Semaphore对象的实现
7.10.1 Initialize和Uninitialize的实现
7.10.2 WaitForThisObject的实现
7.10.3 WaitForThisObjectEx的实现
7.10.4 ReleaseSemaphore的实现
7.11 互斥和同步机制总结
第8章 中断和定时处理机制的实现
8.1 中断和异常概述
8.2 硬件相关部分处理
8.2.1 IA32中断处理过程
8.2.2 IDT初始化
8.3 硬件无关部分处理
8.3.1 系统对象和中断对象
8.3.2 中断调度过程
8.3.3 缺省中断处理函数
8.4 对外服务接口
8.5 系统时钟中断
8.5.1 系统时钟中断概述
8.5.2 系统时钟中断的初始化
8.5.3 系统时钟中断处理函数的主要工作
8.5.4 时钟中断周期对系统实时性的影响分析
8.6 注意事项
8.7 定时器概述
8.7.1 SetTimer函数的调用
8.7.2 CancelTimer函数的调用
8.7.3 ResetTimer函数的调用
8.8 设置定时器操作
8.9 定时器超时处理
8.10 定时器取消处理
8.11 定时器复位
8.12 定时器注意事项
第9章 系统总线和设备管理
9.1 系统总线概述
9.1.1 系统总线
9.1.2 总线管理模型
9.1.3 设备标识符
9.2 系统资源管理
9.2.1 资源描述对象
9.2.2 IO端口资源管理
9.3 驱动程序接口
9.3.1 GetResource
9.3.2 GetDevice
9.3.3 CheckPortRegion
9.3.4 ReservePortRegion
9.3.5 ReleasePortRegion
9.3.6 AppendDevice
9.3.7 DeleteDevice
9.4 PCI总线驱动程序概述
9.4.1 PCI总线概述
9.4.2 PCI设备的配置空间
9.4.3 配置空间关键字段的说明
9.4.4 PCI配置空间的读取与设置
9.5 PCI总线驱动程序的实现
9.5.1 探测PCI总线是否存在
9.5.2 对普通PCI设备进行枚举
9.5.3 配置PCI桥接设备
第10章 设备驱动程序管理
10.1 设备管理框架
10.1.1 概述
10.1.2 通用的操作系统设备管理机制
10.1.3 设备管理框架的实现
10.1.4 IO管理器
10.2 设备驱动程序
10.2.1 设备请求控制块
10.2.2 设备驱动程序对象的定义
10.2.3 设备驱动程序的物理结构
10.2.4 设备驱动程序的功能函数
10.2.5 DriverEntry的实现
10.2.6 UnloadEntry的实现
10.3 设备对象
10.3.1 设备对象的定义
10.3.2 设备对象的命名
10.3.3 设备对象的类型
10.3.4 设备对象的设备扩展
10.3.5 设备的打开操作
10.3.6 设备命名策略
10.4 设备的中断管理
10.5 设备管理实例:串口通信程序
10.5.1 串行通信接口概述
10.5.2 串行通信编程方式
10.6 设备驱动程序管理总结
第11章 图形用户界面
11.1 图形用户界面概述
11.2 符合VESA标准的显示卡操作方法
11.2.1 判断显示卡是否支持VBE标准
11.2.2 切换到0x118工作模式
11.3 对显示设备的封装—Video对象
11.3.1 GUI模块的分层架构
11.3.2 Video对象
11.3.3 通用绘制层简介
11.4 鼠标指针的实现
11.5 窗口消息传递机制概述
11.6 Hello China的窗口机制
11.6.1 父窗口要完全包含子窗口
11.6.2 二层窗口剪切域
11.6.3 二层窗口剪切域的实现
11.7 Hello China窗口机制的实现
11.7.1 窗口管理器与窗口对象
11.7.2 窗口函数与窗口消息
11.7.3 窗口归属线程
11.7.4 窗口树
11.8 用户输入处理和消息传递
11.8.1 用户输入和消息传递过程简介
11.8.2 设备驱动程序的工作
11.8.3 设备输入管理器
11.8.4 GUI原始输入线程——GUIRAWIT
11.8.5 消息循环的本质
11.8.6应用线程之间的窗口消息交互
11.9 Hello China的GUI Shell
11.9.1 GUI Shell概述
11.9.2 GUI Shell的启动和初始化
11.9.3 加载一个应用程序
11.9.4 GUI Shell的退出
11.10 GUI模块的开发方法
第12章 文件系统及其实现
12.1 文件系统概述
12.1.1 文件系统的基本概念
12.1.2 文件系统的操作——fs程序
12.2 FAT32文件系统原理
12.2.1 FAT32卷的布局
12.2.2 引导扇区和BPB
12.2.3 文件分配表
12.2.4 文件目录项
12.2.5 文件的查找
12.3 Hello China文件系统的实现
12.3.1 IO管理器
12.3.2 文件系统的加载和初始化
12.3.3 存储设备驱动程序
12.3.4 分区的识别和安装
12.3.5 文件的打开操作
12.3.6 文件的读取操作
12.4 文件系统API的使用举例
12.5 文件系统实现总结
第13章 应用程序开发方法
13.1 概述
13.2 HCX文件的结构和加载过程
13.2.1 HCX文件的格式
13.2.2 HCX文件的生成方式
13.2.3 HCX文件的加载和执行
13.3 Hello China应用程序开发步骤
13.3.1 建立应用程序开发环境
13.3.2 启动VS 2008,建立一个新的应用程序
13.3.3 在应用程序中添加源代码
13.3.4 对新建的应用程序进行设置
13.3.5 编写应用程序代码,并进行编译链接
13.3.6 对生成的DLL进行处理,形成HCX文件
13.3.7 运行生成的HCX文件
13.4 应用程序开发总结
第14章 开发辅助工具
14.1 开发辅助工具概述
14.2 PE文件格式简介
14.2.1 MS-DOS头和DOS stub程序
14.2.2 PE文件头
14.2.3 PE文件中的节
14.3 开发辅助工具的实现和使用
14.3.1 process工具
14.3.2 hcxbuild工具
14.3.3 append工具
14.3.4 vfmaker工具
14.3.5 dumpf32和mkntfsbs工具
附录
附录A 关于操作系统开发的两篇博文
A.1 操作系统开发过程应遵循的一些原则
A.2 对操作系统开发的一些相关问题的思考
附录B 源代码组织结构说明
附录C 内核开发环境的搭建
C.1 概述
C.2 Microsoft Visual C++的设置
C.3 操作系统开发中常用的Microsoft Visual C++特性
C.4 搭建操作系统开发环境
C.5 操作系统核心模块开发示例
参考文献
📜 SIMILAR VOLUMES
<p>这是一本能指导零计算机基础的读者轻松理解计算机软硬件和操作系统工作原理,从而自己动手从0到1编写出一个操作系统的著作。</p> <p>作者在操作系统领域深度耕耘20余年,不仅一直奋斗在百度等企业一线,而且一直致力于操作系统的教育和布道,希望帮助和指导越来越多的人,尤其是青少年,能从学生时代开始学习操作系统,能从底层原理真正理解操作系统,改变我国基础软件受制于人的现状。</p> <p>本书不仅是作者悟透操作系统本质、厚积薄发的成果,而且是他将复杂的操作系统原理化繁为简、举重若轻,成功指导自己9岁的孩子从0到1编写出一个操作系统的过程的全面复盘和复现。本书驱散了操作系统的迷雾,让操作系统
Andrew S. Tanenbaum教授编写的教材《现代操作系统》现在已经是第4版了。第4版在保持原有特色的基础上,又增添了许多新的内容,反映了当代操作系统的发展与动向,并不断地与时俱进。 对比第3版,第4版有很多变化。一些是教材中多处可见的细微变化,一些是就某一功能或机制增加了对最新技术的介绍,如增加了futex同步原语、读–复制–更新(Read-Copy-Update)机制以及6级RAID的内容。另外一些则是重大变化,例如:用Windows 8替换了Vista的内容;用相当大的篇幅介绍了移动终端应用最广泛、发展最快的Android,以替换原来Symbian的内容;增加了新的一章,介
书签已装载, 书签制作方法请找 [email protected] 完全免费 《Orange S:一个操作系统的实现》从只有二十行的引导扇区代码出发,一步一步地向读者呈现一个操作系统框架的完成过程。书中不仅关注代码本身,同时关注完成这些代码的思路和过程。本书不同于其他的理论型书籍,而是提供给读者一个动手实践的路线图。读者可以根据路线图逐步完成各部分的功能,从而避免了一开始就面对整个操作系统数万行代码时的迷茫和挫败感。书中讲解了大量在开发操作系统中需注意的细节问题,这些细节不仅能使读者更深刻地认识操作系统的核心原理,而且使整个开发过程少走弯路。本书分上下两篇,共11章
书签已装载, 书签制作方法请找 [email protected] 完全免费 本书是关于操作系统的权威教材。大多数关于操作系统的图书均重理论而轻实践,而本书则在这两者之间进行了较好的折中。本册详细探讨了操作系统的基本原理,包括进程、进程间通信、信号量、管程、消息传递、调度算法、输入、输出、死锁、设备驱动程序、存储管理、调页算法、文件系统设计、安全和保护机制等;此外,还详细讨论了一个特殊的操作系统MINIX 3(一个与UNIX兼容的操作系统),并提供了该系统的源代码(见本书下册),以便于读者仔细研究。这种安排不仅可让读者了解操作系统的基本原理,而且可让读者了解到这些基