Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Some links on this page are affiliate links: if you buy through them we may earn a commission, at no extra cost to you.

Unix 不是一个单一版本,而是一组历史发行版、技术分支、商业产品和标准认证的总称。它起源于 1969 年 Bell Labs,后来主要形成 Research Unix、AT&T System V 和 BSD 三条发展主线。AIX、HP-UX、Solaris 等是厂商商业 Unix 产品;macOS 曾获得 UNIX 认证;Linux 则是 Unix-like 系统,并非 AT&T Unix 的后续版本。

理解 Unix 时,最好同时区分四件事:系统的历史血统、实际实现、POSIX 或 Single UNIX Specification 兼容性,以及是否获得 The Open Group 的 UNIX 商标认证。

Unix 是什么

Unix 不只是一个内核,也不是某个厂商的一款软件。它既指 Bell Labs 开创的一系列操作系统,也指由这些系统发展出的设计传统、命令行工具、系统调用和用户接口。

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Unix 的典型设计包括多用户、多任务、层次化文件系统、进程管理、Shell、管道、重定向、权限控制、网络通信和可组合的小型工具。Doug McIlroy 总结过一种重要的 Unix 思想:让程序各自做好一件事,并通过清晰接口协同工作。

“一切皆文件”可以帮助理解 Unix:普通文件、目录、设备和部分系统资源都能通过相似的文件描述符接口访问。但这不是字面上的绝对规则,进程、网络套接字和现代内核对象仍有各自的接口。

早期 Unix 已经包含文件系统、fork()、ed 和 roff 等功能;第四版改用 C 语言重写,提高了可移植性。第七版加入了 C 工具链、UUCP 和 Bourne shell,4.2BSD 则推动了 TCP/IP 在 Unix 中的普及。可参阅 Unix 官方历史资料。

Unix 的核心功能

功能 典型机制或命令 作用
进程管理 fork()、exec()、wait()、ps、kill 创建、执行、监控和终止程序
文件系统 open、read、write、mount 管理文件、目录、设备和挂载点
Shell sh、ksh、csh、bash、zsh 解释命令,同时提供可编程脚本接口
管道与重定向 |、>、<、2> 组合工具并连接标准输入、输出和错误
文本处理 grep、sed、awk、sort 处理文本流和系统管理数据
权限控制 用户、组、UID、GID、rwx、ACL 实现多用户隔离和资源授权
网络 TCP/IP、套接字、DNS、SSH 提供主机间通信和远程管理
开发工具 C 编译器、链接器、Make、调试器 支持系统软件和应用开发

Research Unix:V1 到 V10

Research Unix 是 Bell Labs 早期的研究和开发主线,不应与后来的商业产品简单混为一谈。

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  • First Edition(1971):面向 PDP-11,已经具备文件系统、fork()、ed 和 roff 等基础功能。
  • Fourth Edition(1973):以 C 语言重写,Unix 因而更容易移植到不同硬件。
  • Sixth Edition/V6(1975):第一个在 Bell Labs 之外广泛传播的版本,也是 BSD 早期发展的重要基础。
  • Seventh Edition/V7(1979):影响极大,包含 Bourne shell、C 工具链和 UUCP,并移植到 VAX 等平台。
  • Version 8 至 Version 10:继续影响后来的研究系统,例如 Plan 9,但不是现代商业 Unix 的主要普及路线。

V6 和 V7 的重要性不在于它们是“最新版本”,而在于它们建立了后来 Unix 生态长期沿用的用户空间工具、Shell 和开发方式。

BSD:Unix 的网络与开源传统

BSD 最初是 Berkeley 对 Research Unix 的扩展和软件分发集合,并非一开始就完全独立的操作系统。后来的 BSD 系统则以不含 AT&T 专有代码的 4.4BSD-Lite 等代码基础继续发展。FreeBSD 文档对这段历史和各 BSD 项目的定位有较完整说明。

4.2BSD是关键节点,因为它包含重要的 TCP/IP 网络实现,推动 Unix 成为网络服务器和互联网基础设施的重要平台。

