本文主要内容来自鸟哥网站,做了排版、转化为中文简体并加了一些笔记,仅供学习之用。

Linux 是由 Torvalds 这个芬兰人所发明的 。 那么为何托瓦兹可以发明 Linux 呢? 凭空想像而来的?还是有什么渊源?这裡我们就来谈一谈囉!

1 与 Minix 之间

Linus Torvalds( 托瓦兹 , 1969 年出生) 的外祖父是赫尔辛基大学的统计学家, 他的外祖父为了让自己的小孙子能够学点东西,所以从小就将托瓦兹带到身边来管理一些微电脑 。 在这个时期,托瓦兹接触了组合语言 (Assembly Language) ,那是一种直接与晶片对谈的程式语言,也就是所谓的低阶语言 。 必须要很瞭解硬体的架构,否则很难以组合语言撰写程式的 。

在 1988 年间,托瓦兹顺利的进入了赫尔辛基大学,并选读了电脑科学系 。 在就学期间,因为学业的需要与自己的兴趣, 托瓦兹接触到了 Unix 这个作业系统 。 当时整个赫尔辛基只有一部最新的 Unix 系统,同时仅提供 16 个终端机 (terminal)。 早期的电脑仅有主机具有运算功能, terminal 仅负责提供 Input/Output 而已 。 在这种情况下, 实在很难满足托瓦兹的需求,因为 … 光是等待使用 Unix 的时间,就很耗时~为此,他不禁想到: 『 我何不自己搞一部 Unix 来玩? 』 不过,就如同 Stallman 当初的 GNU 计画一样,要写核心程式,谈何容易~

不过,幸运之神并未背离托瓦兹,因为不久之后,他就知道有一个类似 Unix 的系统, 并且与 Unix 完全相容,还可以在 Intel 386 机器上面跑的作业系统, 那就是我们上一节提过的,谭宁邦教授为了教育需要而撰写的 Minix 系统! 他在购买了最新的 Intel 386 的个人电脑后,就立即安装了 Minix 这个作业系统 。 另外,上个小节当中也谈到, Minix 这个作业系统是有附上原始码的, 所以托瓦兹也经由这个原始码学习到了很多的核心程式设计的设计概念喔!

2 对 386 硬体的多工测试

事实上,托瓦兹对于个人电脑的 CPU 其实并不满意,因为他之前碰的电脑都是工作站型的电脑, 这类电脑的 CPU 特色就是可以进行 『 多工处理 』 的能力 。 什么是多工呢?理论上, 一个 CPU 在一个时间内仅能进行一个程式, 那如果有两个以上的程式同时出现到系统中呢?举例来说, 你可以在现今的电脑中同时开启两个以上的办公软体,例如电子试算表与文书处理软体 。 这个同时开启的动作代表着这两个程式同时要交给 CPU 来处理~

啊! CPU 一个时间点内仅能处理一个程式,那怎么办?没关係,这个时候如果具有多工能力的 CPU 就会在不同的程式间切换~ 假设 CPU 时脉为 1GHz 的话,那表示 CPU 一秒钟可以进行 10 的 9 次方 次工作 。 假设 CPU 对每个程式都只进行 1000 次运作週期,然后就得要切换到下个程式的话,那么 CPU 一秒钟就能够切换 10 的 6 次方 次呢! ( 当然啦,切换工作这件事情也会花去一些 CPU 时间,不过这裡暂不讨论 ) 。 这么快的处理速度下,你会发现, 两个程式感觉上几乎是同步在进行啦!

为什么有时我同时开两个档桉 ( 假设为 A, B 档桉 ) 所花的时间, 要比开完 A 再去开 B 档桉的时间还要多?现在是否稍微可以理解? 因为如果同时开启的话, CPU 就必须要在两个工作之间不停的切换~ 而切换的动作还是会耗去一些 CPU 时间的!所以囉,同时启用两个以上的工作在一个 CPU 上, 要比一个一个的执行还要耗时一点 。 这也是为何现在 CPU 开发商要整合多个 CPU 于一个晶片中! 也是为何在运作情况比较複杂的伺服器上,需要比较多的 CPU 负责的原因!

