Windows下的开发环境Linux认证考试

文章作者 100test 发表时间 2009:07:25 09:34:30
来源 100Test.Com百考试题网


  我们在介绍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更适合编写代码的编辑器,有收费的,也有免费的,它们通常都具备关键字颜色,自动缩进等方便开发者的功能,可以大大提高工作效率。
  总结一下的话,搭建一个Windows下的开发环境,你需要做以下工作:
  · 安装Windows。
  · 安装Bochs(安装程序可到其官方网站获取)。
  · 安装一个你喜欢的编辑器用来编写代码。
  · 安装一个速度较快的虚拟机,如QEMU(安装程序可到其官方网站获取})。
  · 在速度较快的虚拟机上安装一个Linux。
  · 在虚拟的Linux中安装GCC、GNU Make、NASM、Samba──如果它们没有默认被安装上的话。
  · 在虚拟的Linux和宿主机之间共享一个可读写的文件夹。
  将来你的开发过程看起来很可能是这样的:
  · 在Windows中用编辑器编写代码。
  · 在虚拟Linux中用Make调用GCC、NASM及其他工具来生成内核并写入磁盘映像。
  · 在Windows中用Bochs来运行你的操作系统。
  · 如果有问题的话。linux认证网,加入收藏
  o 用各种方法来调试,比如用Bochs.
  o 返回第1步。
  总结
  好了,到这里相信读者已经知道如何搭建自己的开发环境了,说白了它跟开发一个普通的软件区别基本就在一个虚拟机上。它既是我们的“硬件”,又是我们的调试器,有了它我们安心多了。那是不是马上就可以开始我们的操作系统开发之旅了呢?很遗憾,还不能那么着急,因为你知道,操作系统是跟硬件紧密相连的,如果想实现一个运行在使用IA32架构的IBM PC上的操作系统,免不了要具备相关的知识。其中的重头戏就是32位Intel CPU的运行机制,毕竟CPU是一台计算机的大脑,也是整个计算机体系的核心。
  所以紧接着我们要学习的,就是要了解IA32保护模式。掌握了保护模式,我们才知道Intel的CPU如何运行在32位模式之下,从而才有可能写出一个32位的操作系统。

相关文章


Linux系统性能测试与分析Linux认证考试
解释Linux中图形系统数据流Linux认证考试
Linux中下载软件必用的5个下载管理器Linux认证考试
Linux操作系统服务器上进行安全配置Linux认证考试
Windows下的开发环境Linux认证考试
LinuxShell输出命令实例Linux认证考试
如何在Linux上建立DNS服务器Linux认证考试
使用linux下的TC进行服务器流量控制Linux认证考试
iostat来对linux硬盘IO性能进行了解Linux认证考试
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