2013-12-14
展开全部
汇编和C语言
因为你知道最开始计算机运行在实模式下,整台机器由BIOS控制,所以你的任务主要就是先用汇编写一个loader(对的,就像lilo或者grub一样 ;p),用于从实模式跳到保护模式,然后加载你操作系统的内核,最后把控制权交给操作系统。当然你的loader需要是纯二进制,不能是其他的可执行文件格式例如ELF格式等等。
接下来就是操作系统内核的实现了,这个比较复杂,开始的页式储存等恐怕多半要用汇编完成,其后的多任务,文件系统或者是硬盘驱动就可以用纯C写了,要是你写一个宏内核还比较好实现些,微内核光看逻辑脑袋就大了,比较难实现的就在内核上。
具体的实现我也不明白,现在正在复读呢没空搞这个,曾经只写过一个由实模式跳转到保护模式的汇编程序,扩展了下下改成了500来行操作点显存还出了点问题,你要感兴趣自己动手试试吧,挺有意思的。
至于开发方式当然就是那么开发了,我汇编编译器用的nasm,C编译器用的gcc,其他的用到gdb和objdump等等,当然你也可以自己用自己喜欢的开发环境啦,适合就好。
至于虚拟机我都用qemu的,很多人都喜欢用bochs来运行调试自己写的操作系统,不过我编译bochs的时候不知道怎么少了一些库,于是就用了qemu了,编译大约十几分钟,别忘了./configure --help看看调试选项把它打开,要不然你的虚拟机只能运行不能调试你的操作系统的,调试的感觉和gdb差不多撒。
顺便做个广告,编辑器推荐vim,操作系统推荐使用slackware linux,感觉比fedora或者ubuntu等等发行版给力多了,分区格式推荐reiserfs,秒杀ext* ;p
顺便能不能多加点分呀 :D
因为你知道最开始计算机运行在实模式下,整台机器由BIOS控制,所以你的任务主要就是先用汇编写一个loader(对的,就像lilo或者grub一样 ;p),用于从实模式跳到保护模式,然后加载你操作系统的内核,最后把控制权交给操作系统。当然你的loader需要是纯二进制,不能是其他的可执行文件格式例如ELF格式等等。
接下来就是操作系统内核的实现了,这个比较复杂,开始的页式储存等恐怕多半要用汇编完成,其后的多任务,文件系统或者是硬盘驱动就可以用纯C写了,要是你写一个宏内核还比较好实现些,微内核光看逻辑脑袋就大了,比较难实现的就在内核上。
具体的实现我也不明白,现在正在复读呢没空搞这个,曾经只写过一个由实模式跳转到保护模式的汇编程序,扩展了下下改成了500来行操作点显存还出了点问题,你要感兴趣自己动手试试吧,挺有意思的。
至于开发方式当然就是那么开发了,我汇编编译器用的nasm,C编译器用的gcc,其他的用到gdb和objdump等等,当然你也可以自己用自己喜欢的开发环境啦,适合就好。
至于虚拟机我都用qemu的,很多人都喜欢用bochs来运行调试自己写的操作系统,不过我编译bochs的时候不知道怎么少了一些库,于是就用了qemu了,编译大约十几分钟,别忘了./configure --help看看调试选项把它打开,要不然你的虚拟机只能运行不能调试你的操作系统的,调试的感觉和gdb差不多撒。
顺便做个广告,编辑器推荐vim,操作系统推荐使用slackware linux,感觉比fedora或者ubuntu等等发行版给力多了,分区格式推荐reiserfs,秒杀ext* ;p
顺便能不能多加点分呀 :D
2013-12-14
展开全部
C语言啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询