30天自制操作系统
Snnopy#8809
这个作者很懒,什么都没留下…
展开
-
30天自制操作系统 杂谈1
去原创 2019-02-09 20:17:39 · 320 阅读 · 0 评论 -
30天自制操作系统 杂谈2
显示字符由于我们采用的是32位模式,不能依赖BIOS,只能自力更生了。假定采用8x16的像素点阵去表示:易得字符输出函数:void putfont8(char *vram, int xsize, int x, int y, char c, char *font){ int i; char *p, d; for (i = 0; i < 16; i++) { p = vram...原创 2019-02-09 20:17:21 · 228 阅读 · 0 评论 -
30天自制操作系统 杂谈3
操作系统开发的TIPs1.不要从一开始就想着去做一个操作系统。2.不要指望能够一次就搞定,推翻重做几次也是很正常的。3.为你的操作系统设定一个明确而又容易理解的目标。如果明确了“什么是最优先的,什么又是可以放弃的”,操作系统的开发就会变得更加顺利。同样的我们在学习本书的过程中,究竟什么是重要的,什么又是可以忽略的呢?要和BIOS的各种设定死磕吗?要和Makefile,nas,C等等的代...原创 2019-02-11 12:20:30 · 243 阅读 · 0 评论 -
30天自制操作系统 杂谈4
中断处理这句代码:io_out8(PIC0_OCW2,0x61)用来通知PIC已经知道发生了IRQ1中断。如果是IRQ3,就写成0x63。也就是说,将“0x60+IRQ号码”输出给OCW2就可以。执行这句话后,PIC将继续监视IRQ1中断是否发生,否则系统就感知不到。中断处理基本上就是打断CPU本来的工作,所以必须干净利索,并在处理期间不再接受其他中断。而另一方面,字符显示要花大量时间处理。所...原创 2019-02-17 20:19:07 · 140 阅读 · 0 评论 -
30天自制操作系统 杂谈5
向上舍入假设以0x1000字节为单位,做最简单的向下舍入,我们可以用i = i & 0xfffff000,那么向上舍入就是i = ( i & 0xfffff000) + 0x1000咯!当然不是!还要判断后几位是否为0,如果本来就是0则什么都不做。纠正代码如下:if((i & 0xfff)!=0){ i= ( i & 0xfffff000) + 0x1000;}...原创 2019-02-18 16:26:36 · 154 阅读 · 0 评论 -
30天自制操作系统 杂谈6
显示窗口前文鼠标移动还留下了一个BUG,其实只要在主函数和画面刷新函数,各加上对边界的判断就解决了。接下来我们尝试制作窗口,和前面制作背景和鼠标一样,先准备一个图层,然后在图层缓冲区内描绘一个貌似窗口的图就行了。这里的制作窗口的函数,我们只需对设置背景的函数稍加改造就可以得到的,而x按钮的功能可以通过修改鼠标初始化的函数得到啦!代码就不罗列了。CPU:这个锅我不背!!!之前我们用HLT...原创 2019-02-18 22:53:21 · 177 阅读 · 0 评论