系统 主要定位
FreeBSD 通用服务器、网络服务、存储和易用性
NetBSD 可移植性和广泛硬件支持
OpenBSD 安全性、代码审查和安全默认值
DragonFly BSD 多处理器、系统架构和可扩展性研究

这些是项目目标,不代表在所有负载下都有绝对的性能或安全排名。BSD 项目通常维护一个相对完整的操作系统,包括内核、C 库和基础用户空间;Linux 则通常首先指 Linux 内核,完整系统还需要发行版、用户空间工具、C 库、初始化系统和包管理器。

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

BSD 许可证通常比 GPL 更宽松,适合某些需要将代码纳入闭源产品的场景;Linux 的硬件、发行版、云平台和商业支持生态通常更广。

System III、System V 与 SVR4

System III代表 AT&T Unix 面向商业市场推进的重要阶段。它把 Research Unix 的传统转化为面向外部客户的受支持产品线。

System V是 AT&T 最具影响力的商业 Unix 主线。它强化了企业服务器、系统管理、多处理器、终端、进程通信和网络等能力,并吸收了部分 BSD 与其他 Unix 系统的技术。

Rank #2
Sale
The Unix Programming Environment (Prentice-Hall Software Series)
  • The Unix Programming Environment (Prentice-Hall Software Series)
  • Product Type: ABIS_BOOK
  • Pearson

1989 年出现的 System V Release 4(SVR4)尤其重要,因为它融合了 System V、BSD 和 Xenix 的多项特征。AIX、Solaris、HP-UX 等商业产品与 System V 有不同程度的关系,但不能简单说所有商业 Unix 都是纯粹的 System V;厂商通常还加入了自有内核、工具和硬件功能。

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

主要商业 Unix 产品

IBM AIX

AIX 是 IBM 面向 IBM Power 平台的企业 Unix。IBM 的历史资料显示,AIX 早期版本基于 AT&T System V.2、System V.3,同时加入 BSD 4.2 特征和 IBM 自有系统管理功能。

常见的 AIX 企业功能包括:

  • smit 和 smitty:菜单式系统管理工具;
  • NIM:网络安装管理;
  • JFS:日志文件系统;
  • LVM:逻辑卷管理;
  • mksysb:可启动系统备份;
  • PowerHA:高可用集群;
  • LPAR、PowerVM、Live Update 和灾难恢复能力。

AIX 适合核心交易、ERP、数据库、金融、制造和其他任务关键型工作负载。IBM 当前将它定位为与 Power 硬件、虚拟化和高可用能力紧密结合的企业平台,详情见 IBM AIX 产品页 和 AIX 历史资料。

它的限制也很明确:主要绑定 IBM Power,迁移到 x86 Linux 时需要重新评估二进制、ABI、编译器、数据库、驱动和应用供应商认证;硬件、维护和专业支持成本也通常高于通用 Linux 环境。

Solaris

Solaris 源于 Sun 的 SunOS 产品线,后来成为 Oracle Solaris。它在 SPARC 服务器、网络、存储、数据库和数据中心管理方面影响深远。

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Solaris 的代表性技术包括 ZFS、DTrace、Zones、Solaris Cluster 和较强的系统可观测性。Oracle 当前页面强调 Application Binary Guarantee、向后兼容、统一更新、安全启动、内存保护、数据库整合和高可用能力,详见 Oracle Solaris 11 页面。

Solaris 更适合已有 Solaris/SPARC 工作负载、依赖 Oracle 生态或使用 Solaris 专有行为的企业。新项目则应认真比较 Linux、云平台和现有人才情况。Solaris 提供下载并不等于完整企业部署免费;硬件、支持合同和相关服务仍需按具体环境确认。

HP-UX

HP-UX 是 Hewlett-Packard/HPE 的企业 Unix,历史上主要服务于 HP 9000、PA-RISC 和 Itanium 平台。它结合了 System V 与 BSD 技术,并提供企业卷管理、分区、高可用和系统管理能力,常与 HP Integrity 和 Serviceguard 生态联系在一起。

HP-UX 的当前版本、支持周期、硬件兼容性和商业状态需要以 HPE 官方入口及具体支持合同为准,不应在没有核实的情况下断言其生命周期或停止支持日期。维护既有 HP-UX 应用时,应优先检查应用厂商认证、处理器架构、编译器、数据库和迁移测试结果。

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

