/

30天自制操作系统

收藏

€29.30

本商品正在进行:

购书满20欧元,送台历一份(赠品须放入购物车才有效)的时间为2024-02-02到2024-03-31,赶快来抢吧!

本服务由德国中文书店提供售后服务与产品支持

正品保证

款到发货

7天退货

极速达

请选择
30天自制操作系统

30天自制操作系统

€29.30

数量

加入购物车 立即购买
好评率 100%
0人评论
客服 0购物车 加入购物车 立即购买
  • 商品描述
  • 规格参数
编辑推荐

自制操作系统只需30天

从零开始编写一个五脏俱全的图形操作系统

39.1KB迷你系统30天自制完成

实现多任务、汉字显示、文件压缩,还能听歌看图玩游戏

日本编程天才川合秀实作品

揭开CPU、内存、磁盘以及操作系统底层工作模式的神秘面纱

 
内容简介

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

《30天自制操作系统》适合操作系统爱好者和程序设计人员阅读。

作者简介

川合秀实(Hidemi Kawai),生于1975年,是一位以"轻量化"编程思想见长的"非主流"开 发者。2000年因自行开发的OSASK项目而名声大噪。OSASK是一个开源的32位微型操作系统,它并非以Linux等内核为基础,而是完全从零开始开发,在一张软盘的容量下实现了GUI、多任务、多语言等高 级特性,启动时间只需1秒。本书的内容可以看成是作者以OSASK为蓝本,教会读者从零开始开发一个操作系统,同时可以让初学者在编写操作系统的过程中,了解操作系统背后更多的知识。

目  录

目 录



第0天 着手开发之前 1

1 前言 1

2 何谓操作系统 3

3 开发操作系统的各种方法 4

4 无知则无畏 4

5 如何开发操作系统 6

6 操作系统开发中的困难 7

7 学习本书时的注意事项(重要!) 9

8 各章内容摘要 11



第 1天 从计算机结构到汇编程序入门 13

1 先动手操作 13

2 做了些什么 19

3 初次体验汇编程序 22

4 加工润色 24



第 2天 汇编语言学习与Makefile入门 28

1 介绍文本编辑器 28

2 继续开发 29

3 先制作启动区 40

4 Makefile入门 41



第3天 进入32位模式并导入C语言 45

1 制作真正的IPL 45

2 试错 50

3 读到18扇区 51

4 读入10个柱面 52

5 着手开发操作系统 54

6 从启动区执行操作系统 55

7 确认操作系统的执行情况 56

8 32位模式前期准备 57

9 开始导入C语言 59

10 实现HLT(harib00j) 62



第4天 C语言与画面显示的练习 64

1 用C语言实现内存写入(harib01a) 64

2 条纹图案(harib01b) 67

3 挑战指针(harib01c) 69

4 指针的应用(1)(harib01d) 74

5 指针的应用(2)(harib01e) 74

6 色号设定(harib01f) 75

7 绘制矩形(harib01g) 84

8 今 天的成果(harib01h) 86



第5天 结构体、文字显示与GDT/IDT初始化 88

1 接收启动信息(harib02a) 88

2 试用结构体(harib02b) 89

3 试用箭头记号(harib02c) 91

4 显示字符(harib02d) 91

5 增加字体(harib02e) 94

6 显示字符串(harib02f) 96

7 显示变量值(harib02g) 97

8 显示鼠标指针(harib02h) 99

9 GDT与IDT的初始化(harib02i) 101



第6天 分割编译与中断处理 108

1 分割源文件(harib03a) 108

2 整理Makefile(harib03b) 109

3 整理头文件(harib03c) 110

4 意犹未尽 112

5 初始化PIC(harib03d) 115

6 中断处理程序的制作(harib03e) 119



第7天 FIFO与鼠标控制 125

1 获取按键编码(hiarib04a) 125

2 加快中断处理(hiarib04b) 127

3 制作FIFO缓冲区(hiarib04c) 130

4 改善FIFO缓冲区(hiarib04d) 133

5 整理FIFO缓冲区(hiarib04e) 135

6 总算讲到鼠标了(harib04f) 138

7 从鼠标接受数据(harib04g) 141



第8天 鼠标控制与32位模式切换 144

1 鼠标解读(1)(harib05 a) 144

2 稍事整理(harib05b) 146

3 鼠标解读(2)(harib05c) 148

