Linux 大爆炸:一个内核,无数发行版
即使你是一个 Linux 新人,你可能也已经知道它不是一个单一的、整体的操作系统,而是一群项目。这个星座中不同的“星”组成了“发行版”。每个都提供了自己的 Linux 模式。
感谢这一系列发行版所提供的多种选择,这有助于了解 Linux 如何开始并随后激增的。因此,这里会简要介绍一下 Linux 的历史。
Linus Torvalds,内核构建者
大多数熟悉 Linux 的人都已经听说过它的创建者 Linus Torvalds (题图中的人),但是并不知道他最初为何创建它。在 1991 年,Torvalds 还是一名在芬兰学习计算机的大学生。作为一个独立的个人项目,他希望为他的独特硬件创建一个类 Unix 内核。
“内核”是操作系统的一部分,它介乎于操作系统和硬件之间,通过其固件进行协调。本质上,它是系统的核心。开发内核不是一个小工程,但是 Torvalds 渴望挑战,并且发现他自己有这个罕见的技能。
由于他刚接触内核,他希望得到其他人的帮助来确保他走在正确的轨道上,因此他通过在早期的互联网论坛 Usenet 发布他的内核代码,并征求了老牌的老手的经验。然后贡献者就涌来了。
在建立了一个对论坛提交的补丁进行审查以及选择性地集成它们的流程后,Torvalds 意识到他聚集起了一个非正式的团队。在项目发展之后,它很快成为了一个比较正式的开发团队。
Richard Stallman 的角色
虽然 Torvalds 以及他的团建创造了 Linux 内核,但是没有 Richard Stallman 的工作也不会有随后 Linux 众多发行版的传播,Richard 在十年之前发起了一个自由软件运动。
受到许多核心 Unix 程序和系统功能缺乏透明度的阻挠,Stallman 决定自己编写一个,与任何想要它的人自由共享源代码,并且开放提交。他创造了许多核心程序的主体,并在 1983 年发布,统称为 “GNU 项目”。
没有它们,内核不会有那么多的用量。基于 Linux 的操作系统的早期设计人员很乐意将 GNU 工具集成到他们的项目中。
不同的团队开始出现 – 每个团队都有自己的计算功能和架构的理念。他们将 Linux 内核、GNU 实用程序和他们自己的原始软件结合在一起,然而“发行”了 Linux 操作系统的变体。
服务器发行版
每个发行版有它自己的设计逻辑和目的,但是要了解它们的细微差别,需要了解上游和下游开发人员之间的区别。“上游开发人员”负责实际创建项目并发布,以供个人下载或将其包含在其他项目中。相比之下,“下游开发人员”或“软件包维护人员”是指每个发布上游程序的人员,他们对每个上游程序的版本进行调整以适应下游项目的使用情况。
虽然大多数 Linux 发行版包含一些(自己的)原生项目,但大部分发行版开发主要是对 Linux 内核、GNU 工具和庞大的用户程序生态系统的“下游”工作。
许多发行通过优化特定使用场景来彰显它们的特征。例如,某些项目被设计作为服务器运行。为部署服务器而量身定制的发行版通常会避开上游项目中快速推出的最新功能,而倾向于发布一个经过彻底测试的、基础的基本软件,系统管理员可以依靠它来顺利运行。
针对服务器的发行版的的开发团队经常很大,并且有富有经验的程序员可以为每个版本提供多年的支持。
桌面发行版
也有很多的发行版针对桌面用户。事实上,一些知名的发行版通过提供简单的安装以及直观的界面来与商业的操作系统竞争。这些发行版通常包含了大量的软件仓库,它包含了用户可以想到的每个软件,这样用户可以定制它们自己的系统。
由于可用性是关键,他们可能会投入部门大量的员工来创建一个特征鲜明的、发行版特定的桌面,或调整已有的桌面以适应其设计理念。以用户为中心的发行版往往会加快其下游开发时间表,有助于及时为用户提供新功能。
“滚动发布”项目,这是一种桌面发行版的子集,其被设计成紧跟潮流。滚动发布项目的包维护人员在为每个上游程序完成调整后分别发布其新版本,而不是等待所需的上游程序的开发达到某一特定的节点,然后将其集成到单个版本中。
这种方法的一个优点是安全性,因为其关键补丁的发布将比非滚动发行版更快。另一个好处是新功能立即可用,不然用户需要等待才行。滚动发布的缺点是需要更多的人工干预和仔细维护,因为某些升级可能会与其他升级相冲突从而破坏系统。
嵌入式系统
另外一个 Linux 发行版类别是“嵌入式系统”,它被极致裁剪(相对与服务器和桌面发行版)来适应特定的使用情况。
我们经常会忘记那些连接到因特网的任何东西,或者比一个简单的计算器复杂的东西,都是计算机。而计算机需要操作系统。因为 Linux 是自由的并且高度模块化,所以它通常是硬件厂商的选择。
在大多数情况下,如果你看见一台智能电视、一台连接互联网的照相机、甚至是一辆车,你看到的都是 Linux 设备。特别是每部非 iPhone 的智能手机都运行着不同的嵌入式 Linux。
Linux 现场版
最后,有一些 Linux 发行版并不需要永久性地安装在计算机中,而是驻留在 USB 记忆棒上,并允许在其它的计算机上启动它们,而无需计算机硬盘。
这些 “现场版(live)” 的系统可以被优化来执行一些任务。从修复损坏的系统到进行安全评估到高度安全地浏览因特网。
由于这些 现场版 Linux 发行版通常针对解决特定的问题,因此它们一般都包含特定的工具,像磁盘分析和恢复程序、网络监控程序和加密工具。它们还占用很小的空间,因此它们可以快速启动。
你如何选择?
这绝不是 Linux 发行版类型的全面列表,但它应该可以让你大致了解 Linux 生态系统的范围和多样化了。
在每个类别下都有许多选择,因此你会如何选择一个最能符合你需求的版本呢?
一种方式是试验。在 Linux 社区中,来回尝试不同的发行版,或者为用户根据他们的需求在不同的机器上运行不同的发行版,这都很常见。
在将来的文章中,我会展示每种类型发行版的几个例子,以便你可以自己尝试,并开始探索最喜欢的发行版的旅程。
Linux 大爆炸:一个内核,无数发行版的更多相关文章
- suse日常操作(含suse/rhel内核与发行版对应关系)
最近有家客户要求只能使用suse系统,是suse 12 sp3的,而且版本都不同意换,一直以来,都是使用rhel的客户,还没遇到过suse的,可偏偏不巧,我们的系统和suse 12 sp3自带的gli ...
- linux 大并发下 内核优化
To support over 500k users, you *need* - A 64 bits hardware/kernel (AMD64, Opterons) - At least 8GB ...
- The Linux Storage Stack Diagram 内核 4.0 版的 I/O 栈
- Linux的发行版之间的联系和区别
转载:https://blog.csdn.net/suixin788/article/details/52555558 联系 Linux的内核源代码和Linux的应用程序都可以自由获得,因此很多公司组 ...
- 十大广泛使用的Linux发行版
回到上世纪90年代,Mandrake Linux还是唯一的Linux发行版:而今天,Linux发行版的数量变得数不胜数.本文为大家整理出了十大广泛使用的Linux发行版,希望能帮助大家在选择合适的Li ...
- 盘点十大最流行的Linux服务器发行版
随着Linux不断发展,Linux所支持的文件系统类型也在迅速扩充.很多的数据中心服务器上都运行着Linux,可以节省大量的许可证费用及维护费用.但伴随着Linux新版本的发行,其中每一个不同版本的L ...
- 全球最受欢迎的十大Linux发行版(图)
帮助新的Linux用户在越来越多的Linux发行版中选择最合适的操作系统,是创建这个网页的原因.它列出了迄今为止最流行的10个Linux发行版(另外增加的是FreeBSD,到目前为止最为流行的BSD系 ...
- 十大流行Linux发行版
[2013年5月13日 51CTO外电头条]Linux是功能强大的常用操作系统之一,目前它在计算机操作系统领域的发展速度越来越快.它提供了出色的性能和速度.Linux用起来非常稳定而可靠.它还提供了几 ...
- 简述各大 Linux 发行版,有主观,不完全,望见谅
只罗列当前热门的linux发行版 更多关于 Linux 以及 Linux 衍生版的内容可以参阅 中文wiki Debian 系 Debian:开源社区的代表性 linux 系统,每2年一次更新,现在的 ...
随机推荐
- PHP中获取当前页面的URL信息
<? //获取当前的域名: echo $_SERVER['SERVER_NAME']; //获取来源网址,即点击来到本页的上页网址 echo $_SERVER["HTTP_REFERE ...
- java时间类Date、Calendar及用法
对于时间类,这篇主要说明各种现实情况下如何取值,怎么定向取值,得到自己想要的时间参数.在java中时间类主要有Date.Calendar,暂时只介绍 java.util.*下的时间类,对于java.s ...
- 6. CountDownLatch 闭锁
package com.gf.demo05; import java.util.concurrent.CountDownLatch; /** * CountDownLatch : 闭锁,在完成某些操作 ...
- 小程序 lazy-load 不生效的问题
最近在开发家里喵喵的小程序(娱乐),本想抽一小部分时间做个懒加载.看了小程序官网 API,给 image 标签加上 lazy-load 就能实现懒加载.但从微信开发者工具看,似乎并没有生效.搜了一下, ...
- 6个小而美的es6新特性
译者:动静若参商 译文:http://www.zcfy.cc/article/1795 原文:https://davidwalsh.name/es6-features JavaScript社区中的每个 ...
- Session过期,跳出iframe框架页显示会话过期页面
web开发中经常会有这种情况,在一个主页面中包含侧边导航菜单和iframe,点击菜单项,对应页面会在iframe中显示,整个页面不会刷新.但是如果设置了会话Session,在会话过期后再操作会自动re ...
- Android为TV端助力 自定义动画
android自定义动画注意是继承Animation,重写里面的initialize和applyTransformation,在initialize方法做一些初始化的工作,在applyTransfor ...
- Android使用Glide加载https链接的图片不显示的原因
平时我们使用Glide加载http网址的图片的时候,图片可以正常加载出来,但是如果服务器端加上了安全认证,当加载自签名的https图片的时候就会报如下错误(证书路径验证异常). 我们如果不修改Glid ...
- eclipse中web项目没有run on server
刷新web项目,项目->右击->Properties->Project Facets,选择Java和Dynamic Web Module.点击Apply and Close,再次运行 ...
- C#:关于C#4中IEnumerable<out T>的理解
IEnumerable<out T>这个接口非常常见,它是最基础的泛型集合接口,表示可迭代的项的序列. 但是奇怪的是为什么泛型参数要带一个“out”? 经过一番资料查阅后,发现此“out” ...