目录

概述

后向兼容

版本历史

ISO标准

业界采纳情况

采用RPM软件包格式

在Debian上的限制

遵从性测试套件的质量


概述

Linux标准规范(Linux Standard Base,简称LSB),是一个联合项目,由Linux基金会组织架构下的若干Linux发行版项目组成,目的是将该软件系统的结构——包括Linux内核中所使用的文件系统标准(Filesystem Hierarchy Standard,简称FHS)——进行标准化。LSB基于POSIX规范、单一UNIX规范(Single UNIX Specification,简称SUS),以及若干其他的开放式规范,但是在一些特定的方面又扩展了它们。

根据LSB的描述:

LSB的目的是为了开发和促进一系列开放式的标准,这些标准将会提升各个不同的Linux发行版之间的兼容性,并让软件应用程序可以在任意满足该条件的系统上运行——甚至在不修改二进制文件的情况下都可以。此外,LSB将会帮助协调那些招募软件供应商来为Linux操作系统移植和开发软件的工作。

LSB遵从性可以通过一个认证过程来为一个产品进行认证。

LSB定义的内容包括(例如):

  • 标准库
  • 一系列命令和工具(在POSIX基础上进行了扩展)
  • 文件系统层级结构
  • 运行级别
  • 打印系统
  • 包含假脱机(spoolers),诸如CPUS和类似Foomatic这样的工具
  • 若干对X Window系统的扩展

LSB还定义了引导工具(boot facilities),例如$local_fs, $network,它们被用于指出在System V风格的初始化脚本中的服务依赖关系。一个位于脚本开头的、机器可读的注释块,提供了对于确定“初始化过程应该在哪个点上调用该脚本”的必要信息。该注释块被称为LSB头。

在许多系统中,可以使用系统自带的“lsb_release -a”命令来获取关于LSB版本的详细信息,或者如果系统没有自带的话,可以安装相关的软件包来使用这个命令。例如,在红帽系列的发行版中,可以安装redhad-lsb包,而Debian系列则可以安装lsb-release软件包。

后向兼容

LSB被设计为“二进制兼容的”,并且为各个独立的软件供应商而推出了一个稳定的应用程序二进制接口(Application Binary Interface,简称ABI)。为了实现后向兼容,每个后续的版本都是纯累加的(purely additive)。换句话说,只会增加接口,而不会删除接口。如果一个接口被从LSB中移除,则LSB会采用一个“接口弃用策略”(interface deprecation policy),来让应用程序开发者足够有足够的时间去做适配。

这使得开发者可以在一个给定时间范围内对LSB有足够的信任,同时有时间对修改工作进行计划,而不会感到突然。接口只有在三个以上的主版本中持续被标记为“弃用”(deprecated),才会被移除。三个主版本的周期大约是11年。

LSB 5.0 是第一个打破了对早前版本的后向兼容性的主版本。

