POSIX

posix 简介

  • Portable Operating System Interface , Originating from Unix
  • 一个协议簇,不是一个独立的协议
  • 由IEEE 提出,由 ISO 收录
  • POSIX标准, 在IEEE ,名称为IEEE Std 1003. 在ISO名称,为ISO/IEC 9945
  • C语言标准 (包括C标准库标准),在ANSI被称为X3.159-1989, 在 ISO 名称为 ISO/IEC 9899:1990
  • ISO POSIX 第一个版本是1990,有很多版本(2004,2008,2013,2016,2018)
  • unix-like 与 unix os(包括mac os ) 必须兼容 posix 标准
  • windows 利用 posix 子系统 兼容了 posix 标准

POSIX 的提出是为了什么

1980年起始,[unix与unix-like os](What is unix-like)蓬勃发展,各个开发作者(组织)都想加入自己的特性,unix马上就要走向混乱.

为了提高兼容性和应用程序的可移植性,阻止这种趋势, IEEE(电气和电子工程师协会)开始努力标准化Unix的开发,后来由 Richard Stallman命名为“Posix”。

2023-9-30 15:09:37, 目前看来,POSIX 标准 在几个方面定义了标准,划定了界限

  • 1.Base Definitions
  • 2.System Interfaces 抑制了C标准库的混乱
  • 3.Shell & Utilities 抑制了 工具的混乱

POSIX提出之初,其描述比较混乱,经过年轮的洗礼, posix.1IEEE 1003.1 描述了上述三个内容

POSIX 标准从哪里获取

选择1:IEEE

  • 本文不提供地址

选择2:ISO

  • 本文不提供地址

选择3:The Open Group

  • 在这里注册账号即可下载

  • 这是posix标准的index

  • IEEE Std 1003.1, 2004 Edition

  • IEEE Std 1003.1™-2017 (Revision of IEEE Std 1003.1-2008) 和 guide

The Open Group 和 POSIX标准/C语言标准的关系

The Single UNIX® Specification // The Open Group 发布的标准集合
    Version 1 : 1994
    Version 2 : 1997
    Version 3 : 2001 // 包含 POSIX.1-2004
    Version 4 : 2008 // 包含 POSIX.1-2008,POSIX.1-2013,POSIX.1-2016,POSIX.1-2018
    
    version 4 简介 : https://unix.org/version4/
    Version 4 由 两者构成 // 此时, The Single UNIX® Specification 中的 unix 应该指的是 unix v7
        The Base Specifications, Issue 7 // 这个7 应该对应 "Certification Standard: UNIX V7" 中的 7
        X/Open Curses, Issue 7
        
The Open Group Base Specifications 
    The Single UNIX Specification uses The Open Group Base Specifications, Issue 7 documentation as its core.
    The Open Group Base Specifications  has been jointly developed by the IEEE and The Open Group.
  		It is both an IEEE Standard and an Open Group Technical Standard.
    
    The Base Specifications, Issue 7, composed of:
		Base Definitions, Issue 7 (XBD7)
        System Interfaces, Issue 7 (XSH7)
        Shell and Utilities, Issue 7 (XCU7)
        Rationale, Issue 7, (XRAT7) (Informative)
        
IEEE Std 1003.1 and ISO/IEC 9945 // 即POSIX , 被 The Open Group 集成到了 "The Single UNIX® Specification"
    // The Single UNIX Specification Version 4 - incorporating IEEE Std 1003.1 and ISO/IEC 9945 and integrating the industry's Open Systems standards.
综上,
	如果我们想看 POSIX标准,我们看 "The Base Specifications, Issue 7" 就可以了
    在 "The Open Group" ,这份文档"The Base Specifications, Issue 7" 可以被 The Open Group member 获取 (pdf)"The Open Group" ,可以获取 "The Single UNIX Specification"(包括 "The Base Specifications, Issue 7"),(online,或者下载html)"The Open Group" ,可以获取 "The Single UNIX Specification"guide (pdf)

POSIX 与 c语言标准 什么关系

C语言标准