其他历史商业 Unix

系统 厂商或来源 历史特色
IRIX Silicon Graphics 图形工作站、科学计算和媒体制作
Tru64 UNIX DEC/Compaq Alpha 平台、大型系统和高可靠性
UnixWare Novell、SCO 等 System V 商业 Unix
SCO OpenServer SCO/Xinuos 体系 中小企业和传统商业应用
Xenix Microsoft 与 Unix 厂商合作 早期 x86 Unix 市场

这些系统在 Unix 历史中很重要,但不应默认它们仍是今天新项目的主流部署选择。

macOS、Darwin 与 UNIX

macOS 不应简单称为 FreeBSD,也不应被归入传统 System V。它的底层 Darwin 结合了 Mach 和 BSD 等技术,同时包含 Apple 自己的用户空间、图形系统和专有组件。Apple 的 macOS 曾获得 UNIX 03 认证;The Open Group 的 Unix 历史页面记录了相关认证历史。

macOS 的命令行与 Unix 相近,但不等于 Linux。Apple 文档特别提醒,BSD、AT&T 和 GNU/Linux 工具在参数和行为上可能不同。例如:

# GNU/Linux 中常见的写法
sed -i 's/old/new/g' file.txt

# macOS/BSD sed 常见写法
sed -i '' 's/old/new/g' file.txt

sed、date、find、grep、tar 和 readlink 都可能存在差异。编写可移植脚本时,应优先使用 POSIX 语法;如果确实依赖 Bash,应明确声明:

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
#!/usr/bin/env bash

不要在声明为 /bin/sh 的脚本中直接使用 Bash 专属语法,例如 [[ ... ]]。Apple 的脚本移植说明见 Porting Scripts to macOS。

Linux 为什么不是正式 Unix

Linux 是 Unix-like 操作系统,不是从 AT&T Unix 源码派生的正式 Unix 发行版。严格来说,Linux 首先是内核;通常所说的 Linux 系统还包括 GNU 工具、C 库、包管理器、初始化系统和其他发行版组件。

Linux 仍然应放入 Unix 相关比较,因为它采用了大量 Unix 风格的接口、工具和设计理念,并广泛用于服务器、云计算、容器和嵌入式设备。它的优势包括硬件架构广、发行版和软件包丰富、云平台支持广泛,以及可通过 Red Hat、SUSE 和 Canonical 等厂商获得企业支持。Red Hat 对 RHEL 的定位可见其 企业 Linux 产品页。

因此,“Linux 是 Unix 的一个版本”是不准确的说法;“Linux 是重要的 Unix-like 系统”更准确。

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

POSIX、Single UNIX Specification 与 UNIX 商标

POSIX是一组可移植操作系统接口标准,涉及系统调用、C 函数、Shell、命令行工具、线程和实时接口等。

Single UNIX Specification则是由 The Open Group 管理的 Unix 标准体系。一个系统看起来像 Unix、支持 POSIX,或拥有 Unix 历史血统,都不意味着它自动拥有 UNIX 商标。

需要区分三句话:

  • POSIX 兼容,不等于获得 UNIX 商标认证。
  • 拥有 Unix 血统,不等于当前仍通过 UNIX 认证。
  • Unix-like,不等于正式 UNIX。

标准版本和认证登记可能存在时间差。正式判断某个系统是否获得认证,应查看 The Open Group Certified Products 登记以及具体产品、版本和硬件架构,而不要只依赖博客中的版本列表。

常用命令与跨 Unix 兼容性

查看系统标识

uname -a
uname -s
uname -r

uname显示的是内核或系统标识,不一定能准确显示发行版。Linux 通常还应查看 /etc/os-release;AIX、Solaris 和 macOS 的输出格式则各不相同。

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

查看当前 Shell

printf '%sn' "$SHELL"
ps -p $$ -o command=

$SHELL可能只是用户的默认 Shell,并不一定是当前正在运行的 Shell;第二条命令通常更接近当前进程信息。

使用 POSIX Shell

#!/bin/sh
printf '%sn' "POSIX shell test"