版本历史

  • 1.0: 2001年06月29日发布首个版本
  • 1.1: 2002年01月22日发布。增加了特定硬件的规范(针对惠普/英特尔安腾处理器的IA-32)
  • 1.2: 2002年06月28日发布。增加了特定硬件的规范(针对IBM的32位 PowerPC处理器)。从2002年07月开始认证。
  • 1.2.1: 2002年10月发布,增加了安腾(Itanium)处理器的支持。
  • 1.3: 2002年12月17日发布。增加了特定硬件的规范,包括安腾、企业级系统架构(Enterprise System Architecture,简称ESA)/390、z/架构(z/Architecture)
  • 2.0: 2004年08月31日发布
    • LSB被模块化,分成LSB-核心(Core)、LSB-CXX、LSB-图形(Graphics)、LSB-I18n(即,国际化与本地化,当时未发布)
    • 新的特定硬件的规范,针对IBM的PowerPC 64位处理器,以及AMD64
    • 与单一UNIX规范(SUS)第3版同步
  • 2.0.1:2004年10月21日发布,LSB 2.0的ISO版,包括用于所有硬件架构的规范(LSB-图形除外,它只有一个通用的版本)
  • 2.1:2005年03月11日发布
  • 3.0:2005年07月01日发布,部分库变更包括:
    • GNU C库第2.3.4版
    • C++ ABI(应用程序二进制接口)被更改为使用gcc 3.4版的接口
    • 核心规范被更新到ISO POSIX (2003)
    • 技术勘误(Corrigenda)1:2005
  • 3.1:2005年10月31日发布。该版本被作为ISO/IEC 23360标准提交
  • 3.2:2008年01月28日发布。该版本被作为ISO/IEC 23360标准提交
  • 4.0: Released November 11, 2008. This version contains the following features:
  • 4.0:2008年11月11日发布。该版本包含如下功能:
    • GNU C库第2.4版
    • 与LSB 3.x的二进制兼容性
    • 更易于使用SDK
    • 支持更新版本的GTK(GNOME ToolKit,一种图形化库)和“开罗图形化库”(Cairo graphical libraries)
    • Java(可选模块)
    • 更简单的创建符合LSB标准的RPM软件包的方式
    • 加密API,通过网络安全服务(Network Security Services,简称NSS)库实现(可选模块)
  • 4.1:2011年02月16日发布:
    • 删除Java
    • 来自LSB 4.0的“试用”模块,包括多媒体(ALSA)、安全(NSS),以及桌面杂项(xdg-utils),都被推荐为“需要的”子模块
    • 更新了GTK+、开罗(Cairo)和CUPS(公共UNIX打印系统)库
    • 增加了3个新的测试套件
  • 5.0:2015年06月02日发布
    • 首个打破与之前版本后向兼容的大版本(与LSB 3.0兼容,与LSB 3.1及其早期版本大部分兼容,有少量例外)
    • 加入了在FHS(文件层级标准) 2.0中所做的更改
    • Qt 3库被移除
    • 改进了模块策略;LSB被划分为:LSB核心(Core)、LSB桌面(Desktop)、LSB语言(Language)、LSB图像(Imaging),以及LSB试用(Trial Use)

ISO标准

LSB已经被注册为一个官方的ISO标准,它的主要部分包括:

  • ISO/IEC 23360-1:2006 Linux标准规范(LSB)核心规格说明书(Core specification) 3.1 - 第1部分:一般规范
  • ISO/IEC 23360-1:2006 Linux标准规范(LSB)核心规格说明书 3.1 - 第2部分:关于IA-32架构的规格说明书
  • ISO/IEC 23360-1:2006 Linux标准规范(LSB)核心规格说明书 3.1 - 第3部分:关于IA-64架构的规格说明书
  • ISO/IEC 23360-1:2006 Linux标准规范(LSB)核心规格说明书 3.1 - 第4部分:关于AMD64架构的规格说明书
  • ISO/IEC 23360-1:2006 Linux标准规范(LSB)核心规格说明书 3.1 - 第5部分:关于PPC32架构的规格说明书
  • ISO/IEC 23360-1:2006 Linux标准规范(LSB)核心规格说明书 3.1 - 第6部分:关于PPC64架构的规格说明书
  • ISO/IEC 23360-1:2006 Linux标准规范(LSB)核心规格说明书 3.1 - 第7部分:关于S390架构的规格说明书
  • ISO/IEC 23360-1:2006 Linux标准规范(LSB)核心规格说明书 3.1 - 第8部分:关于S390X架构的规格说明书

此外,还有一份 ISO/IEC TR 24715:2006,它指明了ISO/IEC 23360(Linux标准规范 3.1 规格说明书)与ISO/IEC 9945:2003 (POSIX)国际标准之间的区别

可以从ISO网站免费下载ISO/IEC 23360和ISO/IEC TR 24715

业界采纳情况

尽管LSB标准并无竞争对手,但是只有很少的Linux发行版遵从该标准。例如,只有21个版本的发行版是拿到LSB 4.0版的认证的,其中比较著名的有:

  • 红旗Linux桌面版6.0
  • 红帽企业版Linux 6.0
  • SUSE Linux企业版 11
  • Ubuntu 3.04 (Jaunty Jackalope / 快活的鹿角兔)

而拿到4.1版认证的就更少了

