Linux 和 Unix 的区别

查看原文

本文是一篇科普文,讲述 Linux 和 Unix 的区别。发现很多人有个误解,觉得 Unix 是个过时的东西,其实不是的。许多人只识 Linux 不识 Unix。

从历史说起,来自 AT&T Bell Labs 的好基友 Ken Thompson and Dennis Ritchie 要写一个多任务多用户的操作系统,于是左手写 Unix,右手写 C,再换回左手写 Unix。特别是 Ken 的 Unix Philosophy 至今仍成为软件工程设计的基石(不一定是最好也不是唯一的但是几乎是个软件工程师都能认知的一些基本原理),例如 Pipe。在工业界传回学界的路上,Berkeley 的分支 BSD 扩展了 Unix,很多新东西加了进来例如 vi, csh 等。1988 年 POSIX 标准出现,使软件有了标准化。事实上,现如今最多的 Unix 系统应该算 BSD 的各种版本,包括 macOS 等都是。

Richard Stallman 创造了 GNU,GCC。Linus Torvald 在用 GCC 写了 Linux 初版内核并移植了很多 Unix 源代码编译到 Linux 上运行。因为开源,现如今已经有了 312 个不同的 Linux 发行版。

  • 对比
    • 从用户体验来说没啥不同,系统和用户管理都是一样的,因为 POSIX 的标准化,很多软件在二者都能用。因为像 Homebrew 这样软件的存在,Linux 软件经过编译后也能很轻松运行在 macOS 上。因为 Linux 的流行,更多 UNIX 的工具进入 Linux 的世界,而Linux也反过来影响 Unix 的设计。
    • 不同点主要在于 Licensing Model。因为 License 的原因,一些软件在 UNIX 不同的发行版上需要适配不同的驱动,而在 Linux 中因为开源几乎所有驱动都通用。