Linux 简史

简介

在流行用法中,Linux通常指的是围绕Linux内核构建的一组操作系统发行版。不过,从最严格的意义上讲,Linux只是指内核本身的存在。为了构建一个完整的操作系统,Linux发行版通常包括来自GNU项目和其他来源的工具和库。最近,越来越多的开发人员使用Linux来构建和运行移动应用程序;它在Chromebook等负担得起的设备的开发中也发挥了关键作用,Chromebook在内核上运行操作系统。在一般的云计算和服务器环境中,出于一些实际原因,Linux是一个流行的选择:

  • 它的发行版仍然是最新的,并得到其他开发人员社区的支持。
  • 它可以在广泛的硬件上运行,并将与现有系统一起安装(这在本地开发环境中是一个有用的特性)。
  • 它支持从预先存在的存储库集中安装软件。
  • 其资源要求较低。
  • 当开发人员为服务器构建应用程序生态系统和工具时,这通常是首要考虑的问题,从而实现高级别的兼容性。
  • 它支持对操作系统行为进行必要的修改。

Linux的起源还可以追溯到自由和开源软件运动,因此一些开发人员出于道德和实际原因选择了它:

  • 对于一些开发人员来说,使用Linux代表着对可访问性和表达自由的承诺。
  • Linux社区也吸引了一些开发人员:当他们有问题时,他们可以咨询这个社区提供的资源,或者直接联系许多活跃的维护人员。

为了理解Linux在开发人员社区内(以及开发人员社区之外)的角色,本文将通过Unix概述Linux的简要历史,并讨论一些流行的Linux发行版。

Unix中的根

Linux植根于Unix和Multics,这两个项目的共同目标是开发一个健壮的多用户操作系统。

Unix的开端

Unix是由贝尔实验室计算机科学研究中心的Multics项目迭代发展而来的。贝尔实验室和其他地方的Multics开发人员对构建一个具有单级存储、动态链接(其中运行的进程可以请求将另一个段添加到其地址空间,使其能够执行该段的代码)和分层文件系统的多用户操作系统感兴趣。

贝尔实验室在1969年停止了对Multics项目的资助,但包括肯·汤普森和丹尼斯·里奇在内的一组研究人员继续致力于该项目的核心原则。在1972-3年,他们决定用C语言重写系统,这使得Unix具有独特的可移植性:与其他当代操作系统不同,Unix既可以脱离硬件,也可以超过硬件。

贝尔实验室(后来的AT&T)继续进行研究和开发,Unix系统实验室与Sun Microsystems合作开发Unix版本,这些版本将被商业Unix供应商广泛采用。与此同时,学术界的研究仍在继续,最著名的是加州大学伯克利分校的计算机系统研究小组。这个小组产生了伯克利软件发行版(BSD),它启发了一系列操作系统,其中许多至今仍在使用。两个历史上值得注意的BSD发行版是NeXTStep,由NeXT开创的操作系统,它成为macOS的基础,以及其他产品,以及MINIX,一个教育操作系统,形成了Linus Torvalds开发Linux的比较基础。

Unix主要特性

Unix以清晰、可移植和同步的原则为导向。

  • 清晰度:Unix的模块化设计允许功能以有限和定义的方式运行。它的文件系统是统一和分层的,这简化了数据的操作。与它的一些前辈不同,Unix实现了数百个(而不是数千个)系统调用,每个系统调用的设计都是简单明了的。
  • 可移植性:通过用C语言编写Unix,贝尔实验室的团队为Unix的广泛使用和采用奠定了基础。C被设计成具有对内存的低级访问、最少的运行时支持以及语言和机器指令之间的有效关系。C语言中的基数意味着Unix具有很强的适应性,并且很容易在各种硬件上运行。
  • 并发性:Unix内核是针对支持多个用户和工作流的目标(由Multics项目共享)量身定做的。内核空间与Unix中的用户空间保持不同,后者允许多个应用程序同时运行。

Linux的演进

Unix向开发人员提出了重要的问题,但在其最早的迭代中,它仍然是专有的。因此,它历史的下一章是关于开发人员如何在它内部和反对它的情况下创建Free和open-source替代方案]的故事。