早期 Intel x86 架构电脑不是很受重视的原因,就是因为 x86 的晶片对于多工的处理不佳, CPU 在不同的工作之间切换不是很顺畅 。 但是这个情况在 386 电脑推出后,有很大的改善 。 托瓦兹在得知新的 386 晶片的相关资讯后,他认为,以性能价格比的观点来看, Intel 的 386 相当的便宜,所以在性能上也就稍微可以将就将就 ^ _ ^ 。 最终他就贷款去买了一部 Intel 的 386 来玩 。

早期的电脑效能没有现在这么好,所以压榨电脑效能就成了工程师的一项癖好! 托瓦兹本人早期是玩组合语言的,组合语言对于硬体有很密切的关係,托瓦兹自己也说: 『 我始终是个性能癖 』 ^ _ ^ 。 为了彻底发挥 386 的效能,于是托瓦兹花了不少时间在测试 386 机器上! 他的重要测试就是在测试 386 的多功性能 。 首先,他写了三个小程式,一个程式会持续输出 A、 一个会持续输出 B , 最后一个会将两个程式进行切换 。 他将三个程式同时执行,结果,他看到萤幕上很顺利的一直出现 ABABAB… 他知道,他成功了! ^ _ ^

要达到多工 (multitasking) 的环境,除了硬体 ( 主要是 CPU) 需要能够具有多工的特性外,作业系统也需要支援这个功能喔! 一些不具有多工特性的作业系统,想要同时执行两个程式是不可能的 。 除非先被执行的程式执行完毕,否则, 后面的程式不可能被主动执行 。

至于多工的作业系统中,每个程式被执行时,都会有一个最大 CPU 使用时间,若该工作运作的时间超过这个 CPU 使用时间时, 该工作就会先被丢出 CPU 的运作中,而再度的进入核心工作排程中等待下一次被 CPU 取用来运作 。

这有点像在开记者会啦,主持人 (CPU) 会问 『 谁要发问 』 ?一群记者 ( 工作程式 ) 就会举手 ( 看谁的工作重要! ) ,先举手的自然就被允许发问,问完之后, 主持人又会问一次谁要发问,当然,所有人 ( 包括刚刚那个记者 ) 都可以举手! 如此一次一次的将工作给他完成啊! ^ _ ^ 多工的环境对于複杂的工作情况,帮助很大喔!

3 初次释出 Linux 0.02

探索完 386 的硬体性能之后,终于拿到 Minix 并且安装在托瓦兹的 386 电脑上之后,托瓦兹跟 BBS 上面一堆工程师一样, 他发现 Minix 虽然真的很棒,但是谭宁邦教授就是不愿意进行功能的加强,导致一堆工程师在作业系统功能上面的欲求不满! 这个时候年轻的托瓦兹就想: 『 既然如此,那我何不自己来改写一个我想要的作业系统? 』 于是他就开始了核心程式的撰写了 。

撰写程式需要什么呢?首先需要的是能够进行工作的环境,再来则是可以将原始码编译成为可执行档的编译器 。 好在有 GNU 计画提供的 bash 工作环境软体以及 gcc 编译器等自由软体, 让托瓦兹得以顺利的撰写核心程式 。 他参考 Minix 的设计理念与书上的程式码,然后仔细研究出 386 个人电脑的效能最佳化, 然后使用 GNU 的自由软体将核心程式码与 386 紧紧的结合在一起,最终写出他所需要的核心程式 。 而这个小玩意竟然真的可以在 386 上面顺利的跑起来~还可以读取 Minix 的档桉系统 。 真是太好了!不过还不够,他希望这个程式可以获得大家的一些修改建议, 于是他便将这个核心放置在网路上提供大家下载,同时在 BBS 上面贴了一则消息:

他说,他完成了一个小小的作业系统,这个核心是用在 386 机器上的, 同时,他真的仅是好玩,并不是想要做一个跟 GNU 一样大的计画! 另外,他希望能够得到更多人的建议与回馈来发展这个作业系统!这个概念跟 Minix 刚好背道而驰呢! 这则新闻引起很多人的注意,他们也去托瓦兹提供的网站上下载了这个核心来安装 。 有趣的是,因为托瓦兹放置核心的那个 FTP 网站的目录为: Linux , 从此,大家便称这个核心为 Linux 了 。( 请注意,此时的 Linux 就是那个 kernel 喔! 另外,托瓦兹所丢到该目录下的第一个核心版本为 0.02 呢! )

