摘要: 从零开始打造我的计算机系统处理器设计某种意义上而言如今的CPU模型的设计是为了更方便的设计操作系统,比如操作系统的安全是内核空间和用户空间的概念出现,进程模型使TSS模型出现,虚拟内存使MMU出现等等,如今我们要设计一个CPU的时候,实际上是考虑两点:一:它是否能很好的实现C语言。二:它是否能很好的实现一个操作系统。只要这两点满足,它已经成为一个可以用的CPU模型。在我想从零开始设计我的计算机以来,我就设计了几种CPU模型,当然,最开始选择的是支持虚拟内存的CPU,并且支持一些系统指令,然后我发现高估了自己的编程能力,所以决定从最简单实模式CPU做起。仍然保持它的可扩充性,以便以后升级。然而仍 阅读全文
posted @ 2014-02-16 17:10 李可以 阅读(2031) 评论(0) 推荐(0) 编辑
摘要: 按照惯例,我是应该先写一些本章的收获的,不过太晚了。在看完第三章之后开始编译,错误一堆,几乎崩溃,幸亏经过不断的百度,总算解决了问题,我发现我遇到问题比较多,算是集中七个龙珠了吧,感谢先行的大神们。1.CFLAGS was changed in "examples/scull/Makefile". Fix it to use EXTRA_CFLAGS. Stop. 由于LDD3使用的是2.6.10内核,很多东西已经发生了变化,这里提示我们修改Makefile中的CFLAGS,用EXTRA_CFLAGS代替,照它说的做就可以。2、提示找不到文件linux/config.h: 阅读全文
posted @ 2014-01-19 01:35 李可以 阅读(873) 评论(0) 推荐(0) 编辑
摘要: 这是我第三次阅读linux内核代码完全注释了,当然前两次也没有读完,第一次读到第五章,第二次第七章。所以说,赵炯博士对我最大的帮助时介绍了intel386的结构,以及内核编程的方法。至于真正的内核源代码,我还真没看多少。前几天,就是上周周日,我终于完成我梦想的一小段的了,我的梦想是什么呢?不妨贴一贴一年前发的微博。我想做自己的计算机系统,本来这应该是一个简单的梦想,但是随着人们对效率的追求,如今的CPU再也不是典型的架构,超流水线,寄存器重命名,乱序,预测。如今,指令集作为软件和硬件之间的接口这句话太对了,整个计算机系统就像一个沙漏。沙漏的下面是复杂的硬件实现,片上并行,SIMD,多核,多级缓 阅读全文
posted @ 2013-11-27 11:35 李可以 阅读(4225) 评论(2) 推荐(0) 编辑
摘要: 我把学习网络的任务放在后面,所以现在还是一个网络白痴,但是这次遇到这个网络问题真的让我痛心呢。背景介绍:我租的那套房子里有很多房客,所以有一个交换机,交换机有N个出口,三个网口,两个语音口,一个iTV口。其中一个网口接房东的路由器,这个路由器有八个lan,我们把lan扯出来,接到我们路由器的wan口上。就这么上网,一直没有什么大问题。但是有时候下东西的时候,会突然断网,有时候又不断,不知道为什么。上周周五,在下东西的时候突然断网了,第一反映是重启房东的路由器,以前也这样做过,而且重启之后就好了。但是这一次,拔下电源,再插上电源,仍然不能上网,我知道事情大条了。果然所有的房客都不能上网了。但是房 阅读全文
posted @ 2013-11-19 20:01 李可以 阅读(358) 评论(2) 推荐(0) 编辑
摘要: 第一章:实现队列我觉得实现一个队列还是比较有意思的事情,采用常见的循环数组实现的方式。值得注意的是,Item项是void *类型的,也就是说这个队列可以存储任意类型,因为我们其实存储的是指针。(这么描述真的没问题吗?)queue.h的源代码如下/** * @file queue.h * @brief * */#ifndef QUEUE_H#define QUEUE_H#define MAXQUEUESIZE 1000typedef enum boolean{False,True} bool;typedef void * Item;typedef struct Queue * QueueA... 阅读全文
posted @ 2013-11-13 16:09 李可以 阅读(828) 评论(0) 推荐(1) 编辑
摘要: 来源:Assembler and loader渣翻译啊,先来无事做。AShortHistoryofAssemblersandLoaders汇编器和加载器简史OneofthefirststoredprogramcomputerswastheEDSAC(ElectronicDelayStorageAutomaticCalculator)developedatCambridgeUniversityin1949byMauriceWilkesandW.Renwick[4,8&97].FromitsveryfirstdaystheEDSAChadanassembler,calledInitialO 阅读全文
posted @ 2013-11-12 23:11 李可以 阅读(988) 评论(0) 推荐(0) 编辑
摘要: 要想有所作为就要有两个要求,一是有目标,二是有计划。没有目标,便是亡魂,目标是一种拉力,能把人拉出低谷,走向高峰。但是只有目标,没有计划,便是永恒的痛苦。要么不行动,每天只是想,梦想还没实现啊,好痛苦。要么是胡乱行动,走了一大圈,不知道自己到底走到哪里了。我有一个梦想,现在的梦想是简单的,一是有一个高薪有价值的工作,二是找个女朋友。我十分热爱计算机技术,我想在这个领域有所作为,我要努力学习。我计划白天工作应该好好工作,这是白天的八小时,每个人的八小时。下班之后,首先跑步。现在的书太多了,决定分三部分看。一种是技术的书,自然不必说。第二种是英语。第三种是课外书,现在读社会学。每天应该学习三个小时 阅读全文
posted @ 2013-11-05 20:57 李可以 阅读(405) 评论(5) 推荐(0) 编辑
摘要: 这篇文章仅仅为心中自证,不是算法教学,也不想误人子弟,谢谢各位。第一章:一些感慨 我断断续续学习算法两年多了,这说起来是多么苦涩,是我笨嘛?一直不知道算法是什么东西。从《算法导论》再到《C算法》不清楚看了多少遍,它们就是我过不去的坎吗? 不敢说什么大话,但是我有一个心得,学习算法,一定要理解,理解比会写更重要,会写,很有可能仅仅是记忆好,但是过一段时间忘了, 就对这个算法完全没有印象了,我就是这样。 所以我以后学习算法,一定抱着理解的心态,理解了,就很好。第二章:基本排序算法2.1 冒泡排序 人们常说,冒泡排序是最初级的排序算法,人们说这句话的时候是从时间复杂度这个角度来说的,这么... 阅读全文
posted @ 2013-10-30 08:39 李可以 阅读(1726) 评论(10) 推荐(1) 编辑
只有注册用户登录后才能阅读该文。 阅读全文
posted @ 2013-10-29 16:25 李可以 阅读(11) 评论(0) 推荐(0) 编辑
摘要: 大概在中秋节的时候,好吧,远在中秋节之前。我看完操作系统的时候,准备看赵迥博士的《linux源代码完全注释》读着读着,大概读到文件系统吧,对文件系统有个清晰的了解了。然后我想做一个cpu模拟器。想做这个东西很久了,觉得自己也有一定的基础。就开始看《计算机组成设计:软硬件接口》看到逻辑电路的时候才感觉自己太软了,硬件什么的全忘完了。然后我想,反正只是逻辑上实现,又不要求什么性能,为什么不直接写呢?大概那个时候看了《linker and loader》但是越看越糊涂,越看越想搞一次大的,虚拟内存啊,中断啊,异常啊什么的都想搞上,结果没有搞成。但是从学习《linux源代码完全注释》和《linker 阅读全文
posted @ 2013-10-21 15:56 李可以 阅读(565) 评论(0) 推荐(0) 编辑