开源实验

理查德·斯托尔曼是开发人员中的核心人物,他们受到启发,创建了Unix的非专有替代品。在麻省理工学院人工智能实验室工作期间,他开始了GNU项目的工作(GNU‘s Not Unix!的递归),最终于1984年离开实验室,这样他就可以将GNU组件作为自由软件分发。GNU内核,被称为GNU Hurd,成为自由软件基金会(FSF),)(成立于1985年,目前由Stallman领导)的焦点。

与此同时,另一位开发人员正在开发Unix的免费替代品:芬兰大学生Linus Torvalds。1991年8月25日,在对MINIX的许可证感到沮丧之后,托瓦尔兹向MINIX用户组宣布,他正在开发自己的操作系统,类似于MINIX。虽然Linux内核最初是使用GNU C编译器在MINIX上开发的,但它很快就成为一个独特的项目,核心开发人员在1994年与Torvalds一起发布了内核的1.0版本。

Torvalds一直在他的内核中使用GNU代码,包括GNU C编译器,而且许多Linux发行版仍然使用GNU组件。Stallman曾游说将Linux一词扩展为GNU/Linux,他认为这将抓住GNU项目在Linux开发中的作用,以及促进GNU项目和Linux内核的基本理念。今天,Linux经常被用来表示Linux内核和GNU元素的存在。与此同时,许多手持设备和智能手机上的嵌入式系统通常使用很少或根本没有GNU组件的Linux内核。

Linux主要特性

虽然Linux内核继承了Unix的许多目标和属性,但它在以下方面与早期系统不同:

  • 其核心组件是内核,独立于其他操作系统组件开发。这意味着Linux从各种来源(如GNU)借用元素来组成整个操作系统。
  • 它是免费和开源的。该内核由一个开发人员社区维护,在GNU General Public License(FSF在GNU项目上工作的一个分支)]下获得许可,并可供下载和修改。GPL规定,衍生作品必须保持原始软件的许可条款。
  • 内核单片,类似于Unix,但可以按需动态加载和卸载内核代码。
  • 与传统的Unix实施不同,它支持对称多处理器(SMP)。这意味着一个操作系统可以访问多个处理器,这些处理器共享一个主内存并访问所有I/O设备。
  • 它的内核是抢占式的,这是与Unix的另一个不同之处。这意味着调度程序可以在执行时强制在驱动程序或内核的另一部分上进行上下文切换。
  • 其内核不区分线程和正常进程。
  • 它包括命令行界面(CLI),也可以包括图形用户界面(GUI)。

热门Linux发行版

开发人员维护着当今许多流行的Linux发行版。其中历史最悠久的是Debian,一个拥有50,000个软件包的免费开源发行版。Debian启发了另一个流行的发行版Ubuntu,由Canonical Ltd.资助。Ubuntu使用Debian的deb包格式和包管理工具,Ubuntu的开发人员将更改推回Debian上游。

类似的关系存在于Red Hat、Fedora和CentOS之间。Red Hat于1993年创建了一个Linux发行版,十年后将其分为Red Hat Enterprise Linux和Fedora,Fedora是一个基于社区的操作系统,利用了Linux内核和GNU项目的元素。红帽还与CentOS项目有关系,CentOS项目是另一个流行的Web服务器Linux发行版。然而,这种关系不包括支付的抚养费。和Debian一样,CentOS也是由开发者社区维护的。

结论

在本文中,我们讨论了Linux在Unix中的根源以及它的一些定义特性。如果您有兴趣了解更多关于linux和unix变体(包括免费BSD)的历史,一个很好的步骤可能是我们的关于FreeBSD.的系列另一种选择可能是考虑我们的介绍性Linux.入门系列您还可以查看[LinuxLinux中的文件系统布局简介》这篇文章关于如何使用findLocate在Linux,VPS](https://andsky.com/tech/tutorials/how-to-use-find-and-locate-to-search-for-files-on-a-linux-vps),上搜索文件的讨论或此命令line.上的正则表达式简介

Published At
Categories with 技术
comments powered by Disqus