Windows下的开发环境
我们在介绍QEMU时提到过,在Windows下你需要一个虚拟的Linux来帮你编译操作系统的源代码.将操作系统内核编译链接成ELF格式有诸多好处,我们不但可以用Linux下现成的工具(比如readelf)来分析编译好的内核,还可以在必要时参考Linux内核的源代码来帮助我们自己的开发,总之这拉近了我们与Linux之间的距离.不要在Windows下也离不开Linux这件事而沮丧,况且装一个Linux是件很容易的事情. 不过装一个虚拟的Linux跟装一个真实的Linux还是有所不同,主要在于两点.一是我们仅仅想用这个Linux来做编译链接的工作,在选择组件的时候尽量去除不必要的内容,这样可以节省时间和空间;二是要确保你选择的虚拟机容易跟宿主机进行网络通信,你需要将宿主机上的源代码拿给虚拟机来编译. 安装方法可以有多种选择,比较简单的方法是通过光盘安装,当然这个光盘也可以是“虚拟”的,也就是一个光盘映像.到你所中意的Linux发行版的官方网站下载一个安装光盘的映像,有些发行版还提供免费或付费的邮寄服务,读者可以根据自己的喜欢自行选择.这里假设你得到的是光盘映像,文件名为inst.iso. 有了光盘映像,我们还缺少一个硬盘映像,读者可以用前文提到过的bximage来生成它,也可以使用下面的命令: $ qemu-img create hd.img 1500M 这样就能生成一个大小约为1.5GB的硬盘映像了. 接下来就可以进行安装了: $ qemu -cdrom inst.iso -hda hd.img -boot d 安装过程从略,注意尽量精简你的组件,不要安装太多无用的东西.这些组件对我们是必需的:GCC、GNU Make、NASM、Samba.如果它们在安装时默认没有装上,那么你需要在系统安装结束后将它们安装上.目前大多数虚拟机都具有好用的网络功能,安装它们并非难事. 装完之后,我们还需要解决让宿主机和虚拟机通信的问题.其实你可以把它们看成是局域网中的两台机器,局域网中适用的方法这里同样适用,Samba就很适合. 在Windows中以可读写方式共享一个文件夹,假设叫做OrangeS,然后在虚拟的Linux上运行下面这条命令: $ sudo mount -t smbfs -o username=user,password=blah //10.0.2.2/OrangeS /mnt 其中假设你的宿主机IP地址为10.0.2.2.这样在Linux的/mnt目录下就能看到Windows共享文件夹下的内容了,你可以在虚拟机中随意读写,就像对待本地文件一样. 这样一来,你的编译环境就安装完成了,接下来,如同在Linux下一样,你还需要一个编辑器.据说始终有一部分人使用记事本(notepad)来编写代码,不管基于何种理由,希望你不要这样做,你可以找到许多比notepad更适合编写代码的编辑器,有收费的,也有免费的,它们通常都具备关键字颜色,自动缩进等方便开发者的功能,可以大大提高工作效率.
[NextPage] · 安装Windows. · 安装Bochs(安装程序可到其官方网站获取). · 安装一个你喜欢的编辑器用来编写代码. · 安装一个速度较快的虚拟机,如QEMU(安装程序可到其官方网站获取}). · 在速度较快的虚拟机上安装一个Linux. · 在虚拟的Linux中安装GCC、GNU Make、NASM、Samba──如果它们没有默认被安装上的话. · 在虚拟的Linux和宿主机之间共享一个可读写的文件夹. 将来你的开发过程看起来很可能是这样的: · 在Windows中用编辑器编写代码. · 在虚拟Linux中用Make调用GCC、NASM及其他工具来生成内核并写入磁盘映像. · 在Windows中用Bochs来运行你的操作系统. · 如果有问题的话. o 用各种方法来调试,比如用Bochs; o 返回第1步. 总结 好了,到这里相信读者已经知道如何搭建自己的开发环境了,说白了它跟开发一个普通的软件区别基本就在一个虚拟机上.它既是我们的“硬件”,又是我们的调试器,有了它我们安心多了.那是不是马上就可以开始我们的操作系统开发之旅了呢?很遗憾,还不能那么着急,你知道,操作系统是跟硬件紧密相连的,如果想实现一个运行在使用IA32架构的IBM PC上的操作系统,免不了要具备相关的知识.其中的重头戏就是32位Intel CPU的运行机制,毕竟CPU是一台计算机的大脑,也是整个计算机体系的核心. 紧接着我们要学习的,就是要了解IA32保护模式.掌握了保护模式,我们才知道Intel的CPU如何运行在32位模式之下,从而才有可能写出一个32位的操作系统. |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |