em07]呵呵,诸位,其实这个很简单的啦!我记得我在一开始接触电脑的时候就一直在想做一个操作系统!但是那个时候没有人教啦,很苦闷!但是我不想大家一起老是苦恼,那样的话,我们的操作系统老也出不来了,呵呵!
OK,下面我告诉大家如何去实现一个操作系统!
第一步,大家最困惑的可能就是如何实现一个自引导的程序罢?!其实,自引导的实现原理很简单的,在软盘的0磁道1扇区的最后2字节写成55AA(16进制),然后呢,前面的字节写成机器代码,那么计算机就执行了!注意,调用中断的时候不要调用DOS软中断,否则会死机,因为这个时候我们是脱离任何操作系统的,那些中断我们还没有填写,呵呵!
第二步,当然是要自己设计一个磁盘文件系统格式啦,以便于管理磁盘!初学者注意啦,文件夹实际上设计成指针就行了,因为在磁盘文件系统上文件夹是一个动态变化的
结构,每个文件夹下都存了很多指针,指向其他文件或文件夹所在的地址!
第三,如何实现进程调用!其实在实模式下,很简单的,你可以从磁盘文件中获得
机器码,然后读入内存(这时候要记住内存地址,包括CS,IP),然后用PUSH指令
和RET指令啦,代码就被调入内存啦,如果不是非法指令,他就会顺利执行,呵呵!
OK,操作系统最重要的东西已经实现了,即文件系统和进程装载器啦!其实这些东西在我的机器上已经实现了,不过还很雏形,还不如DOS好用!
其实好多资料我都是在网络上找到的,然后看啊,做实验啊,最后再自己设计的!可惜一切都是我自己实现的,没有人和我合作。。。。。。。。。痛苦 。。。。。。。
OK,下面我告诉大家如何去实现一个操作系统!
第一步,大家最困惑的可能就是如何实现一个自引导的程序罢?!其实,自引导的实现原理很简单的,在软盘的0磁道1扇区的最后2字节写成55AA(16进制),然后呢,前面的字节写成机器代码,那么计算机就执行了!注意,调用中断的时候不要调用DOS软中断,否则会死机,因为这个时候我们是脱离任何操作系统的,那些中断我们还没有填写,呵呵!
第二步,当然是要自己设计一个磁盘文件系统格式啦,以便于管理磁盘!初学者注意啦,文件夹实际上设计成指针就行了,因为在磁盘文件系统上文件夹是一个动态变化的
结构,每个文件夹下都存了很多指针,指向其他文件或文件夹所在的地址!
第三,如何实现进程调用!其实在实模式下,很简单的,你可以从磁盘文件中获得
机器码,然后读入内存(这时候要记住内存地址,包括CS,IP),然后用PUSH指令
和RET指令啦,代码就被调入内存啦,如果不是非法指令,他就会顺利执行,呵呵!
OK,操作系统最重要的东西已经实现了,即文件系统和进程装载器啦!其实这些东西在我的机器上已经实现了,不过还很雏形,还不如DOS好用!
其实好多资料我都是在网络上找到的,然后看啊,做实验啊,最后再自己设计的!可惜一切都是我自己实现的,没有人和我合作。。。。。。。。。痛苦 。。。。。。。
临河居士
http://www.xygod.pc5.org
http://www.xygod.pc5.org





