文章吧-经典好文章在线阅读:《30天自制操作系统》的读后感10篇

当前的位置:文章吧 > 经典文章 > 读后感 >

《30天自制操作系统》的读后感10篇

2018-03-11 21:39:02 来源:文章吧 阅读:载入中…

《30天自制操作系统》的读后感10篇

  《30天自制操作系统》是一本由[日] 川合秀实著作人民邮电出版社出版的平装图书,本书定价:99.00元,页数:704,文章吧小编精心整理的一些读者读后感希望对大家能有帮助

  《30天自制操作系统》读后感(一):《30天自制操作系统》译者序(伪)

  这本《30天自制操作系统》现在已经在各大书店和网上商城全面上架了,作为本书的4位译者之一,我负责翻译了本书约三分之二的内容。这是我参与翻译的第一本译著,我感到很激动也很紧张,因为我知道译者的水平对于一本译著质量重要性,好的翻译可以成就一部作品,蹩脚的翻译也可以毁掉一部作品,正如当初第一版引进的《乔布斯传》中译本一样。这本书没有请我写译者序,因此我就自己写着玩玩,放到网上,谈谈自己对这本书以及翻译工作感想吧。

  很多读者表示,以前看过类似“21天学会C语言”之类的书,感到很坑爹,因此对这类形如“XX天”标题的书往往怀有戒心,认为这多半只是噱头,觉得很不靠谱。我没有看过其他以XX天命名的书,不过我也大概能理解这些读者的感受。在我看来,这本书的标题并不仅仅是一个噱头。打个比方来说,“30天学会核物理可能看起来很玄,因为你没办法定义“学会”这个概念边界。怎样算学会呢?每个读者会有各自不同的理解,因此往往有的人对结果表示满意,而另外一些人则正好相反。如果说“30天自制微型反应堆”又怎么样呢?虽然你可能还是觉得太难了,但至少这个标题能给你一个具体目标,30天之后能做出一个反应堆来,不管它多么简陋,一定具备一个反应堆的关键性质。我认为这本书正是属于后者,不管这个操作系统多简单,它是一个真正意义上的操作系统——更何况它还真不那么简单。正如封面上所说的,这个系统虽然很小,但却能实现图形界面、多任务高级功能,这些都是实实在在的,跟着作者脚步,保证人人都做得出来的。

  这本书的定位是零基础的读者,作者甚至找了初中生和高中志愿者来试读这本书,以保证这本书的语言尽可能通俗易懂,可想而知作者把这本书的阅读门槛设定得有多么低。从技术角度来看,这本书并没有过多地解释技术细节,作者认为对某些细节先有一个大概的认识就行,然后通过实践再加深理解,编写操作系统这件事的最终目的还是为了有趣好玩,技术细节讲得太多自然不好玩了。因此,想从这本书系统学习计算机原理、汇编语言、C语言等知识是不现实的,但通过编写操作系统这个过程,你一定能够获得比系统学习这些知识更宝贵体验

  这本书的一大特色是“从失败中学习”,每一次我们为这个操作系统实现一些功能,一开始总是不顺利的,里面会有一些漏洞和缺陷,甚至根本不能工作。作者花了很大篇幅来引导读者去寻找并发现这些漏洞,并从这些错误中学习如何想方设法让系统变得更加完善。我认为这种思路是非常有趣的,也是符合实际开发的过程的,一个东西怎么可能一下子就做得那么完美呢?用作者的意思来说,先体验了不完美的东西再努力去改进它,才能让你更有成就感呀!市面上的技术类书籍,大部分都没有这种“试错”的过程,我认为这本书所采用的写作手法是非常难得的,也是我认为值得向大家推荐这本书的主要理由之一。

  如果你是一位高手,或者在编写操作系统方面有所造诣的读者,你可能会觉得这本书的讲解并不是那么系统和有条理。的确,这本书并没有对每一个技术细节进行详细地讲解,就连汇编语言和C语言的语法也只是避重就轻介绍,你甚至觉得这个操作系统在很多方面处理都很简陋(比如文件系统、内存管理设备驱动等等),根本算不上一个实用的操作系统,甚至连作者自己都说:“这本书无论在哪个方面都只有半瓶醋。”不过我们必须注意到,作者在带领大家从零开始编写一个操作系统,而并不是用一个现成的Linux内核为基础来做,后者也许才是现在所谓自制(定制?)操作系统的主流方式,但是这样真的能让你了解系统底层的真正机制吗?我看未必,一个Linux内核已经帮你搞定大部分底层工作了,你根本用不着自己去钻研了呀。只有从零开始才能真正了解系统底层是如何运作的,而这些知识,对于你以后在其他内核基础上制作操作系统来说,也一定是非常有帮助的。如果你看了这本书觉得很坑爹,千万别忘了看一看最后一章中一段叫做“这也能叫自制操作系统?太坑爹了!”的内容,作者早就预料到了大家的吐槽,在终点等着你们呢!(笑)看了这一段,你就明白作者在有限的篇幅中,是如何考虑布局,并如何取舍内容的,真心容易,给作者鼓鼓掌啦!

  可能大家从目录上面也发现了,这本书涉及到了“日文显示”的相关知识。在这个部分如何翻译的问题上,我和出版社讨论了很多次,由于操作系统的编写都是在底层动刀子,可以说是牵一发而动全身,我不想在这里破坏原书的结构,也不想擅自改动原来的代码,因此,在原汁原味保留原书文字的基础上,我补充了一些实现中文显示的相关内容,以体现日文显示和中文显示在实现上的异同。好在基本上只要替换字库和编码方式,就可以实现中文显示,甚至比日文实现起来还简单些(比如不用考虑不同的编码标准和半角片假名问题)。这部分补充的内容是我自己写的,但我在这方面也不是专家,不敢过分造次,补充的内容也并不多,如果有错误或者疏漏,也欢迎各位高手随时拍砖。

  在这本书最后的编辑过程中,为了确认某些术语的译法,我还和作者川合秀实先生通过几封邮件(这说明作者在书里给大家留的那个邮箱地址是保证可用的哟!),川合先生是个很Nice的人,他不是一个像Matz那样在技术界鼎鼎有名的人,而只能算是一个普通的技术者吧,因此能够写出这样一本好书也是非常难得的。最后也感谢其他3位译者,以及图灵公司的各位编辑的共同努力,让这本书能够和中国的读者见面,希望大家都能从中获益。

  周自恒 2012年8月 上海

  《30天自制操作系统》读后感(二):30天朝圣之旅

  有人说程序员的三大浪漫是:操作系统、编译器和图形引擎。由于有Linus Torvalds主导开发的Linux操作系统珠玉在前,且声名远扬,因此得到了众程序员的顶礼膜拜,Linus更是被封神。每个程序员都想独立设计实现自己的OS,但是很显然,根据人群智商概率分布,只有”非长尾“程序员才能做到,给此书写评论的基本上都是”长尾“吧。

  作为一本DIY经验集,本书很少从宏观的层面讲系统的设计、原理等等,也不对汇编、C语言等语言层面的东西做很多的展开,至于附带提供的修改版编译器、链接器更是一笔带过,即便如此,这本书还是达到700多页砖头的厚度,我们只能说操作系统包含的东西实在是太多了。

  作者这样写的初衷是为了保证此最小系统的“可操作性”,即读者即便对“what”、“why”这些东西不甚了了,但“how”是可以保证的。其实要保证“可操作性”是很难的,通常也是被认为是实现系统时的dirty work,不过作者楞是通过不厌其烦的讲解和易用且组织清晰运行环境做到了这一点。设计实现操作系统很困难为此过程写面向新手的文档也不容易,不信?看看国内众多简单的编程类书籍附带的源代码错误有多少就知道了。

  作者事无巨细地讲解了各种操作的细节,甚至包括各种指令、函数、系统等等的命名,比如为什么启动要叫boot,其实它是bootstrap的缩写,而bootstrap又有另外一番故事。好的极客应该对命名敏感,因为它往往是设计者严谨个性的双重体现。

  玩转此书必须的工具

  1、源代码包(可网上下载)

  2、一个好用的二进制编辑器,我不推荐笨重且昂贵的UltraEditor,而是推荐轻巧免费的HexEdit。

  学习中的问题:

  虽然此书日文版已经有年头了,甚至讲解还是使用软盘启动的方式,不过读者完全不用担心在现在的机器上运行不起来。

  imgtol.com由于是16位程序,因此在现今大多数电脑上都无法运行,不过这个问题不大,因为此工具是拿来写数据到软盘的,而实验中使用qemu虚拟机并不需要软盘就能启动,而且估计也没地方买软盘吧。

  《30天自制操作系统》读后感(三):内容庞杂 不适循序渐进的进行学习

  书很厚,写到了很多东西,不仅有命令行,还有图形界面,其中图形界面还占了很大比例

  内容本身还不错,多看看例子源码多有收获。不过从学习者的角度来说,本书的书写风格和组织只能是糟糕

  操作系统为什么难,就在于学习坡度陡,有很多环节需要打通;而大部分人都被一些初始的环节挡住了,根本走不到后边。所以自制操作系统最重要的就是把知识做有效排列,把其中最核心、最根本的路径一个环节一个环节的完全讲透,否则,只能是望洋兴叹

  比如开发环境准备上,就不要提软盘了,现在已经没有了,但是软盘的替代,虚拟机软件要讲好啊。

  在这一点上,于渊的"自己动手写操作系统"相对来说学习坡度平缓多了。

  《30天自制操作系统》读后感(四):感觉比于渊的好些

  这本书才是真正的动手写xxx

  所以很多理论方面的东西你可能一时找不到,全都融在代码里面了,要仔细看。

  从helloos到haribote.nas到bootpack.c(中的HariMain)。

  其实这类书主要讲的只是BootLoader和一些入门kernel 知识。

  大概涉及CPU体系结构、汇编、C、Makefile的知识。

  我觉得最为重要的,要明白一点,操作系统究竟在什么层面上解决了编程的问题。

  在我看来,应该是应用程序的链接和装载。(当然最为基础的,操作系统首先要能够操作啊,即驱动硬件,提供交互)

  程序员使用操作系统编写源代码,然后用编译器生成二进制文件,接着操作系统将其载入内存运行。就是这么简单。

  kernel 编程和用户编程

  或许配置文件也算是编程接口。

  《30天自制操作系统》读后感(五):《30天自制操作系统》学习帮助

  正在读或者想读《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

  《30天自制操作系统》读后感(六):我忍不了了,必须上来吐槽一下作者的编码

  先认怂,我没有作者牛

  但我还是要吐槽,看得太郁闷了!!

  作者不知道为什么

  代码写得及其啰嗦

  能用一句搞定的事情,非要2-3句来搞

  举个最简单的例子:

  ipl10.bin : ipl10.nas Makefile

  我ft,Makefile这个完全没必要好不好

  你见谁写make文件还专门把Makefile写进去:

  hello.o : hello.c Makefile?

  还有:

  void init_palette(void);

  void set_palette(int start, int end, unsigned char *rgb);

  我看到set_palette,还以为这个函数将来还要再用

  没想到看到最后一章的程序,这个函数还是只有init_palette调用

  写到一块不行吗?非得拆出来?

  还有,作者的变量名、函数名起得莫名其妙

  什么inthandler21,init_mouse_cursor8,putblock8_8

  这三个函数名命名的思路不是一个思路吧?

  你下划线加在函数里,到底表示什么意思?

  oxfill8这种函数名,第一眼还真看不出来是画方块的

  日本人的英语怎么这样?

  我很佩服作者以一己之力写了一个操作系统

  还编了这么一本书

  但这个代码真是读得让我很郁闷

  一点没有读《C程序设计语言》里面代码的那种畅快和舒服

  我深刻怀疑,作者这本书是自己做的操作系统的简版

  所以很多地方照搬了自己原来做的操作系统

  但搬的时候,没有考虑到让读者更容易理解

  底层的函数名就没动,还是原来自己编的时候的函数名

  毕竟自己一个人写的,自己明白就行了

  但读者看代码经常云里雾里的

  作者也没解释为什么这么写

  吐槽完作者,再吐槽一下译者

  程序里面的注释还是日文

  但书里面的注释全部都翻译了

  你们能把书里翻译的注释弄到程序里吗?

  出版社的人丧心病狂了,直接原版照搬

  程序压根就没动,所有的程序文件字符编码还是CP932

  《30天自制操作系统》读后感(七):读懂《30天自制操作系统》的捷径

  说明:这是8月15日即将上市的一本新书,本文的摘选也可以命名为《30天自制操作系统》上市之前必读。本书幽默,有趣,可以说是技术书里的幽默书,让您读起来绝对不会感到乏味。在本书上市之前,您一定先要读下此篇文章,可以避免在学习中走更多的阅读弯路,因为更多的读者会问,七百多页,30天?是的,看完此篇内容,也许会减少您的疑问。

  本书从第1章开始,写的是每一天实际开发的内容,虽然一共分成了30天,但这些都是根据笔者现在的能力和讲解的长度来大概切分的,并不是说读者也必须得一天完成一章。每个人觉得难的地方各不相同,有时学习一章可能要花上一星期的时间,也有时可能一天就能学会三章的内容。

  当然,学习过程中可能会遇到看不太懂的章节,这种时候不要停下来,先接着往下读上个一两章也许会突然明白过来。如果往后看还是不明白的话,就先确认一下自己已经理解到哪一部分了,然后回过头来再从不懂的地方重新看就是了。千万别着急,看第二遍时,没准就会豁然开朗了。

  本书对C语言的指针和结构体的说明与其他书籍有很大区别。这是因为本书先讲CPU的基本结构,然后讲汇编,最后再讲C语言,而其他的书都不讲这些基础知识,刚一提到指针,马上就转到变量地址如何如何了。所以就算大家“觉得”已经明白了那些书里讲的指针,也不要把本书的指针部分跳过去,相信这次大家能真正地理解指针。当然,如果真的已经弄明白了的话,大概看看就可以了。

  从现在开始我们来一点一点地开发操作系统,我们会将每个阶段的进展情况总结出来,这些中间成果都刻在附带光盘里了,只要简单地复制一下就能马上运行。关于这些程序,有些需要注意的地方,我们在这里简单说明一下。

  比如最初出现的程序是“helloos0”,下一个出现的程序是“helloos1”。 即使我们以helloos0为基础,把书中讲解的内容一个不漏地全部做上一遍,也不能保证肯定可以得到后面的helloos1。书中可能偶尔有讲解得很完整的地方,但其实大多部分都讲得不够明确,这主要是因为笔者觉得这些地方不讲那么仔细大家肯定也能明白。

  笔者说这些主要就是想要告诉大家,不仅要看书里的内容,更要好好看程序。有时候书上写得很含糊,读起来晦涩难懂,但一看程序马上就明白了。本书的主角不是正文内容,而是附录中的程序。正文仅仅是介绍程序是如何做出来的。

  所以说从这个意义上讲,与其说这是“一本附带光盘的书”,倒不如说这是“一张附带一本大厚书的光盘”(笑)。

  关于程序还有一点要说明的——这里收录的程序的版权全部归笔者所有。可是,读了这本书后打算开发自己的操作系统的话,可能有不少地方要仿照着附带程序来做;也有人可能想把程序的前期部分全盘照搬过来用;还有人可能想接着本书最后的部分继续开发自己的操作系统。

  这是一本关于操作系统的教材,如果大家有上面这些想法却不能自由使用附录程序的话,这教材也就没什么意义了,所以大家可以随意使用这些程序,也不用事先提出任何申请。尽管大家最后做出来的操作系统中可能会包含笔者编写的程序,不过也不用在版权声明中署上笔者的名字。大家可以把它当作自己独立开发的操作系统,也可以卖了它去赚钱。就算大家靠这个系统成了亿万富翁,笔者也不会要分毫的分成,大家大可放心 。

  而且这不只是买了本书的人才能享受的特权,从图书馆或朋友那儿借书看的人,甚至在书店里站着只看不买的人,也都享有以上权利。当然,大家要是买了这本书,对笔者、对出版社都是一个帮助。(笑)

  在引用本书程序时,只有一点需要注意,那就是大家开发的操作系统的名字。因为它已经不是笔者所开发的操作系统了,所以请适当地改个名字,以免让人误解,仅此一点请务必留意。不管程序的内部是多么相像,它都是大家自己负责发布的另外一个不同的操作系统。给它起个响亮的名字吧。

  以上声明仅适用于书中的程序,以及附带光盘中收录的用作操作系统教材的程序。本书正文和附带光盘中的其他工具软件不在此列。复制或修改都受到著作权法的保护。请在法律允许范围内使用这些内容。与光盘中的工具软件相关的许可权会放在本书最后一章予以说明。

  《30天自制操作系统》读后感(八):用Git管理和学习操作系统

  一本相当不错的书,如果动手作一边能够对操作系统的理解有着相当的提升。

  为了方便各位朋友对系统的改进与学习,我在github 开设关于此书的项目。

  https://github.com/Tassandar/OSASK

  如果有兴趣可以对其fork并修改,或者仅仅是对其中的代码进行阅读也是很好的事情。

  下面是该项目的介绍:

  ---------------------------------------------------------------------

  30天自制操作系统

  这是川合秀实的《30天自制操作系统》的git管理版本。你可以轻易地用git来对其进行管理,建立分支,增减功能,进而做成自己的更为复杂的操作系统。

  另外,因为是新手向的书,书中有大量的很简单的概念,为了大家阅读和学习方便,我将每一天所完成的内容作了一个整理,并用中文对一些比较复杂的内容作出了注释。

  OK,向着属于你的操作系统进发吧!

  为什么要用git管理我的操作系统

  谁都知道,学习编程的唯一捷径就是多写多练,与其把书上的代码都敲到电脑里面去,不如在阅读与理解全书之后对操作系统进行力所能及的改进与扩展。而这时候很烦人的事情出现了,你常常无法了解到,一个层层叠叠的系统中,自己要修改的部分究竟是如何堆叠起来的,自己要修改的部分究竟和那几个组件出现了耦合。

  这时候代码管理工具就帮上忙了,git 是一个十分优秀的代码管理工具。你可以看到每一天的进度和完成的内容,可以轻松地通过git的变基,分支,检出操作来对操作系统作出修改,扩展或测试,而无需担心自己会破坏或搞烂原本的代码。

  通过git历史,你还能够清楚地看到,操作系统每一天修改了那些代码,让自己心里有数。

  欢迎大家通过github上传自己写出的增强版本OSASK。

  如何操作?

  1.下载该项目

  git clone https://github.com/Tassandar/OSASK

  2.查看提交记录

  cd OSASK

  git log --graph --pretty=oneline

  => 找到自己需要的代码

  ........

  * 8981d2d02d36bbf9954f0c3c20532bd04732e5b8 DAY17

  * bbadc07d81996f13b699f34c93277c3d92d3b4f5 DAY16

  * 2f47672c7b9ac07c0ddf2696d9fa79d81d19e9c4 DAY15

  * b4623d7581b8f5096667723b696f13bad6d460a2 DAY14

  * 72582ea4e7d3631ef10b57bdcbaa59db3893f3f8 DAY13

  * 63e2206785e59869d95415b1033778139f410516 DAY12

  * d09c762b18ee47b601994c7a3e85fd62b2d4e91f DAY11

  * 9b2998c9ff8a73f200d77a9a76bfb1b9c86490e2 DAY10

  ........

  3.创建自己的分支(只需要ID的前几位就行,这里检出DAY17)

  git branch mybranch 8981d

  4.run it

  打开 !cons_nt.bat 运行 make run done

  进度条

  DAY1

  使用汇编完成了 helloos.nas ,经过 asm 生成二进制文件 helloos.img,使用 QEMU 软件模拟 PC 输出 hello world 。

  DAY2

  加入makefile。制作启动区。 汇编写出 helloos.nas , asm 后输出 ipl.bin/ipl.lst, 用磁盘映像管理工具 edimg.exe 生成helloos.img.

  DAY3

  制作启动区(从软盘读取数据填充到内存的对应位置),汇编写出一个简易的操作系统(黑屏),用c语言写出停止函数,用汇编写出停止的底层实现,用作者实现的编译器编译后三者链接后输出二进制磁盘映像交由系统启动。

  DAY4

  用汇编实现对显存和中断标志的io,C语言实现绘图,调色函数,在main函数中实现绘制系统框架图。编译链接后交由系统运行。

  DAY5

  用 struct (结构体) 存储显存信息,加入字体文件hankaku.txt,C语言绘制鼠标图形,加入字符显示函数,引入GDT(全局段号记录表)和IDT(中断记录表),利用结构体和C语言实现读写 GDT 和 IDT 。

  DAY6

  将源文件分割成多个文件,重复部分整理至共有的头文件中。利用通配符简化makefile,设定PIC(可编程中断控制器),C语言实现鼠标键盘中断处理函数,汇编将中断函数处理包装(中断返回,中断标志置位)后注册至IDT。

  DAY7

  完善键盘中断处理,加入键盘输入缓存(FIFO BUF),利用环形队列实现结构体 KEYBUF, 整理至 FIFO.C 文件中;加入鼠标控制电路初始化代码,加入鼠标数据取得方法与中断反馈代码(和键盘类似)。

  DAY8

  加入鼠标数据处理与解读(读取鼠标数据【3连字节】,验证,转换为坐标/状态/按钮值),鼠标移动(频繁擦除重画鼠标ico)。解释了asmhead.nas头文件内容。

  DAY9

  对源文件分割整理,加入高速缓存检测,内存检测,内存管理(将每一段空闲内存记录在特定内存空间中并用结构体存储记录。)

  DAY10

  增强内存管理功能(完善memman_alloc 和 memman_free ,以大区块进行内存分配和释放)。加入叠加处理(加入图层),图像刷新(从底向高层依次绘制图层),图层移动,图层释放,范围刷新技术(以提高图像绘制的速度)。

  DAY11

  支持鼠标移出屏幕(解决刷新溢出),改善图层修改函数,绘制窗口图像,利用制作图层map消除刷新闪烁。

  DAY12

  定时器设置,设置PIT(可编程定时器),设置中断,定时器函数,管理定时器,加快优化定时器中断处理速度。3秒和10秒时输出屏幕。

  DAY13

  整理简化字符串显示函数,利用定时器改善和调整FIFO缓冲区,定时器性能测试,用链表结构管理定时器,增加定时器哨兵。

  DAY14

  改进性能测试,高分辨率支持(需要转换到真机上运行),键盘输入,输入输出至窗口。制作字符框,鼠标拖动窗口功能。

  DAY15

  多任务处理,定义任务状态段,任务切换功能,测试多任务运算速度,运行测试(让TASK A 和 Task B 轮流数数)。

  DAY16

  任务管理(用结构体记录和管理任务),任务的休眠与唤醒,增加窗口数量(每一任务一个窗口),任务优先级设置。

  DAY17

  对闲置任务的管理(把闲置任务置于最底层),制作命令行窗口,窗口切换(设定为TAB按键),命令行接受键盘数据。符号的输入(感叹号和百分号),实现大小写输入(按键编码与字符编码转换表),对各种锁定键的支持,点亮和熄灭键盘指示灯。

  DAY18

  控制焦点窗口的光标闪烁,命令行支持回车键,对窗口滚动的支持,编写与实现mem,dir命令。

  DAY19

  加入type命令(就是linux中的cat命令),支持FAT(文件分配表),写出第一个系统程序(让电脑死机。。。)。

  DAY20

  整理程序,制作系统应用程序接口(API),显示字符的API。

  DAY21

  保护操作系统关键段,用C语言写作操作系统API,对异常的支持。

  DAY22

  加强系统保护(防止API被修改),对于程序中溢出的异常处理,强制结束键(强制结束死循环的程序),C语言显示字符串API,窗口显示API。

  DAY23

  重写malloc的API,加入对窗口中图形绘制的API(点,指点,窗口,刷新与关闭窗口),键盘输入API,强制结束后关闭窗口,WALK小游戏(能控制在窗口上下左右移动的点)。

  DAY24

  窗口切换(使用按键F11,或鼠标点击),鼠标拖动窗口移动,关闭窗口,定时器API。

  DAY25

  蜂鸣器(需要真机运行),增加调色盘(把颜色API改为256色),改进256色至真彩色,支持同时开启多个(最多10个)命令行窗口(新窗口继承原窗口变量,重新分配内存,和fork有点类似),去掉开机自带的小窗口。

  DAY26

  提高窗口拖动速度,启动时打开一个命令行窗口(编写开命令行窗口函数,用shift + F2,打开新命令行窗口),取消命令行数量限制。关闭命令行后进行内存回收。ncst命令(启动程序不打开命令行窗口),start命令(打开一个新的命令行窗口)。

  DAY27

  修复点“x”无法关闭窗口的小bug,保护应用程序,整理源代码。

  DAY28

  alloca(对esp做减法的函数),文件操作API,命令行API,日文的文字显示。

  DAY29 & DAY30

  这两天都是在做应用程序,主要是代码,讲解很少,就合起来写了,notrec(非矩阵窗口),bball(画球),invader(外星人游戏,就是小蜜蜂),tek_getseze & tek_decomp(文件压缩,制作成tek格式),calc(计算器),tview(文本阅览),mmlplay(音乐播放器),gview(图片阅览).

  川合堂许可协议

  概要

  通俗地说:“这是自由软件,使用前使用后都无须支付任何费用,可以自由使用,也可以 复制、修改,以及用于商业目的,但是作者对软件的bug以及因此所造成的损失不负任何责 任。”

  为了保护软件使用者以及软件修改者、参考者的利益,即便作者将来为该软件中所使用的 算法申请专利,也保证不会向使用者收取授权费用。

  目的

  适用于本协议的软件,旨在为公众带来利益,以及为软件技术的进步做出贡献。

  宗旨

  本协议并不代表作者放弃著作权(仅放弃独家复制发布的权利),使用者可以自由复制并 再次发布本软件的一部分甚至全部内容。使用时无须支付任何费用,对本软件的解析、修改 也无须支付任何费用。

  适用于本协议的软件,可以无条件地用作商业目的,甚至可以将软件直接有偿出售。

  对于以适用于本协议的软件的一部分或全部内容为基础,在此之上所开发的软件(下称“ 派生物”),可以赋予任何种类的许可协议。即,派生物的作者可以禁止对派生物进行复制, 也可以只允许派生物以有偿形式发布。派生物的著作权属于该派生物的生成者,适用于本协 议的软件作者不会对其派生物主张著作权。

  在派生物的文档中,没有义务对原始软件的作者进行介绍,但这句话,理所当然地,不意 味着禁止这一行为。

  在发布派生物时,没有义务取得原始软件作者的同意,但这句话,理所当然地,不意味着 禁止这一行为。

  作者不对软件的质量作出任何保证,因此,由于使用本软件所造成的损害,或者没有达到 所期望的结果,作者不负任何责任。

  对于适用于本协议的软件中所使用的技术,除了事先取得作者授权的人以外,禁止其他人 对其申请专利。但如果附加了新的技术并生成了派生物,允许对于追加的部分申请专利。作 者在将来有可能对软件中的技术申请专利,但保证不会向派生物以及软件的使用收取授权费 用。本保证不仅适用于申请专利之前所生成的派生物,也适用于专利取得后所生成的派生物。

  将解析结果汇总并申请专利,需要事先取得作者的同意,但对于申请专利以外的行为,没 有任何限制。

  Links

  *川合堂

  *kawai

  *豆瓣图书链接

  *OSASK计划

  *OSASK wiki

  *source code at sourceforge

  Contribute

  欢迎对该项目作出任何形式上的改进,欢迎分享对此开源系统的经验分享。

  Just fork me and push to here .

  That's it . Have fun.

  License

  工具软件中使用的是 GNU GPL协议 GNU LGPL协议

  希望对各位有帮助。

  《30天自制操作系统》读后感(九):一个水水的本科生的感受--这本书确实帮到了我

  不写力荐,只是推荐,因为,我明白能够特地找操作系统书的人,大抵都是有一定基础的牛人,对于他们或许这本书不太合适。。

  我只是一个普通的计算机本科生,快毕业了都。

  大家其实都明白的,啥都不会混个毕业。脑子里的东西若有若无,一片混沌。。连着平时的大作业什么的都得去抄。。

  偶然的机会在书店看到了这本书,也许只是这几年的罪恶感,让我买下了它。。断断续续地读了小一年,这两天终于结束了。。。

  感谢作者,让我至少真正动手写了一些代码(由于基础很差,很多时候其实只是抄而已,甚至有时候连继续抄下去的决心都快没有了)。它是让我第一次从头到尾看完了一本计算机的书。。。

  这本书让我体会到了快乐,当鼠标动起来的时候,或者任务切换,或者异常捕捉到的时候,还有那个图像处理时单指令多数据的优化,作者虽然没有直接提,但我认出来的那一刻,无比的激动。

  有过苦恼,看过了却写不出来,只能抄,或者看了好几遍都看不懂。或者像记单词一样,来回翻看却最终都慢慢模糊。

  不过最终我还是读完了,里面的所有代码我至少抄了一遍。。

  或许我并不像很多牛人,读了很多,知道的很多,可以居高临下地看这本书。我只能一边仰望着,一边拼命追随着。

  但我要说这本书确实帮到了我,它不像学校里面的老师,牛B的老师从都是居高临下地看着一切。。一般的老师大抵都是照着PPT应付。。牛B的书对读者的要求很高,我根本进不去,水水的书,其实都是抄来抄去拼凑起来的。它们一直在敷衍我,我是被淘汰出来的。

  这是一本用心的书,很低的起点,给了我机会,它不在是说教或者敷衍,真正用心的书,看到豆瓣的评分,我很欣慰,用心的好书应该受到礼赞。虽然我也很清楚,这本书少了很多关键的东西,很多更深层次的东西被隐藏起来了。也因此现在有一些关键点我还是不太明白。。但这只是一本入门的书。有这些已经够了。。感谢这本书,以及作者。。。用心的作品

  《30天自制操作系统》读后感(十):两个月时间跟着书跑完了一遍

  也是一直对操作系统感兴趣,希望知道编写的程序是怎么工作的,怎么调动硬件的,怎么进行内存分配和回收的,之前找了一些操作系统方面的书看,大多写得很抽象,都是一种描述性语言,而不是实实在在的代码。而我希望知道从开机起整个系统加载过程。

  偶然在网上找到这本书《30天自制操作系统》,带着将信将疑的态度一步步往下做,刚开始几天比较简单,兴致比较高,能勉强跟得上进度,看着虚拟机打印出字符,心里很开心。这段时间,明白了开机引导程序,系统的加载过程。知道了makefile函数的编写及分条件编译(附:这让我在Android底层开发受益)。到学完第4天开始导入C语言后,兴趣便不是很足。因为前4章我已经了解了系统的开机过程还有C语言与汇编语言的配合了。后面无非是用C语言做各种窗口,鼠标键盘驱动等,所谓的多任务处理也仅仅是定时器的切换。最后还是硬着头皮拖了2个月跟着书把代码跑完。

  首先,我要说明,我并不像有些大神,一个字符一个字符把整个代码敲出来,我基本是复制粘贴的,因为的确没有那么多精力。就我的感觉来说,此书名字叫做《30天自制操作系统》其实是一个误导,这本书所谓的操作系统与现代操作系统(linux与Windows)相差太远,正如我的理解,它只是一个开机引导程序加上上层GUI而已。所以试图由本书入门到现代操作系统基本上是妄想。此外,本书的编程水平很low,也许是因为程序是一点点添加而来的,所以整体显得并不优美。所以试图通过本书提高编程水平的也是妄想。

  当然,我们并不能否认此书的闪光之处,作者带领我们一步一步打造一个五脏俱全的小系统,并且考虑到受众水平,总是不厌其烦的从ABC开讲,我明白作者的感受与不易。作者自己开发的几个编译工具的确需要一定水平,这也许对我们自己试图打造类似的操作系统是一个巨大挑战。另外,作者的硬件水平也很高,不光是对x86硬件体系的理解很深,作者将汇编语言与C语言对照,讲述C语言的指针的汇编原理,给我留下深刻印象。

  作者在书的最后有一段表述 ,回应一些人的质疑(如:这也能叫自制操作系统,太坑爹了),作者说,他整本书的原则就是“从失败中学习” ,我认为这其实是整本书的精髓,作者带领我们跌跌撞撞的自制系统,遇见不少bug,作者指引我们分析bug解决bug,这其实是最宝贵的经历。大多数程序员把写一手漂亮的程序当做最高追求,其实伟大程序员还有另外一份能力,如果有bug,能迅速定位问题解决问题,这也是至关重要的。

  最后吐槽一下国内的某些书籍,都是以高深复杂为己任,以不知所云为自豪,科技发达的强国,如美日等,写的很多书却十分通俗,这说明他们弄明白了所以才有底气用最简单的话语表达出来,这样也利于下一代教育,国内的某些书籍的作者,自己没弄懂,就不要写书了,害人不浅。

  另:学完这本书,其实我有一个想法,希望能将UCOS-III与UCGUI移植到虚拟机上,我觉得最起码UCGUI的函数写得要比本书作者的绘图函数,要地道优美。这样做出来的系统可能比作者的更好,并且用时更少,可以借助本书中罗列的X86硬件资源和作者自制的编译器。我觉得做出来也并非难事,但需要花时间。

评价:

[匿名评论]登录注册

评论加载中……