[ 摘自:
https://www.linuxidc.com/Linux/2011-08/40049.htm
https://blog.csdn.net/love_Aym/article/details/80726722 ]
Linux是最受欢迎的自由电脑操作系统内核。它是一个用C语言写成,符合POSIX标准的类Unix操作系统。Linux最早是由芬兰黑客 Linus Torvalds为尝试在英特尔x86架构上提供自由免费的类Unix操作系统而开发的。该计划开始于1991年,这里有一份Linus Torvalds当时在Usenet新闻组comp.os.minix所登载的贴子,这份著名的贴子标志着Linux计划的正式开始。在计划的早期有一些Minix 黑客提供了协助,而今天全球无数程序员正在为该计划无偿提供帮助。
技术上说Linux是一个内核。“内核”指的是一个提供硬件抽象层、磁盘及文件系统控制、多任务等功能的系统软件。一个内核不是一套完整的操作系统。一套基于Linux内核的完整操作系统叫作Linux操作系统,或是GNU/Linux。
Linux是一个宏内核(monolithic kernel)系统。设备驱动程序可以完全访问硬件。Linux内的设备驱动程序可以方便地以模块化(modularize)的形式设置,并在系统运行期间可直接装载或卸载。
Linux内核组成部分:
第一种方式:
内核是一个用来和硬件打交道并为用户程序提供一个有限服务集的低级支撑软件。一个计算机系统是一个硬件和软件的共生体,它们互相依赖,不可分割。
Linux的版本号分为两部分,即内核版本与发行版本。内核版本号由3 个数字组成:r.x.y。
r:目前发布的内核主版本。
x:偶数表示稳定版本;奇数表示开发中版本。
y:错误修补的次数。
一般来说,x位为偶数的版本是一个可以使用的稳定版本,如2.4.4;x位为奇数的版本一般加入了一些新的内容,不一定很稳定,是测试版本,如2.1.111。
第二种方式:
major.minor.patch-build.desc
2.26.35-rc5
1、major:表示主版本号,有结构性变化时才变更。
2、minor:表示次版本号,新增功能时才发生变化;一般奇数表示测试版,偶数表示生产版。
3、patch:表示对次版本的修订次数或补丁包数。
4、build:表示编译(或构建)的次数,每次编译可能对少量程序做优化或修改,但一般没有大的(可控的)功能变化。
5、desc:用来描述当前的版本特殊信息;其信息由编译时指定,具有较大的随意性,但也有一些描述标识是常用的,比如:
<1>rc(有时也用一个字母r),表示候选版本(release candidate),rc后的数字表示该正式版本的第几个候选版本,多数情况下,各候选版本之间数字越大越接近正式版。
<2>smp,表示对称多处理器(Symmetric MultiProcessing)。
<3>pp,在Red Hat Linux中常用来表示测试版本(pre-patch)。
<4>EL,在Red Hat Linux中用来表示企业版Linux(Enterprise Linux)。
<5>mm,表示专门用来测试新的技术或新功能的版本。
<6>fc,在Red Hat Linux中表示Fedora Core。
如果在生产机上,最好不要安装小版本号是奇数的内核。同样,pre-patch的内核版本也不建议安装在生产机上。
内核是Linux系统的重要组成部分,每一次内核新版本的发布都受到Linux爱好者的关注,下面表格中列出了Linux内核的重要发展事件。
内核版本号 | 时间 | 内核发展史 |
---|---|---|
0.00 | 1991.2-4 | 两个进程分别显示AAA BBB |
0.01 | 1991.9 | 第一个正式向外公布的Linux内核版本 |
0.02 | 1991.10.5 | Linus Torvalds将当时最初的0.02内核版本发布到了Minix新闻组,很快就得到了反应。Linus Torvalds在这种简单的任务切换机制上进行扩展,并在很多热心支持者的帮助下开发和推出了Linux的第一个稳定的工作版本。 |
0.03 | 1991.10.5 | |
0.10 | 1991.10 | Linux0.10版本内核发布,0.11版本随后在1991年12月推出,当时它被发布在Internet上,供人们免费使用。 |
0.11 | 1991.12.8 | 基本可以正常运行的内核版本 |
0.12 | 1992.1.15 | 主要加入对数学协处理器的软件模拟程序 |
0.95(0.13) | 1992.3.8 | 开始加入虚拟文件系统思想的内核版本 |
0.96 | 1992.5.12 | 开始加入网络支持和虚拟文件系统 |
0.97 | 1992.8.1 | |
0.98 | 1992.9.29 | |
0.99 | 1992.12.13 | |
1.0 | 1994.3.14 | Linux1.0版本内核发布,使用它的用户越来越多,而且Linux系统的核心开发队伍也建起来了。 |
1.2 | 1995.3.7 | |
2.0 | 1996.2.9 | |
2.2 | 1999.1.26 | |
2.4 | 2001.1.4 | Linux2.4.0版本内核发布。 |
2.6 | 2003.12.17 | Linux2.6版本内核发布,与2.4内核版本相比,它在很多方面进行了改进,如支持多处理器配置和64位计算,它还支持实现高效率线和处理的本机POSIX线程库(NPTL)。实际上,性能、安全性和驱动程序的改进是整个2.6.x内核的关键。 |
2.6.15 | 2006 | Linux2.6.15版本内核发布。它对IPv6的支持在这个内核中有了很大的改进。PowerPC用户现在有了一个用于64位和32位PowerPC的泛型树,它使这两种架构上的内核编辑成为可能。 |
2.6.30 | 2009.6 | 改善了文件系统、加入了完整性检验补丁、TOMOYO Linux 安全模块、可靠的数据报套接字(datagram socket)协议支持、对象存储设备支持、FS-Cache 文件系统缓存层、nilfs 文件系统、线程中断处理支持等等。 |
2.6.32 | 2009.12 | 增添了虚拟化内存 de-duplicacion、重写了 writeback 代码、改进了 Btrfs 文件系统、添加了 ATI R600/R700 3D 和 KMS 支持、CFQ 低传输延迟时间模式、perf timechart 工具、内存控制器支持 soft limits、支持 S+Core 架构、支持 Intel Moorestown 及其新的固件接口、支持运行时电源管理、以及新的驱动。 |
2.6.34 | 2010.5 | 添加了 Ceph 和 LogFS 两个新的文件系统,其中前者为分布式的文件系统,后者是适用于 Flash 设备的文件系统。Linux Kernel 2.6.34 的其他特性包括新的 Vhost net、改进了 Btrfs 文件系统、对 Kprobes jump 进行了优化、新的 perf 功能、RCU lockdep、Generalized TTL Security Mechanism (RFC 5082) 及 private VLAN proxy arp (RFC 3069) 支持、asynchronous 挂起恢复等等。 |
2.6.36 | 2010.10 | Tilera 处理器架构支持、新的文件通知接口 fanotify、Intel 显卡上实现 KMS 和 KDB 的整合、并行管理工作队列、Intel i3/5 平台上内置显卡和 CPU 的智能电源管理、CIFS 文件系统本地缓存、改善虚拟内存的层级结构,提升桌面操作响应速度、改善虚拟内存溢出终结器的算法、整合了 AppArmor 安全模型(注:与 SELinux 基于文件的标注不同, AppArmor 是基于路径的)。 |
第一种:终端输入 cat /proc/version 运行效果如下图:
第二种:终端输入 uname -a 即列出linux的内核版本号 运行效果如下图:
第三种:在Linux终端输入 unmae -r 即可查看linux的内核版本号 运行效果如下图:
就Linux的本质来说,它只是操作系统的核心,负责控制硬件、管理文件系统、程序进程等,并不给用户提供各种工具和应用软件。所谓工欲善其事,被必先利其器,一套在优秀的操作系统核心,若没有强大的应用软件可以使用,如C/C++编译器、C/C++库、系统管理工具、网络工具、办公软件、多媒体软件、绘图软件等,也无法发挥它强大的功能,用户也无法仅仅使用这个系统核心进行工作,因此人们以Linux核心为中心,再集成搭配各种各样的系统管理软件或应用工具软件组成一套完整的操作系统,如此的组合便称为Linux发行版。
Linux的发行版本可以大体分为两类:
前者以著名的Redhat(RHEL)为代表,后者以Debian为代表。
下面介绍一下各个发行版本的特点:
Redhat(小红帽),应该称为Redhat系列,包括RHEL(Redhat Enterprise Linux,也就是所谓的Redhat Advance Server,收费版本)、Fedora Core(由原来的Redhat桌面版本发展而来,免费版本)、CentOS(RHEL的社区克隆版本,免费)。Redhat应该说是在国内使用人群最多 的Linux版本,甚至有人将Redhat等同于Linux,而有些老鸟更是只用这一个版本的Linux。所以这个版本的特点就是使用人群数量大,资料非 常多,言下之意就是如果你有什么不明白的地方,很容易找到人来问,而且网上的一般Linux教程都是以Redhat为例来讲解的。Redhat系列的包管 理方式采用的是基于RPM包的YUM包管理方式,包分发方式是编译好的二进制文件。稳定性方面RHEL和CentOS的稳定性非常好,适合于服务器使用, 但是Fedora Core的稳定性较差,最好只用于桌面应用。
Debian,或者称Debian系列,包括Debian和Ubuntu等。Debian是社区类Linux的典范,是迄今为止最遵循GNU规范 的Linux系统。Debian最早由Ian Murdock于1993年创建,分为三个版本分支(branch): stable, testing 和 unstable。其中,unstable为最新的测试版本,其中包括最新的软件包,但是也有相对较多的bug,适合桌面用户。testing的版本都经 过unstable中的测试,相对较为稳定,也支持了不少新技术(比如SMP等)。而stable一般只用于服务器,上面的软件包大部分都比较过时,但是 稳定和安全性都非常的高。Debian最具特色的是apt-get / dpkg包管理方式,其实Redhat的YUM也是在模仿Debian的APT方式,但在二进制文件发行方式中,APT应该是最好的了。Debian的资 料也很丰富,有很多支持的社区,有问题求教也有地方可去:)
Ubuntu严格来说不能算一个独立的发行版本,Ubuntu是基于Debian的unstable版本加强而来,可以这么说,Ubuntu就是 一个拥有Debian所有的优点,以及自己所加强的优点的近乎完美的 Linux桌面系统。根据选择的桌面系统不同,有三个版本可供选择,基于Gnome的Ubuntu,基于KDE的Kubuntu以及基于Xfc的 Xubuntu。特点是界面非常友好,容易上手,对硬件的支持非常全面,是最适合做桌面系统的Linux发行版本。
Gentoo,伟大的Gentoo是Linux世界最年轻的发行版本,正因为年轻,所以能吸取在她之前的所有发行版本的优点,这也是Gentoo 被称为最完美的Linux发行版本的原因之一。Gentoo最初由Daniel Robbins(FreeBSD的开发者之一)创建,首个稳定版本发布于2002年。由于开发者对FreeBSD的熟识,所以Gentoo拥有媲美 FreeBSD的广受美誉的ports系统 ——Portage包管理系统。不同于APT和YUM等二进制文件分发的包管理系统,Portage是基于源代码分发的,必须编译后才能运行,对于大型软 件而言比较慢,不过正因为所有软件都是在本地机器编译的,在经过各种定制的编译参数优化后,能将机器的硬件性能发挥到极致。Gentoo是所有Linux 发行版本里安装最复杂的,但是又是安装完成后最便于管理的版本,也是在相同硬件环境下运行最快的版本。
给为选择一个Linux发行版本犯愁的朋友一些建议:
如果你只是需要一个桌面系统,而且既不想使用盗版,又不想花大量的钱购买商业软件,那么你就需要一款适合桌面使用的Linux发行版本了,如果你不想自己定制任何东西,不想在系统上浪费太多时间,那么很简单,你就根据自己的爱好在ubuntu、kubuntu以及xubuntu中选一款吧,三者的 区别仅仅是桌面程序的不一样。
如果你需要一个桌面系统,而且还想非常灵活的定制自己的Linux系统,想让自己的机器跑得更欢,不介意在Linux系统安装方面浪费一点时间,那么你的唯一选择就是Gentoo,尽情享受Gentoo带来的自由快感吧!
如果你需要的是一个服务器系统,而且你已经非常厌烦各种Linux的配置,只是想要一个比较稳定的服务器系统而已,那么你最好的选择就是CentOS了,安装完成后,经过简单的配置就能提供非常稳定的服务了。
如果你需要的是一个坚如磐石的非常稳定的服务器系统,那么你的唯一选择就是FreeBSD。
如果你需要一个稳定的服务器系统,而且想深入摸索一下Linux的各个方面的知识,想自己定制许多内容,那么我推荐你使用Gentoo。
通俗的解释内核版本和发行版本的区别
内核是系统核,发行版是每个社团增加了外围资源(比如用户界面,系统安装,程序更新),所以各发行版的内核可以一致,但发行版采取的各种用户应用方式可能不同。