在本文中,我不会深究Linux的技术问题,而是介绍Linux的历史以及Linux与著名操作系统Unix的关系。Unix与BSD说起Linux,首先要了解Unix。Unix是一个在AT&T贝尔实验室已经存在很长时间的操作系统。该项目由两位著名的计算机科学家KenThompson和DennisRitchie领导。Unix的正式开发始于1969年夏天,第一版Unix于1971年3月发布,随后于1972年发布第二版。如果你在Linux机器或MacOS上输入date命令,你会得到一个数字称为Unix时间戳。这个数字是自1970年1月1日00:00:00以来的秒数。为什么是1970年1月1日?你现在应该知道答案了,那时候Unix还在开发过程中。KenThompson和DennisRitchie创建了B语言,这是Unix早期版本支持的编程语言。然后,在1972年,里奇将B改写,进一步改进,变成了C,至今仍然很流行。大多数后续的Unix组件都是用C编写的。在70年代后期,AT&T与教育机构和外部商业组织共享Unix,从而产生了许多不同版本的Unix。其中最突出的是由加州大学伯克利分校的计算机系统研究小组构建的教育版本。这个版本被广泛称为BerkeleySoftwareDistribution,或BSD。最初,BSD是基于Unix设计和代码库,但后来,Unix和BSD的版本越来越有特色,导致了UnixBSD版本与AT&T代号为SystemV的Unix版本之间的“标准竞争”。最终,胜利属于SystemV。后来的BSD版本使SystemV更接近于学习和融入公认的公认标准。随着FreeBSD、NetBSD、OpenBSD等开源项目的出现,BSD分支的历史发展也有了新的发展。告一段落,BSD的最终版本于1995年推出,Unix的最终版本是1989年发布的Unix10,由BellLaps开发。虽然Unix和BSD的正式版早就停止开发了,但是现在很多操作系统(从闭源到开源)都是基于这两个分支开发的。比较著名和成功的商业版本可能是苹果的MacOS。目前iOS、watchOS和tvOS系统等苹果操作系统均基于BSD平台。MacOS也是为数不多的被认为是类UNIX的操作系统之一。在Unix的GNU发展过程中,1983年发生了一件重要的事情,这是后来发生剧变的前提。1983年9月,RichardStallman宣布引入GNU项目(GNU代表GNU,不是Unix)。GNU项目的目标是创建一个自由的类Unix操作系统,人们可以在其中不受限制地自由复制、开发、修改和分发软件。请记住,Unix和Unix衍生产品最初是封闭源代码和受版权保护的。1985年,Richard创立了自由软件基金会(FSF),这是一个促进软件开发自由的非营利组织。GNU工程创造了许多重要的产品,如GNU编译器集合(gcc)、GNU调试器、GNUEmacs文本编辑器(Emacs)、GNU构建自动化器(make)等,而当今使用最广泛的是:GNUGeneral公共许可证(GPL)。GNU项目取得了许多伟大成就,创造了许多类Unix工具。然而,GNU仍然缺少一个重要的组件:内核(处理控制和与硬件设备(CPU、RAM、设备等)通信的部分)。Linux1991年8月25日,一位名叫LinusTorvalds的芬兰学生推出了一款后来成为Linux内核的个人产品。Linus的项目很快引起了很多个人和组织的关注。Linux内核和GNU软件的结合创建了第一个完全免费的操作系统。它的名字是GNU/Linux。注意:Linux本身只是一个内核,并不是一个完整的操作系统。计算机上使用的操作系统称为GNU/Linux,人们简称为Linux。Linux操作系统不使用或共享Unix或BSD代码的任何部分。它是由Linus和GNU项目作为Unix的克隆从头开始构建的。这就是为什么Linux与当前的Unix后代操作系统(如MacOS)有很多共同之处。一般认为,无论是在MacOS上还是在Linux上运行ls、cat、grep等命令,本质都是一样的。但它们实际上是两种不同的工具。在GNU版本的Ubuntu上运行grep--help或mangrepon,在BSD版本的Mac上运行。当然,大多数GNU和BSD(Unix)工具的每个选项都是相同的,但也有例外。您可以在Mac上安装GNU版本而不是默认版本,这将允许您使用与在Linux上相同的命令。Linux发行版Linux只是内核部分,GNU提供了在该内核上运行的必要工具。但是,我们可以自由决定内核配置。一些组织和公司通过将Linux内核与实用程序或包管理器相结合来创建完整的操作系统发行版,这些称为Linux发行版。今天,有无数的Linux发行版,其中有许多是非常熟悉和流行的。一些最常用的发行版包括:Ubuntu、Debian、CentOS、Fedora、Redhat、LinuxMint等。一个发行版可以构建在另一个发行版之上。事实上,我上面提到的分布之间有很多密切的关系。两个最古老的发行版(仍在使用)是Slackware和Debian。它们创建于1993年。Debian的后代分支也可能是更大的发行版。除了Debian本身,这个分支的主要代表是Ubuntu(建立在Debian之上)、LinuxMint(建立在Ubuntu之上)和KaliLinux。另一个著名的发行版是Redhat,主要发行版是RedHatEnterpriseLinux(RHEL),这是一个针对Redhat企业客户的发行版。除了作为付费发行版提供RHEL之外,Redhat还向社区提供另一个免费发行版,即Fedora。事实上,Fedora版本通常首先进行反馈和错误修复测试,然后RHEL构建在稳定的Fedora版本之上。此外,Redhat为RHEL的几乎所有组件提供免费源代码,社区可以构建发行版(类似于RHEL)。CentOS是社区版(Redhat不支持),完全免费,是类似于RHEL的企业级质量发行版。学习并熟悉Linux,在我个人看来,Ubuntu(或Debian)和CentOS将是您应该熟悉的组合。还有其他完全基于Linux内核的操作系统。其中最突出的是Android。Android可能是使用Linux内核的更流行的操作系统。Linux内核版本您可以在项目主页上的https://www.kernel.org/查看Linux内核版本列表。要检查您正在使用的发行版上的内核版本,您可以使用uname-r命令。使用uname-a命令将打印出整个系统信息,而uname-o将打印出操作系统名称。您将得到什么:操作系统名称是GNU/Linux,而不仅仅是Linux。类UnixMacOS是为数不多的通过单一UNIX规范(SUS)认证的操作系统之一,被认为是类Unix操作系统。目前,UNIX商标版权归OpenGroup所有(注意UNIX商标名称中的字母全部大写,操作系统可以写Unix或UNIX)。“类Unix(Unix-like)”用来表示具有SUS认证的操作系统,可以使用UNIX品牌。问题是:根据上面的定义,Linux是不是“类Unix”操作系统?答案是否定的,现在的Linux发行版不允许使用UNIX商标,除了将“Unix-like”解释为SUS的一个组成部分外,还有人建议在广义上,具体可以分为三类:遗传性UNIX:仅与贝尔实验室Unix版本的代码库直接相关的操作系统商标UNIX:操作系统符合SUS要求,可以使用UNIX商标功能性UNIX:“Unix-like”操作系统,Linux可以归为此类。下面是一个简单的图表,描述了Unix的形成和发展过程以及与Unix密切相关的操作系统。最后,本文简单介绍一些关键t中的点他在Linux领域,也简要介绍了Linux与Unix的历史关系。
