Linux版本

linux版本分为两类:

  • 内核版本:免费的,它只是操作系统的核心,负责控制硬件、管理文件系统、程序进程等,并不给用户提供各种工具和应用软件;
  • 发行版本:不一定免费,出了操作系统核心外,还包含一套强大的软件,例如:C/C++编译器和库等

1、内核版本:

1.1)内核版本命名:

Linux内核版本号由3组数字组成:第一个组数字.第二组数字.第三组数字

  • 第一个组数字:目前发布的内核主版本。
  • 第二个组数字:偶数表示稳定版本;奇数表示开发中版本。
  • 第三个组数字:错误修补的次数。

可以使用uname -r 查看内核版本号,例如:2.6.32-754.2.1.el6.x86_64

  • 第一个组数字: 2 , 主版本号
  • 第二个组数字: 6 , 次版本号,表示稳定版本(因为有偶数)
  • 第三个组数字: 32 , 修订版本号 ,表示修改的次数。
  • 第四个组数字: 754.2.1,表示发型版本的补丁版本,这里是 CentOS 6.10 。
  • el6 则表示我正在使用的内核是 RedHat / CentOS 系列发行版专用内核;x86_64 表示64位cpu。

除了前面的版本号外,最后的有多种,例如:2.6.32-358.6.1.el6.i686、2.6.18-128.ELsmp、2.6.32-642.el6.x86_64

  • EL : Enterprise Linux ;
  • ELsmp:指出了当前内核是为EL特别调校的,其中smp : 表示支持多处理器 , 表示该内核版本支持多处理器;
  • i386:几乎任何的X86平台,不论是旧的pentum或是新的pentum-IV和K7系统CPU,都能够正常工作,i指得是Intel兼容的CPU,至于386就是CPU的等级;
  • i586:就是586等级的电脑,包括pentum第一代MMX CPU,AMD的K5,K6系统CPU(socket7插脚)等CPU都是这个等级;
  • i686:pentum 2 以后的Intel系统CPU及K7以后等级的CPU都属于这个686等级;
  • x86_64:采用的是64位的CPU;
  • generic:当前内核版本为通用版本,另有表示不同含义的server(针对服务器);
  • pae(Physical Address Extension):物理地址扩展,为了弥补32位地址在PC服务器应用上的不足而推出,表示此32位系统可以支持超过4G的内存

1.2)内核版本历史:

 

linux内核大致分为以下几个阶段:

  • 2.6.0之前版本:
  • 2.6.x版本:2.6 时代跨度非常大,从2.6.0 (2003年12月发布[36]) 到 2.6.39(2011年5月发布), 跨越了 40 个大版本;
  • 3.x.y:3.0(原计划的 2.6.40, 2011年7月发布) 到 3.19(2015年2月发布)
  • 4.x.y:4.0(2015年4月发布)到4.2(2015年8月底发布)
  • 5.x.y:

截止到2021年,很多线上系统仍然使用2.6.x的内核。Linux2.6版本内核发布,与2.4内核版本相比,它在很多方面进行了改进,如支持多处理器配置和64位计算,它还支持实现高效率线和处理的本机POSIX 线程库(NPTL)。实际上,性能、安全性和驱动程序的改进是整个2.6.x 内核的关键。

https://en.wikipedia.org/wiki/Linux_kernel_version_history#Releases_before_2.6.0

2、发行版本:

人们以Linux核心为中心,再集成搭配各种各样的系统管理软件或应用工具软件组成一套完整的操作系统,如此的组合便称为Linux发行版。

Linux的发行版本可以大体分为两类:

  • 一类是商业公司维护的发行版本:以著名的Redhat(REHL)为代表;
  • 一类是社区组织维护的发行版本:以Debian为代表;

 

1)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的稳定性较差,最好只用于桌面应用。

2)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的资 料也很丰富,有很多支持的社区,有问题求教也有地方可去:)

3)Ubuntu严格来说不能算一个独立的发行版本,Ubuntu是基于Debian的unstable版本加强而来,可以这么说,Ubuntu就是 一个拥有Debian所有的优点,以及自己所加强的优点的近乎完美的 Linux桌面系统。根据选择的桌面系统不同,有三个版本可供选择,基于Gnome的Ubuntu,基于KDE的Kubuntu以及基于Xfc的 Xubuntu。特点是界面非常友好,容易上手,对硬件的支持非常全面,是最适合做桌面系统的Linux发行版本。

