计算机
类型
可以朗读
语音朗读
383千字
字数
2025-08-01
发行日期
展开全部
主编推荐语
30章手把手实战指南,从0到1构建操作系统。
内容简介
在本书中,你将尝试从零自制操作系统。你会体验到制作操作系统的整个过程,从打开计算机、调用操作系统本身到能够运行各种应用。你会了解到计算机的内部结构,以及操作系统的工作原理;在此之前,它们对于你来说可能一直都是黑箱。
本书内容包括:个人可以制作操作系统吗、计算机工作原理和Hello World、EDK II和内存映射、屏幕显示实践和引导加载器、像素绘图和make入门、文本显示和控制台类、鼠标输入和PCI、中断和FIFO、内存管理、叠加过程、窗口、定时器和ACPI、键盘输入、多任务处理、终端、命令、文件系统、应用、分页、系统调用、窗口应用、图形和事件、多终端、使用应用加载文件、从应用写入文件、应用的内存管理、日文显示和重定向、应用间通信、额外应用、前方的路,以及配置开发环境、获取MikanOS、EDK II文件说明、C中的模板、iPXE、ASCII码表。
目录
- 版权信息
- 内容简介
- 译者序
- 引言
- 目标读者
- 第0章个人可以制作操作系统吗
- 0.1 如何制作操作系统
- 0.2 到底什么是操作系统
- 0.3 自制操作系统的步骤
- 0.4 享受自制操作系统的乐趣
- 0.5 自制操作系统的全貌
- 第1章计算机工作原理和Hello World
- 1.1 Hello World
- 1.2 如何查找U盘的设备名称
- 1.3 如何使用WSL
- 1.4 使用模拟器
- 1.5 最终做了些什么
- 1.6 还是让我们动手吧
- 1.7 使用UEFI BIOS启动
- 1.8 制作操作系统的工具
- 1.9 C语言版的Hello World程序
- 第2章EDK II和内存映射
- 2.1 EDK II简介
- 2.2 EDK II的Hello World程序(osbook_day02a)
- 2.3 主存储器
- 2.4 内存映射
- 2.5 获取内存映射(osbook_day02b)
- 2.6 将内存映射保存到文件中
- 2.7 检查内存映射
- 2.8 指针简介(1):地址和指针
- 2.9 指针和箭头运算符
- 第3章屏幕显示实践和引导加载器
- 3.1 QEMU监视器
- 3.2 寄存器
- 3.3 第一个内核(osbook_day03a)
- 3.4 从引导加载器绘制像素(osbook_day03b)
- 3.5 从内核绘制像素(osbook_day03c)
- 3.6 错误处理(osbook_day03d)
- 3.7 指针简介(2):指针与汇编语言
- 第4章像素绘图和make入门
- 4.1 make简介(osbook_day04a)
- 4.2 自由绘制像素(osbook_day04b)
- 4.3 利用C++语言特性重写程序(osbook_day04c)
- 4.4 vtable
- 4.5 改进加载器(osbook_day04d)
- 第5章文本显示和控制台类
- 5.1 尝试写入字符(osbook_day05a)
- 5.2 拆分编译(osbook_day05b)
- 5.3 增加字体(osbook_day05c)
- 5.4 字符串绘制和sprintf()(osbook_day05d)
- 5.5 控制台类(osbook_day05e)
- 5.6 printk()(osbook_day05f)
- 第6章鼠标输入和PCI
- 6.1 鼠标光标(osbook_day06a)
- 6.2 USB Host驱动程序
- 6.3 搜索PCI设备(osbook_day06b)
- 6.4 带轮询的鼠标输入(osbook_day06c)
- 第7章中断和FIFO
- 7.1 中断(osbook_day07a)
- 7.2 中断处理程序
- 7.3 中断向量
- 7.4 设置中断描述符
- 7.5 MSI机制
- 7.6 中断总结
- 7.7 加速中断处理程序(osbook_day07b)
- 7.8 FIFO和FILO
- 7.9 实现队列
- 7.10 使用队列加速中断
- 第8章内存管理
- 8.1 内存管理概述
- 8.2 UEFI内存映射(osbook_day08a)
- 8.3 移动数据结构(osbook_day08b)
- 8.4 移动栈区域
- 8.5 设置分段
- 8.6 设置分页
- 8.7 内存管理挑战(osbook_day08c)
- 第9章叠加过程
- 9.1 叠加过程概述(osbook_day09a)
- 9.2 new运算符
- 9.3 叠加过程的原理
- 9.4 叠加过程的时间测量(osbook_day09b)
- 9.5 加速叠加过程(osbook_day09c)
- 9.6 测量滚动过程时间(osbook_day09d)
- 9.7 更快的滚动过程(osbook_day09e)
- 第10章窗口
- 10.1 再论鼠标(osbook_day10a)
- 10.2 第一个窗口(osbook_day10b)
- 10.3 快速计数器(osbook_day10c)
- 10.4 消除闪烁(osbook_day10d)
- 10.5 后置缓冲区(osbook_day10e)
- 10.6 拖动窗口(osbook_day10f)
- 10.7 仅拖动窗口(osbook_day10g)
- 第11章定时器和ACPI
- 11.1 整理源码(osbook_day11a)
- 11.2 定时器中断(osbook_day11b)
- 11.3 精确定时(osbook_day11c)
- 11.4 多个定时器和超时通知(osbook_day11d)
- 11.5 ACPI PM定时器和RSDP(osbook_day11e)
- 第12章键盘输入
- 12.1 查找FADT(osbook_day12a)
- 12.2 使用ACPI PM定时器(osbook_day12b)
- 12.3 USB键盘驱动程序(osbook_day12c)
- 12.4 修改键(osbook_day12d)
- 12.5 文本框(osbook_day12e)
- 12.6 光标(osbook_day12f)
- 第13章多任务处理(1)
- 13.1 多任务和上下文
- 13.2 处理上下文切换(osbook_day13a)
- 13.3 自动上下文切换(osbook_day13b)
- 13.4 验证多任务处理(osbook_day13c)
- 13.5 更多任务(osbook_day13d)
- 第14章多任务处理(2)
- 14.1 休眠(osbook_day14a)
- 14.2 事件发生时唤醒(osbook_day14b)
- 14.3 性能测量
- 14.4 确定任务的优先级(osbook_day14c)
- 14.5 休眠任务(osbook_day14d)
- 第15章终端
- 15.1 在主线程中绘制窗口(osbook_day15a)
- 15.2 活动窗口(osbook_day15b)
- 15.3 终端窗口(osbook_day15c)
- 15.4 加速绘图(osbook_day15d)
- 第16章命令
- 16.1 终端中的按键操作(osbook_day16a)
- 16.2 echo命令(osbook_day16b)
- 16.3 clear命令(osbook_day16c)
- 16.4 lspci命令(osbook_day16d)
- 16.5 命令历史记录(osbook_day16e)
- 16.6 省电(osbook_day16f)
- 第17章文件系统
- 17.1 文件和文件系统
- 17.2 BIOS参数块
- 17.3 目录条目
- 17.4 读出卷(osbook_day17a)
- 17.5 ls命令(osbook_day17b)
- 第18章应用
- 18.1 文件分配表(osbook_day18a)
- 18.2 第一个应用(osbook_day18b)
- 18.3 C++中的计算器(osbook_day18c)
- 18.4 标准库(osbook_day18d)
- 第19章分页
- 19.1 可执行文件和内存地址
- 19.2 地址转换
- 19.3 加载并运行应用(osbook_day19a)
- 19.4 虚拟地址和四级分页
- 19.5 在后半部分运行应用
- 19.6 加载应用
- 19.7 设置分层分页结构
- 19.8 整理分层分页结构
- 第20章系统调用
- 20.1 应用如何使用操作系统函数(osbook_day20a)
- 20.2 保护操作系统(1)(osbook_day20b)
- 20.3 设置TSS(osbook_day20c)
- 20.4 帮助查找错误(osbook_day20d)
- 20.5 系统调用(osbook_day20e)
- 20.6 注册系统调用的过程
- 20.7 系统调用本体
- 第21章窗口应用
- 21.1 设置IST(osbook_day21a)
- 21.2 字符串显示系统调用(osbook_day21b)
- 21.3 创建系统调用
- 21.4 创建write()
- 21.5 退出系统调用(osbook_day21c)
- 21.6 返回栈指针
- 21.7 代码整理(osbook_day21d)
- 21.8 打开一个窗口(osbook_day21e)
- 21.9 在窗口中写入文本(osbook_day21f)
- 第22章图形和事件(1)
- 22.1 使用exit()(osbook_day22a)
- 22.2 绘制两个点(osbook_day22b)
- 22.3 获取计时器值(osbook_day22c)
- 22.4 窗口绘制的优化(osbook_day22d)
- 22.5 绘制直线(osbook_day22e)
- 22.6 关闭窗口(osbook_day22f)
- 22.7 等待按键输入(osbook_day22g)
- 第23章图形和事件(2)
- 23.1 鼠标输入(osbook_day23a)
- 23.2 绘图软件(osbook_day23b)
- 23.3 计时器命令(osbook_day23c)
- 23.4 动画(osbook_day23d)
- 23.5 打方块游戏(osbook_day23e)
- 第24章多终端
- 24.1 增加终端数量(osbook_day24a)
- 24.2 光标自动闪烁(osbook_day24b)
- 24.3 同时启动多个应用(osbook_day24c)
- 24.4 修复窗口重叠的错误(osbook_day24d)
- 24.5 不需要终端即可启动应用(osbook_day24e)
- 24.6 冻结操作系统的应用(osbook_day24f)
- 24.7 保护操作系统(2)(osbook_day24g)
- 第26章使用应用写入文件
- 26.1 标准输入(osbook_day26a)
- 26.2 文件描述符的抽象化
- 26.3 接收键盘输入
- 26.4 EOF和EOT(osbook_day26b)
- 26.5 写入文件(1)(osbook_day26c)
- 26.6 写入文件(2)(osbook_day26d)
- 第27章应用的内存管理
- 27.1 按需分页(osbook_day27a)
- 27.2 内存映射文件(osbook_day27b)
- 27.3 测量内存使用情况(osbook_day27c)
- 27.4 写入时复制(osbook_day27d)
- 第28章日文显示和重定向
- 28.1 日文和字符编码(osbook_day28a)
- 28.2 日文字体(osbook_day28b)
- 28.3 重定向(osbook_day28c)
- 第29章应用间通信
- 29.1 退出码(osbook_day29a)
- 29.2 管道(osbook_day29b)
- 29.3 解析命令行并启动任务
- 29.4 管道处理的主体PipeDescriptor
- 29.5 启动和关闭终端
- 29.6 终止任务
- 29.7 排序命令(osbook_day29c)
- 29.8 终端错误修复(osbook_day29d)
- 29.9 共享内存
- 第30章额外应用
- 30.1 应用路径程序(osbook_day30a)
- 30.2 more命令(osbook_day30b)
- 30.3 使cat与输入相对应(osbook_day30c)
- 30.4 关闭按钮(osbook_day30d)
- 30.5 文本查看器(osbook_day30e)
- 30.6 图像查看器(osbook_day30f)
- 第31章前方的路
- 附录A配置开发环境
- A.1 安装WSL
- A.2 将QEMU与WSL结合使用的准备工作
- 附录B获取MikanOS
- B.1 检查MikanOS版本之间的差异
- B.2 搜索源码
- 附录CEDKII文件说明
- 附录DC++中的模板
- 附录E iPXE
- E.1 构建和安装iPXE
- E.2 启动HTTP服务器
- E.3 网络启动实践
- 附录FASCII码表
- 致谢
展开全部
出版方
电子工业出版社
电子工业出版社成立于1982年10月,是国务院独资、工信部直属的中央级科技与教育出版社,是专业的信息技术知识集成和服务提供商。经过三十多年的建设与发展,已成为一家以科技和教育出版、期刊、网络、行业支撑服务、数字出版、软件研发、软科学研究、职业培训和教育为核心业务的现代知识服务集团。出版物内容涵盖了电子信息技术的各个分支及工业技术、经济管理、科普与少儿、社科人文等领域,综合出版能力位居全国出版行业前列。
