30天自制操作系统笔记(九十)

原创 2013年12月02日 09:27:16

第九天和第十天的内容为解决鼠标和图层的刷新问题,以及内存分配问题,这里的内存分配我们采取的是最简单的最先匹配原则,将整个内存由申请的进程开始逐渐的截取成不同的段。这样产生的问题可能是产生很多的外部碎片,同时我们强制性必须以页为大小(4KB)进行分配,这样的话就很可能会产生内部碎片,关于内存的管理我们在之后再改进。

下面让我们看一下这两天的成果:

源码在此处http://blog.csdn.net/ucan23/article/details/17067291点击打开链接

下两图为对内存进行分布后的执行结果,对的,其实什么差别也看不出来:



下面两图对显示控制进行了改进,结果第二张图中的悲剧就产生了,究其原因是该的地方不是很对,在后面的图中显示了解决的方法:




下面的图中显示了修正后的结果,主要是因为显卡内存所对应的内存区,写错了内容,改过来就好啦:



下面的图为解决了鼠标是方块的问题,其实只要将鼠标的填充颜色为'.'的改为99就可以啦。


下图为系统的最终的运行结果,当然其实这不是最终的运行结果,但是因为其在优化显示和刷新算法方面所以在外观上是看不出差别的。


谢谢^_^


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

30天自制操作系统笔记(九十)——源码

这里为了节省篇幅和csdn服务器的空间,我们只给出在七八之上改动的或者新建的源码文件的内容: sheet.c /* filename: sheet.c * description: 对图层的管...
  • cnxxrj
  • cnxxrj
  • 2013年12月02日 09:33
  • 2057

《30天自制操作系统》学习笔记--番外篇之Mac环境下的工具介绍

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

《30天自制操作系统》学习笔记(六)

IDT学习心得 (一)什么是中断?     通常被定义为一个事件,该事件改变处理器执行的指令顺序。例如通过键盘输入、点击鼠标等 (二)为什么要引入中断?    ...

《30天自制操作系统》学习笔记——第四天

哎呀,说来惭愧,差不多有一个月没有写学习笔记了。倒也不是因为懒散了,前段时间深感在《微机》课上学的那点汇编语言不够,于是买了王爽老师的《汇编语言》,花了二十多天,学了一遍,耽搁了二十多天,再加上过年,...

30天自制操作系统笔记第4天

用C语言实现内存读入条纹实现‘void io_hlt(void); void write_mem8(int addr, int data);void HariMain(void) { int ...

《30天自制操作系统》学习笔记--Mac下工具的使用

现在来介绍官网上下的工具怎么用首先是官网地址,书上有个注释上有:hrb.osask.jp 翻译成中文大概是这个样子滴。 上面有两个文件可以下载,一个是工具,一个是工具的源代码,很好的学习资料 下面...

《30天自制操作系统》学习笔记--第16天

今天是多任务第二讲,比昨天的层次更高,更加接近实际使用的设计。         首先是任务的自动化,所谓任务就是正在执行的程序,程序成千上万,可以自己随意安装,所以,管理就不能靠人工修改代码,而要自...

30天自制操作系统-第7天笔记

1.获取按键编码#define PORT_KEYDAT 0x0060void inthandler21(int *esp) /* 键盘中断 */ { struct BOOTINFO *bi...

《30天自制操作系统》读书笔记Day4

具体代码移步:https://github.com/scusjs/MyOS 今天的内容为:C语言与画面显示的练习 写在前面:别用记事本打开或者保存文件,不然会出现各种纠结的错误,推荐subli...
  • scusjs
  • scusjs
  • 2013年05月21日 01:41
  • 1306

30天自制操作系统笔记(五六)

经过一天的努力,第五第六天的内容也做完了,下面让我们来看一下成果吧: 下图为用字节写的字符打印出字母‘A’: 下图为使用移植的字库打印“Hello,world”: 下图为使用移植...
  • cnxxrj
  • cnxxrj
  • 2013年11月29日 08:27
  • 1464
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:30天自制操作系统笔记(九十)
举报原因:
原因补充:

(最多只允许输入30个字)