展开全部

主编推荐语

从零开始编写一个五脏俱全的图形操作系统!本书适合操作系统爱好者和程序设计人员阅读。

内容简介

《30天自制操作系统》是一本兼具趣味性、实用性与学习性的操作系统图书。作者川合秀实从计算机的构造、汇编语言、C语言开始解说,让读者在实践中掌握算法。在《30天自制操作系统》的指导下,从零编写所有代码,30天后就可以制作出一个具有窗口系统的32位多任务操作系。

目录

  • 版权信息
  • 版权声明
  • 译者序
  • 前言
  • 第0天 着手开发之前
  • 1 前言
  • 2 何谓操作系统
  • 3 开发操作系统的各种方法
  • 4 无知则无畏
  • 5 如何开发操作系统
  • 6 操作系统开发中的困难
  • 7 学习本书时的注意事项(重要!)
  • 8 各章内容摘要
  • 第1天 从计算机结构到汇编程序入门
  • 1 先动手操作
  • 2 究竟做了些什么
  • 3 初次体验汇编程序
  • 4 加工润色
  • 第2天 汇编语言学习与Makefile入门
  • 1 介绍文本编辑器
  • 2 继续开发
  • 3 先制作启动区
  • 4 Makefile入门
  • COLUMN-1 数据也能“执行”吗?机器语言也能“显示”吗?
  • 第3天 进入32位模式并导入C语言
  • 1 制作真正的IPL
  • 2 试错
  • 3 读到18扇区
  • 4 读入10个柱面
  • 5 着手开发操作系统
  • 6 从启动区执行操作系统
  • 7 确认操作系统的执行情况
  • 8 32位模式前期准备
  • 9 开始导入C语言
  • 10 实现HLT(harib00j)
  • 第4天 C语言与画面显示的练习
  • 1 用C语言实现内存写入(harib01a)
  • 2 条纹图案(harib01b)
  • 3 挑战指针(harib01c)
  • COLUMN-2 只要使用类型转换,就可以不用指针之类的方法吗?
  • COLUMN-3 还是不能理解指针
  • 4 指针的应用(1)(harib01d)
  • 5 指针的应用(2)(harib01e)
  • COLUMN-4 p[i]是数组吗?
  • 6 色号设定(harib01f)
  • 7 绘制矩形(harib01g)
  • 8 今天的成果(harib01h)
  • 第5天 结构体、文字显示与GDT/IDT初始化
  • 1 接收启动信息(harib02a)
  • 2 试用结构体(harib02b)
  • COLUMN-5 结构体的简单说明
  • 3 试用箭头记号(harib02c)
  • 4 显示字符(harib02d)
  • 5 增加字体(harib02e)
  • 6 显示字符串(harib02f)
  • 7 显示变量值(harib02g)
  • 8 显示鼠标指针(harib02h)
  • 9 GDT与IDT的初始化(harib02i)
  • 第6天 分割编译与中断处理
  • 1 分割源文件(harib03a)
  • 2 整理Makefile(harib03b)
  • 3 整理头文件(harib03c)
  • 4 意犹未尽
  • 5 初始化PIC(harib03d)
  • 6 中断处理程序的制作(harib03e)
  • 第7天 FIFO与鼠标控制
  • 1 获取按键编码(harib04a)
  • 2 加快中断处理(harib04b)
  • 3 制作FIFO缓冲区(harib04c)
  • 4 改善FIFO缓冲区(harib04d)
  • 5 整理FIFO缓冲区(harib04e)
  • 6 总算讲到鼠标了(harib04f)
  • 7 从鼠标接受数据(harib04g)
  • 第8天 鼠标控制与32位模式切换
  • 1 鼠标解读(1)(harib05a)
  • 2 稍事整理(harib05b)
  • 3 鼠标解读(2)(harib05c)
  • 4 移动鼠标指针(harib05d)
  • 5 通往32位模式之路
  • 第9天 内存管理
  • 1 整理源文件(harib06a)
  • 2 内存容量检查(1)(harib06b)
  • 3 内存容量检查(2)(harib06c)
  • 4 挑战内存管理(harib06d)
  • 第10天 叠加处理
  • 1 内存管理(续)(harib07a)
  • COLUMN-6 十进制数的向下舍入
  • 2 叠加处理(harib07b)
  • 3 提高叠加处理速度(1)(harib07c)
  • 4 提高叠加处理速度(2)(harib07d)
  • 第11天 制作窗口
  • 1 鼠标显示问题(harib08a)
  • 2 实现画面外的支持(harib08b)
  • 3 shtctl的指定省略(harib08c)
  • 4 显示窗口(harib08d)
  • 5 小实验(harib08e)*
  • 6 高速计数器(harib08f)
  • 7 消除闪烁(1)(harib08g)
  • 8 消除闪烁(2)(harib08h)
  • 第12天 定时器(1)
  • 1 使用定时器(harib09a)
  • 2 计量时间(harib09b)
  • 3 超时功能(harib09c)
  • 4 设定多个定时器(harib09d)
  • 5 加快中断处理(1)(harib09e)
  • 6 加快中断处理(2)(harib09f)
  • 7 加快中断处理(3)(harib09g)
  • 第13天 定时器(2)
  • 1 简化字符串显示(harib10a)
  • 2 重新调整FIFO缓冲区(1)(harib10b)
  • 3 测试性能(harib10c~harib10f)
  • COLUMN-7 起动3秒后,将count置为0的原因
  • 4 重新调整FIFO缓冲区(2)(harib10g)
  • 5 加快中断处理(4)(harib10h)
  • 6 使用“哨兵”简化程序(harib10i)
  • 第14天 高分辨率及键盘输入
  • 1 继续测试性能(harib11a ~ harib11c)
  • COLUMN-8 如此细微的改进有意义吗?
  • 2 提高分辨率(1)(harib11d)
  • 3 提高分辨率(2)(harib11e)
  • 4 键盘输入(1)(harib11f)
  • 5 键盘输入(2)(harib11g)
  • 6 追记内容(1)(harib11h)
  • 7 追记内容(2)(harib11i)
  • 第15天 多任务(1)
  • 1 挑战任务切换(harib12a)
  • 2 任务切换进阶(harib12b)
  • 3 做个简单的多任务(1)(harib12c)
  • 4 做个简单的多任务(2)(harib12d)
  • 5 提高运行速度(harib12e)
  • COLUMN-9 千万不能return?
  • 6 测试运行速度(harib12f)
  • 7 多任务进阶(harib12g)
  • 第16天 多任务(2)
  • 1 任务管理自动化(harib13a)
  • 2 让任务休眠(harib13b)
  • 3 增加窗口数量(harib13c)
  • 4 设定任务优先级(1)(harib13d)
  • 5 设定任务优先级(2)(harib13e)
  • 第17天 命令行窗口
  • 1 闲置任务(harib14a)
  • 2 创建命令行窗口(harib14b)
  • 3 切换输入窗口(harib14c)
  • 4 实现字符输入(harib14d)
  • 5 符号的输入(harib14e)
  • 6 大写字母与小写字母(harib14f)
  • COLUMN-10 键盘的设计问题?
  • 7 对各种锁定键的支持(harib14g)
  • 第18天 dir命令
  • 1 控制光标闪烁(1)(harib15a)
  • 2 控制光标闪烁(2)(harib15b)
  • 3 对回车键的支持(harib15c)
  • 4 对窗口滚动的支持(harib15d)
  • 5 mem命令(harib15e)
  • 6 cls命令(harib15f)
  • 7 dir命令(harib15g)
  • 第19天 应用程序
  • 1 type命令(harib16a)
  • 2 type命令改良(harib16b)
  • 3 对FAT的支持(harib16c)
  • COLUMN-11 FAT的压缩
  • 4 代码整理(harib16d)
  • 5 第一个应用程序(harib16e)
  • 第20天 API
  • 1 程序整理(harib17a)
  • 2 显示单个字符的API(1)(harib17b)
  • 3 显示单个字符的API(2)(harib17c)*
  • 4 结束应用程序(harib17d)
  • 5 不随操作系统版本而改变的API(harib17e)
  • 6 为应用程序自由命名(harib17f)
  • 7 当心寄存器(harib17g)
  • 8 用API显示字符串(harib17h)
  • 第21天 保护操作系统
  • 1 攻克难题——字符串显示API(harib18a)
  • 2 用C语言编写应用程序(harib18b)
  • 3 保护操作系统(1)(harib18c)
  • 4 保护操作系统(2)(harib18d)
  • 5 对异常的支持(harib18e)
  • 6 保护操作系统(3)(harib18f)
  • 7 保护操作系统(4)(harib18g)
  • 第22天 用C语言编写应用程序
  • 1 保护操作系统(5)(harib19a)
  • 2 帮助发现bug(harib19b)
  • 3 强制结束应用程序(harib19c)
  • 4 用C语言显示字符串(1)(harib19d)
  • 5 用C语言显示字符串(2)(harib19e)
  • 6 显示窗口(harib19f)
  • 7 在窗口中描绘字符和方块(harib19g)
  • 第23天 图形处理相关
  • 1 编写malloc(harib20a)
  • 2 画点(harib20b)
  • 3 刷新窗口(harib20c)
  • 4 画直线(harib20d)
  • 5 关闭窗口(harib20e)
  • 6 键盘输入API(harib20f)
  • 7 用键盘输入来消遣一下(harib20g)
  • 8 强制结束并关闭窗口(harib20h)
  • 第24天 窗口操作
  • 1 窗口切换(1)(harib21a)
  • 2 窗口切换(2)(harib21b)
  • 3 移动窗口(harib21c)
  • 4 用鼠标关闭窗口(harib21d)
  • 5 将输入切换到应用程序窗口(harib21e)
  • 6 用鼠标切换输入窗口(harib21f)
  • 7 定时器API(harib21g)
  • 8 取消定时器(harib21h)
  • 第25天 增加命令行窗口
  • 1 蜂鸣器发声(harib22a)
  • 2 增加更多的颜色(1)(harib22b)
  • 3 增加更多的颜色(2)(harib22c)
  • 4 窗口初始位置(harib22d)
  • 5 增加命令行窗口(1)(harib22e)
  • 6 增加命令行窗口(2)(harib22f)
  • 7 增加命令行窗口(3)(harib22g)
  • 8 增加命令行窗口(4)(harib22h)
  • 9 变得更像真正的操作系统(1)(harib22i)
  • 10 变得更像真正的操作系统(2)(harib22j)
  • 第26天 为窗口移动提速
  • 1 提高窗口移动速度(1)(harib23a)
  • 2 提高窗口移动速度(2)(harib23b)
  • 3 提高窗口移动速度(3)(harib23c)
  • 4 提高窗口移动速度(4)(harib23d)
  • 5 启动时只打开一个命令行窗口(harib23e)
  • 6 增加更多的命令行窗口(harib23f)
  • 7 关闭命令行窗口(1)(harib23g)
  • 8 关闭命令行窗口(2)(harib23h)
  • 9 start命令(harib23i)
  • 10 ncst命令(harib23j)
  • 第27天 LDT与库
  • 1 先来修复bug(harib24a)
  • 2 应用程序运行时关闭命令行窗口(harib24b)*
  • 3 保护应用程序(1)(harib24c)
  • 4 保护应用程序(2)(harib24d)
  • 5 优化应用程序的大小(harib24e)
  • 6 库(harib24f)
  • 7 整理make环境(harib24g)
  • 第28天 文件操作与文字显示
  • 1 alloca(1)(harib25a)
  • 2 alloca(2)(harib25b)
  • 3 文件操作API(harib25c)
  • 4 命令行API(harib25d)
  • 5 日文文字显示(1)(harib25e)<sup>1</sup>
  • 6 日文文字显示(2)(harib25f)
  • 7 日文文字显示(3)(harib25g)
  • 第29天 压缩与简单的应用程序
  • 1 修复bug(harib26a)
  • 2 文件压缩(harib26b)
  • 3 标准函数
  • 4 非矩形窗口(harib26c)
  • 5 bball(harib26d)
  • 6 外星人游戏(harib26e)
  • 第30天 高级的应用程序
  • 1 命令行计算器(harib27a)
  • 2 文本阅览器(harib27b)
  • 3 MML播放器(harib27c)
  • 4 图片阅览器(harib27d)
  • 5 IPL的改良(harib27e)
  • 6 光盘启动(harib27f)
  • 第31天 写在开发完成之后
  • 1 继续开发要靠大家的努力
  • 2 关于操作系统的大小
  • 3 操作系统开发的诀窍
  • 4 分享给他人使用
  • 5 关于光盘中的软件
  • 6 关于开源的建议
  • 7 后记
  • COLUMN-12 这也能叫自制操作系统?太坑爹了!(以下内容不是面向初学者的)
  • 8 毕业典礼
  • 9 附录
展开全部

评分及书评

评分不足
1个评分

出版方

人民邮电出版社·图灵出品

图灵社区成立于2005年6月,由人民邮电出版社投资控股,以策划出版高质量的科技书籍为核心业务,主要出版领域包括计算机、电子电气、数学统计、科普等,通过引进国际高水平的教材、专著,以及发掘国内优秀原创作品等途径,为目标读者提供一流的内容。