展开全部

主编推荐语

DIM-SUM自研操作系统发起者和创始人谢宝友作品。

内容简介

本书详细阐述了自研操作系统DIM-SUM的设计与实现,提供了在ARM 64虚拟机中动手实践DIM-SUM及参与DIM-SUM开发的方法。针对DIM-SUM操作系统的同步与互斥、调度、内存、中断与定时器、块设备、文件系统模块进行了详细的分析,包括这些模块的设计思路、数据结构定义、关键API说明。

最重要的是,本书对各个模块的主要函数进行了逐行解释,有助于读者深刻理解如何实现一款实用的操作系统。

最后,本书还展望了接下来10年DIM-SUM操作系统的发展目标,希望最终其能发展为可以在服务器系统、桌面系统中实用的自研操作系统。

目录

  • 版权信息
  • 作者介绍
  • 内容简介
  • 推荐序1
  • 推荐序2
  • 推荐语
  • 前言
  • 第1章 准备工作
  • 1.1 DIM-SUM简介
  • 1.2 DIM-SUM是什么
  • 1.2.1 DIM-SUM的第一个版本为什么是HOT-POT
  • 1.2.2 DIM-SUM欢迎什么
  • 1.2.3 DIM-SUM不欢迎什么
  • 1.3 获得源代码
  • 1.3.1 通过网页下载源代码
  • 1.3.2 通过Git获取源代码
  • 1.4 搭建调试开发环境
  • 1.4.1 安装ubuntu 16.04
  • 1.4.2 ubuntu 16.04环境配置
  • 1.4.3 搭建编译环境
  • 1.4.4 编译HOT-POT
  • 1.4.5 运行HOT-POT
  • 1.4.6 开始调试
  • 1.5 向DIM-SUM操作系统提交补丁
  • 1.5.1 心态
  • 1.5.2 准备工作
  • 1.5.3 制作补丁
  • 1.5.4 制作正确的补丁
  • 1.5.5 发送补丁
  • 1.6 获得帮助
  • 1.7 提醒
  • 第2章 算法基础
  • 2.1 链表
  • 2.2 散列表
  • 2.3 红黑树
  • 2.4 基树
  • 第3章 计数与互斥同步
  • 3.1 计数
  • 3.1.1 计数的难题
  • 3.1.2 精确计数器
  • 3.1.3 近似计数器
  • 3.1.4 引用计数
  • 3.2 内核互斥原语
  • 3.2.1 每CPU变量
  • 3.2.2 自旋锁
  • 3.2.3 自旋位锁
  • 3.2.4 自旋顺序锁
  • 3.2.5 自旋读/写锁
  • 3.2.6 读/写信号量
  • 3.2.7 互斥锁
  • 3.3 内核同步原语
  • 3.3.1 信号量的设计原理
  • 3.3.2 信号量的数据结构
  • 3.3.3 信号量API
  • 3.3.4 信号量的实现
  • 第4章 调度
  • 4.1 基本概念
  • 4.1.1 进程和线程
  • 4.1.2 任务
  • 4.1.3 任务抢占
  • 4.1.4 idle线程
  • 4.2 SMP CPU初始化
  • 4.3 数据结构
  • 4.3.1 线程
  • 4.3.2 调度队列
  • 4.3.3 杂项
  • 4.4 调度子系统初始化
  • 4.4.1 init_sched_early函数
  • 4.4.2 init_idle_process函数
  • 4.4.3 init_sched函数
  • 4.5 线程调度
  • 4.5.1 上下文切换
  • 4.5.2 唤醒线程
  • 4.6 高级调度API
  • 4.6.1 等待队列
  • 4.6.2 位等待队列
  • 4.6.3 线程睡眠
  • 4.6.4 消息队列
  • 第5章 中断及定时器
  • 5.1 中断控制器初始化
  • 5.1.1 主CPU中断控制器初始化
  • 5.1.2 从CPU中断控制器初始化
  • 5.2 中断控制器维护
  • 5.2.1 中断号映射
  • 5.2.2 逻辑中断的控制
  • 5.2.3 设备中断处理函数
  • 5.3 中断处理
  • 5.3.1 序言
  • 5.3.2 中断处理通用流程
  • 5.3.3 处理外部设备中断
  • 5.3.4 处理核间中断
  • 5.3.5 软中断
  • 5.3.6 尾声
  • 5.4 工作队列
  • 5.4.1 工作队列的数据结构
  • 5.4.2 工作队列的全局变量
  • 5.4.3 工作队列的API
  • 5.4.4 工作队列的实现
  • 5.5 定时器与时间管理
  • 5.5.1 初始化
  • 5.5.2 定时器的数据结构
  • 5.5.3 定时器的全局变量
  • 5.5.4 定时器的API
  • 5.5.5 定时器的实现
  • 5.5.6 定时器中断处理
  • 5.5.7 时间管理
  • 第6章 内存管理
  • 6.1 内存初始化
  • 6.1.1 艰难地准备C运行环境
  • 6.1.2 准备BOOT内存空间
  • 6.1.3 物理内存块管理
  • 6.1.4 早期设备内存映射
  • 6.1.5 初始化每CPU变量
  • 6.1.6 初始化线性映射
  • 6.1.7 其他内存初始化工作
  • 6.2 BOOT内存分配器
  • 6.2.1 BOOT内存分配API
  • 6.2.2 BOOT内存分配器的实现
  • 6.2.3 BOOT内存分配器的销毁
  • 6.3 页面编号
  • 6.3.1 页面编号的数据结构
  • 6.3.2 页面编号的全局变量
  • 6.3.3 页面编号的API
  • 6.3.4 页面编号的实现
  • 6.4 页面分配器
  • 6.4.1 页面分配器的设计原理
  • 6.4.2 页面分配器的数据结构
  • 6.4.3 页面分配器的全局变量
  • 6.4.4 页面分配器的API
  • 6.4.5 页面分配器的实现
  • 6.4.6 页面分配器的初始化
  • 6.5 Beehive内存分配器
  • 6.5.1 Beehive内存分配器的设计原理
  • 6.5.2 Beehive内存分配器的数据结构
  • 6.5.3 Beehive内存分配器的全局变量
  • 6.5.4 Beehive内存分配器的API
  • 6.5.5 Beehive内存分配器的实现
  • 6.5.6 Beehive内存分配器的初始化
  • 6.6 I/O内存映射
  • 第7章 块设备
  • 7.1 磁盘及其分区
  • 7.1.1 磁盘及其分区的数据结构
  • 7.1.2 磁盘及其分区的全局变量
  • 7.1.3 磁盘及其分区的API
  • 7.1.4 磁盘及其分区的实现
  • 7.2 块设备维护
  • 7.2.1 块设备的数据结构
  • 7.2.2 块设备的全局变量
  • 7.2.3 块设备的API
  • 7.2.4 块设备的实现
  • 7.3 I/O请求
  • 7.3.1 I/O请求的数据结构
  • 7.3.2 I/O请求的全局变量
  • 7.3.3 I/O请求的API
  • 7.3.4 I/O请求的实现
  • 7.4 I/O调度
  • 7.4.1 I/O调度的数据结构
  • 7.4.2 I/O调度的全局变量
  • 7.4.3 I/O调度的API
  • 7.4.4 I/O调度的实现
  • 第8章 虚拟文件系统
  • 8.1 挂载、卸载文件系统
  • 8.1.1 挂载、卸载文件系统的数据结构
  • 8.1.2 挂载、卸载文件系统的全局变量
  • 8.1.3 挂载、卸载文件系统的API
  • 8.1.4 挂载、卸载文件系统的实现
  • 8.2 文件节点缓存
  • 8.2.1 文件节点缓存的数据结构
  • 8.2.2 文件节点缓存的全局变量
  • 8.2.3 文件节点缓存的API
  • 8.2.4 文件节点缓存的实现
  • 8.3 打开、关闭文件
  • 8.3.1 打开、关闭文件的数据结构
  • 8.3.2 打开、关闭文件的全局变量
  • 8.3.3 打开、关闭文件的API
  • 8.3.4 打开、关闭文件的实现
  • 8.4 读/写文件
  • 8.4.1 读/写文件的数据结构
  • 8.4.2 读/写文件的全局变量
  • 8.4.3 读/写文件的API
  • 8.4.4 读/写文件的实现
  • 8.5 其他功能
  • 第9章 杂项文件系统
  • 9.1 文件系统的挂载
  • 9.1.1 第一次加载根文件系统
  • 9.1.2 第二次加载根文件系统
  • 9.2 内存文件系统
  • 9.2.1 内存文件系统的数据结构
  • 9.2.2 内存文件系统的全局变量
  • 9.2.3 内存文件系统的API
  • 9.2.4 内存文件系统的实现
  • 9.3 设备文件系统
  • 9.3.1 设备文件系统的数据结构
  • 9.3.2 设备文件系统的全局变量
  • 9.3.3 设备文件系统的API
  • 9.3.4 设备文件系统的实现
  • 第10章 LEXT3文件系统
  • 10.1 简介
  • 10.1.1 超级块
  • 10.1.2 块组描述符
  • 10.1.3 块位图
  • 10.1.4 文件节点位图
  • 10.1.5 文件节点表
  • 10.1.6 文件节点
  • 10.1.7 文件日志
  • 10.2 LEXT3
  • 10.2.1 LEXT3的数据结构
  • 10.2.2 LEXT3的全局变量
  • 10.2.3 LEXT3的API
  • 10.2.4 LEXT3的实现
  • 10.3 文件系统日志
  • 10.3.1 日志的数据结构
  • 10.3.2 日志的全局变量
  • 10.3.3 日志的API
  • 10.3.4 日志的实现
  • 第11章 杂项
  • 11.1 klibc
  • 11.2 网络子系统
  • 11.3 SIMPLE-KSHELL
展开全部

评分及书评

尚无评分
目前还没人评分

出版方

电子工业出版社

电子工业出版社成立于1982年10月,是国务院独资、工信部直属的中央级科技与教育出版社,是专业的信息技术知识集成和服务提供商。经过三十多年的建设与发展,已成为一家以科技和教育出版、期刊、网络、行业支撑服务、数字出版、软件研发、软科学研究、职业培训和教育为核心业务的现代知识服务集团。出版物内容涵盖了电子信息技术的各个分支及工业技术、经济管理、科普与少儿、社科人文等领域,综合出版能力位居全国出版行业前列。