同时,为了让自己的 Linux 能够相容于 Unix 系统,于是托瓦兹开始将一些能够在 Unix 上面运作的软体拿来在 Linux 上面跑 。 不过,他发现到有很多的软体无法在 Linux 这个核心上运作 。 这个时候他有两种作法, 一种是修改软体,让该软体可以在 Linux 上跑, 另一种则是修改 Linux ,让 Linux 符合软体能够运作的规范! 由于 Linux 希望能够相容于 Unix ,于是托瓦兹选择了第二个作法 『 修改 Linux』 ! 为了让所有的软体都可以在 Linux 上执行,于是托瓦兹开始参考标准的 POSIX 规范 。

POSIX 是可携式作业系统介面 (Portable Operating System Interface) 的缩写,重点在规范核心与应用程式之间的介面, 这是由美国电器与电子工程师学会 (IEEE) 所发佈的一项标准喔!

这个正确的决定让 Linux 在起步时体质就比别人优良~因为 POSIX 标准主要是针对 Unix 与一些软体运行时候的标准规范, 只要依据这些标准规范来设计的核心与软体,理论上,就可以搭配在一起执行了 。 而 Linux 的发展就是依据这个 POSIX 的标准规范, Unix 上面的软体也是遵循这个规范来设计的, 如此一来,让 Linux 很容易就与 Unix 相容共享互有的软体了!同时,因为 Linux 直接放置在网路下,提供大家下载, 所以在流通的速度上相当的快!导致 Linux 的使用率大增!这些都是造成 Linux 大受欢迎的几个重要因素呢!

其实托瓦兹有意无意之间常常会透露他自己是个只喜欢玩 (Just for Fun) 的怪人! Linux 一开始也只是托瓦兹的一个作业发展出来的玩具而已 。 他也说,如果 Minix 或 hurd 这两个中的任何一个系统可以提早开发出他想要的功能与环境,也许他根本不会想要自己开发一个 Linux 哩! 哇!人类智慧真是没有极限!各位啊: 1) 要先有基础知识与技能 、2) 有了第一点后,要勇于挑战权威 、3) 把你们的玩具发扬光大吧! ^ _ ^

4 Linux 的发展:虚拟团队的产生

Linux 能够成功除了托瓦兹个人的理念与力量之外,其实还有个最重要的团队!

4.1 单一个人维护阶段

Linux 虽然是托瓦兹发明的,而且内容还绝不会涉及专利软体的版权问题 。 不过,如果单靠托瓦兹自己一个人的话,那么 Linux 要茁壮实在很困难~ 因为一个人的力量是很有限的 。 好在托瓦兹选择 Linux 的开发方式相当的务实!首先,他将释出的 Linux 核心放置在 FTP 上面,并请告知大家新的版本资讯, 等到使用者下载了这个核心并且安装之后,如果发生问题,或者是由于特殊需求亟需某些硬体的驱动程式,那么这些使用者就会主动回报给托瓦兹 。 在托瓦兹能够解决的问题范围内,他都能很快速的进行 Linux 核心的更新与除错 。

4.2 广大骇客志工加入阶段

不过,托瓦兹总是有些硬体无法取得的啊,那么他当然无法帮助进行驱动程式的撰写与相关软体的改良 。 这个时候,就会有些志工跳出来说: 『 这个硬体我有,我来帮忙写相关的驱动程式 。』 因为 Linux 的核心是 Open Source 的,骇客志工们很容易就能够跟随 Linux 的原本设计架构, 并且写出相容的驱动程式或者软体 。 志工们写完的驱动程式与软体托瓦兹是如何看待的呢? 首先,他将该驱动程式 / 软体带入核心中,并且加以测试 。 只要测试可以运行,并且没有什么主要的大问题,那么他就会很乐意的将志工们写的程式码加入核心中!