LSB主要被诟病的方面是,不采纳来自它的成员公司范围之外的项目的输入,尤其是Debian项目。

采用RPM软件包格式

LSB规定了软件包应当要么以一种遵从LSB规范的安装器的方式交付,或(推荐)以受到PRM软件包管理器格式的形式限制的方式来交付。

对软件包格式的这种选择,排除了对许多其它现有的、与RPM不兼容的软件包格式的使用。为了解决这个问题,该标准并不强制要求系统为其自身的软件包所使用的软件包的格式,仅仅要求必须支持RPM,从而允许来自第三方发行者的软件包可以被安装在一个符合该标准的系统上。

在Debian上的限制

早先的Debian版本包含了可选的对LSB的支持,包括:

  • Debian 3.0 “木质”(woody),2002年07月19日发布,支持 LSB 1.1
  • Debian 3.1 “中士”(sarge),2005年06月06日发布,支持 LSB 2.0
  • Debian 4.0 “刻蚀”(etch),2007年04月08日发布,支持 LSB 3.1
  • Debian 5.0 “兰尼”(lenny),2009年02月14日发布,支持 LSB 3.2
  • Debian 7 “喘息”(wheezy),2013年05月04日发布,支持LSB 4.1

要想使用外来的、遵从LSB标准的PRM包,最终用户需要使用Debian的“外星人”(Alien)程序,来将它们转化为本地的软件包格式,然后安装它们。

符合LSB规范的RPM格式,是RPM功能的一个受限的子集——它是为了禁止使用那些无法使用“外星人”(Alien)或其他软件包转换工具将其转换为“.deb”的RPM功能,反之亦然,那些其中一方所不具备的功能,都会受限。在实践中,并非所有的Linux二进制软件包都必须是遵从LSB规范的,因此尽管其中的大部分都可以在.rpm和.deb之间转换,但这个操作仅仅限制一部分软件包。

通过使用“外星人”(Alien),Debian在各方面都是LSB兼容的,但是根据他们的LSB软件包的描述,该软件包的存在“并不暗示我们相信Debian完全遵从Linux标准规范,并且不应当被理解为一份关于Debian遵从LSB的声明”。

Debian曾经努力想要遵循LSB,但是收到了诸多限制。然而,这项工作在大约2015年07月的时候,因为在该项目中没有人对此感兴趣,也没有足够的人手,因此就停止了。2015年09月,Debian项目正式确认,尽管对文件系统层级结构标准(Filesystem Hierarchy Standard,简称FHS)的支持仍将继续,但是对LSB的支持已经被放弃了。2015年11月,Ubuntu追随了Debian的这项决定。

遵从性测试套件的质量

另外,遵从性测试套件常被诟病,因为里面有很多错误和不完整的地方。其中一个比较著名的事件时,在2005年乌尔里奇·德里普尔(Ulrich Drepper)批评LSB的测试用例写得很烂,测试用例在面对一些实现错误的行为时,仍然能正常工作,会导致同样得到LSB认证的不同发行版之间存在不兼容性。另外还有一些人遵循了这些测试用例,却没有通过LSB认证。他同时抨击了该标准缺乏应用测试,指出仅仅测试发行版本身,永远无法解决那些依赖于由具体实现来定义的行为的应用的问题。

为了帮助那些在他们关于可移植性的工作中考虑LSB认证的供应商,Linux基金会资助了一个工具,可以就他们的超出LSB范围的符号(symbol)和库(library)进行分析并提供指导。

