简介
在通俗用法中,“Linux”通常指的是围绕Linux内核构建的一组操作系统发行版。严格来说,Linux仅指内核本身。为了构建完整的操作系统,Linux发行版通常包括来自GNU项目和其他来源的工具和库。最近,越来越多的开发人员在构建和运行移动应用程序时使用Linux;它还在开发价格实惠的设备(如Chromebook)的过程中发挥了关键作用,这些设备在内核上运行操作系统。在云计算和服务器环境中,Linux出于一些实际原因而成为流行选择:
- 其发行版保持最新,并得到其他开发人员社区的支持。
- 它可以在各种硬件上运行,并且可以与现有系统并存安装(这对于本地开发环境很有帮助)。
- 它支持从现有软件仓库进行集中式软件安装。
- 它的资源需求较低。
- 在开发人员构建应用程序生态系统和服务器工具时,它往往是首选,具有较高的兼容性。
- 它支持对操作系统行为的必要修改。
此外,Linux也可以追溯到自由开源软件运动的起源,因此一些开发人员出于道德和实际原因选择使用它:
- 对于一些开发人员来说,使用Linux代表了对可访问性和表达自由的承诺。
- Linux社区也吸引了一些开发人员:当他们有问题时,他们可以查阅由该社区产生的资源,或直接联系众多活跃的维护者之一。
为了了解Linux在开发者社区(以及其他领域)中的作用,本文将通过Unix的方式概述Linux的简要历史,并讨论一些流行的Linux发行版。
Unix的起源
Linux起源于Unix和Multics两个项目,这两个项目共同致力于开发一个稳定的多用户操作系统。
Unix的起步
Unix起源于贝尔实验室计算机科学研究中心的Multics项目迭代。贝尔实验室和其他地方的开发人员对构建一个具有单层存储、动态链接(运行进程可以请求将另一个段添加到其地址空间中,使其能够执行该段的代码)和分层文件系统的多用户操作系统很感兴趣。
贝尔实验室在1969年停止资助Multics项目,但包括肯·汤普森和丹尼斯·里奇在内的一组研究人员继续致力于该项目的核心原则。在1972-3年间,他们决定用C语言重写系统,这使得Unix具有独特的可移植性:与其他当时的操作系统不同,它既可以移植到其他硬件上,也能长久存在。
贝尔实验室(后来的AT&T)的研发工作继续进行,Unix系统实验室与Sun Microsystems合作开发了Unix的各个版本,并被商业Unix供应商广泛采用。与此同时,学术界的研究也在继续进行,其中最著名的是加利福尼亚大学伯克利分校的计算机系统研究组。该组织开发了伯克利软件发行版(BSD),它启发了许多操作系统,其中许多至今仍在使用。值得注意的两个BSD发行版是NeXTStep,这是NeXT开创的操作系统,后来成为macOS等产品的基础,以及MINIX,这是一个教育性操作系统,对于Linus Torvalds开发Linux时形成了一个比较基础。
Unix的主要特点
Unix以清晰、可移植和并发为基本原则。
- 清晰性:Unix的模块化设计使得函数可以以有限和定义明确的方式运行。它的文件系统统一且层次分明,简化了数据的操作。与其某些前身不同,Unix只实现了数百个系统调用,每个调用都旨在目标清晰、简单明了。
- 可移植性:贝尔实验室的团队将Unix用C语言编写,使得Unix适用于广泛的使用和采用。C语言被设计为具有对内存的低级访问、最小化的运行时支持以及语言和机器指令之间的高效关系。基于C语言的基础意味着Unix适应性强,易于在各种硬件上运行。
- 同时性:Unix内核专为支持多个用户和工作流程的目标(与Multics项目相同)而定制。在Unix中,内核空间与用户空间保持分离,这使得多个应用程序可以同时运行。
Linux的发展
Unix为开发者提出了重要的问题,但在最早的版本中仍然是专有的。因此,它的下一个发展阶段是开发者在其中工作并对其进行改进,以创建免费和开源的替代品的故事。
开源实验
Richard Stallman是受到启发,致力于创建非专有替代Unix的开发人员中的核心人物。在麻省理工学院的人工智能实验室工作期间,他发起了GNU项目(GNU的递归缩写,意为“GNU不是Unix!”),最终在1984年离开实验室,以便能够自由地分发GNU组件作为自由软件。GNU内核,也被称为GNU HURD,成为成立于1985年并目前由Stallman领导的自由软件基金会(FSF)的重点项目。
与此同时,另一位开发人员正在致力于一个免费的Unix替代品:芬兰本科生Linus Torvalds。在对MINIX的许可证感到沮丧后,Torvalds于1991年8月25日向MINIX用户群宣布,他正在开发自己的操作系统,该操作系统类似于MINIX。尽管最初是在MINIX上使用GNU C编译器开发的,但Linux内核很快成为一个独特的项目,拥有一群核心开发人员,并在1994年与Torvalds一起发布了1.0版本的内核。
Torvalds曾经使用GNU代码,包括GNU C编译器,用于他的内核,并且许多Linux发行版仍然依赖GNU组件。Stallman一直在游说将术语“Linux”扩展为“GNU/Linux”,他认为这样能够体现GNU项目在Linux开发中的作用以及促进GNU项目和Linux内核的基本理念。如今,“Linux”通常用来表示既有Linux内核又有GNU元素的存在。与此同时,许多手持设备和智能手机上的嵌入式系统通常只使用Linux内核,几乎没有GNU组件。
Linux的主要特点
虽然Linux内核继承了Unix的许多目标和特性,但它在以下方面与早期系统不同:
- 其核心组件是独立于其他操作系统组件开发的内核。这意味着Linux从各种来源(如GNU)借用元素来构成整个操作系统。
- 它是自由开源的。由开发者社区维护,内核采用GNU通用公共许可证(FSF在GNU项目上的工作的一个分支),可供下载和修改。GPL规定,衍生作品必须保持原始软件的许可条款。
- 它拥有类似于Unix的单内核,但可以根据需求动态加载和卸载内核代码。
- 它支持对称多处理器(SMP),与传统的Unix实现不同。这意味着单个操作系统可以访问多个处理器,它们共享主存储器并可以访问所有I/O设备。
- 它的内核是抢占式的,这也是与Unix的另一个区别。这意味着调度程序可以在驱动程序或内核的其他部分执行时强制进行上下文切换。
- 它的内核不区分线程和普通进程。
- 它包括命令行界面(CLI),也可以包括图形用户界面(GUI)。
流行的Linux发行版
开发者们今天维护着许多流行的Linux发行版。其中最长寿的是Debian,一个拥有5万个软件包的自由开源发行版。Debian启发了另一个流行的发行版Ubuntu,由Canonical有限公司资助。Ubuntu使用Debian的deb软件包格式和软件包管理工具,并且Ubuntu的开发者将变更回推给Debian。
A similar relationship exists between Red Hat, Fedora, and CentOS. Red Hat created a Linux distribution in 1993, and ten years later split its efforts into Red Hat Enterprise Linux and Fedora, a community-based operating system that utilizes the Linux kernel and elements from the GNU Project. Red Hat also has a relationship with the CentOS Project, another popular Linux distribution for web servers. This relationship does not include paid maintenance, however. Like Debian, CentOS is maintained by a community of developers.
结论
在这篇文章中,我们介绍了Linux在Unix中的起源以及一些其特点。如果你对Linux和Unix变种(包括FreeBSD)的历史更感兴趣,一个好的选择可能是阅读我们的FreeBSD系列文章。另一个选择是考虑阅读我们的Linux入门系列文章。你也可以查看这篇关于Linux文件系统布局的介绍,这篇讨论如何在Linux VPS上使用find
和locate
搜索文件,或者这篇关于命令行中正则表达式的介绍。
Source:
https://www.digitalocean.com/community/tutorials/brief-history-of-linux