【30天自制操作系统】 一个半成品
【30天自制操作系统】 一个半成品

之前看《30天自制操作系统》,参考而成,和书中系统并不完全一致,是在原有基础上按照自己的习惯而成,由于水平和工作原因,未完成内存管理和文件系统,有兴趣者可以通过以下网址

【30天自制操作系统】多任务 II
【30天自制操作系统】多任务 II

今天是多任务第二讲,比昨天的层次更高,更加接近实际使用的设计。 首先是任务的自动化,所谓任务就是正在执行的程序,程序成千上万,可以自己随意安装,所以,管理就不能靠人工修改代码,而要自动管理,自动分配空间,自动注册相关设置,所以就要建立一个结构体来管理众多任务,记录当前任务的信息。

【30天自制操作系统】多任务 I
【30天自制操作系统】多任务 I

今天的内容是多任务,所谓多任务就是“同时”执行多个任务,作者写的是在单核cpu上轮流执行多个任务,在短时间进行各种切换,但是实际上还是串联的,虽然表面上看的是同时执行,不知道现在的多核处理器是如何完成多任务的,我一会儿google一下,写出来,应该有很些不同。

【30天自制操作系统】 FIFO
【30天自制操作系统】 FIFO

首先是FIFO缓冲区的一个通用化,这样就相当于在一个队列里面加入了很多中断处理收到的数据,CPU可以根据自己的节奏一个一个来处理,包括鼠标,键盘,定时器,以后还有可能是其他的设备,这样做的好处就是先后顺序很明确,谁先来就先处理谁,如果有多个缓冲区就无法确定哪个应该先处理,哪个应该暂时等待,而且这样设计更有利于编写程序,一举多得。

【30天自制操作系统】 Mac环境搭建
【30天自制操作系统】 Mac环境搭建

弄了三天了,终于弄好了,先说结果,就是作者在网站上放了os x的工具(hrb.osask.jp,也有linux下的工具,可以自己去下载),也就是说我白忙活了三天。。。 再说一下这几天都干啥了,主要是想把c语言和nasm汇编连在一起。这个很多人都做过,但在网上现有的资料很少有在os X上做的的,也或者做了大家都没人说。。。。先贴代码:

【30天自制操作系统】 Mac环境下的工具介绍
【30天自制操作系统】 Mac环境下的工具介绍

这几天又有点不务正业了,书也没看,一直在搞这个破环境,尝试各种做法,网上各种垃圾信息,浪费了很多时间,说的基本都是废话,不过还是找到了一些,赶紧写下来,不然这个过几天又忘了首先是环境,我用的是Max os Maverick 64,就是10.9,

【30天自制操作系】 定时器
【30天自制操作系】 定时器

今天的主要内容是屏幕刷时的闪烁问题,和定时器的小部分内容。 首先说明定时器应该是系统重要部分,所以明天会好好记录一下计时器的心得。 关于屏幕刷新时闪烁,这个之前也遇到过(之前做单片机数据绘图时,因为单位时间数据量很大,一直刷新画面就会导致波形图闪烁,而解决这个问题的方法是使用双缓存技术)

【30天自制操作系统】 内存管理和叠加处理
【30天自制操作系统】 内存管理和叠加处理

首先说的内存管理,昨天说道把很多内存分成0x1000字节大小的块,然后分配给程序使用,但是不一定所有的程序用到的都是0x1000的整数倍字节,所以就要设计一个取整的方法,就有了书中提到的聪明做法(size+0xfff)&0xfffff000;这个做法或者称为算法的正确性证明很简单,带两个数试一下就知道玄机了