每一个计算机爱好者都有自己心仪的操作系统。有些开源软件和嵌入式技术的爱好者也许偏好Linux,一些追求时尚和个性的朋友或许钟爱MacOS,但对于绝大多数读者来说,Windows操作系统应该还是最熟悉的。
本来使用什么样的操作系统,不应该成为限制开发的理由。但这里需要说明的是,本书的所有示例代码都是在一个叫做Gentoo的Linux发行版中开发的。书中所使用的绝大多数工具在Linux下都有原生的支持。因此如果有可能,还是建议大家使用Linux操作系统来学习和编写本书的示例。
然而,要求那些不熟悉Linux操作系统的开发者在短时间内学会使用Linux也并不现实。好在Windows操作系统在兼容性和应用程序多样性等方面是无人能敌的,于是在Windows下,我们同样也找到了一套解决方案来编译和运行本书的代码,它就是Cygwin。
Cygwin是一个在Windows平台上运行的UNIX模拟环境,是Cygnus Solutions公司开发的自由软件。它对于学习UNIX/Linux操作环境、从UNIX到Windows的应用程序移植,或者进行某些特殊的开发工作(尤其是使用gnu工具集在Windows上进行嵌入式系统开发)都非常有用。
下面我们就来介绍一下Cygwin环境的安装和使用方法。如果您是Linux用户,就可以跳过这部分,继续阅读下一小节的内容。
首先,我们需要从www.Cygwin.org/Cygwin/setup.exe处下载最新版的Cygwin安装程序。
接下来运行这个安装程序,如图1-1所示。
图1-1 Cygwin的安装
在图1-1的对话框中单击“下一步”按钮,进入安装类型选择页面,如图1-2所示。
图1-2 Cygwin安装类型选择页面
此处如果没有特殊的要求,可以采用默认的“Install from Internet”单选项,通过网络安装Cygwin系统。当然,这要求读者的电脑能够上网才可以。
继续单击“下一步”按钮,进入安装路径选择页面,如图1-3所示。在这里,读者可以根据自己系统的情况选择某一安装路径。
图1-3 Cygwin安装目录选择页面
再次单击“下一步”按钮,程序进入软件包下载目录选择页面。之前我们已经选择了通过网络安装的方法来进行安装,那么在这个页面中,我们就需要指定一个本地文件夹,保存从网上自动下载的各种应用软件包,如图1-4所示。
图1-4 Cygwin软件包下载目录选择页面
之后程序将打开连接方式选择页面,如果没有特殊要求,这一步选中默认的“Direct Connection”单选项即可,如图1-5所示。
图1-5 Cygwin连接方式选择页面
单击“下一步”按钮,进入下载站点选择页面。通常我们会选择http://www.cygwin.cn/作为下载源,如图1-6所示,对于国内的用户来说,这个站点的连接速度最快。
图1-6 Cygwin下载站点选择页面
如果是首次运行Cygwin安装程序,则需要在“User URL”文本框中添加“http://www.cygwin.cn/pub/”这一地址,单击“Add”按钮。在其他情况下,只需在“Available download Sites:”列表框中选择“http://www.cygwin.cn”站点即可。下载源选择完成后,单击“下一步”按钮,进入软件包选择页面,如图1-7所示。
图1-7 Cygwin软件包选择页面
在该页面中,我们可以选择需要安装的软件包。由于Cygwin默认安装的软件包不能完全满足我们自己的操作系统开发,因此需要至少选择两个额外的软件包进行安装。单击“Devel”类前面的“+”,将该分类展开,从中选择“make”和“gcc4”两组软件包,而其他软件包按照默认方式处理即可,完成操作后,单击“下一步”按钮,程序进入安装过程,如图1-8所示,显示安装进度。
图1-8 Cygwin安装过程
片刻之后,Cygwin的安装就完成了,如图1-9所示。
图1-9 Cygwin完成安装
单击“完成”按钮,退出Cygwin的安装过程。
Cygwin的使用方法非常简单,只需要单击桌面上的Cygwin图标,就会弹出一个类似于Windows命令行的页面,如图1-10所示。
图1-10 Cygwin Shell页面
简单地讲,如图1-10所示的操作页面实际上是在Windows操作系统中模拟出来的类UNIX系统中的Shell页面,我们可以输入一些UNIX下常用的命令,如ls、cd等,这些命令的使用方法和运行结果与UNIX系统是一致的。对于那些使用Windows操作系统的朋友们来说,属于我们自己的操作系统也将在这样一个环境中诞生!
如果读者朋友已经准备使用Linux来开发属于自己的操作系统,又没有把握在电脑中直接安装某个Linux发行版,那么一个折中的办法就是使用虚拟机,就好像我们又多了一台电脑一样。
目前流行的虚拟机软件五花八门,各有优劣。使用什么样的虚拟机安装Linux系统,其实并没有太大的差别。在这些虚拟机中安装Linux操作系统的大致步骤如下。
(1)选择读者喜欢的Linux发行版,主流的如ubuntu、redhat,个性的如gentoo、archLinux,极端的如LFS。
(2)从各发行版的网站上下载安装光盘镜像,这些光盘镜像有的可能很小,需要通过网络安装的方式进行,有的也许很大,直接一张光盘就可以完成一个基本系统的安装。
(3)将下载下来的光盘镜像插入到虚拟机中,根据各Linux发行版的相关文档或软件提示进行Linux的安装。
出于篇幅的原因,本书不对虚拟机下安装Linux发行版的详细步骤进行介绍。因为如果介绍详细步骤,一连串的关于Linux原理、基本操作方法等问题都将被牵扯出来,本书很有可能就会变成一本Linux入门级书籍。为避免喧宾夺主,我们建议只了解Windows操作系统的朋友使用Cygwin进行开发。对于那些了解Linux的朋友们来说,对于Linux如何安装自然会非常清楚,因此也无须多言。