GNU/Linux下的开发环境


    在工作环境中,虚拟机是个重头戏,所以在本章的前面单独做了介绍。除了虚拟机之外,还有几样重要的东西,分别是编辑器、编译器和自动化工具GNU Make。
    许多在Linux下工作的人会使用Vi或者Emacs作为编辑器。如果你有兴趣尝试,那么还是那句建议,“不要因为刚开始的不习惯而放弃”,因为它们的确是编辑器中的经典,而且和Linux一样,具有陡峭的学习曲线。许多人一旦学会使用就爱上它们,这其中也包括笔者自己。当然,学习它们并不是必需的,而且你的选择范围比操作系统要大多了,相信会有一款能让你满意。
    对于编译器,我们选择GCC和NASM分别来编译C代码和汇编代码。选择GCC的原因很简单,它是Linux世界编译器的事实标准。GCC的全称是GNU Compiler Collection,在这里我们只用到其中的C编译器,所以对我们而言它的全部意义仅为GNU C Compiler──这也正是它原先的名字。之前提到过,我们使用的Linux其实应该叫做GNU/Linux,所以使用GCC是比较顺理成章的,那么为什么不能使用GCC来编译我们的汇编代码呢?何苦再用个NASM呢?原因在于GCC要求汇编代码是AT&T格式的,它的语法对于习惯了IBMPC汇编的读者而言会显得很奇怪,我猜大部分读者可能都跟我一样,学习汇编语言时使用的教材里介绍的是IBMPC汇编。NASM的官方网站位于这里,你还可以在上面找到详细的文档资料。
    关于GNU Make的介绍见本书第5章。
    还是以Debian作为示例,安装GCC和NASM可以通过以下命令来完成:
    $ sudo apt-get install build-essential nasm
    注意这里的build-essential软件包中包含GCC和GNU Make。
    好了,现在可以总结一下了,如果你想要搭建一个基于Linux的开发环境,那么你需要做的工作有以下这些:
•    安装一个Linux发行版,如果你对Linux不甚熟悉,推荐使用Ubuntu。
•    通过Linux发行版的包管理工具或者通过下载源代码手工操作的方式来安装以下内容:
o    一个你喜欢的编辑器,比如Emacs。
o    用于编译C语言代码的GCC。
o    用于编译汇编代码的NASM。
o    用于自动化编译和链接的GNU Make。
o    一个用于运行我们的操作系统的虚拟机,推荐使用Bochs。
    再次强调,如果你在安装或使用它们时遇到困难,不要着急,也不要气馁,因为一帆风顺的情形在现实生活中着实很少见。你或许可以试试以下的解决方案(这些方法也适用于其他在自由软件的安装配置及使用等方面的问题):
•    向身边的朋友求助。
•    使用搜索引擎看看是不是有人遇到类似的问题,那里或许已经给出解决方案。
•    仔细阅读相应资料(不要怕英文),比如安装说明,或是FAQ。
•    订阅相应的邮件列表(Mailing List),只要能将问题描述清楚[17],通常你能在几小时内得到答复。
•    到论坛提问。
•    如果实在是疑难杂症,你可以试着联系软件的开发者,通常也是通过邮件列表的方式(同一个项目可能有多个邮件列表,开发者邮件列表通常与其他分离)。
•    自己阅读源代码并独立解决──这或许是个挑战,然而一旦解决了问题,你将获得知识、经验以及成功的喜悦。
将来,如果一切顺利的话,你编写操作系统时的步骤很可能是这样的:
•    用编辑器编写代码。
•    用Make调用GCC、NASM及其他Linux下的工具来生成内核并写入磁盘映像。
•    用Bochs来运行你的操作系统。
•    如果有问题的话:
o    用各种方法来调试,比如用Bochs;
o    返回第1步。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