LSB:Linux标准规范相关推荐

  1. linux标准分发版的描述信息,如何查看Linux中系统版本信息

    使用Linux 系统是由时候需要查看当前Linux系统的版本便于进行一些设置或者操作,那么如何在Linux系统中使用命令查看Linux发行版版本信息呢? 在本教程中,我们将向您展示如何使用命令行检查系 ...

  2. linux标准学习之-LSB

    LSB 简介 http://blog.sina.com.cn/s/blog_4ab168cf0100gcnj.html 目 前 Linux 的发行版非常繁多,为了促进 Linux 不同发行版间的兼容性 ...

  3. 解读Linux标准LSB 3.0

    解读Linux最新标准LSB 3.0 LSB是什么? LSB是Linux Standard Base取首字母的缩写.LSB的目标是制定标准提高Linux系统与其他相似系统的兼容性.LSB标准定义了二进 ...

  4. 当前的三种构件标准规范

    当前主流构件标准规范包括OMG的CORBA.Sun的J2EE和Microsoft DNA 2000. 1. OMG的CORBA CORBA分布计算技术是OMG组织基于众多开放系统平台厂商提交的分布对象 ...

  5. 计算机基础(八):linux编程规范总结

    linux编程规范小结 1.函数:(子)模块接口函数大写字母开头: AddUser()         (子)模块内部调用函数小写字母开头:addUser()          接口函数/回调函数以' ...

  6. 计算机网络技术人员的内容,计算机网络技术人员标准规范.doc

    计算机网络技术人员标准规范 计算机网络标准 一.职业概况 职业名称 计算机网络技术人员 职业定义 设计.组装.管理和维护企业内部计算机网络,给企业职工提供计算机技术咨询与支持,熟练掌握多种Intern ...

  7. VoIP NGN IMS 3G 标准 规范 测试技术 资料集合

    推荐版块 汇总 『VoIP/NGN/IMS/FMC』技术资料下载 http://wellya.net/thread-htm-fid-13.html 『无线通信技术』技术资料下载 http://well ...

  8. 欢迎参加2022年第一次《城市大脑建设标准规范》专家研讨会

    来源:世界数字大脑标准研究组 2018年以来,城市大脑正成为智慧城市和智能产业的新热点,有近500个城市提出城市大脑的建设规划,数千家大中型科技企业进入城市大脑的建设领域.如何理清城市大脑的概念和定义 ...

  9. 简要说明建设城市大脑三条关键标准规范

    作者:刘锋   前言:简要的说,城市大脑不是一个城市级AI信息系统,也不是城市内部的信息化建设,而是互联网结构从网状模型向大脑模型进化时,与城市建设结合的产物,因此建设城市大脑需要拥有三个特征或关键标 ...

最新文章

  1. Uber开源TensorFlow框架工具箱Ludwig,无需编码即可进行深度学习开发
  2. Ext.LoadMask遮罩的效果几种实现方式
  3. windows程序快速启动的方式:WIN键+R
  4. 自己改造 VSPaste 插件
  5. 关于git pull机制和游戏开发热更新思考
  6. JAVA框架--hibernate、struts2、spring
  7. 游戏王血计算机,【统计】历代主角控血一览
  8. 用深度神经网络修复H漫:看完这篇你就能眼中无码
  9. GITC 2014全球互联网技术大会正式开始
  10. nyoj--496--巡回赛(拓扑排序)
  11. 必读的Python入门书籍,你都看
  12. 编程语言新宠儿——Julia诞生记(转)
  13. 串口 单片机 文件_单片机引脚介绍
  14. 电脑PPTP更换IP教程
  15. html中统计图怎么做,如何做专业、美观的图表(基础统计图部分)
  16. 多卡聚合设备基于融合系统指挥平台的解决方案
  17. 微信小程序页面数量限制问题
  18. python3 mysql5.7_/如何连接python3.4 和MySQL5.7,请大牛们指教这个python入门新手
  19. 如何下载某个网站的ico图标
  20. 前端访问后端html,前端访问没问题 后端无法访问

热门文章

  1. 技术采用生命周期理论
  2. 【大数据】Hadoop (一) 入门
  3. 思维导图制作软件推荐,怎样使用软件绘制思维导图
  4. 用开卡工具重生SSD,SM2246XT一步一步开卡成功教程
  5. 目前比较主流的国际众筹平台有哪些
  6. 大数据服务于政府治理创新
  7. 摊牌了,访客预约操作如此简单
  8. L-Lactate用途和性质,以及分析测定方法
  9. Delphi 中TPath单元引用报错无法编译问题
  10. stm32倒计时秒表proteus_单片机倒计时秒表系统实验程序Proteus仿真