介绍
在流行的用法中,“Linux”通常指围绕Linux内核构建的一组操作系统发行版。然而,从最严格的意义上讲,Linux只指内核本身的存在。为了构建完整的操作系统,Linux发行版通常包括来自GNU项目和其他来源的工具和库。最近越来越多的开发人员使用Linux来构建和运行移动应用程序;它还在开发价格适中的设备方面发挥了关键作用,比如在内核上运行操作系统的Chromebooks。在一般的云计算和服务器环境中,Linux是一个流行的选择,因为一些实际的原因:
- 它的发行版仍然是最新的,并得到其他开发者社区的支持。
- 它可以在各种硬件上运行,并将与预先存在的系统一起安装(在本地开发环境中是一个有用的特性)。
- 它支持从预先存在的存储库进行集中式软件安装。
- 它的资源需求很低。
- 当开发人员为服务器构建应用程序生态系统和工具时,通常会高度重视,从而实现高级别的兼容性。
- 它支持对操作系统行为进行必要的修改。
Linux也可以追溯到自由和开源软件运动,因此一些开发人员会出于道德和实际原因选择它:
- 对于一些开发人员来说,使用Linux代表了对可访问性和表达自由的承诺。
- Linux社区也是一些开发人员的吸引力:当他们有问题时,他们可以查询该社区产生的资源,或直接联系到许多活跃的维护者之一。
为了理解Linux在开发人员社区(及其他人)中的角色,本文将通过Unix概述Linux的简史,并讨论一些流行的Linux发行版。
来源于Unix
Linux源于Unix和Multics,这两个项目共同构建了开发强大的多用户操作系统的目标。
Unix的起源
Unix是在贝尔实验室计算机科学研究中心的Multics项目迭代中开发的。在贝尔实验室和其他地方从事Multics工作的开发人员有兴趣构建具有单级存储,动态链接的多用户操作系统(其中正在运行的进程可以请求将另一个段添加到其地址空间,使其能够执行该段的代码)和分层文件系统。
贝尔实验室于1969年停止为Multics项目提供资金,但包括Ken Thompson和Dennis Ritchie在内的一组研究人员继续致力于该项目的核心原则。在1972年至2003年,他们决定用C语言重写系统,这使得Unix具有独特的可移植性:与其他现代操作系统不同,它可以在硬件上移动和移动。
贝尔实验室(后来的AT&T)的研究和开发继续进行,Unix系统实验室与Sun Microsystems合作开发Unix版本,将被商业Unix供应商广泛采用。与此同时,学术界继续进行研究,最着名的是加州大学伯克利分校的计算机系统研究小组。该小组制作了Berkeley Software Distribution(BSD),它激发了一系列操作系统,其中许多操作系统至今仍在使用。历史记录的两个BSD分布是NeXTStep,NeXT开创的操作系统,它成为macOS以及其他产品的基础,MINIX是一个教育操作系统,在Linus Torvalds开发Linux时形成了比较基础。
Unix的主要特点
Unix以清晰、可移植性和同时性原则为导向。
- 清晰性:Unix的模块化设计允许函数以有限且定义好的方式运行。它的文件系统是统一的,层次化的,简化了数据的操作。与以前的一些系统调用不同,Unix实现了数百次(而不是数千次)的系统调用,每一次调用的目的都是简单明了的。
- 可移植性:通过用C语言编写Unix,贝尔实验室的团队将Unix定位为广泛使用和采用。C被设计为具有对内存的低级访问,最小的运行时支持,以及语言和机器指令之间的有效关系。以C语言为基础意味着Unix是可适应的,并且易于在各种硬件上运行。
- 同时性:Unix内核是为支持多个用户和工作流的目标(由Multics项目共享)而定制的。内核空间与Unix中的用户空间不同,后者允许多个应用程序同时运行。
Linux的演变
Unix为开发人员提出了重要的问题,但它在最初的迭代中仍然是私有的。因此,它的历史的下一章是关于开发者如何在其中工作和反对它来创建自由和开源的替代品的故事。
开源的实验
Richard Stallman是受到Unix非专有替代品启发而创建的开发人员中的核心人物。在麻省理工学院人工智能实验室工作期间,他开始了GNU项目的工作(“GNU不是Unix!”的递归),最终在1984年离开了实验室,这样他就可以将GNU组件作为自由软件分发出去。GNU内核,被称为GNU HURD,成为自由软件基金会(FSF)的焦点,该基金会成立于1985年,目前由Stallman领导。
与此同时,另一位开发人员正在开发一种免费的Unix替代品:芬兰大学生Linus Torvalds。1991年8月25日,在对MINIX的许可感到失望之后,Torvalds向MINIX用户群宣布,他正在开发自己的操作系统,类似于MINIX。虽然最初是使用GNU C编译器在MINIX上开发的,但是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的单片内核,但是它可以根据需要动态加载和卸载内核代码。
- 与传统的Unix实现不同,它具有对称多处理器(SMP)支持。这意味着一个操作系统可以访问多个处理器,这些处理器共享一个主内存并访问所有I/O设备。
- 它的内核是抢占式的,这是Unix的另一个不同之处。这意味着调度程序可以在驱动程序或内核的其他部分执行时强制上下文切换。
- 它的内核不区分线程和普通进程。
- 它包括命令行接口(CLI),也可以包括图形用户界面(GUI)。
流行的Linux发行版
今天,开发人员维护了许多流行的Linux发行版。最经久不衰的是Debian,它是一个免费的开源发行版,拥有5万个软件包。Debian启发了另一个流行的发行版Ubuntu, Ubuntu是由Canonical有限公司资助的。
Red Hat、Fedora和CentOS之间也存在类似的关系。Red Hat在1993年创建了一个Linux发行版,十年后将其工作分成了Red Hat Enterprise Linux和Fedora——一个基于社区的操作系统,它利用了Linux内核和GNU项目中的元素。Red Hat还与另一个流行的web服务器Linux发行版CentOS Project有关系。然而,这种关系不包括有偿维护。与Debian一样,CentOS也是由开发人员社区维护的。
结论
在本文中,我们讨论了Linux源于Unix中的特性以及它的一些定义特性。如果您有兴趣了解更多关于Linux和Unix变体(包括FreeBSD)的历史,那么我们的FreeBSD系列可能是很好的一步。
Linux公社的RSS地址:https://www.linuxidc.com/rssFeed.aspx
本文永久更新链接地址:https://www.linuxidc.com/Linux/2018-10/155043.htm
