30天自制操作系统

出版时间:2012-8  出版社:人民邮电出版社  作者:[日] 川合秀实  页数:710  字数:1063000  译者:周自恒,李黎明,曾祥江,张文旭  
Tag标签:无  

前言

  “好想编写一个操作系统呀!”笔者的朋友曾说这是所有程序员都曾经怀揣的一个梦想。说“所有的程序员”可能有点夸张了,不过作为程序员的梦想,它至少也应该能排进前十名吧。  也许很多人觉得编写操作系统是个天方夜谭,这一定是操作系统业界的一个阴谋(笑)。他们故意让大家相信编写操作系统是一件非常困难的事情,这样就可以高价兜售自己开发的操作系统,而且操作系统的作者还会被顶礼膜拜。那么实际情况又怎么样呢?和别的程序相比,其实编写操作系统并没有那么难,至少笔者的感觉是这样。  在各位读者之中,也许有人曾经挑战过操作系统的编写,但因为太难而放弃了。拥有这样经历的人也许不会认同笔者的观点。其实你错了,你的失败并不是因为编写操作系统太难,而是因为没有人告诉你那其实是一件很简单的事而已。  不仅是编写操作系统,任何事都是一样的。如果讲解的人认为它很难,那就不可能把它讲述得通俗易懂,即便是同样的内容,也会讲得无比复杂。这样的讲解,肯定是很难懂的。  那么,你想不想和笔者一起再挑战一次呢?如果你曾经梦想过编写自己的操作系统,一定会觉得乐在其中的。  可能有人会说,这本书足足有700多页,怎么会“有趣”和“简单”呢?唔,这么一说笔者也觉得挺心虚的,不过其实也只是长了那么一点点啦。平均下来的话,每天只有大约23页的内容,你看,也没有那么长吧?  这本书的文风非常轻松,也许你不知不觉中就会读得很快。但是这样的话可能印象不会很深,最好还是能静下心来慢慢地读。书中所展示的程序代码和文字的说明同样重要,因此也希望大家仔细阅读。只要注意这些,理解本书的内容就应该没有问题了。  在本书中,我们使用C语言和汇编语言来编写操作系统,不过不必担心,你可以在阅读本书的同时来逐步学习关于这些编程语言的知识。本书在这方面写得非常仔细,如果能有人通过本书终于把C语言中的指针给搞懂了,那笔者的目的也就达到了。即便是从这样的水平开始,30天后你也能够编写出一个很棒的操作系统,请大家拭目以待吧!

内容概要

  自己编写一个操作系统,是许多程序员的梦想。也许有人曾经挑战过,但因为太难而放弃了。其实你错了,你的失败并不是因为编写操作系 统太难,而是因为没有人告诉你那其实是一件很简单的事。那么,你想不想再挑战一次呢?
  这是一本兼具趣味性、实用性与学习性的书籍。作者从计算机的构造、汇编语言、C语言开始解说,让你在实践中掌握算法。在这本书的指导下,从零编写所有代码,30天后就可以制作出一个具有窗口系统的32位多任务操作系统。
  本书以课题为主导,边做边玩,抛开晦涩难懂的语言,行文风格十分随性,还充满了各种欢乐的吐槽,适合操作系统爱好者和程序设计人员阅读。

作者简介

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

书籍目录

第0天  着手开发之前
1  前言
2  何谓操作系统
3  开发操作系统的各种方法
4  无知则无畏
5  如何开发操作系统
6  操作系统开发中的困难
7  学习本书时的注意事项(重要!)
8  各章内容摘要
第1天  从计算机结构到汇编程序入门
1  先动手操作
2  究竟做了些什么
3  初次体验汇编程序
4  加工润色
第2天  汇编语言学习与Makefile入门
1  介绍文本编辑器
2  继续开发
3  先制作启动区
4  Makefile入门
第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)
4  指针的应用(1)(harib01d)
5  指针的应用(2)(harib01e)
6  色号设定(harib01f)
7  绘制矩形(harib01g)
8  今天的成果(harib01h)
第5天  结构体、文字显示与GDT/IDT初始化
1  接收启动信息(harib02a)
2  试用结构体(harib02b)
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  获取按键编码(hiarib04a)
2  加快中断处理(hiarib04b)
3  制作FIFO缓冲区(hiarib04c)
4  改善FIFO缓冲区(hiarib04d)
5  整理FIFO缓冲区(hiarib04e)
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)
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)
4  重新调整FIFO缓冲区(2)(harib10g)
5  加快中断处理(4)(harib10h)
6  使用“哨兵”简化程序(harib10i)
第14天  高分辨率及键盘输入
1  继续测试性能(harib11a~harib11c)
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)
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)
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)
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)
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  后记
8  毕业典礼
9  附录

