Unix:修订间差异
TeodoroSeccombe(留言 | 贡献) 小 创建页面,内容为“。” |
IdleTap-bot(留言 | 贡献) 由旧格式Infobox转换为新参数格式(label/data),修复空信息框(由IdleTap-bot执行) |
||
| (未显示同一用户的1个中间版本) | |||
| 第1行: | 第1行: | ||
'''UNIX'''(常写作 '''Unix''')是一类通用的分时、多[[用户]]、多任务[[操作系统]]及其技术体系,其核心特征在于通过统一的文件、进程和[[文本]]流接口组织系统资源,强调“小工具组合”与模块化设计。Unix 最初由美国 AT&T 贝尔实验室的肯·汤普森(Ken Thompson)、丹尼斯·里奇(Dennis Ritchie)等研究人员于 1969 年前后开发,其设计思想深刻影响了后续几乎所有现代操作系统。<nowiki><ref name="Ritchie1974">Ritchie, D. M., & Thompson, K. (1974). The UNIX Time-Sharing System. Communications of the ACM, 17(7), 365-375.</nowiki></ref> 20 世纪 70 年代初,Unix 内核及实用工具被用 C 语言重写,显著提升了系统在不同硬件平台间的可移植性,这一实践也反过来促进了 C 语言的普及。随着 Unix 在学术界和工业界的广泛传播,其衍生出多个分支(如 BSD 和 System V),并催生了 POSIX 和单一 UNIX 规范(SUS)等标准化工作。在商标意义上,“UNIX”是 The Open Group 持有的注册商标,只有完全符合单一 UNIX 规范并通过认证的系统方可使用该名称。<ref name="OpenGroup">The Open Group. UNIX Certification. https://www.opengroup.org/certification</ref>{{Infobox | |||
| title = Unix | |||
| | |||
| label1 = 中文名 | |||
| data1 = Unix | |||
| | |||
| label2 = 外文名 | |||
| | | data2 = Unix / UNIX | ||
| label3 = 类型 | |||
| data3 = 通用操作系统(分时、多用户、多任务) | |||
| label4 = 起源 | |||
| data4 = AT&T 贝尔实验室(1969 年前后形成原型) | |||
| label5 = 核心思想 | |||
| data5 = 小工具组合、文本流处理、统一接口与可移植性 | |||
| | | label6 = 相关标准 | ||
| data6 = POSIX(IEEE 1003.1)、单一 UNIX 规范(SUS) | |||
| label7 = 主要分支 | |||
| data7 = Research Unix、BSD、System V 及其商业衍生(AIX、Solaris 等) | |||
| | |||
| label8 = 商标与认证 | |||
| data8 = UNIX 为 The Open Group 注册商标;仅认证系统可使用 UNIX 标识 | |||
}} | |||
== 历史 == | |||
=== 起源与早期发展 === | |||
Unix 的起源可追溯至 1965 年启动的 Multics(MULTiplexed Information and Computing Service)项目,该项目由贝尔实验室、通用电气公司和[[麻省理工学院]]联合开展,旨在构建一个大规模交互式分时操作系统。由于项目目标过于复杂且进展缓慢,AT&T 于 1969 年决定退出。此后,贝尔实验室的肯·汤普森、丹尼斯·里奇等研究人员利用一台闲置的 PDP-7 [[计算机]],基于之前 Multics 的经验,开发了一个更为简洁的新型操作系统。该系统最初被戏称为 UNICS(UNiplexed Information and Computing Service),后演变为 UNIX。<ref name="Salus">Salus, P. H. (1994). A Quarter Century of UNIX. Addison-Wesley.</ref> 1971 年,Unix 首次在实际生产环境中部署,用于贝尔实验室专利部门的文字处理工作。 | |||
=== 以 C 语言重写与可移植化 === | |||
1972 至 1973 年间,丹尼斯·里奇设计了 C 语言,并与肯·汤普森一同将 Unix 内核及其大部分工具用 C 语言重写。这一决定使 Unix 摆脱了与特定汇编语言的绑定,只需修改少量与机器相关的代码即可移植到其他计算机[[架构]],这是操作系统可移植性实践的重要里程碑。<ref name="Ritchie1974" /> 1973 年,里奇和汤普森在操作系统原理(SOSP)研讨会上发表了关于 Unix 的论文,标志着该系统首次公开亮相。随后,AT&T 以许可证方式向教育机构和企业提供 Unix 源码,第六版(V6)于 1975 年起以约 20,000 美元的价格授权给商业用户。 | |||
=== 分支分化:BSD 与 System V === | |||
1977 年,加州大学伯克利分校的研究生比尔·乔伊(Bill Joy)基于贝尔实验室的 V6 版本发布了 1BSD(Berkeley Software Distribution),其中包含增强的工具和 Pascal 编译器。伯克利分校随后持续开发 BSD,加入了 vi 编辑器、C shell 以及 [[TCP]]/IP 网络协议栈等创新特性,使 BSD 成为 Unix 最重要的分支之一。<ref name="Salus" /> 与此同时,AT&T 于 1983 年发布了 System V,这是一个面向商业应用的官方发行版,其后续版本(特别是 SVR4,1989 年发布)融合了 System V 和 BSD 的诸多优点,成为 IBM AIX、HP-UX、Oracle Solaris 等商业 Unix 系统的基础。 | |||
== 设计 == | |||
=== 设计哲学 === | |||
Unix 的设计哲学强调“小即是美”,鼓励开发功能单一的专用工具,并通过标准接口(如管道 pipe)将这些工具串联以完成复杂任务。道格拉斯·麦克罗伊(M. Douglas [[MC|Mc]]Ilroy)曾总结:“期望每个程序的输出成为另一个尚未确定的程序的输入。”<ref name="McIlroy">McIlroy, M. D. (1987). A Research Unix reader: annotated excerpts from the Programmer's Manual, 1971-1986. AT&T Bell Laboratories.</ref> 这种基于文本流的组合方式极大提升了系统的灵活性与可扩展性。 | |||
=== 一切皆文件 === | |||
Unix 将几乎所有系统资源——包括普通文件、目录、设备、进程间通信通道等——统一抽象为“文件”,这些对象通过文件系统层次结构进行访问,并使用相同的 open、read、write 等系统调用进行操作。<ref name="Ritchie1974" /> 这一抽象简化了程序与内核的交互,使得设备管理和进程通信能够复用同一套接口逻辑。 | |||
=== 分层架构 === | |||
Unix 系统采用内核-系统调用-应用的分层架构。内核负责进程调度、内存管理、文件系统及设备驱动;系统调用接口供用户态程序访问内核功能;最外层是命令解释器(shell)与各类实用工具(如 grep、awk、sed 等)。这种分层设计保证了内核的稳定性和上层[[软件]]的相对独立性。 | |||
== 主要分支 == | |||
=== Research Unix === | |||
Research Unix 是贝尔实验室内部持续开发的原始版本系列,其中第七版(V7,1979 年)是传播最广、影响最深远的版本,许多后来的商业 Unix 和类 Unix 系统都从中汲取了核心设计。 | |||
=== BSD === | |||
BSD 源自伯克利分校的增强版,其贡献包括 TCP/IP 协议栈(奠定了[[互联网]]基础)、虚拟内存管理、以及改进的文件系统(FFS)。BSD 直接衍生出 FreeBSD、NetBSD、OpenBSD 以及[[苹果公司]]的 Darwin([[macOS]] 和 [[iOS]] 的核心)等现代操作系统。<ref name="Salus" /> | |||
=== System V === | |||
System V 是 AT&T 的商业化主干,其 SVR4 版本融合了 BSD 特性,成为业界主流商业 Unix 的共同基础。System V 的许可证模式推动了 Unix 的商业化,但也引发了与 BSD 之间的长期竞争。 | |||
== 标准化 == | |||
=== POSIX === | |||
随着 Unix 变体的增多,不同系统间的接口差异导致应用程序移植困难。为此,IEEE 于 1988 年发布 1003.1 标准,即 POSIX(Portable Operating System Interface for uniX),定义了系统调用、Shell 及常用工具的行为规范,以实现源代码级别的可移植性。<ref name="POSIX">IEEE Std 1003.1-2024 (also ISO/IEC 9945). IEEE Computer Society.</ref> POSIX 后续被国际标准化组织采纳,并持续更新。 | |||
=== 单一 UNIX 规范 === | |||
1990 年代初,主要 Unix 厂商联合制定了通用 API 规范(Spec 1170),后交由 The Open Group 维护,于 1997 年发布单一 UNIX 规范(SUS)第 2 版。该规范以 POSIX 为核心并加以扩展,由奥斯汀小组(Austin Group)负责持续开发。最新版本为 SUS 第 5 版(2024 年),其内容与 POSIX.1-2024 保持同步。<ref name="OpenGroup" /> | |||
== 影响 == | |||
Unix 的设计理念与实现方式深刻影响了现代计算环境。[[Linux]] 内核直接采用 Unix 的系统调用与[[编程]]模型,macOS、iOS、Android 等主流系统均基于 Unix 或类 Unix 内核构建。绝大多数互联网[[服务器]]运行类 Unix 系统,其稳定性和安全性被广泛验证。此外,“小工具组合”与“文本流接口”的设计哲学对软件工程、命令行工具链乃至开发文化(如 DevOps)均产生了持久影响。 | |||
== 商标与认证 == | |||
“UNIX”是 The Open Group 在[[全球]]范围内持有的注册商标。该组织通过严格的认证测试,对符合单一 UNIX 规范的系统授予使用权。未通过认证的类似系统通常被称为“类 Unix”(Unix-like)。目前,macOS、AIX、Solaris 等系统已获得官方认证。<ref name="OpenGroup" /> | |||
== 参考文献 == | |||
<references /> | |||