上一页 1 ··· 15 16 17 18 19 20 21 22 23 ··· 27 下一页
摘要: 上一篇中实现了启用鼠标、键盘的功能。屏幕上会显示出用户按键、点击鼠标的情况。这是通过让设置硬件的中断函数实现的,可以说硬件本身的设计就具有事件驱动的性质,所以软件层面上才有基于事件的消息机制。 但上一篇没有说明中断的来龙去脉,本篇就从头到尾描述一下CPU与此相关的设置问题。 阅读全文
posted @ 2014-06-03 17:43 BIT祝威 阅读(6532) 评论(7) 推荐(4) 编辑
摘要: 从最开始的(01)篇到上一篇为止,已经解决了开发环境问题和OS项目的顶层设计问题,并且知道了如何在320*200像素的模式下使用显示器。这意味着处理和输出部分已经有了最基本的版本,因此本篇来完成输入功能,即启用键盘和鼠标。 以前基于.net做app的时候,必须了解一些.net虚拟机、AppDomain、.net类库、socket、面向对象等相关的知识。现在要基于物理机做一个被称为“操作系统”的app,当然要对物理机有一些认识。 本篇将整理一些关于CPU的知识点。整理这些的目的是实现对硬件的封装(写一些供C语言调用的函数),对硬件进行封装的目的当然是隐藏硬件细节,为写操作系统这个app服务了。不过大动干戈地封装不宜在此时进行,因为我对后续的内存管理、多任务、窗口这些东西还没有概念。放到整个操作系统完成后进行重构时再仔细封装比较稳妥。 阅读全文
posted @ 2014-05-31 14:39 BIT祝威 阅读(7848) 评论(7) 推荐(5) 编辑
摘要: 从最开始的(01)篇到上一篇为止,已经解决了开发环境问题和OS项目的顶层设计问题。 本篇做一个小练习:设置显卡显示256色。 阅读全文
posted @ 2014-05-25 14:54 BIT祝威 阅读(7781) 评论(7) 推荐(0) 编辑
摘要: 在上一篇,实现了用IPL加载OS程序到内存,然后JMP到OS程序这一功能;并且总结出下一步的OS开发结构。但是遇到了真机测试和U盘启动的一些问题。本篇就来解决之。 简单来说,把软盘(U盘)做成启动盘后,自然想要用来启动物理机器。毕竟这才是真正的测试。(用QEMU总没多大的成就感)但物理机测试的麻烦在于太慢了,每次都要关掉Windows,重启,测试,然后再重启Windows。而且还没办法截图。 而用Vmware代替真机就好了,启动速度比真机快得多,还可以截图。而且Vmware比QEMU还有另一个好处,稍候说明。 阅读全文
posted @ 2014-05-21 21:41 BIT祝威 阅读(13490) 评论(10) 推荐(1) 编辑
摘要: 在上一篇,记录了计算机开机时加载IPL程序(initial program loader,一个nas汇编程序)的情况,包括IPL代码(helloos.nas)、编译生成helloos.img文件、用虚拟机QEMU加载helloos.img、制作U盘启动盘和用物理机加载helloos.img。 计算机启动时会自动加载和执行IPL程序,但IPL程序只能占用512字节。若直接用IPL写OS,空间不够用。所以IPL程序一般用于将真正的OS程序加载到内存某处(记作A),然后跳转到A。这样计算机就可以执行OS的程序了。 在上一篇中的IPL程序只是个hello world式的试验品,本篇通过修改上一篇的IPL,让它真正实现加载OS程序的功能。同时,将IPL程序代码和OS代码放到不同的源代码文件中;用C语言来编写以后的OS代码;用Makefile来编译源代码。 有了本篇的基础,就算是 阅读全文
posted @ 2014-05-20 23:46 BIT祝威 阅读(17003) 评论(29) 推荐(9) 编辑
上一页 1 ··· 15 16 17 18 19 20 21 22 23 ··· 27 下一页