“Linux”不仅仅是Linux:组成Linux系统的8个软件

Linux发行版不仅仅是Linux内核。它们都包含其他关键软件,如GRUB引导加载程序、Bash shell、GNU shell实用程序、守护程序、X.org图形服务器、桌面环境等等。

所有这些不同的程序都是由不同的独立开发团队开发的。它们由Linux发行版结合在一起,在这些发行版上构建成一个完整的“Linux”操作系统。这与完全由微软开发的Windows不同。

引导装载器

当您打开计算机时,计算机的BIOS或UEFI固件将从引导设备加载软件。与任何操作系统一起加载的第一个程序是引导加载程序。对于Linux,这通常是GRUB引导加载程序。

如果您安装了多个操作系统,GRUB提供了一个菜单,允许您在它们之间进行选择-例如,如果您在双引导配置中安装了Linux,则可以在引导时选择Linux或Windows。

如果您只安装了一个操作系统,那么GRUB几乎可以立即引导您的Linux系统,但是它仍然存在。GRUB处理实际引导Linux的过程,发出命令行选项,并允许您以其他方式引导Linux以进行故障排除。如果没有引导加载程序,Linux发行版就无法引导。

Linux内核

准确地说,GRUB引导的软件是Linux内核。这是系统的一部分,实际上被称为“Linux”。内核是系统的核心。它管理您的CPU、内存和输入/输出设备,如键盘、鼠标和显示器。由于内核直接与硬件通信,因此许多硬件驱动程序都是Linux内核的一部分,并在内核中运行。

所有其他软件都在内核之上运行。内核是与硬件交互的最低级别的软件。它在硬件之上提供了一个抽象层,处理所有不同的硬件问题,因此系统的其余部分可以尽可能少地关心它们。Windows使用Windows NT内核,Linux使用Linux内核。

守护进程

守护进程本质上是后台进程。它们通常作为引导过程的一部分启动,因此它们是在内核之后看到图形登录屏幕之前加载的下一个内容之一。Windows将这类进程称为“服务”,而类UNIX系统则将它们称为“守护进程”。

例如,管理计划任务的crond是一个守护进程--末尾的d代表“守护进程”。syslogd是另一个传统上管理系统日志的守护进程。服务器(如sshd服务器)在后台作为守护进程运行。这可确保它们始终运行并侦听远程连接。

守护进程本质上只是后台进程,但是您通常不会注意到它们是系统级进程。

“贝壳”(The Shell)

大多数Linux系统默认使用Bash shell。Shell提供了一个命令处理程序界面,允许您通过在文本界面上键入命令来控制您的计算机。Shell还可以运行Shell脚本,这些脚本是按照脚本中指定的顺序运行的命令和操作的集合。

即使您只使用图形桌面,shell也会在后台运行和使用。当您打开终端窗口时,您会看到一个shell提示。

外壳实用程序

shell提供了一些基本的内置命令,但是Linux用户使用的大多数shell命令都没有内置到shell中。例如,与用于复制文件的cp命令、用于在目录中列出文件的ls命令和用于删除文件的rm命令一样重要的命令都是GNU Core Utilities包的一部分。

相关:大辩论:是Linux还是GNU/Linux?

如果没有这些关键实用程序,Linux系统将无法运行。事实上,Bash shell本身就是GNU项目的一部分,这就是为什么Linux到底应该被称为“Linux”还是“GNU/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并不提供完整的桌面环境,只是一个桌面环境和工具包可以在其上构建的图形系统。

桌面环境

相关:Linux用户有一个选择:8个Linux桌面环境

您在Linux桌面上真正使用的是桌面环境。例如,Ubuntu包含Unity桌面环境,Fedora包含GNOME,Kubuntu包含KDE,Mint通常包含Cinnamon或Mate。这些桌面环境提供了您看到的一切-桌面背景、面板、窗口标题栏和边框。

它们通常还包括自己的实用程序,这些实用程序是为适应整个桌面环境而构建的。例如,GNOME和Unity包含作为GNOME一部分开发的Nautilus文件管理器,而KDE包含作为KDE项目一部分开发的Dolphin文件管理器。

桌面程序

并不是每个桌面程序都是桌面环境的一部分。例如,Firefox和Chrome与桌面环境无关。它们只是可以在任何桌面环境上正常运行的程序。org也是另一套与特定桌面环境无关的程序。

您可以在任何桌面环境中运行任何Linux桌面程序,但是为某些桌面环境设计的程序可能看起来不合适,或者拖入其他进程。例如,如果您试图在KDE上运行GNOME的Nautilus文件管理器,它会看起来不合适,需要您安装各种GNOME库,并且可能会在您打开它时在后台启动GNOME桌面进程。但是它可以运行并且可以使用。

Linux发行版执行最后一步。他们利用所有这些软件,将它们组合在一起,以便它们能很好地工作,并添加他们自己必要的实用程序。例如,发行版创建自己的操作系统安装程序,以便您可以实际安装Linux,以及用于安装附加软件和保持已安装软件更新的包管理器。

图片来源:Flickr上的陶麦

相关文章