“Linux”不等同于Linux内核:构建Linux系统的8个软件包

jopen 10年前

“Linux”不等同于Linux内核:构建Linux系统的8个软件包

Linux发行版并不仅仅是Linux内核。所有的Linux发行版都包含了除内核之外的一些必要的软件包,比如Grub引导程序、Bash shell、GNU shell工具软件、守护进程、X.org图形服务器和桌面环境等等。所有这些不同的程序均由相互独立的开发小组开发。这些程序被Linux发行版集成到 一起从而形成一套完整的“Linux”操作系统。这和Windows操作系统不同,因为整个Windows系统全部由微软公司开发。

引导程序 (Bootloader)

当你打开电脑的时候,电脑的BIOS或者UEFI固件会 从其引导设备中加载软件。任何一个操作系统启动时首先加载的都是引导程序。在Linux操作系统中,通常使用的引导程序是Grub。如果你在一台电脑上安 装了多个操作系统,Grub会提供一个菜单供你选择。例如,如果你装了双系统(Linux和Windows),你可以从Linux和Window中选择任 何一项来启动。如果你的电脑只安装了Linux,或许Grub可以瞬间启动它,但是它提供的选择菜单还在那里。Grub负责启动Linux系统、提供命令 行启动选项和允许以其它方式启动Linux以排除故障。没有引导程序的Linux操作系统是无法启动的。
“Linux”不等同于Linux内核:构建Linux系统的8个软件包

Linux内核

确切地讲,Grub引导的是Linux内核。它是操作系统的一部分,并且通常被称为“Linux”。内核是整个Linux系统的核心。它管理着 CPU、内存和输入/输出设备(例如键盘、鼠标和显示器)。由于内核可以直接和硬件交互,很多硬件驱动程序都成为Linux内核的一部分并且在内核中运 行。其它所有的软件都运行在内核之上。内核是最底层的软件,它提供操作硬件的接口。它在硬件之上提供一个抽象层来处理硬件的各种事务,从而把系统的其它部 分从硬件中解放出来。Windows操作系统使用的内核是Windows NT,Linux操作系统使用的是Linux内核。

守护进程 (Daemons)

守护进程是不可缺少的后台进程。作为启动进程的一部分,它在Linux内核之后和登录界面显示之前启动。Windows把这些进程成为“服务”,而 类Unix系统则称它们为“守护进程”。例如,管理任务调度的crond就是一个守护进程——最后的字母d即代表守护进程。广泛使用的管理系统日志的 syslogd也是守护进程。服务器进程,如sshd,也是以守护进程的形式在后台运行。这种做法可以保证它们一直处在运行状态,从而持续监听远程连接。
守护进程本质上只是在后台运行的进程,但它们是让人很少留意的系统级进程。

Shell

大多数Linux系统的默认shell是Bash shell。Shell提供了命令处理接口,从而可以在命令行窗口中输入命令来控制电脑。Shell也可以以Shell脚本的方式运行,这种情况下一组Shell命令被写在脚本中并按顺序依次执行。
即使只使用图形桌面,shell也一直在后台运行。当你打开终端窗口的时候就会看到shell提示符。
“Linux”不等同于Linux内核:构建Linux系统的8个软件包

Shell工具软件

Shell提供了一些最基本的内嵌命令。但大多数用户经常用到的shell命令并没有被内嵌到Shell中。例如,GNU核心工具软件包提供了很多 和cp(复制文件)、ls(列出当前目录下的文件)和rm(删除文件)一样重要的命令。如果没有这些重要的命令,Linux的功能就会受到极大的限制。事 实上,Bash shell本身就是GNU项目的一部分。这就是为什么大家一直在争议应该把Linux叫做“Linux”还是应该叫它“GNU/Linux”。 “Linux”的批评者认为Linux系统中包含了大量的通用软件,但“Linux”没有明确指出它们的存在;而“GNU/Linux”的批评者则认为 Linux系统中也包含了很多“GNU/Linux”无法代表的重要软件。并不是所有的shell工具软件和命令行程序都包含在GNU项目中。一些命令和 终端程序都有自己特定的项目。

X.org图形服务器

Linux图形桌面不是Linux内核的一部分。它是由一个名叫“X服务器”的工具包提供的,它实现了很早就有的“X视窗系统”。目前最受欢迎的X 服务器——或叫做图形服务器——是X.org。你看到的图形登录窗口和桌面正是X.org体现它的魔力所在。整个图形系统是由X.org控制的,它提供了 与显卡、显示器、鼠标和其它一些设备的接口。X.org只提供了图形系统而不是整个桌面环境。桌面环境和工具包可以构建在X.org提供的图形系统之上。

桌面环境

你真正使用的Linux桌面是一个桌面环境。 例如,Ubuntu采用Utility桌面环境,Fedora采用GNOME,Kubuntu采用KDE,Mint一般使用Cinnamon或MATE。 这些桌面环境提供了一些你看得见的东西——桌面背景、面板、窗口的标题栏和边框。桌面环境通常包含一些自己开发的工具软件来形成一个整体。例 如,GNOME和Unity包含了Nautilus文件管理器;而KDE则包含了Dolphin文件管理器。
“Linux”不等同于Linux内核:构建Linux系统的8个软件包

桌面程序

并不是每个桌面程序都是桌面环境的一部分。例如,Firefox和Chrome是与桌面环境无关的,它们通常可以在任何桌面环境中运行。同 样,OpenOffice套件也与具体桌面环境无关。你可以在任何桌面环境中运行任意Linux桌面程序。但是为某个特定桌面环境设计的程序在其它桌面环 境中运行时会显得不协调或运行速度较慢。例如,如果你在KDE中运行GNOME下的Nautilus文件管理器,它会显得不协调并要求你安装一系列的 GNOME库,而且启动时它或许会后在台运行GNOME桌面进程。这种情况下它可以运行起来并且可以被使用的。

Linux发行版执行最后的步骤:把上述的所有软件集成到一起使它们很好的工作,并添加其它一些必要的软件。例如,Linux发行版通常都包含自己特定的系统安装软件。通过这个软件,你可以安装Linux系统和软件包管理器(用来安装其它软件或更新现有的软件)。

原文链接: Chris Hoffman 翻译: 极客范 - 小道空空

译文链接: http://www.geekfan.net/5035/