Unix 是什么,为什么重要?
Author:CHRIS HOFFMAN 译:What Is Unix, and Why Does It Matter?
大多数操作系统都可以分为两大类。除了微软基于 Windows NT 的操作系统之外,几乎所有其他系统的祖宗都是 Unix。
Linux、Mac OS X、Android、iOS、Chrome OS、PlayStation 4 上使用的 Orbis 操作系统,无论路由器上运行的是什么固件——所有这些操作系统通常都被称为“类 Unix”操作系统。
Unix 的设计延续至今
19 世纪中后期 Unix 在贝尔实验室中被开发出来。最初版的 Unix 有许多重要的设计特性至今仍然在使用。
“Unix 哲学”之一就是,创建小型、模块化的程序,一个程序只做一件事并把它做好。如果你经常使用 Linux 终端,那么你应该对此很熟悉——系统提供了许多实用程序,这些程序可以通过管道和其他功能以不同方式组合以执行更复杂的任务。甚至图形程序也可能在后台调用更简单的实用程序来完成复杂的工作。这也使得创建 shell 脚本变得容易,将简单的工具串在一起来完成复杂的事情。
Unix 有一个程序之间通信用的单一文件系统。这就是为什么在 Linux 上“一切都是文件” ——包括硬件设备和提供系统信息或其他数据的特殊文件。这也是为什么只有 Windows 有驱动器号(C、D、E 盘)的原因,它是从 DOS 继承的——在其他操作系统上,系统上的每个文件都是单个目录层次结构的一部分。
追寻 Unix 的后代
Unix 及其后代的历史错综复杂,简化起见,我们大致将 Unix 的后代分为两类。
一类 Unix 后代是在学术界发展起来的。第一个是 BSD(BerkeleySoftwareDistribution),一个开源、类 Unix 操作系统。BSD 通过 FreeBSD、NetBSD 和 OpenBSD 延续至今。NeXTStep 也是基于最初的 BSD 开发的,Apple 的 Mac OS X 是基于 NeXTStep 开发出来的,而 iOS 则基于 Mac OS X。还有一些操作系统,包括 PlayStation 4 上使用的 Orbis OS,都是从 BSD 操作系统衍生而来的。
Richard Stallman 的 GNU 项目也是为了应对 AT&T 日益严格的 Unix 软件许可条款而启动的。MINIX 是一个为教育目的而创建的类 Unix 操作系统,Linux 的灵感来自于 MINIX。我们今天所知道的 Linux 实际上是 GNU/Linux,因为它由 Linux 内核和许多 GNU 实用程序组成。GNU/Linux 并非直接继承自 BSD,但它继承了 Unix 的设计并植根于学术界。当今的许多操作系统,包括 Android、ChromeOS、SteamOS 以及大量设备的嵌入式操作系统,都基于 Linux。
另一类就是商业 Unix 操作系统。AT&T UNIX、SCO UnixWare、Sun Microsystems Solaris、HP-UX、IBM AIX、SGI IRIX——许多大公司想要创建他们自己的 Unix 版本。这些在今天并不常见,但其中一些仍然存在。
DOS 和 Windows NT 的崛起
许多人期望 Unix 成为行业标准操作系统,但 DOS 系统和“IBM PC 兼容”的计算机最终流行起来。Microsoft 的 DOS 成为其中最成功的 DOS 系统。DOS 系统完全不同于 Unix,这就是为什么 Windows 使用反斜杠作为文件路径,而其他一切都使用正斜杠。这个决定是在 DOS 系统早期做出的,后来的 Windows 版本继承了它,就像 BSD、Linux、Mac OS X 和其他类 Unix 操作系统继承了许多 Unix 的设计一样。
Windows 3.1、Windows 95、Windows 98 和 Windows ME 都基于底层的 DOS。当时,微软正在开发一种更现代、更稳定的操作系统,他们将其命名为 Windows NT——即“Windows New Technology”。Windows NT 最终以 Windows XP 的形式出现在普通用户的计算机中,但在此之前,它以 Windows 2000 和 Windows NT 的形式供公司使用。
今天,微软的所有操作系统都基于 Windows NT 内核。Windows 7、Windows 8、Windows RT、Windows Phone 8、Windows Server 和 Xbox One 的操作系统都使用 Windows NT 内核。与大多数其他操作系统不同,Windows NT 并不是作为类 Unix 操作系统开发的。
当然,微软并不是完全重新开始。为了保持与 DOS 和旧的 Windows 软件的兼容性,Windows NT 继承了许多 DOS 约定,如驱动器号、文件路径的反斜杠和命令行的正斜杠。
“在绝大多数地方,用的都是/(slash),包括 Mac/Linux,也包括 URL。你唯一需要记住的是,Microsoft 这个怪鸡在自己的操作系统里面偏要用\(backslash),使得自己与众不同。 在 Windows 中,正斜杠/表示除法,用来进行整除运算;反斜杠\用来表示目录。 在 Unix 系统中,/表示目录;\表示跳脱字符将特殊字符变成一般字符 Windows由于使用斜杠/作为DOS命令提示符的参数标志了,为了不混淆,所以采用反斜杠\作为路径分隔符。所以目前windows系统上的文件浏览器都是用反斜杠\作为路径分隔符。
为什么重要?
你是否曾经看过 Mac OS X 终端或文件系统,并注意到它与 Linux 的相似之处,以及它们与 Windows 的不同之处?嗯,这就是为什么——Mac OSX 和 Linux 都是类 Unix 操作系统。
了解这段历史有助于您了解什么是“类 Unix”操作系统,以及为什么这么多操作系统看起来彼此如此相似而 Windows 似乎如此不同。这解释了为什么 Linux 极客会觉得 Mac OS X 上的终端如此熟悉,而 Windows 上的命令提示符和 PowerShell 与其他命令行环境如此不同。
这只是一个简短的历史,它将帮助您了解我们如何到达今天的位置,而不会陷入细节中。如果您想了解更多信息,可以找到有关 Unix 历史的整本书。