Unix和Linux简史及标准化

文章目录

执行如下命令:

复制代码
- `man 2 open | sed -n '/CONFORMING TO/,/^$/p'`
  • 运行上述命令后,将直接看到open函数CONFORMING TO字段的相关内容:
    • SVr4, 4.3BSD, POSIX.1-2001, POSIX.1-2008.

UNIX

UNIX简史

UNIX系统的诞生

  • 1969年,Ken Thompson(肯·汤普森)在bell实验室开发出了首个UNIX
  • 1972年,Dennis Ritchie(丹尼斯·里奇)设计实现了C编程语言
  • 1973年,C语言重写了UNIX内核

UNIX系统的普及

  • 1973年,AT&T(贝尔实验室所属的公司)开始向高校发放Unix许可,只收取象征性的费用
  • 1977年,UNIX已经在约 500 个站点中运行,其中包括了全美及其他国家的 125 所大学

UNIX的两个重要分支BSD与System V

BSD
  • 加州大学伯克利分校是最活跃的许可获得者之一
  • 加州大学伯克利分校的一些研究生对系统做出了重大贡献
  • 演化出伯克利软件发行版(Berkeley Software Distribution,BSD)
System V
  • 20 世纪 70 年代中期开始美国政府依照反托拉斯法案强制对AT&T进行拆分
  • 独立后的新AT&T公司开始销售UNIX
  • AT&T所属的UNIX支撑团队(UNIX Support Group,USG)于1982年发布了System III、1983年发布了System V

ANSI标准C语言

标准化需求

  • 20世纪80年代末,层出不穷的UNIX实现:
    • 有些UNIX实现基于 BSD,而另一些则基于System V
    • 有些UNIX实现对两大"流派""兼容并蓄"
    • 每个厂商都在自己的UNIX实现中添加了额外特性
  • 标准化的理由
    • 将软件及技术人员在不同UNIX实现间转移就变得异常困难

ANSI标准的诞生

  • ANSI(美国国家标准委员会)C语言标准(X3.159-1989)最终于1989年获批
  • 于1990年被ISO(国际标准化组织)所采纳(ISO/IEC 9899:1990)

标准做了哪些事情

  • 这份标准定义了C语言语法和语义
  • 对标准 C 语言库操作进行了描述
对它的称呼
  • 通常将 C 语言的这一版本称为**C89**
  • 不太常见的称呼ISO C90
  • The C Programming Language第2版(1988)对其有完整描述
版本的更新迭代
  • 1999 年,ISO 又正式批准了对 C 语言标准的修订版,这就是C99
  • 目前最新的C标准是C17
  • 这份标准定义了C语言语法和语义
  • 对标准 C 语言库操作进行了描述

POSIX标准与SUS 规范

IEEEPOSIX标准

  1. POSIX缩写的含义
  • 可移植操作系统 Portable Operating System Interface 的缩写
  1. 制定者
  • IEEE(电器及电子工程师协会)
  • 确切地说是其下属的可移植应用标准委员会(PASC, http://www.pasc.org/)赞助下所开发的一系列标准。
  1. **POSIX**的目标
  • 提升应用程序在源码级别的可移植性。

X/Open公司和The Open Group

  1. 什么是X/Open?
  • UNIX商标权的持有者
  • X/Open公司是由多家国际计算机厂商所组成的联盟
  • 致力于采纳和改进现有标准,以制定出一套全面而又一致的开放系统标准
  1. 什么是SUS?
  • X/OpenXPG4版本2(是一套基于POSIX标准的可移植性指导丛书)"重新包装"为SUS(Single UNIX Specification)规范
  • 1997年,发布了SUSv2
  • 人们将经过SUSv2规范认证的 UNIX 实现称为UNIX 98(该规范也被称之为XPG5

SUSv3和POSIX.1-2001

  1. CSRG(奥斯丁公共标准修订工作组)工作组的成立
  • 目的:修订并加强POSIX标准和SUS规范
  • 1999年,IEEE、Open集团以及ISO/IEC 联合技术委员会共同成立了奥斯丁公共标准修订工作组
  • CSRG官网:http://www.opengroup.org/austin/
  • 名称的由来:该工作组的首次会议于1998年9月在德州奥斯丁召开
  1. POSIX.1-2001
  • 时间:2001年12月
  • 事件:正式批准了POSIX 1003.1-2001,有时简称为POSIX.1-2001
  • 影响:
    • POSIX 1003.1-2001 取代了SUSv2POSIX.1POSIX.2以及大批的早期POSIX标准。
    • 人们也将该标准称为Single Unix Specification版本3,(SUSv3)
    • 最新版本为SUSv4
    • 官网地址:The UNIX System

Linux

GNU项目

  • 20 世纪 80 年代末至 90 年代初,计算机操作系统市场主要被商业软件占据,如 DOS、Windows 以及 Unix 的各种版本,这些系统价格昂贵且源代码不开放。
  • 理查德・斯托曼(Richard Stallman)在麻省理工学院(MIT)创立的 GNU 计划,致力于创建一个完全自由的类 Unix 操作系统,但一直缺少操作系统内核
  • GNU项目的成果:
    • 制定了 GNU GPL(通用公共许可协议)
    • GNU 编译器
    • bash shell
    • glibcGNU C 语言库)

Linux内核的诞生

  • 1991 年,芬兰赫尔辛基大学的学生林纳斯・托瓦兹(Linus Torvalds)开始在一台 386sx 兼容微机上学习 Minix 操作系统。由于对 Minix 系统的性能不太满意,他决定自己开发一个新的操作系统内核。
  • 1991 年 10 月 5 日,Linus 在 comp.os.minix 新闻组上发布帖子,宣布正在开发一个新的操作系统内核,最初取名 "Freax",后来被命名为 Linux(Linus 和 Unix 的组合),并开放了源代码,邀请全球程序员参与开发。
  • Linux另一个很少提及的名字:GNU/Linux
  • Linux与其它UNIX的关系:

Linux下是如何实现POSIX标准的

内核实现:

  • Linux内核提供了大量系统调用,这些调用直接对应POSIX标准中定义的接口

C标准库(如glibc)

  • GLIBC(GNU C Library)实现了POSIX标准中的API

Shell和工具:

  • Linux的Shell(如Bash)设计符合POSIX标准
  • 系统工具如lsgrepawk等都遵循POSIX标准

POSIX标准手册页

bash 复制代码
sudo apt update;
sudo apt install manpages-posix-dev -y;
相关推荐
A小辣椒13 小时前
TShark:Wireshark CLI 功能
linux
A小辣椒17 小时前
TShark:基础知识
linux
AlfredZhao19 小时前
OCI 明明分配了 200G 系统盘,为什么 df 只看到 30G?
linux·oci
AlfredZhao1 天前
vi 删除指定范围的行,不用再反复按 dd
linux·vi
用户9718356334662 天前
银河麒麟 KY10 申威(SW64) 安装 nginx-1.16.1-2.p01.ky10.sw_64.rpm 详细步骤
linux
猪脚踏浪2 天前
linux 拷贝文件或目录到指定的位置
linux
摇滚侠2 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
bush42 天前
嵌入式linux学习记录十四、术语
linux·嵌入式
载数而行5202 天前
Linux 11 动态监控指令top
linux
不会C语言的男孩2 天前
Linux 系统编程 · 第 8 章:进程基础
linux·c语言