总之,托瓦兹是个很务实的人,对于 Linux 核心所欠缺的项目,他总是 『 先求有且能跑, 再求进一步改良 』 的心态!这让 Linux 使用者与志工得到相当大的鼓励! 因为 Linux 的进步太快了!使用者要求虚拟记忆体,结果不到一个星期推出的新版 Linux 就有了! 这不得不让人佩服啊!

另外,为因应这种随时都有程式码加入的状况,于是 Linux 便逐渐发展成具有模组的功能! 亦即是将某些功能独立出于核心外,在需要时才载入到核心中 。 如此一来, 如果有新的硬体驱动程式或者其他协定的程式码进来时,就可以模组化, 大大的增加了 Linux 核心的可维护能力!

核心是一组程式,如果这组程式每次加入新的功能都得要重新编译与改版的话会变成如何? 想像一下,如果你只是换了显示卡就得要重新安装新的 Windows 作业系统,会不会傻眼? 模组化之后,原本的核心程式不需要更动,你可以直接将他想成是 『 驱动程式 』 即可! ^ _ ^

4.3 核心功能细部分工发展阶段

后来,因为 Linux 核心加入了太多的功能,光靠托瓦兹一个人进行核心的实际测试并加入核心原始程式实在太费力~ 结果,就有很多的朋友跳出来帮忙这个前置作业!例如考克斯 (Alan Cox) 、 与崔迪 (Stephen Tweedie) 等等, 这些重要的副手会先将来自志工们的修补程式或者新功能的程式码进行测试, 并且结果上传给托瓦兹看,让托瓦兹作最后核心加入的原始码的选择与整併! 这个分层负责的结果,让 Linux 的发展更加的容易!

特别值得注意的是,这些托瓦兹的 Linux 发展副手,以及自愿传送修补程式的骇客志工, 其实都没有见过面,而且彼此在地球的各个角落,大家群策群力的共同发展出现今的 Linux , 我们称这群人为虚拟团队!而为了虚拟团队资料的传输,于是 Linux 便成立的核心网站: http://www.kernel.org !

而这群素未谋面的虚拟团队们,在 1994 年终于完成的 Linux 的核心正式版! version 1.0。 这一版同时还加入了 X Window System 的支援呢!且于 1996 年完成了 2.0 版 、2011 年释出 3.0 版,更于 2015 年 4 月释出了 4.0 版哩! 发展相当迅速喔!此外,托瓦兹指明了企鹅为 Linux 的吉祥物 。

奇怪的是,托瓦兹是因为小时候去动物园被企鹅咬了一口念念不忘, 而正式的 2.0 推出时,大家要他想一个吉祥物 。 他在想也想不到什么动物的情况下, 就将这个念念不忘的企鹅当成了 Linux 的吉祥物了 …

Linux 由于托瓦兹是针对 386 写的,跟 386 硬体的相关性很强,所以, 早期的 Linux 确实是不具有移植性的 。 不过,大家知道 Open source 的好处就是, 可以修改程式码去适合作业的环境 。 因此,在 1994 年以后, Linux 便被开发到很多的硬体上面去了! 目前除了 x86 之外, IBM、HP 等等公司出的硬体也都有被 Linux 所支援呢!甚至于小型单板电脑 ( 树莓派 / 香蕉派等 ) 与手持装置 ( 智慧型手机 、 平板电脑 ) 的 ARM 架构系统,大多也是使用 Linux 核心喔!

5 Linux 的核心版本

Linux 的核心版本编号有点类似如下的样子:

虽然编号就是如上的方式来编的,不过依据 Linux 核心的发展期程,核心版本的定义有点不太相同喔!

5.1 奇数 、 偶数版本分类

在 2.6.x 版本以前,托瓦兹将核心的发展趋势分为两股,并根据这两股核心的发展分别给予不同的核心编号,那就是:

  • 主 、 次版本为奇数:发展中版本 (development)
    如 2.5.xx ,这种核心版本主要用在测试与发展新功能,所以通常这种版本仅有核心开发工程师会使用 。 如果有新增的核心程式码,会加到这种版本当中,等到众多工程师测试没问题后,才加入下一版的稳定核心中;

  • 主 、 次版本为偶数:稳定版本 (stable)
    如 2.6.xx ,等到核心功能发展成熟后会加到这类的版本中,主要用在一般家用电脑以及企业版本中 。 重点在于提供使用者一个相对稳定的 Linux 作业环境平台 。