跨 Linux、macOS 和 BSD 编写脚本时,应避免未经限定的 GNU 扩展。echo对反斜杠和参数的处理也不完全一致,脚本通常应优先使用 printf。

如何选择 Unix 或 Unix-like 系统

学习 Unix

优先选择 Linux 虚拟机或云实例、FreeBSD,或直接使用 macOS 的命令行。也可以使用 V6/V7 教学模拟器了解历史系统。不建议为了学习基础命令购买 AIX、Solaris 或 HP-UX 专用硬件。

维护旧企业应用

首先按照应用现有认证矩阵选择,而不是只看操作系统名称:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  • AIX 应用通常先评估是否继续运行在 IBM Power/AIX。
  • Solaris 应用要检查 SPARC、x86、Oracle 数据库、Zones 和第三方软件依赖。
  • HP-UX 应用要核实 PA-RISC/Integrity、编译器、数据库和供应商支持。
  • “能在 Linux 编译”不等于“应用可以直接迁移到 Linux”。

迁移前至少检查 CPU 架构、ABI、C/C++ 编译器、数据库客户端、文件系统语义、驱动、Shell 脚本、线程、IPC、定时任务、系统服务、集群、存储、许可证和应用认证。

开发新系统

没有专有硬件、旧二进制或特定厂商认证要求时,应把 Linux、BSD、云平台和商业支持一起比较。Linux 通常拥有更广的云、容器、硬件和人才生态;FreeBSD 适合希望使用完整 BSD 系统和相关许可模式的团队;传统 Unix 则主要在既有任务关键型工作负载中保持价值。

系统 主要优势 主要取舍
AIX Power 生态、企业支持、高可用 硬件绑定、成本和人才生态较窄
Solaris 系统管理、ZFS、DTrace、Zones、兼容性 新项目需评估硬件、软件和人才可得性
HP-UX 传统企业应用和 HPE 生态 生命周期和迁移风险需逐项核实
FreeBSD 完整系统、网络和服务器能力 部分商业软件和硬件认证较少
OpenBSD 安全设计和代码审查传统 不一定适合所有通用软件和性能场景
macOS Unix 命令行、桌面体验和 Apple 开发工具 绑定 Apple 硬件,不是 Linux 服务器环境
Linux 云、容器、硬件、软件和人才生态广 发行版差异大,完整系统不只是内核

常见误区

  • 把 Linux 写成 Unix 的最新版本:Linux 是 Unix-like 系统,不是 AT&T Unix 的源码后继。
  • 把 BSD 写成 AT&T Unix 的简单复制品:现代 BSD 项目有自己的内核、C 库、基础工具和开发流程。
  • 把 macOS 等同于 FreeBSD:macOS 使用 BSD 相关技术,但 Darwin、Mach、Apple 用户空间和专有组件构成了不同整体。
  • 把 POSIX 认证写成 UNIX 认证:两者是不同的标准和认证体系。
  • 根据命令名称判断脚本可移植:sed、date、find 和 grep 的扩展选项可能不同。
  • 把下载免费写成企业部署免费:软件介质、许可证、硬件、支持和维护合同需要分别判断。

结论

Unix 的历史主线可以概括为:Bell Labs 的 Research Unix 发展出 BSD 和 System V 两大传统,厂商再围绕专用硬件和企业需求推出 AIX、Solaris、HP-UX 等产品。macOS 继承了 Mach 与 BSD 等技术并拥有 UNIX 认证历史;Linux 则是最重要的 Unix-like 对照系统,而不是正式 Unix 版本。

如果只是学习命令行,Linux、FreeBSD 或 macOS 通常足够;如果维护旧企业应用,应优先服从硬件、ABI、数据库和供应商认证;如果建设新平台,则应把 Linux、BSD、云服务和传统 Unix 的长期支持、人力、迁移风险与总拥有成本放在同一张决策表中比较。

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Quick Recap

SaleBestseller No. 2
The Unix Programming Environment (Prentice-Hall Software Series)
The Unix Programming Environment (Prentice-Hall Software Series)
The Unix Programming Environment (Prentice-Hall Software Series); Product Type: ABIS_BOOK; Pearson
$70.04
SaleBestseller No. 3
SaleBestseller No. 4

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.