第18章 Linux标准

Linux刚开始的时候仅仅只是一个内核,但内核本身并不是非常有用。我们还需要许多其他有用的程序,例如登录系统的程序、管理文件的程序、编译器等。为了使Linux系统变得更加有用,许多GNU项目的工具被添加进来。它们都是当时在UNIX和类UNIX系统中非常流行的程序的克隆版本。将Linux系统变得与UNIX非常相似设置了Linux的第一个标准,它为C语言程序员提供了一个非常熟悉的环境。

不同的UNIX(及其后的Linux)厂商为他们所提供的命令和工具添加了一些专有的扩展,而且它们所使用的文件系统布局之间也有一些细微的差别。这使得创建可以在多个系统中正常工作的应用程序变得很困难。更糟的是,程序员甚至不能指望不同的系统会以相同的方式提供系统工具或配置文件在不同的系统中都位于同一个位置。

很显然,我们必须要建立一些标准以避免UNIX系统的分化,目前已经完成了一些优秀的UNIX标准化工作。

不仅这些标准在随着时间不断发展,而且Linux自身也在随着网络社区(通常由商业组织如Red Hat和Canonical,甚至包括非Linux厂商如IBM所支持)的推动而以惊人的速度不断增强。在发展的过程中,Linux和GCC编译器集不仅保持与相应标准的一致,而且在既有标准不满足需要时,还会有新的标准推出。事实上,随着Linux及其相关工具和实用程序变得越来越流行,UNIX厂商已开始对他们的UNIX系统做出修改,以使它们与Linux兼容性更好。

在本书的最后一章中,我们将介绍这些标准。我们还将给出一些注意事项,以便让你编写的应用程序不仅可以在自己的Linux系统(包括以后的升级版本)中运行,而且可以移植到其他Linux版本,甚至其他类UNIX系统中,从而与其他用户分享。

我们将主要介绍以下几方面内容。

❑ C编程语言标准。

❑ UNIX标准,特别是由IEEE开发的POSIX标准,以及由开放组织(Open Group)开发的单一UNIX规范。

❑ 由自由标准组织(Free Standard Group)所做的工作,特别是Linux标准化规范(Linux Standard Base),它定义了标准的Linux文件系统布局。

了解Linux相关标准的一个好起点是Linux标准化规范(LSB),你可以通过访问Linux基金会网站http://www.linux-foundatjon.org来找到它。

我们并不准备详细介绍这些标准的内容,其中许多标准的内容篇幅太长。我们将指出一些关键标准,并介绍这些标准发展的历史背景,以及告诉你哪些标准对你有用。