至于释出版本则是在主 、 次版本架构不变的情况下,新增的功能累积到一定的程度后所新释出的核心版本 。 而由于 Linux 核心是使用 GPL 的授权,因此大家都能够进行核心程式码的修改 。 因此,如果你有针对某个版本的核心修改过部分的程式码, 那么那个被修改过的新的核心版本就可以加上所谓的修改版本了 。

5.2 主线版本 、 长期维护版本 (longterm version)

不过,这种奇数 、 偶数的编号格式在 3.0 推出之后就失效了 。 从 3.0 版开始,核心主要依据主线版本 (MainLine) 来开发,开发完毕后会往下一个主线版本进行 。 例如 3.10 就是在 3.9 的架构下继续开发出来的新的主线版本 。 通常新一版的主线版本大约在 2~3 个月会被提出喔! 之所以会有新的主线版本,是因为有加入新功能之故 。 现在 (2019/01) 最新的主线版本已经来到 5.0-rc1 版了喔!好快!

而旧的版本在新的主线版本出现之后,会有两种机制来处理,一种机制为结束开发 (End of Live, EOL) ,亦即该程式码已经结束,不会有继续维护的状态 。 另外一种机制为保持该版本的持续维护,亦即为长期维护版本 (Longterm) !例如 3.10 即为一个长期维护版本,这个版本的程式码会被持续维护,若程式码有 bug 或其他问题, 核心维护者会持续进行程式码的更新维护喔!

所以囉,如果你想要使用 Linux 核心来开发你的系统,那么当然要选择长期支援的版本才行!要判断你的 Linux 核心是否为长期支援的版本, 可以使用 『 uname -r 』 来查阅核心版本,然后对照下列连结来了解其对应值喔!

https://www.kernel.org/releases.html

5.3 Linux 核心版本与 Linux 发佈商版本

Linux 核心版本与 distribution ( 下个小节会谈到 ) 的版本并不相同,很多朋友常常上网问到: 『 我的 Linux 是 7.x 版,请问 …』 之类的留言, 这是不对的提问方式,因为所谓的 Linux 版本指的应该是核心版本, 而目前最新的核心版本应该是 5.0-rc1(2019/01) 才对,并不会有 7.x 的版本出现的 。

妳常用的 Linux 系统则应该说明为 distribution 才对!因此,如果以 CentOS 这个 distribution 来说, 妳应该说: 『 我用的 Linux 是 CentOS 这个 distribution ,版本为 7.x 版,请问 …』 才对喔!

当妳有任何问题想要在 Linux 论坛发言时,请务必仔细的说明妳的 distribution 版本, 因为虽然各家 distributions 使用的都是 Linux 核心,不过每家 distributions 所选用的软体以及他们自己发展的工具并不相同, 多少还是有点差异,所以留言时得要先声明 distribution 的版本才行喔! ^ _ ^

6 Linux distributions

好了,经过上面的说明,我们知道了 Linux 其实就是一个作业系统最底层的核心及其提供的核心工具 。 他是 GNU GPL 授权模式,所以,任何人均可取得原始码与可执行这个核心程式,并且可以修改 。 此外,因为 Linux 参考 POSIX 设计规范,于是相容于 Unix 作业系统,故亦可称之为 Unix Like 的一种 。

6.1 可完整安装的 Linux 发佈套件

Linux 的出现让 GNU 计画放下了心裡的一块大石头,因为 GNU 一直以来就是缺乏了核心程式, 导致他们的 GNU 自由软体只能在其他的 Unix 上面跑 。 既然目前有 Linux 出现了,且 Linux 也用了很多的 GNU 相关软体,所以 Stallman 认为 Linux 的全名应该称之为 GNU/Linux 呢! 不管怎么说, Linux 实在很不错,让 GNU 软体大多以 Linux 为主要作业系统来进行开发, 此外,很多其他的自由软体团队,例如 postfix, vsftpd, apache 等等也都有以 Linux 为开发测试平台的计画出现!如此一来, Linux 除了主要的核心程式外,可以在 Linux 上面运行的软体也越来越多,如果有心,就能够将一个完整的 Linux 作业系统搞定了!

