快速业务通道

Windows下的开发环境

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-04-30

我们在介绍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下的开发环境,你需要做以下工作:

  · 安装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 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号