章节摘录

版权页:   插图:   现在我们要进行内存管理了。首先必须要做的事情,是搞清楚内存究竟有多大,范围是到哪里。如果连这一点都搞不清楚的话,内存管理就无从谈起。 在最初启动时,BIOS肯定要检查内存容量,所以只要我们问一问BIOS,就能知道内存容量有多大。但问题是,如果那样做的话,一方面asmhead.nas会变长,另一方面,BIOS版本不同,BIOS函数的调用方法也不相同,麻烦事太多了。所以,笔者想与其如此,不如自己去检查内存。 下面介绍一下做法。 首先,暂时让486以后的CPU的高速缓存(cache)功能无效。回忆一下最初讲的CPU与内存的关系吧。我们说过,内存与CPU的距离地与CPU内部元件要远得多,因此在寄存器内部MOV,要比从寄存器MOV到内存快得多。但另一方面,有一个问题,CPU的记忆力太差了,即使知道内存的速度不行,还不得不频繁使用内存。 考虑到这个问题,英特尔的大叔们在CPU里也加进了一点存储器,它被称为高速缓冲存储器(cache memory)。cache这个词原是指储存粮食弹药等物资的仓库。但是能够跟得上CPU速度的高速存储器价格特别高,一个芯片就有一个CPU那么贵。如果128MB内存全部都用这种高价存储器,预算上肯定受不了。高速缓存,容量只有这个数值的千分之一,也就是128KB左右。高级CPU,也许能有1MB高速缓存,但即便这样,也不过就是128MB的分之一。 为了有效使用如此稀有的高速缓存,英特尔的大叔们决定,每次访问内存,都要将所访问的地址和内容存人到高速缓存里。也就是存放成这样:18号地址的值是54。如果下次再要用18号地址的内容,CPU就不再读内存了,而是使用高速缓存的信息,马上就能回答出l8号地址的内容是54。 往内存里写人数据时也一样,首先更新高速缓存的信息,然后再写入内存。如果先写入内存的话,在等待写入完成的期间,CPU处于空闲状态,这样就会影响速度。所以,先更新缓存,缓存控制电路配合内存的速度,然后再慢慢发送内存写入命令。

编辑推荐

39.1K迷你系统,实现多任务、汉字显示、文件压缩,还能听歌看图玩游戏。拥有《30天自制操作系统》一书,只需30天,从零开始编写一个五脏俱全的图形操作系统将不再只是个梦想。     日本编程天才川合秀实,将通过本书,揭开CPU、内存、磁盘以及操作系统底层工作模式的神秘面纱。

图书封面

图书标签Tags

评论、评分、阅读与下载


    30天自制操作系统 PDF格式下载


用户评论 (总计89条)

 
 

  •   以下是我断断续续写过的一些笔记和讨论的内容,直接粘贴过来,不再赘述"书上的代码基本都是有介绍的,有些只是迟滞几章而已。不过确实有些地方,尤其是跟硬件底层相关的,书上讲得比较简略和模糊,我也是另外google了一些看。可能每个人关注的点不一样,就我自己的兴趣来看,我更关注的是作者如何在一片白纸上画出自己的城堡,具体来说就是一些设计模式,比如实现“多图层显示”、“多任务队列”等等。这里面有些想法和那些sophisticated的操作系统比起来显得幼稚,但是依然不失为一个简朴的解决思路,在这个过程当中对于很多操作系统的概念也有了更深的体会。但是作为一个需要和硬件打交道的操作系统,必然有大量的低层的东西需要搞清楚,有些是作者有粗粗的介绍,有些被作者直接封装起来了。我觉得这恰恰是这本书的成功之处,作者很巧妙地把大量的细节都屏蔽起来了,而主要focus在设计模式上,否则光是要学懂那些就不容易呢。另外有些东西,我觉得也属于记忆性的,就比如多任务里的tr(task register)寄存器,为什么要向里面赋值?因为设计就是这样的,为什么赋的值要乘以8,因为设计就是这样的。所以这些东西,看过了解过就好,每个平台也不一样,将来如果真要从底层开发,可能还要重读各个手册。这是我的一点粗浅理解。这本书...目前看下来感觉写得很好,采用的是“尝试-失败-修正”这个模式也使得整个过程很有趣。另外一点,就是封装了大量无关的细节,把重心放在设计模式上,这点很不容易。只不过书里号称的“0基础都可以阅读”不敢苟同,也许前面几章勉强可以。但是到后面,如果没有过得去的汇编和c语言基础,阅读起来是会比较困难的。对于c语言的要求,还不仅仅是语法,也有编译原理和运行机制。另外有人反映代码的注释没有翻译,这个如果真正看下去的人应该都不会太介意吧。首先来说,所有代码的注释,书里都是出现过的;其次日本原作者的注释也很稀少,而且往往注释的都不是最需要注释的东西(很奇怪),所以我觉得维护一个自己的详细注释的代码版本是非常有必要的。" 阅读更多 ›
  •   刚开始看的时候, 很多都看的迷迷糊糊, 但是忍住往下看, 慢慢的都明白了。我感觉有些东西, 明白就好, 不需要太较真。 关键是理解, 系统底层原来是这么实现的
  •   1、书比预料的厚得多,不方便携带阅读。2、本书的翻译很认真敬业,我很满意。3、书的核心内容是开发os的过程,所以内容编排既不全也不系统,如果想完整学习os的开发,仅仅看这个还不够;如像我一样为了入门和熟悉过程,这应该是最好的几本书(或者之一)。4、书中部分环境已过时,可以用自己的新环境来代替。不影响对书内容的理解。
  •   但是缺点还是有的,作者写书和开发操作系统时间是很久以前了,有的东西也落伍了,建议想买的读者先看看网上的电子版先再决定。这本书还是不错的。
  •   绝对好书,撕开了许多故作高深的所谓“底层”高手的假面!
  •   书的整体还行,但里面用到的软件有点过时,并且此书要求有点高,要有一定的编程基础才行。
  •   这本书总体上还是不错的,有一个很好的指引左右,只是不知道为什么,有一些代码存在问题,并且介绍的有些太粗糙。不过其指引的方向是非常好的,这本书让编写操作系统的过程变得清晰了,感谢作者,也感谢卖家~
  •   送货很好,而且对于我这种菜鸟来说,通过实践来学习,比读一堆理论来的快的多,最痛恨的就是填鸭式教育,懂不懂先背会,还美其名曰先理解然后就好背了。不去实践怎么去理解,不去动手怎么能理解当时开发这个东西遇到的问题,为什么要这么解决,东西是人想出来的,我们要么看源码去理解他的思路,要么去自己动手理解问题,想着靠别人的总结概括的理论去学会,那是神!
  •   这本书看过后绝对让你对操作系统的认识更加深刻,是一本难得的好书
  •   内容还可以,但是书的装订质量不好
  •   个人认为这本书没有任何用处。首先,作者讲的内容貌似是针对连C语言都不懂的人。想让这样的初学者在30天内自制操作系统,简直是痴人说梦。基于这样的想法,这本书的内容就显得非常的“高不成低不就”。该深入讲解的,他几乎都忽略不计。但是一两句话就能讲清楚的东西,他却在那儿喋喋不休的讲个没完。平易近人的风格不错,但是内容实在不敢恭维。
  •   花了半个多月都看完了,整体感觉很好,比较好入门,系统工作原理讲得通俗易懂,很多操作系统核心的东西都没讲(例如:系统总线设备、进程等创建和管理),只讲了比较好入门的部分,如果要理解系统,请配合其他书一起看吧。
  •   电子书质量还不错,比预想的好。
  •   书还不错,对自己理解操作系统有较大的帮助,卖家也还不错,光盘坏了,协商处理了。速度比较快,态度挺好。
  •   从简单到复杂。生动风趣。翻译不差。整体比较理想。
  •   不要被国内骗钱的30天21天系列迷惑了,这是一本好书。这30天绝对是按作者水平来算的,反正我30多天了还没看到20章
  •   语言幽默,讲解浅显易懂,值得一读。虽然作者是日本人,但仍推荐计算机科技爱好者收藏。
  •   书刚拿到手,书籍纸张还不错。图书内容很喜欢(之前简单有看过PDF扫描版)不过书记有轻微的压脚现象(可能是我从取货点取回时所致)总之这次购物,我很满意(这次从购买到收货,共计用时1天零4小时,速度还不慢)
  •   30天自制操作系统快递到了
  •   无所谓是不是初学者
  •   学习中,还不错。希望有帮助。
  •   30天自制操作系统(附光盘1张)
  •     我看了十多章了,买前,去书店看过几次,感觉能看下来,就买了一本,寒假没事就看,对着敲代码,一想能做出个系统,就兴奋。学习中。在这个过程中,明白了一些计算机知识,算是对学业的补充吧。凑字数0000000000000000000000000000000000000000000000000000000000000000000000000
  •     正在读或者想读《30天自制操作系统》的朋友们,在阅读前请看看这个贴吧:http://tieba.baidu.com/f?kw=30%CC%EC%D7%D4%D6%C6%B2%D9%D7%F7%CF%B5%CD%B3&fr=ala0 你想问的问题在这里差不多都能找到噢,比如这本书是要用软盘驱动吗?(其实不需要,光盘里自带虚拟机)比如可以在Win7下运行吗?比如代码注释的问题……另外,想在Linux下开发操作系统的童鞋请看这篇文章http://tinyurl.com/a554ag9
  •     本来是抱着了解操作系统内部机制以及能DIY一个自己的操作系统的心思来买这本书的,不过看了五六天之后才知道不太符合我的第一个要求,甚至连第二个要求也不符合,不知道怎么说总觉得这样的系统,总是感觉跟linux,windows这些有点差距,好像完全不是一个风格的,但是在学习此书过程中也确实了学习到不少编程 硬件 系统的知识,我想 学习此书之后再去看一些正规一点的操作系统原理的书就可以动手设计一个比较好的系统了!
  •     
      书很厚,写到了很多东西,不仅有命令行,还有图形界面,其中图形界面还占了很大比例。
      
      内容本身还不错,多看看例子源码多有收获。不过从学习者的角度来说,本书的书写风格和组织只能是糟糕。
      
      操作系统为什么难,就在于学习坡度陡,有很多环节需要打通;而大部分人都被一些初始的环节挡住了,根本走不到后边。所以自制操作系统最重要的就是把知识做有效排列,把其中最核心、最根本的路径一个环节一个环节的完全讲透,否则,只能是望洋兴叹。
      
      比如开发环境准备上,就不要提软盘了,现在已经没有了,但是软盘的替代,虚拟机软件要讲好啊。
      
      在这一点上,于渊的"自己动手写操作系统"相对来说学习坡度平缓多了。
      
      
      
  •     正如本书介绍的一样,很适合用来了解OS是怎样从无到有开发出来的。
      
      虽然完全按照书上的操作可以实现预定的效果,但如果要真正理解第个环节的原理和技术,比如汇编、操作系统原理、计算机体系结构,是需要很多时间去钻研相关理论的。
      
      如果有充裕的时间,可以结果本书与相关理论书籍一起学习实践可能效果更好。
  •     这本书对基础知识要求不高,懂点C语言和CPU基本知识就可以了,适合初学者。要是奔着了解操作系统原理或内核的期望,就不适宜读这本书了。30天后也许你真的可以向作者那样做出一个基本的系统模型,但这并不意味着你对内存管理、进程管理、设备管理有着怎样高深的认识。读这本书之前先弄清自己的定位吧,毕竟时间宝贵。
  •     求大牛提供《CPUの創りかた 》pdf。或者尽快翻译此书,CPU制作方法。太诱惑了!刚在书店买,99元。网上都70多~哈哈
      求大牛提供《CPUの創りかた 》pdf。或者尽快翻译此书,CPU制作方法。太诱惑了!刚在书店买,99元。网上都70多~哈哈
  •     很罗嗦的一本大部头,如果把GUI部分砍掉,厚度可以减掉一半,名字也可以改为14天,GUI并不是OS的核心,作为一本讲解OS实现的书,写到字符界面和多任务就够了,毕竟像Linux这么成熟的OS也没有内置自己的GUI。
  •     自己DIY操作系统真的很有意思,本书虽然没有很深入的讲,但已给出的确实很有趣,算是物有所值。
      
      一口气读完了(大略的看看),感觉呢,这本书就是用来玩的,学东西可以再找本其他的书进行深入探索,接下来就是实践了。
  •     书很不错,特别有意思,美中不足的是光盘所带源代码中的注释是日文乱码,需要通过IE等工具转换后才能正确显示,当然,前提是你得看懂日文的说...
      字数补丁:505050505050505050505050505050505050505050505050505050505050
  •     之所以想把这个问题单独拎出来,是因为有读者问到了我这个问题。咨询了一下译者,又参照了译者的译者序(伪),来再次回答读者提出来的疑问,当然,我不是第一次解释这个问题。
      
      很多读者表示,以前看过类似“21天学会C语言”之类的书,感到很坑爹,因此对这类形如“XX天”标题的书往往怀有戒心,认为这多半只是噱头,觉得很不靠谱。我没有看过其他以XX天命名的书,不过我也大概能理解这些读者的感受。在我看来,这本书的标题并不仅仅是一个噱头。打个比方来说,“30天学会核物理”可能看起来很玄,因为你没办法定义“学会”这个概念的边界。怎样算学会呢?每个读者会有各自不同的理解,因此往往有的人对结果表示满意,而另外一些人则正好相反。如果说“30天自制微型反应堆”又怎么样呢?虽然你可能还是觉得太难了,但至少这个标题能给你一个具体的目标,30天之后能做出一个反应堆来,不管它多么简陋,一定具备一个反应堆的关键性质。我认为这本书正是属于后者,不管这个操作系统多简单,它是一个真正意义上的操作系统——更何况它还真不那么简单。正如封面上所说的,这个系统虽然很小,但却能实现图形界面、多任务等高级功能,这些都是实实在在的,跟着作者的脚步,保证人人都做得出来的。
      
  •     这本《30天自制操作系统》现在已经在各大书店和网上商城全面上架了,作为本书的4位译者之一,我负责翻译了本书约三分之二的内容。这是我参与翻译的第一本译著,我感到很激动也很紧张,因为我知道译者的水平对于一本译著质量的重要性,好的翻译可以成就一部作品,蹩脚的翻译也可以毁掉一部作品,正如当初第一版引进的《乔布斯传》中译本一样。这本书没有请我写译者序,因此我就自己写着玩玩,放到网上,谈谈自己对这本书以及翻译工作的感想吧。
      
      很多读者表示,以前看过类似“21天学会C语言”之类的书,感到很坑爹,因此对这类形如“XX天”标题的书往往怀有戒心,认为这多半只是噱头,觉得很不靠谱。我没有看过其他以XX天命名的书,不过我也大概能理解这些读者的感受。在我看来,这本书的标题并不仅仅是一个噱头。打个比方来说,“30天学会核物理”可能看起来很玄,因为你没办法定义“学会”这个概念的边界。怎样算学会呢?每个读者会有各自不同的理解,因此往往有的人对结果表示满意,而另外一些人则正好相反。如果说“30天自制微型反应堆”又怎么样呢?虽然你可能还是觉得太难了,但至少这个标题能给你一个具体的目标,30天之后能做出一个反应堆来,不管它多么简陋,一定具备一个反应堆的关键性质。我认为这本书正是属于后者,不管这个操作系统多简单,它是一个真正意义上的操作系统——更何况它还真不那么简单。正如封面上所说的,这个系统虽然很小,但却能实现图形界面、多任务等高级功能,这些都是实实在在的,跟着作者的脚步,保证人人都做得出来的。
      
      这本书的定位是零基础的读者,作者甚至找了初中生和高中生志愿者来试读这本书,以保证这本书的语言尽可能通俗易懂,可想而知作者把这本书的阅读门槛设定得有多么低。从技术角度来看,这本书并没有过多地解释技术细节,作者认为对某些细节先有一个大概的认识就行,然后通过实践再加深理解,编写操作系统这件事的最终目的还是为了有趣、好玩,技术细节讲得太多自然就不好玩了。因此,想从这本书系统学习计算机原理、汇编语言、C语言等知识是不现实的,但通过编写操作系统这个过程,你一定能够获得比系统学习这些知识更宝贵的体验。
      
      这本书的一大特色是“从失败中学习”,每一次我们为这个操作系统实现一些功能,一开始总是不顺利的,里面会有一些漏洞和缺陷,甚至根本不能工作。作者花了很大篇幅来引导读者去寻找并发现这些漏洞,并从这些错误中学习如何想方设法让系统变得更加完善。我认为这种思路是非常有趣的,也是符合实际开发的过程的,一个东西怎么可能一下子就做得那么完美呢?用作者的意思来说,先体验了不完美的东西再努力去改进它,才能让你更有成就感呀!市面上的技术类书籍,大部分都没有这种“试错”的过程,我认为这本书所采用的写作手法是非常难得的,也是我认为值得向大家推荐这本书的主要理由之一。
      
      如果你是一位高手,或者在编写操作系统方面有所造诣的读者,你可能会觉得这本书的讲解并不是那么系统和有条理。的确,这本书并没有对每一个技术细节进行详细地讲解,就连汇编语言和C语言的语法也只是避重就轻地介绍,你甚至觉得这个操作系统在很多方面处理都很简陋(比如文件系统、内存管理、设备驱动等等),根本算不上一个实用的操作系统,甚至连作者自己都说:“这本书无论在哪个方面都只有半瓶醋。”不过我们必须注意到,作者在带领大家从零开始编写一个操作系统,而并不是用一个现成的Linux内核为基础来做,后者也许才是现在所谓自制(定制?)操作系统的主流方式,但是这样真的能让你了解系统底层的真正机制吗?我看未必,一个Linux内核已经帮你搞定大部分底层工作了,你根本用不着自己去钻研了呀。只有从零开始才能真正了解系统底层是如何运作的,而这些知识,对于你以后在其他内核基础上制作操作系统来说,也一定是非常有帮助的。如果你看了这本书觉得很坑爹,千万别忘了看一看最后一章中一段叫做“这也能叫自制操作系统?太坑爹了!”的内容,作者早就预料到了大家的吐槽,在终点等着你们呢!(笑)看了这一段,你就明白作者在有限的篇幅中,是如何考虑布局,并如何取舍内容的,真心不容易,给作者鼓鼓掌啦!
      
      可能大家从目录上面也发现了,这本书涉及到了“日文显示”的相关知识。在这个部分如何翻译的问题上,我和出版社讨论了很多次,由于操作系统的编写都是在底层动刀子,可以说是牵一发而动全身,我不想在这里破坏原书的结构,也不想擅自改动原来的代码,因此,在原汁原味保留原书文字的基础上,我补充了一些实现中文显示的相关内容,以体现日文显示和中文显示在实现上的异同。好在基本上只要替换字库和编码方式,就可以实现中文显示,甚至比日文实现起来还简单些(比如不用考虑不同的编码标准和半角片假名问题)。这部分补充的内容是我自己写的,但我在这方面也不是专家,不敢过分造次,补充的内容也并不多,如果有错误或者疏漏,也欢迎各位高手随时拍砖。
      
      在这本书最后的编辑过程中,为了确认某些术语的译法,我还和作者川合秀实先生通过几封邮件(这说明作者在书里给大家留的那个邮箱地址是保证可用的哟!),川合先生是个很Nice的人,他不是一个像Matz那样在技术界鼎鼎有名的人,而只能算是一个普通的技术者吧,因此能够写出这样一本好书也是非常难得的。最后也感谢其他3位译者,以及图灵公司的各位编辑的共同努力,让这本书能够和中国的读者见面,希望大家都能从中获益。
      
      周自恒 2012年8月 上海
  •     说明:这是8月15日即将上市的一本新书,本文的摘选也可以命名为《30天自制操作系统》上市之前必读。本书幽默,有趣,可以说是技术书里的幽默书,让您读起来绝对不会感到乏味。在本书上市之前,您一定先要读下此篇文章,可以避免在学习中走更多的阅读弯路,因为更多的读者会问,七百多页,30天?是的,看完此篇内容,也许会减少您的疑问。
      
      本书从第1章开始,写的是每一天实际开发的内容,虽然一共分成了30天,但这些都是根据笔者现在的能力和讲解的长度来大概切分的,并不是说读者也必须得一天完成一章。每个人觉得难的地方各不相同,有时学习一章可能要花上一星期的时间,也有时可能一天就能学会三章的内容。
      
      当然,学习过程中可能会遇到看不太懂的章节,这种时候不要停下来,先接着往下读上个一两章也许会突然明白过来。如果往后看还是不明白的话,就先确认一下自己已经理解到哪一部分了,然后回过头来再从不懂的地方重新看就是了。千万别着急,看第二遍时,没准就会豁然开朗了。
      
      本书对C语言的指针和结构体的说明与其他书籍有很大区别。这是因为本书先讲CPU的基本结构,然后讲汇编,最后再讲C语言,而其他的书都不讲这些基础知识,刚一提到指针,马上就转到变量地址如何如何了。所以就算大家“觉得”已经明白了那些书里讲的指针,也不要把本书的指针部分跳过去,相信这次大家能真正地理解指针。当然,如果真的已经弄明白了的话,大概看看就可以了。
      
      从现在开始我们来一点一点地开发操作系统,我们会将每个阶段的进展情况总结出来,这些中间成果都刻在附带光盘里了,只要简单地复制一下就能马上运行。关于这些程序,有些需要注意的地方,我们在这里简单说明一下。
      比如最初出现的程序是“helloos0”,下一个出现的程序是“helloos1”。 即使我们以helloos0为基础,把书中讲解的内容一个不漏地全部做上一遍,也不能保证肯定可以得到后面的helloos1。书中可能偶尔有讲解得很完整的地方,但其实大多部分都讲得不够明确,这主要是因为笔者觉得这些地方不讲那么仔细大家肯定也能明白。
      笔者说这些主要就是想要告诉大家,不仅要看书里的内容,更要好好看程序。有时候书上写得很含糊,读起来晦涩难懂,但一看程序马上就明白了。本书的主角不是正文内容,而是附录中的程序。正文仅仅是介绍程序是如何做出来的。
      所以说从这个意义上讲,与其说这是“一本附带光盘的书”,倒不如说这是“一张附带一本大厚书的光盘”(笑)。
      
      关于程序还有一点要说明的——这里收录的程序的版权全部归笔者所有。可是,读了这本书后打算开发自己的操作系统的话,可能有不少地方要仿照着附带程序来做;也有人可能想把程序的前期部分全盘照搬过来用;还有人可能想接着本书最后的部分继续开发自己的操作系统。
      
      这是一本关于操作系统的教材,如果大家有上面这些想法却不能自由使用附录程序的话,这教材也就没什么意义了,所以大家可以随意使用这些程序,也不用事先提出任何申请。尽管大家最后做出来的操作系统中可能会包含笔者编写的程序,不过也不用在版权声明中署上笔者的名字。大家可以把它当作自己独立开发的操作系统,也可以卖了它去赚钱。就算大家靠这个系统成了亿万富翁,笔者也不会要分毫的分成,大家大可放心 。
      
      而且这不只是买了本书的人才能享受的特权,从图书馆或朋友那儿借书看的人,甚至在书店里站着只看不买的人,也都享有以上权利。当然,大家要是买了这本书,对笔者、对出版社都是一个帮助。(笑)
      
      在引用本书程序时,只有一点需要注意,那就是大家开发的操作系统的名字。因为它已经不是笔者所开发的操作系统了,所以请适当地改个名字,以免让人误解,仅此一点请务必留意。不管程序的内部是多么相像,它都是大家自己负责发布的另外一个不同的操作系统。给它起个响亮的名字吧。
      
      以上声明仅适用于书中的程序,以及附带光盘中收录的用作操作系统教材的程序。本书正文和附带光盘中的其他工具软件不在此列。复制或修改都受到著作权法的保护。请在法律允许范围内使用这些内容。与光盘中的工具软件相关的许可权会放在本书最后一章予以说明。
      
      
  •   恩 正准备看
  •   很贴切的书评,这书适合基础薄的新手,一些书评说不好是没考虑到新手的体会。
  •   很赞,等买了书估计就能用上了, 多谢
  •   楼主真心强大!
  •   有空学习学习
  •   准备读书。
    先阅读下代码。
  •   注释不是日文的吧。
  •   工程组织挺不错的。
    谢谢楼主。
    目前看到DAY3.
  •   怎么进不去了?~~~
  •   好吧,网页的又被黑了gg
  •   自从出了windows的客户端,小伙伴们再也不用发愁记命令了
  •   对,这位同学对这本书的定位认识非常准确~~
  •   定位、时间宝贵。这两个词语,很好!
  •   看理论的话 也许 深入理解计算机系统(CSAPP) 那类书不错
  •   书还没看,不过确实是很好奇,一直想弄明白操作系统是怎么运转的,看过不少理论书,但是看完以后还是不知道具体是怎么玩的,看来我属于那种关注细节的。
  •   大四下比较有时间,再加上学习了各种理论,但还是没搞明白OS是怎么运作的,所以说还是想看看~~
  •   这种书的作用不能替代操作系统理论书籍 它主要针对的是操作系统编写的前备知识,理解了这些可以将那些理论运用到实际
  •   其实很早就看上《CPUの創りかた》,问了很多次,那个作者就是不卖版权呀。很可惜……
  •   “CPU~” 作者不会是一个愤青吧~~~~
  •   原来如此,难怪看不到该书,可惜了~
  •   《CPU自制入门》开始预售了:http://item.jd.com/11366110.html
  •   你可以看一下后记部分作者自己的吐槽=w=。。。
  •   作为菜鸟,我看到GUI会感觉很振奋,命令行没意思。
  •   日本人写的!!!!抵制日货····!!!
  •   GUI其实比OS核心更复杂。
  •   同意,这本书就是用来好玩的,并不是十分系统和技术性的书,对于新手入门还是很友好的=w=
  •   先对操作系统有个整体的认识,然后通过其他书籍更加深入地研究。。。
  •   跟楼上都有同感,真正DIY一个系统需要看一些系统一点的书籍
  •   嗯,源代码的注释量太大,因此我们只翻了书中代码的注释,希望大家谅解。。。
  •   这个貌似好多人都在说……不过那个注释实在是太多了,没办法。
  •   那不知道影响大不大?...这个问题问下@馒头家的花卷 ,当然这要看读者的水平了,那就以这本书预设的读者水平来当做我这个问题的前提好了...
  •   已经在亚马逊上买了,还没有送达。作为新手,之前对操作系统望而生畏,无意中看到这本书说零基础也能学会,果断下手,希望能对操作系统有个整体认识
  •   非常感谢您对本书的支持,期待您有书评或读书笔记分享上来
  •   很想买,但是实在不想再买纸质书了,搬家时很多都得丢掉。为什么不出正版的电子书呢?
  •   亚马逊上还没有上架,上架了就买回来看看。。。上学的时候本想参考《
    Orange'S:一个操作系统的实现》写一个操作系统, 无奈那时候功力不够,也就放下了。。。看了这本书的预读版,因为是快速浏览,所以不敢对内容多加评论,但是至少语言很流畅,说明译者确实下了功夫。在这里不得不吐槽一下,现在太多粗制滥造的计算机翻译书籍,害人不浅,往往消磨了初学者的兴趣和耐心,希望这本不要让大家失望。
  •   淘宝已经有了。
  •   你们只是翻译还是里面的都操作过一遍?
    如果照着步骤来,真的可以做出操作系统?
    原作是什么时候出版的?
  •   回复楼上同学,书中所讲的代码都在光盘里,按每章来分,光盘里的代码亲测可正确编译生成Image,用Image可引导电脑并进入自制系统的画面,没有问题,请放心~原书出版于2006年,日本的很多读者按照书中的指导也完成了自制操作系统,并有在作者网站上投稿。
  •   请问作者的网站是什么,我想看看。
  •   我创建了一个《30天自制操作系统》的百度贴吧,大家一起来讨论吧。
  •   小日本的书还是很实在地说,浅显易懂,插图丰富,不知道这本如何?
  •   楼主有心。都这样就好了。没看到书,不过看帖子的文字是流畅的,不是那种连中国话都说不利索就来翻译的主。
  •   作为一个真正零基础的人,很期待,希望能真正像作者说的那样做出自己的操作系统。希望自己能够坚持下去,来真正体验下什么叫零基础学会。。。
  •   期待这会是本好书!
  •   看了样章,感觉挺好,不知道哪里有买。
  •   果断买了本,中间的插图好萌。。
  •   光盘中代码的注释为啥不翻译下呀。。看代码的时候和痛苦,想看注释还得对着书。
  •   在网上买了还没到手,不过已经看了试读的那几章,觉得很适合我——我是个起点低,相关知识基础薄的计算机爱好者,对计算机底层有着浓厚的兴趣。国内也出过两本自己动手写操作系统的书,但要求的知识基础比较高,觉得不适合自己。能看到这本书的译作,对我来说简直是福音,在此表示深深的感谢。我并不想写什么操作系统,只是希望从此书中能了解到计算机原理的相关知识。很想请您把书中提到的那本《CPU制作法》也译出来,相信它一定会跟这本一样畅销。
  •   同上 <CPU制作法> 名字太吸引人了
  •   有剧透....
  •   你好,请问书中的前两个批处理:run.bat 和 install.bat是不是写错了,斜杠“\”写成了反斜杠“/”,是这样吗?因为我按照树上写的没有运行起来,查看了一下光盘里面的源代码,发现是这里写错的原因。还有在这两个批处理文件里,怎么有两个“¥”日元符号?!
  •   回上面的同学:在日文Windows系统里,“\”是用“¥”来代替的。。。
  •   第一次印刷多少册?
  •   没基础可以看么。。。完全没基础的
 

250万本中文图书简介、评论、评分,PDF格式免费下载。 第一图书网 手机版

京ICP备13047387号-7