虽然由 Torvalds 负责开发的 Linux 仅具有 Kernel 与 Kernel 提供的工具, 不过,如上所述,很多的软体已经可以在 Linux 上面运作了,因此, 『Linux + 各种软体 』 就可以完成一个相当完整的作业系统了 。 不过,要完成这样的作业系统 … 还真难~ 因为 Linux 早期都是由骇客工程师所开发维护的,他们并没有考虑到一般使用者的能力 …

为了让使用者能够接触到 Linux ,于是很多的商业公司或非营利团体, 就将 Linux Kernel( 含 tools) 与可运行的软体整合起来,加上自己具有创意的工具程式, 这个工具程式可以让使用者以光碟 /DVD 或者透过网路直接安装 / 管理 Linux 系统 。 这个 『Kernel + Softwares + Tools + 可完整安装程序 』 的咚咚,我们称之为 Linux distribution , 一般中文翻译成可完整安装套件,或者 Linux 发佈商套件等 。

由于 Linux 核心是由骇客工程师写的,要由原始码安装到 x86 电脑上面成为可以执行的 binary 档, 这个过程可不是人人都会的~所以早期确实只有工程师对 Linux 有兴趣 。 一直到一些社群与商业公司将 Linux 核心配合自由软体,并提供完整的安装程序, 且製成光碟 /DVD 后,对于一般使用者来说, Linux 才越来越具有吸引力! 因为只要一直 『 下一步 』 就可以将 Linux 安装完成啊! ^ _ ^

由于 GNU 的 GPL 授权并非不能从事商业行为,于是很多商业公司便成立来贩售 Linux distribution。 而由于 Linux 的 GPL 版权宣告,因此,商业公司所贩售的 Linux distributions 通常也都可以从 Internet 上面来下载的! 此外,如果你想要其他商业公司的服务,那么直接向该公司购买光碟来安装,也是一个很不错的方式的!

6.2 各大 Linux Distributions 的主要异同:支援标准!

不过,由于发展 Linux distributions 的社群与公司实在太多了,例如在台湾有名的 Red Hat, SuSE, Ubuntu, Fedora, Debian 等等,所以很多人都很担心,如此一来每个 distribution 是否都不相同呢? 这就不需要担心了,因为每个 Linux distributions 使用的 kernel 都是 http://www.kernel.org 所释出的,而他们所选择的软体,几乎都是目前很知名的软体,重複性相当的高, 例如网页伺服器的 Apache ,电子邮件伺服器的 Postfix/sendmail ,档案伺服器的 Samba 等等 。

此外,为了让所有的 Linux distributions 开发不致于差异太大,且让这些开发商在开发时有所依据,还有 Linux Standard Base (LSB) 等标准来规范开发者,以及目录架构的 File system Hierarchy Standard (FHS) 标准规范! 唯一差别的,可能就是该开发者自家所开发出来的管理工具,以及套件管理的模式吧! 所以说,基本上,每个 Linux distributions 除了架构的严谨度与选择的套件内容外, 其实差异并不太大啦! ^ _ ^ 。 大家可以选择自己喜好的 distribution 来安装即可!

  • FHS: http://www.pathname.com/fhs/
  • LSB: http://www.linuxbase.org/

事实上 distributions 主要分为两大系统,一种是使用 RPM 方式安装软体的系统,包括 Red Hat, Fedora, SuSE 等都是这类; 一种则是使用 Debian 的 dpkg 方式安装软体的系统,包括 Debian, Ubuntu, B2D 等等 。 若是加上商业公司或社群单位的分类,那么我们可以简单的用下表来做个解释喔!

底下列出几个主要的Linux distributions发行者网址:

  • Red Hat: http://www.redhat.com
  • SuSE: https://www.suse.com
  • Fedora: https://getfedora.org/
  • CentOS: http://www.centos.org/
  • Debian: http://www.debian.org/
  • Ubuntu: http://www.ubuntu.com/
  • Gentoo: http://www.gentoo.org/

