- 浏览: 488282 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
turingbooks:
本书预计下个月左右出版。
一本名副其实的 Web架构“圣经”——关于《HTTP权威指南》 -
superonion:
什么时候出版?
一本名副其实的 Web架构“圣经”——关于《HTTP权威指南》 -
yoyo837:
第11章是不是可以跳过不看哟...
《JavaScript高级程序设计》(第2版)上市 -
zsjg13:
对于“第二,技术要好,有开发经验,熟练掌握书中所涉及的相关技术 ...
为什么翻译类计算机图书的质量这样差 -
lzxz1234:
[b]方案五[/b]
选出您心目中理想的封面——《Spring揭秘》
只需30天从零开始编写一个五脏俱全的图形操作系统,肯坚持,你一定能过做到!
内容简介:
自己编写一个操作系统,是许多程序员的梦想。也许有人曾经挑战过,但因为太难而放弃了。其实你错了,你的失败并不是因为编写操作系统太难,而是因为没有人告诉你那其实是一件很简单的事。那么,你想不想再挑战一次呢?
这是一本兼具趣味性、实用性与学习性的书籍。作者从计算机的构造、汇编语言、C语言开始解说,让你在实践中掌握算法。在这本书的指导下,从零编写所有代码,30天后就可以制作出一个具有窗口系统的32位多任务操作系统。
本书以课题为主导,边做边玩,抛开晦涩难懂的语言,行文风格十分随性,还充满了各种欢乐的吐槽,适合操作系统爱好者和程序设计人员阅读。
作者简介:
川合秀实(Hidemi Kawai)
生于1975年,是一位以“轻量化”编程思想见长的“非主流”开发者。2000年因自行开发的OSASK项目而名声大噪。OSASK是一个开源的32位微型操作系统,它并非以Linux等内核为基础,而是完全从零开始开发,在一张软盘的容量下实现了GUI、多任务、多语言等高级特性,启动时间只需1秒。
本书的内容可以看成是作者以OSASK为蓝本,教会读者从零开始开发一个操作系统,同时可以让初学者在编写操作系统的过程中,了解操作系统背后更多的知识。
作者网站:http://hrb.osask.jp/
前 言
“好想编写一个操作系统呀!”笔者的朋友曾说这是所有程序员都曾经怀揣的一个梦想。说“所有的程序员”可能有点夸张了,不过作为程序员的梦想,它至少也应该能排进前十名吧。
也许很多人觉得编写操作系统是个天方夜谭,这一定是操作系统业界的一个阴谋(笑)。他们故意让大家相信编写操作系统是一件非常困难的事情,这样就可以高价兜售自己开发的操作系统,而且操作系统的作者还会被顶礼膜拜。那么实际情况又怎么样呢?和别的程序相比,其实编写操作系统并没有那么难,至少笔者的感觉是这样。
在各位读者之中,也许有人曾经挑战过操作系统的编写,但因为太难而放弃了。拥有这样经历的人也许不会认同笔者的观点。其实你错了,你的失败并不是因为编写操作系统太难,而是因为没有人告诉你那其实是一件很简单的事而已。
不仅是编写操作系统,任何事都是一样的。如果讲解的人认为它很难,那就不可能把它讲述得通俗易懂,即便是同样的内容,也会讲得无比复杂。这样的讲解,肯定是很难懂的。
那么,你想不想和笔者一起再挑战一次呢?如果你曾经梦想过编写自己的操作系统,一定会觉得乐在其中的。
可能有人会说,这本书足足有700多页,怎么会“有趣”和“简单”呢?唔,这么一说笔者也觉得挺心虚的,不过其实也只是长了那么一点点啦。平均下来的话,每天只有大约23页的内容,你看,也没有那么长吧?
这本书的文风非常轻松,也许你不知不觉中就会读得很快。但是这样的话可能印象不会很深,最好还是能静下心来慢慢地读。书中所展示的程序代码和文字的说明同样重要,因此也希望大家仔细阅读。只要注意这些,理解本书的内容就应该没有问题了。
在本书中,我们使用C语言和汇编语言来编写操作系统,不过不必担心,你可以在阅读本书的同时来逐步学习关于这些编程语言的知识。本书在这方面写得非常仔细,如果能有人通过本书终于把C语言中的指针给搞懂了,那笔者的目的也就达到了。即便是从这样的水平开始,30天后你也能够编写出一个很棒的操作系统,请大家拭目以待吧!
目 录
第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)(harib05a) 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)(harib15a) 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)(harib25a) 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
内容简介:
自己编写一个操作系统,是许多程序员的梦想。也许有人曾经挑战过,但因为太难而放弃了。其实你错了,你的失败并不是因为编写操作系统太难,而是因为没有人告诉你那其实是一件很简单的事。那么,你想不想再挑战一次呢?
这是一本兼具趣味性、实用性与学习性的书籍。作者从计算机的构造、汇编语言、C语言开始解说,让你在实践中掌握算法。在这本书的指导下,从零编写所有代码,30天后就可以制作出一个具有窗口系统的32位多任务操作系统。
本书以课题为主导,边做边玩,抛开晦涩难懂的语言,行文风格十分随性,还充满了各种欢乐的吐槽,适合操作系统爱好者和程序设计人员阅读。
作者简介:
川合秀实(Hidemi Kawai)
生于1975年,是一位以“轻量化”编程思想见长的“非主流”开发者。2000年因自行开发的OSASK项目而名声大噪。OSASK是一个开源的32位微型操作系统,它并非以Linux等内核为基础,而是完全从零开始开发,在一张软盘的容量下实现了GUI、多任务、多语言等高级特性,启动时间只需1秒。
本书的内容可以看成是作者以OSASK为蓝本,教会读者从零开始开发一个操作系统,同时可以让初学者在编写操作系统的过程中,了解操作系统背后更多的知识。
作者网站:http://hrb.osask.jp/
前 言
“好想编写一个操作系统呀!”笔者的朋友曾说这是所有程序员都曾经怀揣的一个梦想。说“所有的程序员”可能有点夸张了,不过作为程序员的梦想,它至少也应该能排进前十名吧。
也许很多人觉得编写操作系统是个天方夜谭,这一定是操作系统业界的一个阴谋(笑)。他们故意让大家相信编写操作系统是一件非常困难的事情,这样就可以高价兜售自己开发的操作系统,而且操作系统的作者还会被顶礼膜拜。那么实际情况又怎么样呢?和别的程序相比,其实编写操作系统并没有那么难,至少笔者的感觉是这样。
在各位读者之中,也许有人曾经挑战过操作系统的编写,但因为太难而放弃了。拥有这样经历的人也许不会认同笔者的观点。其实你错了,你的失败并不是因为编写操作系统太难,而是因为没有人告诉你那其实是一件很简单的事而已。
不仅是编写操作系统,任何事都是一样的。如果讲解的人认为它很难,那就不可能把它讲述得通俗易懂,即便是同样的内容,也会讲得无比复杂。这样的讲解,肯定是很难懂的。
那么,你想不想和笔者一起再挑战一次呢?如果你曾经梦想过编写自己的操作系统,一定会觉得乐在其中的。
可能有人会说,这本书足足有700多页,怎么会“有趣”和“简单”呢?唔,这么一说笔者也觉得挺心虚的,不过其实也只是长了那么一点点啦。平均下来的话,每天只有大约23页的内容,你看,也没有那么长吧?
这本书的文风非常轻松,也许你不知不觉中就会读得很快。但是这样的话可能印象不会很深,最好还是能静下心来慢慢地读。书中所展示的程序代码和文字的说明同样重要,因此也希望大家仔细阅读。只要注意这些,理解本书的内容就应该没有问题了。
在本书中,我们使用C语言和汇编语言来编写操作系统,不过不必担心,你可以在阅读本书的同时来逐步学习关于这些编程语言的知识。本书在这方面写得非常仔细,如果能有人通过本书终于把C语言中的指针给搞懂了,那笔者的目的也就达到了。即便是从这样的水平开始,30天后你也能够编写出一个很棒的操作系统,请大家拭目以待吧!
目 录
第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)(harib05a) 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)(harib15a) 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)(harib25a) 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
发表评论
-
《每个人都会死,但我总以为自己不会》让我直面死亡
2013-10-31 15:24 1129一般人看到的都是生活 ... -
介绍Ext JS 4.2的新特性的《深入浅出Ext JS》上市
2013-10-10 11:36 1128以用户为中心的时代,应用的界面外观变得越来越重要。然而, ... -
精益化设计:把敏捷方法和Lean UX相结合
2013-09-12 13:51 849敏捷方法已经成为了主流。同时,Kindle和iPhone ... -
图灵九月书讯 ——金秋时节推荐给程序员们的书
2013-09-09 16:02 850[+]查看原图 9月,收获的季节,去掉了夏日的浮躁,该静下 ... -
诺基亚远去,《惊奇UCD》带你重塑用户体验
2013-08-28 09:57 669我所说的成功的用户 ... -
一场属于HTML5守望者的盛宴——记图灵参加HTML5峰会
2013-08-16 10:44 5872013年8月,北京正是一个火热的季节。一场火热的盛会,HT ... -
《你不可不知的50个建筑学知识》之哥特式建筑
2013-08-16 09:49 766[+]查看原图 你不可不知的50个建筑学知识 一听到哥特 ... -
数据分析师们的不可不读的信息图与数据可视化图书
2013-08-13 10:52 770信息图(Infographics)和 ... -
程序员的情人节故事
2013-08-13 10:31 668七夕情人节,IT界的朋友你打算怎么过? 请看:程序员的情人 ... -
《你不可不知的50个基因秘密》之同性恋取向
2013-08-07 16:04 953[+]查看原图 你不可不知的50个基因秘密 近来,公开出 ... -
图灵八月书讯 ——技术图书嘉年华
2013-08-07 16:03 611[+]查看原图 8月,炎炎夏日@图灵教育给大家带来了很多重 ... -
详解学习C#的方法和步骤
2013-07-17 09:10 588如果你已经有较多的面向对象开发经验,跳过以下这两步: 第一 ... -
《黑客与画家》最新书评整理
2013-06-06 09:42 542很多人翻开了这本书,他们认真的写着书评 ... -
致我们永不逝去的前端——HTML5梦工厂技术沙龙会议报道
2013-05-28 13:17 8275月25日,一个特别有爱 ... -
程序员数学书四部曲
2013-05-09 10:37 771[+]查看原图 细说第一部:《程序员的数学》 目前销量 ... -
女程序员们!节日快乐!
2013-03-08 11:28 705有人把女程序员分为两 ... -
精益,浓缩版 (来自《精益创业实战(第2版)》译者张玳 )
2013-02-28 08:16 831每个人都知道精益,都 ... -
精益创业实战
2013-02-25 09:10 1066要想用好一套系统的方法,你必须先透彻地理解这套方法的“道”和 ... -
蛇年谈程序员发展之路
2013-02-21 17:19 7651.(2-3年)基础素质 ... -
实践是检验真理的唯一标准——《精益创业实战》让你的成功飞起来
2013-02-04 13:23 563实践出真知 能运用一套方法不算成功,能拿出成绩来才算 ...
相关推荐
《操作系统概念》第7版是一本标准的计算机操作系统教材,该书介绍了操作系统的基本概念、原理和实践,涵盖进程管理、内存管理、文件系统、安全性等方面。该书的内容系统全面,从操作系统结构、进程管理、CPU调度、...
1. 操作系统的发展:操作系统的发展可以分为三个阶段:早期操作系统、多用户操作系统和现代操作系统。 2. 操作系统的分类:操作系统可以分为批处理操作系统、分时操作系统和实时操作系统。 操作系统的软硬件运行...
《操作系统高分笔记》试读版详细介绍了操作系统的基础知识,涵盖了概念、特征、功能、发展历程和分类,以及操作系统的运行环境。本笔记主要针对操作系统的重要考点进行解析,适合备考相关考试或者对操作系统感兴趣的...
《深入解析MacOSX+iOS操作系统》是一本全面探讨苹果公司两大操作系统——MacOSX和iOS的权威指南。这本书共计700多页,旨在为读者提供详尽且深入的系统知识,帮助读者理解这两个平台的内在工作原理、设计思路以及它们...
- 保证书中通常包含两个关键指标:试读期满后的不及格课程学分数累计上限(如30学分或40学分),以及试读学年补考后不及格课程占总学分数的比例(如低于50%)。 4. **试读期间的监管**: - 学校可能要求试读学生...
资源名称:玩到极致 Android手机让你不一样(目录试读)书本内容简介: 《玩到极致Android手机让你不一样》主要内容简介:对于刚入手Android(安卓)手机的人来说,这款界面时尚、功能强大的智能手机操作系统,又...
留级跟班试读申请书参考.doc
LoadRunner是一款业界广泛使用的性能测试工具,由HP(现为Micro Focus)开发,它能够模拟大量用户并发操作,帮助识别系统在高负载下的性能瓶颈,确保软件系统的稳定性和可靠性。这份文档集合了多个有关LoadRunner的...
- **封装**:将数据和操作这些数据的方法绑定在一起,对外界隐藏内部实现细节。封装可以保护对象的状态不受外部干扰,同时提供了一种控制访问级别的机制。 - **继承**:允许一个类继承另一个类的属性和方法,从而...
《UNIX编程艺术》主要介绍了Unix系统领域中的设计和开发哲学、思想文化体系、原则与经验,由公认的Unix编程大师、开源运动领袖人物之一Eric S.Raymond倾力多年写作而成。包括Unix设计者在内的多位领域专家也为...
"读秀试读页下载软件DX_down15"是一款专为读秀平台设计的辅助工具,旨在帮助用户更轻松地获取读秀平台上的试读页面内容。读秀是一个大型的在线数字图书馆,拥有丰富的电子书资源,用户可以在线阅读部分章节,但通常...
- **第三部分**:通过一个完整的案例研究,展示了如何在实际项目中运用各种模式和原则,提供了实际操作的经验。 #### 五、书籍特点 - **实例代码**:所有示例代码均使用C#编写,这有助于读者快速理解概念,并能够...
Kali Linux系统命令使用手册v2.0试读陆小马功钟浩.pdf
资源名称:玩转我的Android手机_目录_试读书本内容简介: 《玩转我的Android手机》内容简介:Android作为移动智能操作系统的杰出代表,具有无比强大的功能可扩展性。如何快速上手Android手机,让其为生活增添绚丽...
在《Android移动性能实战试读文章》中,我们可以探索到Android平台上的应用程序性能优化的关键方面。这篇文章虽然只是试读版,但提供了丰富的信息,旨在帮助开发者提升应用的运行效率、用户体验以及整体性能。以下是...
根据提供的文件信息,内容涉及到游戏设计领域的一本重要著作《游戏设计梦工厂试读样章》,并且提到了游戏设计大师陈星汉及其恩师Tracy Fullerton的作品,以及相关的版权信息和出版社信息。以下是对这些信息的详细...
以Java语言为载体,通过讨论Java程序设计的一般过程和方法,重点讲述程序设计基础、面向对象程序设计、算法与数据结构、GUI程序设计和Web程序设计的知识,并涉及计算机科学基础、数据和控制、程序设计理论、软件工程...