news 2026/6/3 13:23:44

Unix和Linux简史及标准化

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Unix和Linux简史及标准化

文章目录

  • UNIX
    • UNIX简史
      • UNIX系统的诞生
      • UNIX系统的普及
      • UNIX的两个重要分支BSD与System V
        • BSD
        • System V
    • ANSI标准C语言
      • 标准化需求
      • ANSI标准的诞生
      • 标准做了哪些事情
        • 对它的称呼
        • 版本的更新迭代
    • POSIX标准与SUS 规范
      • `IEEE`的`POSIX`标准
      • `X/Open`公司和`The Open Group`
      • SUSv3和POSIX.1-2001
  • Linux
    • GNU项目
    • Linux内核的诞生
    • Linux下是如何实现POSIX标准的
      • 内核实现:
      • C标准库(如glibc)
      • Shell和工具:
    • POSIX标准手册页

执行如下命令:
- `man 2 open | sed -n '/CONFORMING TO/,/^$/p'` - `<font style="color:rgb(0, 0, 0);">man 2 open</font>`<font style="color:rgb(0, 0, 0);">:获取`open`函数的系统调用手册页</font> - `<font style="color:rgb(0, 0, 0);">sed -n '/CONFORMING TO/,/^$/p'</font>`<font style="color:rgb(0, 0, 0);">:</font>`<font style="color:rgb(0, 0, 0);">sed</font>`<font style="color:rgb(0, 0, 0);">是一个流编辑器,</font>`<font style="color:rgb(0, 0, 0);">-n</font>`<font style="color:rgb(0, 0, 0);">选项表示只输出我们指定的内容。</font>`<font style="color:rgb(0, 0, 0);">/CONFORMING TO/,/^$/</font>`<font style="color:rgb(0, 0, 0);">是一个地址范围,表示从包含 “CONFORMING TO” 的行开始,到下一个空行结束。`p`表示打印符合条件的行。</font>
  • 运行上述命令后,将直接看到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标准手册页

sudoaptupdate;sudoaptinstallmanpages-posix-dev -y;
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/29 15:00:26

【计算机毕业设计案例】基于springboot的大学生英语学习平台基于Springboot的在线英语阅读平台的设计与实现(程序+文档+讲解+定制)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/5/30 7:51:34

GitHub Actions自动化测试PyTorch项目,集成CUDA环境

GitHub Actions自动化测试PyTorch项目&#xff0c;集成CUDA环境 在深度学习项目开发中&#xff0c;一个常见的痛点是&#xff1a;如何确保代码在不同环境中都能稳定运行&#xff1f;尤其是当你的模型依赖GPU加速时&#xff0c;本地能跑通的代码到了CI流水线却频频报错——可能是…

作者头像 李华
网站建设 2026/5/30 7:51:26

Java毕设项目推荐-基于SpringBoot的供应链管理系统的设计与实现采购管理、库存管理、物流管理和客户关系管理【附源码+文档,调试定制服务】

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/6/1 2:05:41

Abaqus子弹穿钢板模型:探秘CAE文件背后的奥秘

abaqus子弹穿钢板模型&#xff0c;cae文件在工程模拟领域&#xff0c;Abaqus一直是一款备受青睐的强大工具。今天咱就来唠唠Abaqus子弹穿钢板模型及其核心的CAE文件。 一、Abaqus子弹穿钢板模型简述 子弹穿钢板的模拟&#xff0c;能帮助工程师们了解材料在高速冲击下的力学响应…

作者头像 李华
网站建设 2026/6/2 1:47:05

Carsim与Simulink联合仿真实现弯道变道:从路径规划到轨迹跟踪

carsimsimulink联合仿真实现变道 包含路径规划 carsimsimulink联合仿真实现变道 包含路径规划算法mpc轨迹跟踪算法 可选simulink版本和c版本算法 可以适用于弯道道路&#xff0c;弯道车道保持&#xff0c;弯道变道 carsim内规划轨迹可视化 Carsim2020.0 Matlab2017b在自动驾驶领…

作者头像 李华
网站建设 2026/5/30 22:31:51

2025必备10个降AI率工具,MBA必看!

2025必备10个降AI率工具&#xff0c;MBA必看&#xff01; AI降重工具&#xff1a;MBA论文的隐形助手 随着人工智能技术的迅猛发展&#xff0c;AI生成内容&#xff08;AIGC&#xff09;在学术写作中的应用日益广泛。然而&#xff0c;对于MBA学生而言&#xff0c;如何有效降低论文…

作者头像 李华