定时器的中断处理程序要保证高效率,需要进行一些优化,这里介绍优化的方法。对于一个操作系统来说,会有多个定时器,假设该操作系统维护了500个定时器,当每一次定时中断发生时(这里我们设定1秒发生100次中断),调用中断处理程序,中断处理程序会对这500个定时器进行if判断,看哪些正在被使用,这样1秒内,就会有500X100=10000次if判断,而中断处理程序最讲究节省时间。实际上,我们不必每发生一次...
分类:
其他好文 时间:
2014-08-09 23:17:29
阅读次数:
303
暑假果然是滋生懒散的温床. (╯‵□′)╯︵┻━┻ 好久不动都忘记之前做到哪里了, 上次好像做到了C语言的引入, 这一节所做的东西都相当轻松, 将会绘制出操作系统的基本界面. 绘图的原理 按照书中所说, 将值写入到显存中就能在屏幕上显示相应的像素, 在asmhead.nas 中有这一段: 1 ...
分类:
其他好文 时间:
2014-08-07 00:16:17
阅读次数:
348
《30天自制操作系统》最近一直再看,最近已经看到后面了,看到第28天,里面讲到可以实现对全角字符的支持,而原操作系统代码里面只是支持了日语显示,而中文版的这本书也只是讲了一个思路,具体的实现也是没有的。网上也好像没有人实现过这个吧,我是找不到。(由于书中每一章每一小节都有代码,我看书的时候就懒得.....
分类:
其他好文 时间:
2014-07-22 00:16:36
阅读次数:
231
这一次的学习相当曲折, 主要是因为粗心, Makefile里面的错误导致了文件生成出现各种奇奇怪怪的问题, 弄得心力交瘁, 因此制作过程还是尽量按着作者的路子来吧. 作者提供的源码的注释在中文系统下是乱码, 而且代码的分隔用了两个Tab, 在这里要处理一下: :%s/;.*//g 删除所有的注释; ...
分类:
编程语言 时间:
2014-07-11 20:33:11
阅读次数:
221
让系统跑起来 要写一个操作系统,我们首先要有一个储存系统的介质,原版书似乎是06年出版的,可惜那时候没有电脑,没想到作者用的还是软盘,现在的电脑谁有软驱?不得已我使用一张128M的SD卡来代替,而事实上你用的是U盘还是软盘对我们的操作系统没有影响,缺点是你的U盘刷入系统后容量只能是1440 MB.....
分类:
其他好文 时间:
2014-07-07 00:09:13
阅读次数:
437
做一个自己的操作系统, 在我看来一直是不可以思议的,而且奇妙的,像是吉他手亲手打造一把自己的吉他? 似乎这个比喻不太恰当, 但是,感觉是一样的。 《30天自制操作系统》 为日本的川和秀实先生所著, 有人说他是 "《XX天学会XXX》之类的书中为数不多的几本好书之一。" 这本书的优点非常明显,通俗.....
分类:
其他好文 时间:
2014-07-03 12:53:52
阅读次数:
274
当用户按下开机按钮,物理机能够加载BIOS指定的程序代码,并执行之。硬件电路就是这么设计好的。计算机自动加载的程序只有512字节,不够用来放OS程序。所以这512字节的程序就用来装载真正的OS程序到内存某处,然后JMP到该处执行OS程序。硬件电路提供了寄存器若干、加减乘除、中断机制、定时器、内存段属...
分类:
其他好文 时间:
2014-07-01 11:48:28
阅读次数:
191
上一篇介绍了设置显示器高分辨率的方法。本篇讲一下操作系统实现多任务的方法。操作系统利用CPU的far模式的JMP指令、寄存器TR、GDT、TSS和PIT中断这些功能实现了多任务,可见CPU在设计时就考虑到了计算机要具有多任务处理的能力。也就是说,CPU、PIC等硬件支持什么功能,操作系统才能实现什么...
分类:
其他好文 时间:
2014-06-22 23:30:24
阅读次数:
369
移动鼠标并显示鼠标坐标struct MOUSE_DEC { unsigned char buf[3], phase; int x, y, btn;}; enable_mouse(&mdec); for (;;) { io_cli(); //...
分类:
其他好文 时间:
2014-06-19 06:55:18
阅读次数:
201
D:\30day\projects\04_day\harib01b下代码如何编译运行。把z_tools复制到04_day下,然后修改Makefile文件的run:run
: $(MAKE) img $(COPY) haribote.img ..\..\qemu\a.img $(MA...
分类:
其他好文 时间:
2014-06-16 08:21:31
阅读次数:
230