4 移动鼠标指针(harib05d) 151

5 通往32位模式之路 153



第9天 内存管理 162

1 整理源文件(harib06a) 162

2 内存容量检查(1)(harib06b) 163

3 内存容量检查(2)(harib06c) 168

4 挑战内存管理(harib06d) 172



第 10天 叠加处理 181

1 内存管理(续)(harib07a) 181

2 叠加处理(harib07b) 184

3 提高叠加处理速度(1)(harib07c) 194

4 提高叠加处理速度(2)(harib07d) 197



第 11天 制作窗口 201

1 鼠标显示问题(harib08a) 201

2 实现画面外的支持(harib08b) 202

3 shtctl的指定省略(harib08c) 203

4 显示窗口(harib08d) 206

5 小实验(harib08e) 208

6 高速计数器(harib08f) 209

7 消除闪烁(1)(harib08g) 211

8 消除闪烁(2)(harib08h) 214



第 12天 定时器(1) 220

1 使用定时器(harib09a) 220

2 计量时间(harib09b) 224

3 超时功能(harib09c) 225

4 设定多个定时器(harib09d) 228

5 加快中断处理(1)(harib09e) 232

6 加快中断处理(2)(harib09f) 234

7 加快中断处理(3)(harib09g) 236



第 13天 定时器(2) 240

1 简化字符串显示(harib10a) 240

2 重新调整FIFO缓冲区(1)(harib10b) 241

3 测试性能(harib10c~harib10f) 243

4 重新调整FIFO缓冲区(2)(harib10g) 246

5 加快中断处理(4)(harib10h) 253

6 使用“哨兵”简化程序(harib10i) 257



第 14天 高分辨率及键盘输入 262

1 继续测试性能(harib11a~harib11c) 262

2 提高分辨率(1)(harib11d) 266

3 提高分辨率(2)(harib11e) 269

4 键盘输入(1)(harib11f) 272

5 键盘输入(2)(harib11g) 275

6 追记内容(1)(harib11h) 277

7 追记内容(2)(harib11i) 279



第 15天 多任务(1) 282

1 挑战任务切换(harib12a) 282

2 任务切换进阶(harib12b) 289

3 做个简单的多任务(1)(harib12c) 291

4 做个简单的多任务(2)(harib12d) 293

5 提高运行速度(harib12e) 294

6 测试运行速度(harib12f) 297

7 多任务进阶(harib12g) 299



第 16天 多任务(2) 304

1 任务管理自动化(harib13a) 304

2 让任务休眠(harib13b) 308

3 增加窗口数量(harib13c) 313

4 设定任务优先级(1)(harib13d) 317

5 设定任务优先级(2)(harib13e) 320



第 17天 命令行窗口 329

1 闲置任务(harib14a) 329

2 创建命令行窗口(harib14b) 331

3 切换输入窗口(harib14c) 334

4 实现字符输入(harib14d) 337

5 符号的输入(harib14e) 341

6 大写字母与小写字母(harib14f) 343

7 对各种锁定键的支持(harib14g) 346



第 18天 dir命令 350

1 控制光标闪烁(1)(harib15 a) 350

2 控制光标闪烁(2)(harib15b) 352

3 对回车键的支持(harib15c) 355

4 对窗口滚动的支持(harib15d) 357

5 mem命令(harib15e) 359

6 cls命令(harib15f) 363

7 dir命令(harib15g) 366



第 19天 应用程序 371

1 type命令(harib16a) 371

2 type命令改良(harib16b) 378

3 对FAT的支持(harib16c) 382

4 代码整理(harib16d) 387

5 第 一个应用程序(harib16e) 387



第 20天 API 392

1 程序整理(harib17a) 392

2 显示单个字符的API(1)(harib17b) 399

3 显示单个字符的API(2)(harib17c) 402

4 结束应用程序(harib17d) 403

5 不随操作系统版本而改变的API(harib17e) 405

6 为应用程序自由命名(harib17f) 408

7 当心寄存器(harib17g) 410

8 用API显示字符串(harib17h) 412



第 21天 保护操作系统 418

1 攻克难题——字符串显示API(harib18a) 418

2 用C语言编写应用程序(harib18b) 420

3 保护操作系统(1)(harib18c) 424

4 保护操作系统(2)(harib18d) 426

5 对异常的支持(harib18e) 431

