展开全部

主编推荐语

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