当前位置:文档之家› Linux的版本与内核

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 寄存器)。

相关主题