C语言标准(包括C标准库的定义) 由ANSI提出,由ISO收录,相较POSIX较早

1989 年POSIX 的工作被转移至ISO/IEC 社团,并由15 工作组继续将其制定成ISO 标准。
1990 年,POSIX.1 与已经通过的"C语言标准"联合,正式批准为IEEE 1003.1-1990(也是ANSI 标准)和ISO/IEC 9945-1:1990 标准。
    
目前来看, "C标准库" 对应了  POSIX 标准中的 "System Interfaces" ,即可以认为 "C标准库" 是 POSIX标准的一部分
但是 "C标准库的更新""POSIX标准的更新" 是 ISO 不同的小组负责的!

unix os 及 unix-like os 上,谁提供了函数调用

unix-like上可以调用哪些函数
1.os提供的syscall
2.编译器提供的(例如libgcc.a)
3.c标准库(即libc)提供的
4.其他lib提供的
6.程序员自己写的函数

参考

  • POSIX 的描述
POSIX(Portable Operating System Interface for Computing Systems)是由IEEE 和ISO/IEC 开发的一簇标准。该标准是基于现有的UNIX 实践和经验,描述了操作系统的调用服务接口,用于保证编制的应用程序可以在源代码一级上在多种操作系统上移植运行。它是在1980 年早期一个UNIX 用户组(usr/group)的早期工作的基础上取得的。该UNIX 用户组原来试图将AT&T 的系统V 和Berkeley CSRG的BSD 系统的调用接口之间的区别重新调和集成,从而于1984 年产生了/usr/group 标准。1985 年,IEEE操作系统技术委员会标准小组委员会(TCOS-SS)开始在ANSI 的支持下责成IEEE 标准委员会制定有关程序源代码可移植性操作系统服务接口正式标准。到了19864 月,IEEE 就制定出了试用标准。第一个正式标准是在19889 月份批准的(IEEE 1003.1-1988),也既以后经常提到的POSIX.1 标准。

1989 年POSIX 的工作被转移至ISO/IEC 社团,并由15 工作组继续将其制定成ISO 标准。到1990 年,POSIX.1 与已经通过的C 语言标准联合,正式批准为IEEE 1003.1-1990(也是ANSI 标准)和ISO/IEC 9945-1:1990 标准。

POSIX.1 仅规定了系统服务应用程序编程接口(API),仅概括了基本的系统服务标准,因此期望对系统的其它功能也制定出标准。这样IEEE POSIX 的工作就开始展开了。在1990 年,刚开始有十个批准的计划在进行,有近300 多人参加每季度为期一周的会议。着手的工作有命令与工具标准(POSIX.2)、测试方法标准(POSIX.3)、实时API(POSIX.4)等。到了 1990 年上半年已经有25 个计划在进行,并且有16 个工作组参与了进来。与此同时,还有一些组织也在制定类似的标准,如X/Open,AT&T,OSF 等。
    // 注意 : 现在POSIX.2 POSIX.3 POSIX.4 已经合并入 POSIX.190 年代初,POSIX 标准的制定正处在最后投票敲定的时候,那是1991-1993 年间。此时正是Linux刚刚起步的时候,这个UNIX 标准为Linux 提供了极为重要的信息,使得Linux 的能够在标准的指导下进行开发,能够与绝大多数UNIX 系统兼容。在最初的Linux 内核代码中(0.01 版、0.11)就已经为Linux与POSIX 标准的兼容做好了准备工作。在0.01 版的内核/include/unistd.h 文件中就已经定义了几个有关POSXI 标准要求的常数符号,并且在注释中就写到"ok,这也许是个玩笑,但我正在着手研究它呢"199173 日在comp.os.minix 上发布的post 上就已经提到了正在搜集POSIX 的资料。(当然此时还不存在Linux 这个名称,当时Linus 的脑子里想的可能是FREAX ,FREAX 的英文含义是怪诞的、怪物、异想天开等)。其中透露了他正在进行Linux 系统的开发,并且在Linux 最初的时候已经想到要实现与POSIX(UNIX 的国际标准)的兼容问题了。

你可能感兴趣的:(simulation,posix)