Linux的版本与内核
- 格式:doc
- 大小:31.50 KB
- 文档页数:5
linux的版本分为两类:内核版本和发行版本。
内核版本是指linux的传世人linus领导的开发小组所开发的操作系统内核的版本号,如2.4.20.通常在内核版本号之后还会附加一个数字,如2.4.20-8,最后的数字用来表示该版本内核是第几次被修订的。
linux的内核版本号是由3部分组成:主版本号,次版本号,次次版本号。
如内核版本2.4.20,2是主版本号,4是次版本号,20是次次版本号。
当内核有重大改动时,主版本号会加1;当内核只是小改动,如加入一些新的特性,支持更多的硬件,次版本号会加1;次次版本号的增加只表示内核有轻微的改动,对内核的影响很小。
次版本号为奇数表示该版本是测试版,可能不是很稳定,若为偶数则表示是个稳定版本,普通用户可以放心使用。
如2.4、2.6是稳定版本,而2.5、2.7是开发中的测试版本。
内核只是实现了操作系统最关键的部分,只有在此基础上提供用户界面,增加一些应用软件,一般用户才能方便使用它。
一些公司或组织将linux内核和常用的应用软件包装起来,并提供安装界面和管理工具,这样就形成了linux的发行版本。
发行本版本经过了严格的测试,而且还加入了一些常用的应用软件(如字处理软件、播放器)和开发工具(如gcc、gdb)。
序言由于开发环境需要在linux-2.6内核上进行,于是准备对我的虚拟机上的Linux系统升级。
没想到这一弄就花了两天时间(反复装系统,辛苦啊~~),总算把Linux系统从2.4.20-8内核成功升级到了2.6.18内核。
网上虽然有很多介绍Linux内核升级的文章,不过要么过时,下载链接失效;要么表达不清,不知所云;更可气的是很多文章在转载过程中命令行都有错误。
刚开始我就是在这些“攻略”的指点下来升级的,以致于浪费了很多时间。
现在,费尽周折,升级成功,心情很爽,趁性也来写个“升级攻略”吧!于是特意又在虚拟机上重新安装一个Linux系统,再来一次完美的升级,边升级边记录这些步骤,写成一篇Linux内核升级记实录(可不是回忆录啊!),和大家一起分享~~!一、准备工作首先说明,下面带#号的行都是要输入的命令行,且本文提到的所有命令行都在终端里输入。
启动Linux系统,并用根用户登录,进入终端模式下。
1、查看Linux内核版本# uname -a如果屏幕显示的是2.6.x,说明你的已经是2.6的内核,也用不着看下文了,该干什么干什么去吧!~~~如果显示的是2.4.x,那恭喜你,闯关通过,赶快进行下一步。
2、下载2.6内核源码下载地址:/pub/linux/kernel/v2.6/linux-2.6.18.tar.bz23、下载内核升级工具(1)下载module-init-tools-3.2.tar.bz2/pub/linux/utils/kernel/module-init-tools/module-init-tools-3.2.tar.bz2(2)下载mkinitrd-4.1.18-2.i386.rpm/fedora/linux/3/i386/RPMS.core/mkinitrd-4.1.18-2.i386.rpm(3)下载lvm2-2.00.25-1.01.i386.rpm/fedora/linux/3/i386/RPMS.core/lvm2-2.00.25-1.01.i386.rpm(4)下载device-mapper-1.00.19-2.i386.rpm/fedora/linux/3/i386/RPMS.core/device-mapper-1.00.19-2.i386.rpm(2.6.18内核和这4个升级工具我都有备份,如果以上下载地址失效,请到/guestbook留下你的邮箱,我给你发过去)好啦,2.6内核和4个升级工具都下载完了(少一个也不行,如果没有下载齐全,请不要尝试下面的步骤,升级是不会成功的),下面回到Linux系统中开始配置工作吧。
linux内核命名规则Linux内核是开源操作系统Linux的核心组件,负责管理计算机的硬件资源,并提供了许多系统调用和服务,以及各种设备驱动程序。
内核的命名规则是指在每个内核版本发布时,都会有一个特定的名称与之对应。
本文将介绍Linux内核命名规则及其背后的故事。
Linux内核的命名规则遵循一定的模式,通常由两个或三个部分组成:主版本号、次版本号和修订版本号。
例如,Linux内核的一个版本号可以是5.4.3,其中5是主版本号,4是次版本号,3是修订版本号。
这个命名规则的目的是为了方便用户识别和区分不同的内核版本。
内核的主版本号通常只在有重大变化或突破性的更新时才会增加,而次版本号则表示一些较小的功能性改进和更新。
修订版本号则用于修复一些bug和安全漏洞,并提供性能优化。
通过这种命名规则,用户可以根据版本号来判断内核的新旧程度和功能改进情况。
除了版本号之外,Linux内核的命名还有一个独特的特点,即每个版本都有一个与之对应的代号。
这些代号通常是由内核的主要开发者之一——林纳斯·托瓦兹(Linus Torvalds)来命名的。
这些代号通常是以字母顺序排列的,例如2.6.17版本的代号是“骑士”(Knight),2.6.24版本的代号是“爱莎”(Elvira)。
这些代号的选择并没有特定的规则,通常是林纳斯根据自己的喜好和兴趣来决定的。
有时,这些代号可能与一些有趣的事物或人物相关联,例如2.6.20版本的代号是“怀旧”(Valhalla),是因为林纳斯喜欢玩一款名为“怀旧”(Valhalla)的电子游戏。
而有些代号则是纯粹的幽默和调侃,例如2.6.29版本的代号是“凯特琳”(Kitten),是为了取悦他的女儿。
除了版本号和代号之外,Linux内核的命名还有一些特殊的规则和限制。
首先,每个代号只能在一个版本中使用一次,以确保每个版本的代号都是独一无二的。
其次,代号必须是以字母开头的英文单词,以避免与数字或其他特殊字符产生冲突。
linux版本发展史Linux是一种自由、开放源代码的操作系统,最早的Linux版本发展可以追溯到1991年,这一年,芬兰的一位程序员Linus Torvalds开始将他的程序公开发布,从此,Linux进入了一个长久的发展历程。
1991年第一个Linux版本发布:Linux 0.011991年,Linus Torvalds在Helsinki University开始开发出Linux,并在同年9月份发布了第一个版本Linux 0.01。
这个版本具有非常小的内核,只有10个文件,能够支持8086处理器,并能够在AT机上运行。
1992年:进入GNU计划并发布版本0.121992年初,Linus加入了Richard Stallman领导的GNU计划,开始把Linux与GNU项目合并,从而成为自由软件的象征之一。
同年8月,Linus Torvalds发布了Linux 0.12版本,这个版本增加了对386处理器的支持,同时还添加了对多个tty的支持。
1993年:采用了GPL1993年,Linus Torvalds决定将Linux采用GNU通用公共许可证(GPL),这意味着Linux源代码可以免费使用和分发,并允许其他人对其进行修改和分发。
这个决定使得Linux成为了一种可持续、稳定的项目。
1994年3月,Linux 1.0版本正式发布。
这个版本带来了很多改进,例如支持了网络协议等,并在台式机和服务器上得到了广泛应用。
此外,这个版本也诞生了很多开源社区,例如Linux User Group(LUG)等。
1996年:X Window系统集成1996年,Linux开始集成X Window系统,这使得Linux操作系统有了一个漂亮的图形化界面,大大提升了用户体验。
1998年:Red Hat和Debian诞生1998年,Red Hat和Debian分别成立,并开始提供Linux服务器和桌面操作系统等,这标志着Linux开始向商业化、专业化方向发展,并且Linux的安全性和稳定性也得到了极大的提升。
命令行查看Linux的系统版本和内核版本以及机器字长Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
这篇文章主要介绍了命令行查看Linux的系统版本和内核版本以及机器字长,是一些Linux入门学习中的基础命令,需要的朋友可以参考下方法技巧查看Linux版本1. lsb_release -a (适用于所有linux)复制代码代码如下:LSB Version: :base-4.0-ia32:base-4.0-noarch:core-4.0-ia32:core-4.0-noarch:graphics-4.0-ia32:graphics-4.0-noarch:printing-4.0-ia32:printing-4.0-noarchDstributor ID: CentOSDescription: CentOS release 6.5 (Final)Release: 6.5Codename: Final注意:如果提示“-bash: lsb_release: command not found” ,就需要手动安装 lsb_release 命令。
使用 yum install -y redhat-lsb 以下方法适用于RedHat , CentOS复制代码代码如下:#cat /etc/redhat-releaseCentOS release 6.5 (Final)或者通过查看软件包名来看查看系统版本redhat执行:复制代码代码如下:#rpm -q redhat-releasecentos执行;复制代码代码如下:# rpm -q centos-releasecentos-release-6-5.el6.centos.11.2.i686查看linux内核版本:1. uname -a复制代码代码如下:Linux default.hostname 2.6.32-042stab094.8 #1 SMP Tue Dec 16 20:36:56 MSK 2014 i686 i686 i386 GNU/Linux或者直接用-r 参数复制代码代码如下:uname -r2.6.32-042stab094.82. cat /proc/version复制代码代码如下:Linux version 2.6.32-042stab094.8 (root@kbuild-rh6-x64) (gcc version 4.4.6 20120305 (Red Hat 4.4.6-4) (GCC) ) #1 SMP Tue Dec 16 20:36:56 MSK 2014查看系统位数(查看机器字长)1..直接看看有没有/lib64 目录。
linux内核版本命名规则
Linux内核版本号格式为X.Y.Z,其中X表示主版本号,Y表示副版本号,Z表示修正版本号。
以下是Linux内核版本号的命名规则:
1. 主版本号:代表Linux内核的大版本更新,当Linux内核有较大的结构改变时,主版本号发生改变,且通常会带来不兼容的API变化。
2. 副版本号:代表Linux内核的次要版本,当Linux内核有较小的结构改变和部分新功能添加时,副版本号发生改变。
3. 修正版本号:代表Linux内核的修正版本,主要用于修复已知的技术问题和漏洞,通常不包括新的功能特性。
例如,Linux内核版本号为2.6.32-696.18.7.el6.x86_64,其中2是主版本号,6是副版本号,32是修正版本号。
特殊的,最高位的数字为偶数代表稳定版,最高位数字为奇数代表开发版。
linux操作系统版本查看命令在windows下我们查看系统信息直接右击电脑属性就可以查看了.那么在Linux系统中如何查看呢.下面大家与店铺一起来学习一下linux 操作系统版本的查看命令吧。
linux操作系统版本查看命令一.查看内核版本命令:1) [root@SOR_SYS ~]# cat /proc/versionLinux version 2.6.18-238.el5 (mockbuild@) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-50)) #1 SMP Sun Dec 19 14:22:44 EST 2010[root@SOR_SYS ~]#2)[root@SOR_SYS ~]# uname -r2.6.18-238.el53)[root@SOR_SYS ~]# uname -aLinux SOR_ 2.6.18-238.el5 #1 SMP Sun Dec 19 14:22:44 EST 2010 x86_64 x86_64 x86_64 GNU/Linux[root@SOR_SYS ~]#二.查看linux版本:1) 登录到服务器执行 lsb_release -a ,即可列出所有版本信息,例如:[root@SOR_SYS ~]# lsb_release -aLSB Version: :core-4.0-amd64:core-4.0-ia32:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-ia32:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-ia32:printing-4.0-noarchDistributor ID: RedHatEnterpriseASDescription: Red Hat Enterprise Linux AS release 4 (Nahant Update 4)Release: 4Codename: NahantUpdate4[root@SOR_SYS ~]#注:这个命令适用于所有的linux,包括Redhat、SuSE、Debian 等发行版。
linux下如何查看系统和内核版本1. 查看内核版本命令: 1) [root@q1test01 ~]# cat /proc/version Linux version 2.6.9-22.ELsmp (bhcompile@) (gcc version 3.4.4 20050721 (Red Hat 3.4.4-2)) #1 SMP Mon Sep 19 18:00:54 EDT 2005 2) [root@q1test01 ~]# uname -a Linux q1test01 2.6.9-22.ELsmp #1 SMP Mon Sep 19 18:00:54 EDT 2005 x86_64 x86_64 x86_64 GNU/Linux 3) [root@q1test01 ~]# uname -r 2.6.9-22.ELsmp2.查看linux的版本主要有三种⽅法:1) 登录到服务器执⾏ lsb_release -a ,即可列出所有版本信息,例如:[root@3.5.5Biz-46 ~]# lsb_release -aLSB Version: 1.3Distributor ID: RedHatEnterpriseASDescription: Red Hat Enterprise Linux AS release 4 (Nahant Update 1)Release: 4Codename: NahantUpdate1[root@3.5.5Biz-46 ~]#这个命令适⽤于所有的linux,包括Redhat、SuSE、Debian等发⾏版。
2) 登录到linux执⾏cat /etc/redhat-release ,例如如下:[root@3.5.5Biz-46 ~]# cat /etc/redhat-releaseRed Hat Enterprise Linux AS release 4 (Nahant Update 1)[root@3.5.5Biz-46 ~]#这种⽅式下可以直接看到具体的版本号,⽐如 AS4 Update 13)登录到linux执⾏rpm -q redhat-release ,例如如下[root@3.5.5Biz-46 ~]# rpm -q redhat-releaseredhat-release-4AS-2.4[root@3.5.5Biz-46 ~]#这种⽅式下可看到⼀个所谓的release号,⽐如上边的例⼦是2.4这个release号和实际的版本之间存在⼀定的对应关系,如下:redhat-release-3AS-1 -> Redhat Enterprise Linux AS 3redhat-release-3AS-7.4 -> Redhat Enterprise Linux AS 3 Update 4redhat-release-4AS-2 -> Redhat Enterprise Linux AS 4redhat-release-4AS-2.4 -> Redhat Enterprise Linux AS 4 Update 1redhat-release-4AS-3 -> Redhat Enterprise Linux AS 4 Update 2redhat-release-4AS-4.1 -> Redhat Enterprise Linux AS 4 Update 3redhat-release-4AS-5.5 -> Redhat Enterprise Linux AS 4 Update 4注意:第(2)(3)两种⽅法只对Redhat Linux有效。
Linux 系统⽤户态和内核态Unix/Linux 的体系架构如上图所⽰,从宏观上来看,Linux 操作系统的体系架构分为⽤户态和内核态(或者⽤户空间和内核空间)。
内核从本质上看是⼀种软件-----控制计算机的硬件资源,并提供上层应⽤程序运⾏的环境。
⽤户态即上层应⽤程序的活动空间,应⽤程序的执⾏必须依托于内核提供的资源,包括CPU 资源、存储资源、I/O 资源等。
为了使上层应⽤能够访问到这些资源,内核必须为上层应⽤提供访问的接⼝:。
简单来说::运⾏在内核空间的进程的状态:运⾏在⽤户空间的进程的状态系统调⽤是操作系统的最⼩功能单位,这些系统调⽤根据不同的应⽤场景可以进⾏扩展和裁剪,现在各种版本的Unix 实现都提供了不同数量的系统调⽤,如Linux 的不同版本提供了240-260个系统调⽤,FreeBSD ⼤约提供了320个。
我们可以把系统调⽤看成是⼀种不能再化简的操作(类似于原⼦操作,但是不同概念),有⼈把它⽐作⼀个汉字的⼀个“笔画”,⽽⼀个“汉字”就代表⼀个上层应⽤,我觉得这个⽐喻⾮常贴切。
⼀个汉字有很多笔画组成,因此有时候如果要实现⼀个完整的汉字就必须调⽤很多的系统调⽤。
这有时是⼀件很崩溃的事情,⽐如说这个字,你可能认识,但是有⼏个⼈会写呢?:系统调⽤的封装应⽤程序直接使⽤系统调⽤,这势必会加重程序员的负担,良好的程序设计⽅法是:重视上层的业务逻辑操作,⽽尽可能避免底层复杂的实现细节。
那么有没有优化空间呢?库函数正是为了将程序员从复杂的细节中解脱出来⽽提出的⼀种有效⽅法。
它实现对系统调⽤的封装,将简单的业务逻辑接⼝呈现给⽤户,⽅便⽤户调⽤,从这个⾓度上看,库函数就像是组成汉字的“偏旁”。
这样的⼀种组成⽅式极⼤增强了程序设计的灵活性,对于简单的操作,我们可以直接调⽤来访问资源,如“⼈”;对于复杂操作,我们借助于来实现,如“仁”。
库函数依据不同的标准也可以有不同的实现版本,如ISOC 标准库,POSIX 标准库等。
浅析服务器操作系统及Linux系统各版本介绍 现代⼈没有不知道电脑的,也都知道电脑需要装系统,没有系统电脑就是⼀个废旧破壳,⼀堆塑料废品,有了系统后就可以做许多事情,⽐如安装各种软件,⽤于办公、娱乐、学习等。
系统对于电脑就像你买的房⼦⾥要通上⽔电⽓,没有⽔电⽓,就没法⽣活。
服务器就是另⼀种电脑,或者说是服务于电脑的电脑,所以它也需要系统,他的系统⼀般有别于电脑系统,更适合企业服务。
⼀、服务器操作系统分类 第⼀类就是uinx系统,⽀持⼩型计算机的分时操作系统,最后却成为客户⼀服务器环境中最流⾏的服务器操作系统之⼀。
是在C语⾔环境下编写的系统,⽀持许多不同的平台,拓然性较强,⽬前服务器⽤的不是太多。
第⼆类就是linux系统,是在unix系统基础上开源开发出来的⼀个系统版本,除了有unix的所有功能,还有⼀些其他功能,开放性较强,⽀持多⽤户、多进程、多线程,实时性较好,功能强⼤⽽稳定,应⽤范围⼴阔,在其下⾯⼜分为centOS、Redhat、Ubuntu都属于linux系统。
⽤在⽹站、游戏、软件的场景⽐较多,安全性较强。
懂开发的程序员⼀般喜欢⽤这类系统。
第三类NetWare系统,基于服务器的⽹络操作系统,要求⽹络中必须有⼀台专门服务器,在早期的计算机⽹络中NetWare操作系统应⽤⽐较普遍。
⽬前⽤户使⽤相对⽐较少。
第四类windows系统,家⽤⼀般都⽤windows系统,只是版本不同,服务器⽤的⼀般是windows sever,⼀般有windows2003,windows2008数据中⼼版和企业版,windows2012,windows2016,windows2019等,还有⼏个版本是服务器和家⽤电脑都可以使⽤的,⽐如windows7,windows10。
可以根据⾃⼰的业务需求,选择适合你的系统,⼀般⽹站不建议⽤win系统,建议linux系统,如果认为linux系统代码不⽅便,可以使⽤宝塔,安装宝塔后,linux系统跟win系统⼀样有明确的界⾯,操作⽅便简单。
Linux内核简介、版本号与发布历史一.Linux内核简介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内核组成部分:进程管理(process management)、定时器(timer)、中断管理(interrupt management)、内存管理(memory management)、模块管理(module management)、虚拟文件系统接口(VFS layer)、文件系统(file system)、设备驱动程序(device driver)、进程间通信(inter-process communication)、网络管理(network management)、系统启动(system init)等操作系统功能的实现。
二.Linux内核版本号第一种方式:内核是一个用来和硬件打交道并为用户程序提供一个有限服务集的低级支撑软件。
Linux内核版本介绍与查询-------转发⾃Linux内核版本命名在不同时期有着不同的规范,在涉及到Linux版本问题时经常容易混淆,主线版本/稳定版/长期⽀持版本经常搞不清楚,本⽂主要记录下内核版本命名的规则以及如何查看Linux系统版本信息。
1|0Linux内核(Linux kernel)简介内核是操作系统的核⼼,其主要功能有:1.响应中断,执⾏中断服务程序2.管理多个进程,调度和分享处理器的时间3.管理进程地址空间的内存管理4.⽹络和进程间通信等系统服务程序内核的活动范围:1.运⾏于⽤户空间,执⾏⽤户进程2.运⾏于内核空间,处于进程上下⽂,代表某个特定进程的执⾏3.运⾏于内核空间,处于中断上下⽂,与任何进程⽆关,处理某个特定的中断2|0Linux内核版本号第⼀种⽅式:Linux 的版本号分为两部分,即内核版本与发⾏版本。
内核版本号由3个数字组成:A.B.C。
各数字含义如下:A:内核主版本号。
这是很少发⽣变化,只有当发⽣重⼤变化的代码和内核发⽣才会发⽣。
在历史上曾改变两次的内核:1994年的1.0及1996年的2.0。
B:内核次版本号。
是指⼀些重⼤修改的内核。
偶数表⽰稳定版本;奇数表⽰开发中版本。
C:内核修订版本号。
是指轻微修订的内核。
这个数字当有安全补丁,bug修复,新的功能或驱动程序,内核便会有变化。
第⼆种⽅式:major.minor.patch-build.descmajor : 主版本号,有结构变化才变更 minor : 次版本号,新增功能时才发⽣变化,⼀般技术表⽰测试版,偶数表⽰⽣产版 patch : 补丁包数或次版本的修改次数 build : 编译(或构建)的次数,每次编译可能对少量程序做优化或修改,但⼀般没有⼤的(可控的)功能变化。
desc :当前版本的特殊信息,其信息由编译时指定,具有较⼤的随意性,有如下的标识是常⽤的: rc(或r),表⽰发⾏候选版本(release candidate),rc后的数字表⽰该正式版本的第⼏个候选版本,多数情况下,各候选版本之间数字越⼤越接近正式版。
【linux杂谈】查看centOS系统的版本号和内核号
因为种种原因,我们通常需要查看centOS系统的版本号和内核号。
这⾥以centOS 6为切⼊点,展⽰了⼏种查看版本号和内核号的⽅法,同时也验证了其在centOS 7上的可⾏性。
⼀、centOS 6上查看版本号和内核号的⽅法
通过实验可知,在centOS 6.8的系统环境下,分别可以⽤下列三种⽅法查看系统的版本信息
cat /etc/issue
lsb_release -a
cat /etc/redhat-release (本⼈最常⽤)
但是例如docker的环境要求的是linux的内核版本信息,我们还得需要其他的命令。
通过实验可知,在centOS 6.8的环境下,下列命令可⽤
cat /proc/version
uname -a
那么,在centOS 7环境下,上述指令还能得到很好的运⾏吗?
⼆、centOS 7环境下上述指令的运⾏情况
我们可以看到,在系统版本显⽰这⼀块,只有cat /etc/redhat-release命令可⽤,但是内核版本查看⽅⾯,上述两条命令均有⽤。
三、感悟与总结
我们可以通过针对cat /etc/redhat-release同时查看centos 6&7的版本信息,针对该命令编写的脚本可以双环境同时应⽤。
其他⼤型脚本判定系统版本的时候,我个⼈也推荐采取这种命令。
在内核判定⽅⾯,本⼈倾向于使⽤cat /proc/version命令。
但正如你所见,centos 6&7下,两种都是可⾏的。
Linux 内核版本的规则是由四个部分组成的,分别是主版本号、次版本号、修订版本号和其他标识符。
1. 主版本号(Major Version Number):主版本号表示Linux 内核的主要版本,通常用于表示新功能的引入或旧功能的重大改进。
主版本号的变化是相对较小的,通常每两年左右才会进行一次变化。
例如,主版本号为2 表示Linux 内核的第二个主要版本。
2. 次版本号(Minor Version Number):次版本号表示Linux 内核的次要版本,通常用于表示新功能的引入或旧功能的小幅度改进。
次版本号的变化也是相对较小的,通常每年左右才会进行一次变化。
例如,次版本号为6 表示Linux 内核的第六个次要版本。
3. 修订版本号(Revision Number):修订版本号表示Linux 内核的修订版本,通常用于表示一些bug 修复、安全漏洞修补或其他小幅度的改进。
修订版本号的变化是相对较频繁的,通常每周或每月都会进行一次变化。
例如,修订版本号为9 表示Linux 内核的第九个修订版本。
4. 其他标识符(Other Identifier):其他标识符是用来标识Linux 内核的其他信息,如编译器版本、构建日期等等。
这些标识符通常是由开发者自行添加的,并不是固定的。
Linux 内核的版本号规则是由Linus Torvalds 在1994 年首次提出的,至今已经经历了多次变化和演进。
这些变化包括主版本号、次版本号和修订版本号的增加,以及其他标识符的添加等等。
五年26个版本!Linux内核版本的“武林大会”从2005年年中的2.6.12,到正在开发中的2.6.37,五年多来共有26个Linux内核版本,本文详细的对这26个内核版本进了性能测试,包括对于系统文件以及系统中各种应用的测试。
本文带领大家回顾了Linux内核5年来的发展历程,希望大家在这些评测中更加了解Linux内核的相关知识。
今天将他们对Linux系统的研究发挥到了极致:从2005年年中的2.6.12,到正在开发中的2.6.37,五年多来的26个Linux内核版本来了个“群英荟萃”!完成如此庞大规模的横评并不容易,因为每个版本都要跑二十多个测试项目,每个项目又得跑至少三到五遍,总计超过2500次。
好在一方面有自动测试套装Phoronix Test Suite,另一方面还有飞快的Intel Core i7-970六核心处理器。
Linux 2.6.12版本内核的时候,操作系统还是Ubuntu 5.10、SuSE 9.3、Fedora Core 4、Mandrake 2006这些老古董,而最终选择的基准系统是Fedora Core 4,并将其放在Ubuntu 10.10 64位系统下的虚拟机内。
最新的2.6.37版本尚未发布正式版,本次测试使用的是2010-10-31 Git snapshot。
至于2.6.12之前的更老版本,GCC4编译器和它们无法并存,故而没有加入此番测试。
测试平台的其他硬件配置还有:华擎X58 SuperComputer主板、3GB DDR3内存、OCZ Vertex 64GB固态硬盘、GeForce GTX 460显卡。
Linux系统内核这26个版本的具体发布时间依次如下:1. 2.6.12-2005.6.172. 2.6.13-2005.8.293. 2.6.14-2005.10.174. 2.6.15-2006.1.35. 2.6.16-2006.3.206. 2.6.17-2006.6.177. 2.6.18-2006.9.208. 2.6.19-2006.11.299. 2.6.20-2007.2.510.2.6.21-2007.4.2511.2.6.22-2007.7.812.2.6.23-2007.10.913.2.6.24-2008.1.2414.2.6.25-2008.4.1715.2.6.26-2008.7.1316.2.6.27-2008.10.917.2.6.28-2008.12.2518.2.6.29-2009.3.2319.2.6.30-2009.6.920.2.6.31-2009.9.921.2.6.32-2009.12.322.2.6.33-2010.2.2423.2.6.34-2010.5.1624.2.6.35-2010.8.125.2.6.36-2010.10.2026.2.6.37-(开发中)下面就是对各个版本的Linux内核进行的评测。
Linux的版本与内核Linux有两种版本,一个是核心(kernel)版,一个是发行(distribution)版。
核心版的序号由三部分数字构成,其形式为:major.minor.patchlevel,其中,majoro为主版本号,minor为次版本号,二者共同构成了当前核心版本号。
patchlevel表示对当前版本的修订次数。
例如,2.2.11表示对核心作用2.2 版本的第11次修订。
根据约定,次版本号为奇数时,表示该版本加入新内容,但不一定稳定,相当于测试版;次版本号为偶数时,表示这是一个可以使用的稳定版本。
鉴于Linux内核开发工作的连续性,内核的稳定版本与在此基础上进一步开发的不稳定版本总是同时存在的。
建议采用稳定的核心版本。
Linux的内核具有两种不同的版本号,实验版本和产品化版本。
要确定LINUX版本的类型,只要查看一下版本号:每一个版本号由三位数字组成,第二位数字说明版本类型。
如果第二位数字是偶数则说明这种版本是产品化版本,如果是奇数说明是实验版本。
如2.6.20是产品化版本,2.6.16是实验版本。
LINUX的两种版本是相互关联的。
实验版本最初是产品化产品的拷贝,然后产品化版本只修改错误,实验版本继续增加新功能,到实验版本测试证明稳定后拷贝成新的产品化版本,不断循环,这样一方面可以方便广大软件人员加入到LINUX的开发和测试工作中来,另一方面又可以让一些用户使用上稳定的LINUX版本。
真是做到开发和实用两不误。
现在LINUX的内核的最新版本是2.6.20。
Linux内核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不是微内核(microkernel)架构的事实曾经引起了Linus Torvalds与Andy Tanenbaum之间一场著名的争论。
Linux内核简史操作系统是一个用来和硬件打交道并为用户程序提供一个有限服务集的低级支撑软件。
一个计算机系统是一个硬件和软件的共生体,它们互相依赖,不可分割。
计算机的硬件,含有外围设备、处理器、内存、硬盘和其他的电子设备组成计算机的发动机。
但是没有软件来操作和控制它,自身是不能工作的。
完成这个控制工作的软件就称为操作系统,在Linux 的术语中被称为“内核”,也可以称为“核心”。
Linux内核的主要模块(或组件)分以下几个部分:存储管理、CPU和进程管理、文件系统、设备管理和驱动、网络通信,以及系统的初始化(引导)、系统调用等。
一般地,可以从Linux内核版本号来区分系统是否是Linux稳定版还是测试版。
以版本2.4.0为例,2代表主版本号,4代表次版本号,0代表改动较小的末版本号。
在版本号中,序号的第二位为偶数的版本表明这是一个可以使用的稳定版本,如2.2.5,而序号的第二位为奇数的版本一般有一些新的东西加入,是个不一定很稳定的测试版本,如2.3.1。
这样稳定版本来源于上一个测试版升级版本号,而一个稳定版本发展到完全成熟后就不再发展。
Linux最早是由芬兰人Linus Torvalds设计的。
当时由于UNIX的商业化,Andrew Tannebaum 教授开发了Minix操作系统以便于不受AT&T许可协议的约束,为教学科研提供一个操作系统。
当时发布在Internet 上,免费给全世界的学生使用。
Minix具有较多UNIX的特点,但与UNIX不完全兼容。
1991年10月5日,Linus为了给Minix用户设计一个比较有效的UNIX PC 版本,自己动手写了一个“类Minix”的操作系统。
整个故事从两个在端终上打印AAAA...和BBBB...的进程开始的,当时最初的内核版本是 0.02。
Linus Torvalds将它发到了Minix 新闻组,很快就得到了反应。
Linus Torvalds在这种简单的任务切换机制上进行扩展,并在很多热心支持者的帮助下开发和推出了Linux的第一个稳定的工作版本。
1991年11月,Linux0.10版本推出,0.11版本随后在1991年12月推出,当时将它发布在Internet上,免费供人们使用。
当Linux非常接近于一种可靠的/稳定的系统时,Linus决定将0.13版本称为0.95版本。
1994年3月,正式的Linux 1.0出现了,这差不多是一种正式的独立宣言。
截至那时为止,它的用户基数已经发展得很大,而且Linux的核心开发队伍也建立起来了。
核心的开发和规范一直是由Linux社区控制着,版本也是唯一的。
实际上,操作系统的内核版本指的是在Linus本人领导下的开发小组开发出的系统内核的版本号。
自1994年3月14日发布了第一个正式版本Linux 1.0以来,每隔一段时间就有新的版本或其修订版公布。
Linus将标准的GNU许可协议改称Copyleft,以便与Copyright相对照。
通用的公共许可(GPL)允许用户销售、拷贝和改变具有 Copyleft的应用程序。
当然这些程序也可以是Copyright的,但是你必须允许进一步的销售、拷贝和对其代码进行改变,同时也必须使他人可以免费得到修改后的源代码。
事实证明,GPL对于Linux的成功起到了极大的作用。
它启动了一个十分繁荣的商用Linux阶段,还为编程人员提供了一种凝聚力,诱使大家加入这个充满了慈善精神的Linux运动。
Linux内核的发展过程中,我们还不得不提一下各种Linux发行版的作用,因为正是它们推动了Linux的应用,从而也让更多的人开始关注 Linux。
一些组织或厂家,将Linux 系统的内核与外围实用程序(Utilities)软件和文档包装起来,并提供一些系统安装界面和系统配置、设定与管理工具,就构成了一种发行版本(distribution),Linux的发行版本其实就是Linux核心再加上外围的实用程序组成的一个大软件包而已。
相对于Linux操作系统内核版本,发行版本的版本号随发布者的不同而不同,与Linux系统内核的版本号是相对独立的。
因此把SUSE、 RedHat、Ubuntu、Slackware等直接说成是Linux是不确切的,它们是Linux的发行版本,更确切地说,应该叫做“以Linux为核心的操作系统软件包”。
根据GPL准则,这些发行版本虽然都源自一个内核,并且都有自己各自的贡献,但都没有自己的版权。
Linux的各个发行版本 (distribution),都是使用Linus主导开发并发布的同一个Linux内核,因此在内核层不存在什么兼容性问题。
每个版本都不一样的感觉,只是在发行版本的最外层才有所体现,而绝不是Linux本身特别是内核不统一或是不兼容。
90年代初期Linux开始出现的时候,仅仅是以源代码形式出现,用户需要在其他操作系统下进行编译才能使用。
后来出现了一些正式版本。
目前最流行的几个正式版本有:SUSE、RedHat、Fedora、UbuntuLinux 内核简介现在让我们从一个比较高的高度来审视一下 GNU/Linux 操作系统的体系结构。
GNU C Library (glibc)也在这里。
它提供了连接内核的系统调用接口,还提供了在用户空间应用程序和内核之间进行转换的机制。
这点非常重要,因为内核和用户空间的应用程序使用的是不同的保护地址空间。
每个用户空间的进程都使用自己的虚拟地址空间,而内核则占用单独的地址空间。
更多信息,请参看参考资料一节中的链接。
Linux 内核可以进一步划分成 3 层。
最上面是系统调用接口,它实现了一些基本的功能,例如 read 和 write。
系统调用接口之下是内核代码,可以更精确地定义为独立于体系结构的内核代码。
这些代码是 Linux 所支持的所有处理器体系结构所通用的。
在这些代码之下是依赖于体系结构的代码,构成了通常称为 BSP(Board Support Package)的部分。
这些代码用作给定体系结构的处理器和特定于平台的代码。
Linux 内核的属性在讨论大型而复杂的系统的体系结构时,可以从很多角度来审视系统。
体系结构分析的一个目标是提供一种方法更好地理解源代码,这正是本文的目的。
Linux 内核实现了很多重要的体系结构属性。
在或高或低的层次上,内核被划分为多个子系统。
Linux 也可以看作是一个整体,因为它会将所有这些基本服务都集成到内核中。
这与微内核的体系结构不同,后者会提供一些基本的服务,例如通信、I/O、内存和进程管理,更具体的服务都是插入到微内核层中的。
每种内核都有自己的优点,不过这里并不对此进行讨论。
随着时间的流逝,Linux 内核在内存和 CPU 使用方面具有较高的效率,并且非常稳定。
但是对于 Linux 来说,最为有趣的是在这种大小和复杂性的前提下,依然具有良好的可移植性。
Linux 编译后可在大量处理器和具有不同体系结构约束和需求的平台上运行。
一个例子是 Linux 可以在一个具有内存管理单元(MMU)的处理器上运行,也可以在那些不提供 MMU 的处理器上运行。
Linux 内核的 uClinux 移植提供了对非 MMU 的支持。
Linux 内核的主要子系统现在简要说明 Linux 内核的主要组件。
系统调用接口SCI 层提供了某些机制执行从用户空间到内核的函数调用。
正如前面讨论的一样,这个接口依赖于体系结构,甚至在相同的处理器家族内也是如此。
SCI 实际上是一个非常有用的函数调用多路复用和多路分解服务。
在 ./linux/kernel 中您可以找到 SCI 的实现,并在 ./linux/arch 中找到依赖于体系结构的部分。
进程管理进程管理的重点是进程的执行。
在内核中,这些进程称为线程,代表了单独的处理器虚拟化(线程代码、数据、堆栈和 CPU 寄存器)。