前段时间到南京出了趟急差,协助团队解决问题。那边电脑操作系统是麒麟系统,当时一位前端的同事对国产化系统不熟悉。今天刚刚想起此时,对国产化系统及常用命令做个总结吧。
说起操作系统首先要从Unix和Linux系统说起。
在目前主流的服务器端操作系统中,UNIX 诞生于 20 世纪 60 年代末,Windows 诞生于 20 世纪 80 年代中期,Linux 诞生于 20 世纪 90 年代初,可以说 UNIX 是操作系统中的"老大哥",后来的 Windows 和 Linux 都参考了 UNIX。
UNIX 操作系统由肯•汤普森(Ken Thompson)和丹尼斯•里奇(Dennis Ritchie)发明。它的部分技术来源可追溯到从 1965 年开始的 Multics 工程计划,该计划由贝尔实验室、美国麻省理工学院和通用电气公司联合发起,目标是开发一种交互式的、具有多道程序处理能力的分时操作系统,以取代当时广泛使用的批处理操作系统。于 1969 年实现了一种分时操作系统的雏形,1970 年该系统正式取名为 UNIX。自 1970 年后,UNIX 系统在贝尔实验室内部的程序员之间逐渐流行起来。
1971-1972 年,肯•汤普森的同事丹尼斯•里奇发明了传说中的C语言,这是一种适合编写系统软件的高级语言,它的诞生是 UNIX 系统发展过程中的一个重要里程碑,它宣告了在操作系统的开发中,汇编语言不再是主宰。到了 1973 年,UNIX 系统的绝大部分源代码都用C语言进行了重写,这为提高 UNIX 系统的可移植性打下了基础(之前操作系统多采用汇编语言,对硬件依赖性强),也为提高系统软件的开发效率创造了条件。可以说,UNIX 系统与C语言是一对孪生兄弟,具有密不可分的关系。
Linux 内核最初是由李纳斯•托瓦兹(Linus Torvalds)在赫尔辛基大学读书时出于个人爱好而编写的,当时他觉得教学用的迷你版 UNIX 操作系统 Minix 太难用了,于是决定自己开发一个操作系统。第 1 版本于 1991 年 9 月发布,当时仅有 10 000 行代码。
UNIX与Linux二者的关系,不是大哥和小弟,"UNIX 是 Linux 的父亲"这个说法更恰当。正因为如此,Linux 与 UNIX 有很多的共通之处,如果你已经熟练掌握了 Linux,那么再上手使用 UNIX 会非常容易。二者也有两个大的区别:
UNIX/Linux 系统可以粗糙地抽象为 3 个层次,如图所示。底层是 UNIX/Linux 操作系统,即系统内核(Kernel);中间层是 Shell 层,即命令解释层;高层则是应用层。
内核层是 UNIX/Linux 系统的核心和基础,它直接附着在硬件平台之上,控制和管理系统内各种资源(硬件资源和软件资源),有效地组织进程的运行,从而扩展硬件的功能,提高资源的利用效率,为用户提供方便、高效、安全、可靠的应用环境。
Shell 层是与用户直接交互的界面。用户可以在提示符下输入命令行,由 Shell 解释执行并输出相应结果或者有关信息,所以我们也把 Shell 称作命令解释器,利用系统提供的丰富命令可以快捷而简便地完成许多工作。
应用层提供基于 X Window 协议的图形环境。X Window 协议定义了一个系统所必须具备的功能(就如同 TCP/IP 是一个协议,定义软件所应具备的功能),可系统能满足此协议及符合 X 协会其他的规范,便可称为 X Window。
现在大多数的 UNIX 系统上(包括 Solaris、HP-UX、AIX 等)都可以运行 CDE (Common Desktop Environment,通用桌面环境,是运行于 UNIX 的商业桌面环境)的用户界面;而在 Linux 上广泛应用的有 Gnome(见下图 )、KDE 等。
X Window 与微软的 Windows 图形环境有很大的区别:
以上内容更多详细可以参考:Linux系统简介
新手往往会被 Linux 众多的发行版本搞得一头雾水,我们首先来解释一下这个问题。
从技术上来说,李纳斯•托瓦兹开发的 Linux 只是一个内核。内核指的是一个提供设备驱动、文件系统、进程管理、网络通信等功能的系统软件,内核并不是一套完整的操作系统,它只是操作系统的核心。一些组织或厂商将 Linux 内核与各种软件和文档包装起来,并提供系统安装界面和系统配置、设定与管理工具,就构成了 Linux 的发行版本。
在 Linux 内核的发展过程中,各种 Linux 发行版本起了巨大的作用,正是它们推动了 Linux 的应用,从而让更多的人开始关注 Linux。因此,把 Red Hat、Ubuntu、SUSE 等直接说成 Linux 其实是不确切的,它们是 Linux 的发行版本,更确切地说,应该叫作“以Linux为核心的操作系统软件包”。
Linux 的各个发行版本使用的是同一个 Linux 内核,因此在内核层不存在什么兼容性问题,每个版本有不一样的感觉,只是在发行版本的最外层(由发行商整合开发的应用)才有所体现。
Linux 的发行版本可以大体分为两类:
很难说大量 Linux 版本中哪一款更好,每个版本都有自己的特点。下面为大家介绍几款常用的 Linux 发行版本。
Red Hat(红帽公司)创建于 1993 年,是目前世界上资深的 Linux 厂商,也是最获认可的 Linux 品牌。
Red Hat 公司的产品主要包括 RHEL(Red Hat Enterprise Linux,收费版本)和 CentOS(RHEL 的社区克隆版本,免费版本)、Fedora Core(由 Red Hat 桌面版发展而来,免费版本)。
Red Hat 是在我国国内使用人群最多的 Linux 版本,资料丰富,如果你有什么不明白的地方,则容易找到人来请教,而且大多数 Linux 教程是以 Red Hat 为例来讲解的(包括本教程)。
本教程以我国国内互联网公司常用的 Linux 发行版本 CentOS 为例讲解,它是基于 Red Hat Enterprise Linux 源代码重新编译、去除 Red Hat 商标的产物,各种操作使用和付费版本没有区别,且完全免费。缺点是不向用户提供技术支持,也不负任何商业责任。有实力的公司可以选择付费版本。
Ubuntu 基于知名的 Debian Linux 发展而来,界面友好,容易上手,对硬件的支持非常全面,是目前最适合做桌面系统的 Linux 发行版本,而且 Ubuntu 的所有发行版本都免费提供。
Ubuntu 的创始人 Mark Shuttleworth 是非常具有传奇色彩的人物。他在大学毕业后创建了一家安全咨询公司,1999 年以 5.75 亿美元被收购,由此一跃成为南非最年轻有为的本土富翁。作为一名狂热的天文爱好者,Mark Shuttleworth 于 2002 年自费乘坐俄罗斯联盟号飞船,在国际空间站中度过了 8 天的时光。之后,Mark Shuttleworth 创立了 Ubuntu 社区,2005 年 7 月 1 日建立了 Ubuntu 基金会,并为该基金会投资 1000 万美元。他说,太空的所见正是他创立 Ubuntu 的精神之所在。如今,他最热衷的事情就是到处为自由开源的 Ubuntu 进行宣传演讲。
SuSE Linux 以 Slackware Linux 为基础,原来是德国的 SuSE Linux AG 公司发布的 Linux 版本,1994 年发行了第一版,早期只有商业版本,2004 年被 Novell 公司收购后,成立了 OpenSUSE 社区,推出了自己的社区版本 OpenSUSE。
SuSE Linux 在欧洲较为流行,在我国国内也有较多应用。值得一提的是,它吸取了 Red Hat Linux 的很多特质。
SuSE Linux 可以非常方便地实现与 Windows 的交互,硬件检测非常优秀,拥有界面友好的安装过程、图形管理工具,对于终端用户和管理员来说使用非常方便。
Gentoo 最初由 Daniel Robbins(FreeBSD 的开发者之一)创建,首个稳定版本发布于 2002 年。Gentoo 是所有 Linux 发行版本里安装最复杂的,到目前为止仍采用源码包编译安装操作系统。
不过,它是安装完成后最便于管理的版本,也是在相同硬件环境下运行最快的版本。自从 Gentoo 1.0 面世后,它就像一场风暴,给 Linux 世界带来了巨大的惊喜,同时也吸引了大量的用户和开发者投入 Gentoo Linux 的怀抱。
有人这样评价 Gentoo:快速、设计干净而有弹性,它的出名是因为其高度的自定制性(基于源代码的发行版)。尽管安装时可以选择预先编译好的软件包,但是大部分使用 Gentoo 的用户都选择自己手动编译。这也是为什么 Gentoo 适合比较有 Linux 使用经验的老手使用。
要注意的是,由于编译软件需要消耗大量的时间,所以,如果你所有的软件都由自己编译,并安装 KDE 桌面系统等比较大的软件包,则可能需要花费很长时间。
除以上 4 种 Linux 发行版外,还有很多其他版本,表 1 罗列了几种常见的 Linux 发行版以及它们各自的特点:
表 1 Linux 发行版及特点汇总 |
|||
版本名称 |
网 址 |
特 点 |
软件包管理器 |
Debian Linux |
www.debian.org |
开放的开发模式,且易于进行软件包升级 |
apt |
Fedora Core |
www.redhat.com |
拥有数量庞人的用户,优秀的社区技术支持. 并且有许多创新 |
up2date(rpm),yum (rpm) |
CentOS |
www.centos.org |
CentOS 是一种对 RHEL(Red Hat Enterprise Linux)源代码再编译的产物,由于 Linux 是开发源代码的操作系统,并不排斥样基于源代码的再分发,CentOS 就是将商业的 Linux 操作系统 RHEL 进行源代码再编译后分发,并在 RHEL 的基础上修正了不少已知的漏洞 |
rpm |
SUSE Linux |
www.suse.com |
专业的操作系统,易用的 YaST 软件包管理系统 |
YaST(rpm),第三方 apt (rpm)软件库(repository) |
Mandriva |
www.mandriva.com |
操作界面友好,使用图形配置工具,有庞大的社区进行技术支持,支持 NTFS 分区的大小变更 |
rpm |
KNOPPIX |
www.knoppix.com |
可以直接在 CD 上运行,具有优秀的硬件检测和适配能力,可作为系统的急救盘使用 |
apt |
Gentoo Linux |
www.gentoo.org |
高度的可定制性,使用手册完整 |
portage |
Ubuntu |
www.ubuntu.com |
优秀已用的桌面环境,基于 Debian 构建 |
apt |
Linux 的发行版本众多,在此不逐一介绍,下面给选择 Linux 发行版本犯愁的朋友一点建议:
通常情况下,初学者学习 Linux,是为了找一份和 Linux 相关的工作,那么问题来了,你知道大多数企业用哪一个 Linux 发行版搭建服务器吗?虽然没有官方统计,但凭借多年的工作经验来分析,国内大多数企业使用的都是 RHEL 或者 CentOS 作为服务器操作系统。
我们知道,RHEL 和 CentOS 都是 Red Hat 公司的产物,其中 CentOS 还可以认为是 RHEL 的克隆版本。对于 Linux 初学者来说,RHEL 和 CentOS 唯一的区别在于:
以 yum 工具为例(此工具对学习 Linux 很重要,具体用法会在后续章节讲解),在未购买服务的 RHEL 上,yum 是不能使用的;而在 CentOS 上,有免费的 yum 工具可以使用。
不仅如此,这里列举了几点推荐大家使用 CenOS 的理由: