|
本章将简要介绍一下什么是Linux,C语言的特点,程序开发的预备知识,Linux下C语言开发的环境,程序设计的特点和原则以及编码风格等。通过本章的学习,可以对在Linux下使用C语言编程有一个基本的了解。
Linux是能够自由传播并继承了UNIX内核的操作系统,是对UNIX的简化和改进,它既保留了UNIX系统的高安全性,同时也使其操作更加简单方便,从而使单机用户也可以使用。UNIX内核指的是操作系统底层的核心程序代码。
因为 Linux本身脱胎于UNIX系统,所以Linux程序与UNIX程序是十分相似的。事实上,UNIX下编写的各种程序基本上都可以在 Linux下编译和运行。此外,许多在UNIX操作系统下创建的一些商业化应用软件,其二进制形式几乎可以在不作任何修改的情况下直接运行在 Linux系统上。
Linux是由芬兰的赫尔辛基大学 (Helsinki)学生Linus Torvalds把Minix 系统向x86移植的结果。当时 Linus 手边有个 Minix 系统(UNIX 的一个分支),他对这个操作系统相当有兴趣,由于当时他正好有一台个人计算机,他想把这个系统移植到该计算机(x86 架构)上来使用。由于受益于Stallman提倡的开放源代码(Open Source)思想,他得以接触到UNIX操作系统的一些源代码,并仔细研读了UNIX 的核心,然后去除较为繁复的核心程序,将它改写成能够适用于一般个人计算机的一种操作系统,即Linux系统的雏形。
1992年1月,大概只有100人开始使用Linux,但他们为Linux的发展壮大作出了巨大贡献。他们对一些不合理的代码进行了改进,修补了代码错误并上传补丁。Linux的腾飞最关键的因素是获得了自由软件基金(FSF)的支持,他们制定了一个GNU计划,该计划的目标就是要编写一个完全免费的 UNIX版本
——包括内核及所有相关的组件,可以让用户自由共享并且改写软件,而Linux正好符合他们的意愿。他们将Linux与其现有的GNU应用软件很好地结合起来,使Linux拥有了图形用户界面。
提示:
Linux 实际上只是提供了操作系统的内核;它实现了多任务和多用户功能,管理硬件,分配内存,激活应用程序的运行。对初学者来说,最重要的是要明白奇数的内核版本(比如 2.3、2.5、2.7)是实验用的、正在开发的内核。 稳定的、正式发行的内核版本号则是偶数的(比如 2.2、2.4、2.6)。
1994年3月, Linux 1.0正式版发布,它的出现无异于网络的“自由宣言”。从此Linux用户迅速增加,Linux的核心开发小组也日渐强大。在Linux所包含的数千个文件中,有一个名为Credits的文件,里面列出了100多名对Linux有过重要贡献的黑客,包括他们的名字、地址以及所做的工作。其中的软件都是经过“优胜劣汰”的达尔文式的选择方式保存下来的。Linux的发展方法看起来很简单:所有黑客都可为其添加额外功能并完善其性能。所谓的β测试也不仅是修补漏洞,而是进行集成并进行更多的改进、创新。Linux发展过程中的这种随意性,造成了发展过程中出现了各种各样的Linux版本。
提示:
β测试是由软件的多个用户在一个或多个用户的实际使用环境下进行的测试。这些用户是与公司签定了支持产品预发行合同的外部客户,他 style="font-size:18px">5.10.4 注意事项
在生成函数库打包文件时,请小心使用make的并行机制(-j参数)。如果多个ar命令在同一时间运行在同一个函数库打包文件上,就很有可能损坏这个函数库文件。所以,在make未来的版本中,应该提供一种机制来避免并行操作发生在函数打包文件上。但就目前而言,还是尽量不要使用-j参数。
以上基本上就是GNU make的makefile文件的所有细节了。无论什么样的make,都是以文件的依赖性为基础的,其基本都是遵循一个标准的。对于前述所有的make的细节,不但可以利用make这个工具来编译程序,还可以利用make来完成其他的工作。因为规则中的命令可以是任何Shell之下的命令,所以,在Linux下,不一定只使用程序语言的编译器,还可以在makefile文件中书写其他的命令,如tar、awk、mail、sed、cvs、compress、ls、rm、yacc、rpm、ftp等,来完成诸如程序打包、程序备份、制作程序安装包、提交代码、使用程序模板、合并文件等诸多功能,如文件操作、文件管理、编程开发设计,或是其他一些异想天开的东西
|