UNIX/Linux 标准分类
无论在《UNIX环境高级编程》还是《Linux/UNIX系统编程手册》,其中都反复提及几个标准的概念。SUS、SYSTEM V、POSIX、LSB。
那么这些概念是什么意思呢,常常搞得头昏脑胀。不知道用那些标准的API。下面是一些总结,未必全面,欢迎补充。
SUS:
Single UNIX Specification (SUS ,单一的UNIX规范)是POSIX.1标准的一个超集,它定义了一些附加结构扩展了POSIX.1规范提供的功能POSIX.1相当于是Single UNIX Specification 中基本规范部分。
System V:
System V, 曾经也被称为 AT&T System V,是Unix操作系统众多版本中的一支。它最初由 AT&T 开发,在1983年第一次发布。一共发行了4个 System V 的主要版本:版本1、2、3 和 4。System V Release 4,或者称为SVR4,是最成功的版本,成为一些UNIX共同特性的源头,例如 ”SysV 初始化脚本“ (/etc/init.d),用来控制系统启动和关闭,System V Interface Definition (SVID) 是一个System V 如何工作的标准定义。传统上,System V 被看作是两种UNIX"风味"之一(另一个是 BSD)。
System V Release 4.0,也就是SVR4在1989年11月1日公开,并于1990年发布。它是UNIX Systems Laboratories和Sun联合进行的项目,融合了来自Release 3,4.3BSD,Xenix,以及SunOS的技术:来自BSD:TCP/IP支持,csh来自SunOS:网络文件系统,内存映射文件,以及一个新的共享库系统其他的实现: kshANSI C兼容更好的国际化和本地化支持一个二进制应用接口支持POSIX、X/Open和SVID3标准。
BSD:
BSD (Berkeley Software Distribution,伯克利软件套件)是Unix的衍生系统,在1977至1995年间由加州大学伯克利分校开发和发布的。历史上, BSD曾经被认为是UNIX的一支——"BSD UNIX", 因为它和AT&T UNIX操作系统共享基础代码和设计。在20世纪80年代,衍生出了许多变形的UNIX授权软件。比较著名的如DEC的Ultrix及Sun公司的SunOS。1990年代,BSD很大程度上被System V4.x版以及OSF/1系统所取代,晚期BSD版本为几个开源软件开发提供了平台并且一直沿用至今。今天,“BSD”并不特指任何一个BSD衍生版本,而是类UNIX操作系统中的一个分支的总称。
POSIX:
POSIX这个名称是由理查德·斯托曼(RMS)应IEEE的要求而提议的一个易于记忆的名称。它基本上是Portable Operating System Interface(可移植操作系统接口)的缩写,而X则表明其对Unix API的传承。是IEEE为要在各种UNIX操作系统上运行软件,而定义API的一系列互相关联的标准的总称。其解决是跨平台可移植性的问题。
LSB:
LSB 以 POSIX 和 SUS 标准为基础,并对其他领域(例如图形)中源代码的一些标准进行了扩充,还增加了对二进制可执行文件格式规范的定义,从而试图确保 Linux 上应用程序源码和二进制文件的兼容性。
在现有标准基础上,LSB 制定了应用程序与运行环境之间的二进制接口,这主要是基于以下标准:
- Single UNIX Specification(SUS)
- System V Interface Definition(SVID)
- compilers for the Intel Itanium processor
- C++ ABI
- System V Application Binary Interface(ABI)
同时,LSB 充分吸取了 UNIX 标准化努力所取得经验和教训,回避了这些标准的一些问题。例如,POSIX 仅仅定义了编程接口的标准,但是它却无法保证二进制的兼容性。而诸如 OSF/1 之类的标准虽然试图解决二进制兼容性的问题,但是限制却太为严格。LSB 在二者之间达成了一个平衡,它包含了一个二进制兼容层,同时消除了 POSIX 与 OSF/1 之间存在分歧的地方。
相关推荐:
UNIX/Linux/BSD、POSIX、GNU:
https://blog.csdn.net/guo1988kui/article/details/81071681
LSB简介,其中比较相信的讲述了Unix/Linux标准化的历史:
https://www.ibm.com/developerworks/cn/linux/l-lsb-intr/