6 保护操作系统(3)(harib18f) 434

7 保护操作系统(4)(harib18g) 435



第 22天 用C语言编写应用程序 443

1 保护操作系统(5)(harib19a) 443

2 帮助发现bug(harib19b) 448

3 强制结束应用程序(harib19c) 452

4 用C语言显示字符串(1)(harib19d) 455

5 用C语言显示字符串(2)(harib19e) 457

6 显示窗口(harib19f) 462

7 在窗口中描绘字符和方块(harib19g) 465



第 23天 图形处理相关 468

1 编写malloc(harib20a) 468

2 画点(harib20b) 472

3 刷新窗口(harib20c) 475

4 画直线(harib20d) 478

5 关闭窗口(harib20e) 483

6 键盘输入API(harib20f) 484

7 用键盘输入来消遣一下(harib20g) 488

8 强制结束并关闭窗口(harib20h) 489



第 24天 窗口操作 493

1 窗口切换(1)(harib21a) 493

2 窗口切换(2)(harib21b) 495

3 移动窗口(harib21c) 496

4 用鼠标关闭窗口(harib21d) 498

5 将输入切换到应用程序窗口(harib21e) 500

6 用鼠标切换输入窗口(harib21f) 506

7 定时器API(harib21g) 507

8 取消定时器(harib21h) 511



第 25天 增加命令行窗口 515

1 蜂鸣器发声(harib22a) 515

2 增加更多的颜色(1)(harib22b) 518

3 增加更多的颜色(2)(harib22c) 520

4 窗口初始位置(harib22d) 523

5 增加命令行窗口(1)(harib22e) 524

6 增加命令行窗口(2)(harib22f) 528

7 增加命令行窗口(3)(harib22g) 531

8 增加命令行窗口(4)(harib22h) 532

9 变得更像真正的操作系统(1)(harib22i) 534

10 变得更像真正的操作系统(2)(harib22j) 538



第 26天 为窗口移动提速 541

1 提高窗口移动速度(1)(harib23a) 541

2 提高窗口移动速度(2)(harib23b) 543

3 提高窗口移动速度(3)(harib23c) 547

4 提高窗口移动速度(4)(harib23d) 549

5 启动时只打开一个命令行窗口(harib23e) 551

6 增加更多的命令行窗口(harib23f) 554

7 关闭命令行窗口(1)(harib23g) 555

8 关闭命令行窗口(2)(harib23h) 561

9 start命令(harib23i) 563

10 ncst命令(harib23j) 564



第 27天 LDT与库 571

1 先来修复bug(harib24a) 571

2 应用程序运行时关闭命令行窗口(harib24b) 573

3 保护应用程序(1)(harib24c) 577

4 保护应用程序(2)(harib24d) 580

5 优化应用程序的大小(harib24e) 583

6 库(harib24f) 587

7 整理make环境(harib24g) 590



第 28天 文件操作与文字显示 598

1 alloca(1)(harib25 a) 598

2 alloca(2)(harib25b) 601

3 文件操作API(harib25c) 605

4 命令行API(harib25d) 612

5 日文文字显示(1)(harib25e) 615

6 日文文字显示(2)(harib25f) 624

7 日文文字显示(3)(harib25g) 629



第 29天 压缩与简单的应用程序 635

1 修复bug(harib26a) 635

2 文件压缩(harib26b) 636

3 标准函数 644

4 非矩形窗口(harib26c) 647

5 bball(harib26d) 648

6 外星人游戏(harib26e) 651



第30天 高 级的应用程序 659

1 命令行计算器(harib27a) 659

2 文本阅览器(harib27b) 664

3 MML播放器(harib27c) 671

4 图片阅览器(harib27d) 679

5 IPL的改良(harib27e) 683

6 光盘启动(harib27f) 688



第31天 写在开发完成之后 690

1 继续开发要靠大家的努力 690

2 关于操作系统的大小 692

3 操作系统开发的诀窍 693

4 分享给他人使用 694

5 关于光盘中的软件 695

6 关于开源的建议 696

7 后记 698

8 毕业典礼 703

9 附录 704

 
  • [作者][日]川合秀实 著
  • [出版社]人民邮电出版社
  • [图书书号/ISBN]9787115287960
  • [出版日期]2022年04月 
  • [开本]128开
  • [图书装订]平装
  • [纸张]胶版纸
  • [图书定价]¥129.80