导读:LSB是什么?
LSB是Linux Standard Base取首字母的缩写。LSB的目标是制定标准提高Linux系统与其他相似系统的兼容性。LSB标准定义了二进制环境,符合LSB的应yon程序在其中可以可以在其中运行。
最近 Linux Standards Base(LSB)3.0规范已经发布。新的LSB标准旨在防止Linux分化,已获得了主要Linux厂商的广泛支持。LSB规范由Free Standards Group(自由标准组织)负责维护和开发,并计划通过一套基本API和库实现互操作性,这样ISV就可以开发和移植应用,以使应用能够在LSB认证的Linux版本上运行。这套LSB标准目前支持7种架构,包括IA32、IA64、PPC32、PPC64、S390、S390X和X86_64。LSB 3.0对2.0进行了很多提升。Free Standards Group的执行理事Jim Zemlin说,最重要的是,LSB 3.0包括更新的、用于C++的应用程序二进制接口(ABI),所有主要Linux版本都支持这一二进制接口。Zemlin说:“对要支持多种版本Linux的ISV而言,这极大地降低了成本并缩短了开发时间。
一、国际Linux的标准体系
1.POSIX标准
POSIX(Portable Operating System Interface for Computing Systems)是由IEEE 和ISO/IEC 开发的标准系统。该标准是基于现有的Unix 实践和经验,描述了操作系统的调用服务接口,用于保证编制的应用程序可以在源代码一级上在多种操作系统上移植运行。
1991-1993年Linux刚起步时,适逢POSIX 标准的制定正处在最后定稿的时候,POSIX标准为Linux提供了极为重要的信息,使得Linux能够与绝大多数Unix 系统兼容。POSIX目前的最新标准是IEEE 1003.1-2001。
在最初的Linux 内核代码中(0.01 版、0.11 版)就已经为Linux与POSIX标准的兼容做好了准备。通过对0.01 版的内核/include/unistd.h 文件的分析就可见,Linux在发展初期就想实现与POSIX的兼容。从Linux的发展进程也可以看出,Linux 的成长一直有POSIX 标准的辅佐,没有POSIX 的指导,就不会有Linux的今天。
2.FSG(Free Standard Group)标准系列
Linux标准化规范和工作组——LSB(Linux Standard Base) 工作组是Free Standards Group的成员工作组。LSB是Linux领域重要和有影响的标准化组织。LSB工作组以达成“Standardizing The Penguin”为目标,制定最基本的标准,如公众命令集和文件传输的格式等,为应用之间的兼容奠定基础。它致力于开发和推广一系列的标准,提高不同 Linux发行版本的兼容性,使得软件应用得以运行在各种符合LSB标准的系统中,同时也帮助协调软件开发商向Linux移植和开发产品。目前国际上流行 的Linux版本基本都遵循LSB标准,该规范是Linux世界统一的重要力量,可以说是Linux的工业标准。在LSB的发展历程中较为重要版本是 V1.3,目前最新版本是2004年9月份所推出的LSB V2.0,主要是在V1.3的基础上增加了对C++的支持。LSB V2.0也不能完全解决当前Linux应用中所面临的兼容性问题。OpenI18N (Open Internationalization Initiative)致力于增强国际化背景下的软件应用的可移植性和互操作性,提供一个通用的开放源码环境,使得全球不同文化、语言的应用程序可以正确地运行和正确地表达。OpenI18N也制定相关的标准并开发验证和测试工具包。符合OpenI18N标准的前提条件是符合对应的LSB标准。 Linux国际化英文是从internationalization里,将i到n之间的18个字母略称为『i18n』,再加上Linux就变成Li18nux,以此作为推展国际标准化的国际名称。 在FSG中除了LSB和OpenI18n外,还有许多有影响的标准组,如LANANA (Linux Assigned Names and Numbers Authority)、OpenPrinting、Accessibility、DWARF、Open Cluster。它们主要关注于特定的领域应用。
3.OSDL(Open Source Development Lab)标准系列
CGL(Carrier Grade Linux)是由OSDL资助的项目,致力于制订一个符合电信运营商要求的Linux标准。它针对网关, 信令服务器、管理服务器等电信应用提出了对Linux的增强,满足集成电信、数据和Internet的新一代通信基础设施的需要。CGL承诺遵守LSB标准,保持Linux版本的一致性,并遵守开放源码的许可协议和开放源码的开发流程。CGL支持相关软件包的测试和认证,是一个完整的体系。
DCL(Data Center Linux)也是OSDL资助的项目,致力于制订一个满足企业数据中心需要的Linux标准。它面向金融行业和制造业等运行关键性业务系统。其特征是积极采用新技术,使大型系统能运行关键性业务并承担高风险和重负荷。
DTL(Desktop Linux)是OSDL新近资助的项目,旨在推进Linux企业级的桌面应用。该项目目前处于筹划期,对外发布的信息较少。据可靠消息,受中国大力推进桌面Linux操作系统的影响,OSDL将加大与中国的合作力度,特别是在桌面Linux领域。
4.United Linux(UL)
2002年6月,Caldera、 Conectiva、SuSE以及TurboLinux公司宣布成立UNITEDLINUX组织,计划使Linux的开发与认证工作围绕一个全球统一的商用Linux版本进行。UNITED LINUX(简称UL)将满足企业用户对标准的商用Linux版本的需要,该版本能跨越软件及硬件平台,从而加速企业采用Linux。根据达成的协议,四家公司将通力合作开发一个通用核心的Linux操作系统环境,称之为UL软件。四家合作公司将在UL操作系统上捆绑自己的增值产品与服务,并以各自的品牌进行市场与销售。几乎每个为商务提供部分技术架构的供应商都表示支持UL,包括系统与软件供应商AMD、Borland、CA、富士通-西门子、HP、IBM、Intel、NEC等。UL将提供一个真正基于标准的Linux操作环境,使供应商需要认证的Linux版本显著减少。因为众多原因,United Linux基本上趋于衰落,但对于如何防止Linux的分裂、如何简洁Linux生态链提供了有益的参考。
二、 LSB发展的路线图
LSB由FSG开发和维护。FSG是一个独立的非盈利组织,该组织专注于通过发展和促进标准来加速开放源码软件的发展。几年前,一些志愿人员发起了LSB项目, LSB项目的目的是发展和改进标准,提高Linux和其它类似系统间的兼容性,使应用软件可以在任何系统上运行。 LSB标准定义了一个二进制环境和与之相关的标准文档,在这个二进制环境中,任何一个符合LSB标准的应用程序都能够正常运行。LSB标准文档包括了一系列基础API、库和互用性标准,还包括了测试套件、开发环境、执行案例和开发文档。 随着LSB开发的深入,一些大的Linux发行商开始积极参与其中,一些大型企业,如HP和IBM等也逐渐加入。
2000年5月,自由标准组织正式成立,全面负责LSB计划。
2001年7月4日,LSB 1.0发布,迈出了Linux标准化道路上重要的一大步。LSB 1.0的规范仅包括了通用LSB(LSB Common)1.0.0。
2002年2月4日,在美国召开的LinuxWorld大会上,HP、IBM、拓林思、SuSE、Red Hat、Caldera和Ximian公司联合发布了LSB 1.1。LSB 1.1对Linux核心功能和一些组件进行了标准化。它包括一组公共API、一个开发包和一些测试功能。LSB 1.1在1.0的基础上增加了对IA32架构处理器的支持,规范包括通用LSB 1.1.0和IA32处理器专用规范(LSB IA32)1.1.0。LSB 1.2 LSB 1.2包括了通用LSB规范及对IA32、IA64和PPC32架构处理器的专用规范。LSB 1.3 LSB 1.3在1.2的基础上又增加了对IBM S/390和S/390X的支持。规范包括通用LSB 1.3、LSB IA32 1.3、LSB IA64 1.3、LSB PPC32 1.3、LSB S390 1.3和LSB S390X 1.3。
2004年9月14日正式发布LSB 2.0。其最大特点是增加了对C++的二进制接口。
2004年10月21日,LSB 2.0.1发布。
2005年7月1日, LSB 3.0发布。
LSB 3.0更新了原来版本的一些基本规范和执行,特别是SUS(Single Unix Specification,单一Unix规范)的升级。以SUS 3.0为基础。SUS 3.0同时也是IEEE 1003 1-2001标准(POSIX)和ISO/IEC 9945:2003标准。LSB 3.0中最重要的是文档的重构和LSB上层附加标准的发展。文档重构的目的是推动LSB未来的发展。LSB 3.0中另一个重要的新特点是引入了对POSIX线程和C++应用的支持,它增加了C++的应用二进制接口(ABI),用于改善代码互用性。 这一特点意义重大,因为现在的大多数应用都是用C++编写,通过在LSB中加入C++支持,使数以千计的软件开发商能以较低成本将他们的应用移植到Linux上,由此带来Linux应用软件数量上的突飞猛进。LSB 3.0的文档结构是附加规范模块的根基,这些附加规范模块在核心LSB规范(Core LSB Specification)之上。这些新模块允许新功能的增加,其中一些功能甚至是被认为在LSB范围之外的。新模块还允许LSB以外的组织通过使用LSB确定的框架来添加新功能。LSB 3.0.0 标准文档,LSB标准发展到了3.0,结构与2.0一样。LSB 3.0 基于新的C++ 二进制接口,还有其他的改进。另外还包括PAM和FHS 2.3。,以及包括加入gcc3.4,librt,一些新功能和新接口以及新命令等。
三、LSB标准的构成
LSB是一种应用程序二进制接口,主要解决Linux系统与应用程序之间的兼容问题。LSB是在IEEE POSIX源代码标准和Unix规范基础上建立起来的,包含多种接口技术。也有一些接口技术未被LSB收取,这些接口大多是开发接口或用户级工具。LSB可以将源代码标准扩展至其它领域,例如图形领域等。此外,LSB还包括一些必要的技术细节,例如支持大型二进制应用软件平台的二进制执行文件格式等。
LSB主要由以下几个部分组成,见图:
图 LSB组成示意图
1.文档
LSB 3.0的文档结构是附加规范模块的根基,这些附加规范模块在核心LSB规范(Core LSB Specification)之上。这些新模块允许新功能的增加,其中一些功能甚至是被