到底是要买商业版还是社群版的 Linux distribution 呢?如果是要装在个人电脑上面做为桌上型电脑用的,建议使用社群版, 包括 Fedora, Ubuntu, OpenSuSE 等等 。 如果是用在伺服器上面的,建议使用商业版本,包括 Red Hat, SuSE 等 。 这是因为社群版通常开发者会加入最新的软体,这些软体可能会有一些 bug 存在 。 至于商业版则是经过一段时间的磨合后, 才将稳定的软体放进去 。

举例来说, Fedora 兜出来的软体套件经过一段时间的维护后,等到该软体稳定到不容易发生错误后, Red Hat 才将该软体放到他们最新的释出版本中 。 所以, Fedora 的软体比较经常改版, Red Hat 的软体就较少更版 。

6.3 选择适合你的 Linux distribution

那我到底应该要选择哪一个 distributions ?就如同我们上面提到的,其实每个 distributions 差异性并不大! 不过,由于套件管理的方式主要分为 Debian 的 dpkg 及 Red Hat 系统的 RPM 方式, 目前的建议是,先学习以 RPM 套件管理为主的 RHEL/Fedora/SuSE/CentOS 等台湾使用者较多的版本, 这样一来,发生问题时,可以提供解决的管道比较多 。 如果你已经接触过 Linux 了, 还想要探讨更严谨的 Linux 版本,那可以考虑使用 Debian ,如果你是以效能至上来考量, 那么或许 Gentoo 是不错的建议!

总之,版本很多,但是各版本差异其实不大,建议你一定要先选定一个版本后, 先彻头彻尾的瞭解他,那再继续玩其他的版本时,就可以很快的进入状况 。

不过,如果依据电脑主机的用途来分的话,建议:

  • 用于企业环境:建议使用商业版本,例如 Red Hat 的 RHEL 或者是 SuSE 都是很不错的选择! 毕竟企业的环境强调的是永续的经营,你可不希望网管人员走了之后整个机房的主机都没有人管理吧! 由于商业版本都会提供客户服务,所以可以降低企业的风险喔!

  • 用于个人或教学的伺服器环境:要是你的伺服器所在环境如果当机还不会造成太大的问题的话, 加上你的环境是在教学的场合当中时 ( 就是说,唔!经费不足的环境啦! ) 那么可以使用 『 号称 』 完全相容商业版 RHEL 的 CentOS。 因为 CentOS 是抓 RHEL 的原始码来重新兜起来的一个 Linux distribution ,所以号称相容于 RHEL。 这一版的软体完全与 RHEL 相同,在改版的幅度较小,适合于伺服器系统的环境;

  • 用于个人的桌上型电脑:想要尝鲜吗?建议使用很炫的 Fedora/Ubuntu 等 Desktop( 桌面环境 ) 使用的版本! 如果不想要安装 Linux 的话,那么 Fedora 或 CentOS 也有推出 Live CD 了!也很容易学习喔!

Linux 发展历程相关推荐

  1. Linux发展历程及介绍

    前言 有些初学者可能刚刚接触到linux,听到linux和unix这个名词可能会比较陌生,他们两个之间的关系呢,用最通俗易懂的话来讲用父子的关系来形容他们最好不过了,unix是父亲,linux系统是儿 ...

  2. 关于Linux系统诞生发展历程、组成、特点、核心、发行版本

    Linux 1.关于Linux: 类似Windows,Linux也是一个操作系统软件,Linux是一套开放源代码程序的.并可以自由传播的类Unix操作系统(Unix系统是Linux系统的前身,具备很多 ...

  3. 操作系统发展历程 (Unix、Linux、windows)

    文章目录 一 操作系统概念的诞生 二 Unix系统的诞生 三 Linux的诞生 四 Linux的几大分支 五 微软.苹果的发展和恩恩怨怨 一 操作系统概念的诞生   说到操作系统的诞生,就要先说一说计 ...

  4. 大话Linux的历史与发展历程

    一名菜鸟学习编程技术,记录所学知识并分享给大家,希望大家多多支持. 今天学习了Linux文件增删移复制,打包压缩等命令.经过前几周的资料收集和整理,写了以下文章来讲解Linux,也来回忆一下计算机行业 ...

  5. 嵌入式linux的发展历程,嵌入式Linux论文(历史发展分类及应用)

    嵌入式Linux 一.嵌入式Linux简介 1.1 嵌入式Linux历史 随着社会的发展,信息化技术的成熟和数字化产品的普及,让以计算机技术.芯片技术和软件技术为核心的嵌入式系统再度成为当前研究和应用 ...

  6. 百度PHP高级顾问惠新宸:PHP在百度的发展历程

    惠新宸,百度PHP高级顾问,年二十有八,好追根究底,有不良嗜好, 幸性本善.乙酉年识互联网,丁亥年入雅虎,翌年入百度.虽性好安稳,然经变无数,唯常叹"人生,菠菜汤尔". 大家好,今 ...

  7. 5分钟回顾Linux25年的发展历程与变迁

    来自 LinuxQuestions.org 和 Bad Voltage 的 Jeremy Garcia 提供了 Linux 25 年的发展历程.最开始,Linux 作为创作者 Linus Torval ...

  8. 【博客话题】我的linux心路历程

    2011年的某一天,程程同学在QQ上跟我说"linux 20周年了,有没有关于linux话题的好点子",回神一想,是啊,linux都20周年了,是应该搞一个有意义的话题了,我就建议 ...

  9. node windows更新_node.js 01 简介 - 产生,发展历程,优势,适用场景,实际应用

    node.js是什么 上面是来自于node.js 官网 (https://nodejs.org)的介绍.翻译过来,意思是node.js 基于JavaScript, 需要运行在Chrome V8 的 J ...

最新文章

  1. numpy 数组 维度 大小 形状
  2. php 数组转目录树,PHP根据路径数组转成一个目录树
  3. 知乎热帖:Qt 这么强大为什么火不起来?
  4. 嵌入式Linux操作系统学习规划,学习嵌入式开发需要哪些知识?
  5. 已知网友建立html,职称计算机模拟试题:Dreamweaver网页设计模拟试题及答案(5)...
  6. influxDB集群模式实践
  7. ea 如何画bce备选架构图_GitHub - wongdean/rime-settings at 941ea079832ff211723bce1ce8e47344e527575e...
  8. python链接MySQL数据库
  9. 成也萧何,败也萧何---PIG JOIN 的replicated
  10. 沈阳建筑大学811c语言真题,沈阳建筑大学C语言试题.doc
  11. Idea编译提示Java找不到符号解决方式
  12. CarbonData源码浅析一:Create Table
  13. POJ 1616 Harmonic Periods 笔记
  14. Git 版本回退方法
  15. 转载:用聚宽实现一个多因子策略
  16. 5.用数组计算复利。有$1000,年利率6.5%,假设每月计息一次,计算10年的复利。输出要包括每年的利息、结余以及到改年为止的平均利息。
  17. vue项目将页面生成pdf
  18. Mac系统开机启动项如何设置
  19. 硕士研究生期间,必须了解的一些科研工具
  20. AssertionError: WARNING: No labels found in ** Can not train without labels.

热门文章

  1. 微信游戏奇迹暖暖选取服务器失败,奇迹暖暖微信区为什么登不上_奇迹暖暖微信区登不上解决办法-66街机网...
  2. java发送html模板的高逼格邮件
  3. unity3d 中控制手机前后摄像头切换
  4. cocos2d-x ListView滚动与Button点击事件
  5. 圣朱妮佩洛|San Junipero(5)
  6. linux 批量 添加后缀名,Linux下批量修改后缀名(示例代码)
  7. (论文笔记06.High Fidelity Data Reduction for Big Data Security Dependency Analyses(CCF A)2016)
  8. oracle取出生僻字显示乱码,python cx_Oracle 查询到生僻字报错问题处理
  9. 计算机静音图标无法更改怎么办,电脑桌面出现静音图标,是桌面上,不是右下角,怎么处理...
  10. 汉罗塔用java怎么编程_编程:递归编程解决汉诺塔问题(用java实现)