要想有所作为就要有两个要求,一是有目标,二是有计划。
没有目标,便是亡魂,目标是一种拉力,能把人拉出低谷,走向高峰。
但是只有目标,没有计划,便是永恒的痛苦。
要么不行动,每天只是想,梦想还没实现啊,好痛苦。
要么是胡乱行动,走了一大圈,不知道自己到底走到哪里了。
我有一个梦想,现在的梦想是简单的,一是有一个高薪有价值的工作,二是找个女朋友。
我十分热爱计算机技术,我想在这个领域有所作为,我要努力学习。
我计划白天工作应该好好工作,这是白天的八小时,每个人的八小时。
下班之后,首先跑步。
现在的书太多了,决定分三部分看。
一种是技术的书,自然不必说。
第二种是英语。
第三种是课外书,现在读社会学。
每天应该学习三个小时,每种书一个小时。
目前在做一个模拟cpu,其实想做这个东西很久了,我在大三的时候就用verilog语言写了一个具有29条指令的CPU,那真实让人怀念的时光。
为什么想做一个CPU呢?
我都忘了,为什么。
首先每一个电子人应该都有一个做出CPU的梦,因为它代表着最高的技术水平(那时认为),然后就是我们发现我们确实能做。
又想做,只是因为它很牛逼,又能做,那就自然而然的做了。
现在我是用纯C语言写一个模拟器,其实应该来说核心就是解释器,一个简单的解释器,然而要想做一个使用计算机系统,其实要考虑
很多东西,内存,磁盘,操作系统。
我想自己写一个CPU,然后在自己的CPU上写一个编译器,链接器,加载器,然后操作系统内核。
这应该是每一个热爱底层的人的梦想吧。
我现在有一个简单的计划---->先写一个实模式的单核CPU,然后写带MMU的保护模式单核的CPU,然后写保护模式的多核CPU。
目前我看了哪些书。
《操作系统概念》是已经看过一遍了,但是差不多又忘了,放到后面再复习。
《计算机组成-结构化方法》 Andrew S.Tanenbaum真是不可多得的大神级人物,这本书应该说是看过多遍了,当然,也忘过多遍了。
在第七章Tanenbaum讲了汇编器的基本方法,对写一个汇编器的人来说,其实已经足够了。
(为方法而累:记得大学老师说年轻人最有创意,假如让同学们制作一个简单的系统,在同学们各种艰辛的努力之后,然而老师就会发现各种奇葩实现,
或者各种扭曲,通过曲折的方法实现某一功能,每一个同学都是独一无二。然而当同学们不是自己做,而是上百度文库里面搜索的时候,他们会惊叹,
哦,原来这个东西是这样实现啊,真巧妙,然而每一次发现,其实是创造性的消失,他们不明白自己东拼西凑的东西更让人惊叹。
在写汇编器的过程中,我也遭遇思想之类,我已经画好了状态图,并且决定了三趟汇编的过程,然后,啊我突然发现Tanenbaum给出的是两趟汇编,
并且还给出部分代码,瞬间我自己消失了,只想把Tanenbaum的代码给实现了。
我真要这样做吗?不,或许我的代码真的很烂,但是我也要先实现我自己的。)
《linker and loader》不得不说自己的英语真不好,一本薄薄的300页的英文书,都没有看完,只看到了第5章,但是收获也很大。
《linux0.11内核完全注释》赵炯博士的这本书,非常不错。
下面要读的书的顺序应该是这样的:《计算机组成-结构化方法》第7章,无论怎么说,汇编器的知识还是要向前辈学习。
实模式的CPU和汇编器写完之后,我应当停下一段时间,看一看
《操作系统概念》,《计算机组成结构化方法》,《linux0.11内核完全注释》看一看实现一个保护模式的CPU到底需要什么。
实现了保护模式的CPU之后,自然是保护模式的汇编器,《linker and loader》和《程序员的自我修养》应该在这个时候看完。
然后回归到《计算机组成-结构化方法》,再然后,内核吧。
11月5日至11月15日 |
(一个实模式cpu已经设计完毕) 1.阅读《计算机组成结构化方法》 2.设计自己的汇编器,编写文档(目标文件格式,可执行文件格式) 3. 实现 4. 设计一个下载器,书写文档 5. 实现 5. 设计一个反汇编器,书写文档。 7. 实现 8. 发放,求汇编源代码测试。 9. 编写BIOS |
11月16日至11月25日 |
1.复习操作系统概念 2.复习计算机组成结构化方法 3.linux0.11内核完全注释 4.设计自己的CPU架构 5.实现 |
11月26日至12月05日 |
1.设计自己的汇编器架构 2.实现 |
12月5日-12-10日 |
1. 了解多核产品,决定做或者不做。 1.1 做
1.2 不做 开始阅读linux内核 |
计划果然都是很难做啊,完全不知道假如不能做到我能采取什么措施?
睡觉之前,打坐30分钟以上。
睡觉,休息八个小时,一天就这样结束了。