设为首页 收藏本站
查看: 1315|回复: 0

[经验分享] Linux 简史

[复制链接]

尚未签到

发表于 2019-2-17 08:42:58 | 显示全部楼层 |阅读模式
  引言
  在流行的用法中,“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项目,但包括Ken Thompson和Dennis Ritchie在内的一组研究人员继续致力于该项目的核心规则。在1972年3月,他们决定用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's not 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 的核心组件是内核,它和其他的操作系统组件完全独立。这就意味着 Linux 可以通过其他来源(诸如 GNU)借用所需要任何的组件来组成一个完整的操作系统。
  Linux 是免费的、开源的。由开发人员社区共同维护的内核通过 GNU 的通用公共许可证(这是自由软件基金会基于 GNU 项目的一个分支)进行授权,并且可以自由下载和修改。GPL 规定基于原始软件的衍生产物必须遵循和保留原始软件的许可条款内容。
  Linux 有一个类似于 Unix 的单片内核,但是 Linux 也可以根据需要动态地加载和卸载内核代码。
  和传统的 Unix 实现不同的是,Linux 支持对称多处理架构(SMP)。这意味着单个操作系统可以访问多个共享主存的处理器以及所有的输入输出设备。
  Linux 的内核是抢占式的,这是 Linux 和 Unix 之间的另一个差异。这意味着调度器可以在驱动程序或内核的其他部分在运行时强制进行切换。
  Linux 没有线程和普通进程的区分。
  Linux 支持命令行界面(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,后者是一个基于社区的操作系统,它使用了Linux内核和来自GNU Project中的元素。Red Hat还与CentOS Project建立了合作关系,这是另一个流行的用于Web服务器的Linux发行版。然而这种关系不包括付费维护。与Debian一样,CentOS由开发者社区维护的。
  结论
  在本文中,我们讨论了Linux根源于Unix中的特性以及它自身的一些定义特性。如果您有兴趣了解更多关于Linux和Unix变体(包括FreeBSD)的历史,那么我们的FreeBSD系列可能会是很好的开始。另一个选项可以考虑下我们的Linux使用导学系列。您还可以查看Linux文件系统布局的介绍、关于如何使用find和locate命令在Linux VPS中搜索文件的讨论,或者关于命令行中正则表达式的介绍。


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-673406-1-1.html 上篇帖子: linux tail 下篇帖子: Linux 目录结构
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表