POSIX标准

POSIX:可移植操作系统接口(英语:Portable Operating System Interface,缩写为POSIX),是IEEE为要在各种UNIX操作系统上运行的软件,而定义API的一系列互相关联的标准的总称,其正式称呼为IEEE 1003,而国际标准名称为ISO/IEC 9945。它基本上是Portable Operating System Interface(可移植操作系统接口)的缩写,而X则表明其对Unix API的传承。

此标准源于一个大约开始于1985年的项目,POSIX这个名称是由理查德•斯托曼应IEEE的要求而提议的一个易于记忆的名称。

这个标准并不是一个强制性或者大家都在使用的标准:

  • Linux基本上逐步实现了POSIX兼容,但并没有参加正式的POSIX认证
  • 微软的Windows NT声称部分实现了POSIX标准。

linux和posix的关系:

linux一些函数的功能与posix标准的一些函数(接口)功能相同,只是签名不同,你可以认为只是改了个名字。如果你使用posix标准的函数,那么你为其它可以使用posix标准的系统写代码,就不用重新修改原来的函数签名,而只需要重新编译(因为实现的代码是不同的)一遍就行了。

GNU和Linux的关系

UNIX操作系统最初是由贝尔实验室开发的,当时的贝尔实验室是电信业巨头AT&T(美国电报电话公司)旗下的一员。在20世纪70年代,unix成为一种非常流行的多用户、多任务操作系统。Unix 系统被发明之后,大家用的很爽,但是后来开始收费和商业闭源了。。。

理查德 · 斯托曼 在 1983年发起GNU计划,其目标是建立完全自由的操作系统GNU,取代Unix。在1985年创建自由软件基金会(FSF),在1989年发布GPL许可协议保护和传播由FSF发布的自由软件。自由软件是权利问题,不是价格问题。要理解这个概念,你应该考虑“free”是“言论自由(free speech)”中的“自由”;而不是“免费啤酒(free beer)”中的“免费”。

GNU(“GNU's Not Unix”的递归首字母缩写词)是一个类Unix操作系统,它是由多个应用程序、系统库、开发工具乃至游戏构成的程序集合。GNU的开发始于1984年1月,称为GNU工程,GNU的许多程序在GNU工程下发布,我们称之为GNU软件包。主要由:

  • GCC:GNU编译器集,它包括GNU C编译器。
  • G++:C++编译器,是GCC的一部分。
  • GDB:源代码级的调试器。
  • GNU make:UNIX make命令的免费版本。
  • Bison:与UNIX yacc兼容的语法分析程序生成器。
  • bash:命令解释器(shell)。
  • GNU Emacs:文本编辑器及环境。

许多其他的软件包也是在遵守自由软件的原则和GPL条款的情况下开发和发行的,包括电子表格、源代码控制工具、编译器和解释器、因特网工具、图形图像处理工具(如Gimp),以及两个完整的基于对象的环境(GNOME和KDE)。有了这么多可用的自由软件,再加上Linux内核,我们可以说:创建一个GNU的、自由的类UNIX系统的目标已经实现了。(GNU早起也有自己的内核,后面选用了Linux)

众所周知,一个完整的通用操作系统至少需要内核、编译套件、shell以及主要应用软件。GUN最初的内核组件Hurd开发于1990年(早于linux),但设计过于复杂进展缓慢。正巧,1991年10月林纳斯·托瓦兹(Linus Torvalds)发布了他的玩具内核源代码,这是他在学习Minix操作系统源码的过程中耗时六个月,用C写出来的POSIX不完整兼容的内核,并将GNU的基础软件Gcc和Bash成功的移植到了上面,这之后大量用户参与开发,并在1994年使用GPL协议发布了Linux 1.0内核。

从此,GNU计划和Linux天衣无缝的、互相弥补的就结合在了一起,成为了完全自由并且完整的操作系统——GNU/Linux。RedHat等以GNU/Linux作为产业的大厂随即出现,大力发展了GNU/Linux,使其变得越来越实用,逐渐取代了Unix操作系统的位置。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