“Linux”不只是Linux:构成Linux系统的8个软件

linux-tux-penguin

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

所有这些不同的计划都是由不同的独立发展集团开发的。 它们由Linux发行版结合在一起,在它们之上构建一个完整的“Linux”操作系统。 这与Windows完全由Microsoft开发。

引导加载程序

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

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

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

grub-bootloader

Linux内核

精确的软件Grub引导是Linux内核。 这是系统中实际称为“Linux”的部分。内核是系统的核心。 它管理您的CPU,内存和输入/输出设备,如键盘,鼠标和显示器。 由于内核直接与硬件直接相关,许多硬件驱动程序是Linux内核的一部分,并在其中运行。

所有其他软件在内核上运行。 内核是最低级的软件,它与硬件接口。 它在硬件上提供了一个抽象层,处理所有不同的硬件怪癖,所以系统的其余部分可以尽可能少地关心它们。 Windows使用Windows NT内核,而Linux使用Linux内核。

守护进程

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

例如,管理计划任务的crond是一个守护进程 - 最终的d代表“守护进程”。syslogd是另一个守护进程,它通常管理您的系统日志。 服务器(如sshd服务器)作为后台进程运行。 这确保他们总是运行和监听远程连接。

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

Shell

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

即使你只是使用图形桌面,shell正在运行并在后台使用。 当您打开终端窗口时,将看到一个shell提示符。

linux-terminal-bash-shell

Shell实用程序

shell提供了一些基本的内置命令,但是Linux用户使用的大多数shell命令并不内置到shell中。 例如, 用于复制文件cp命令,用于列出目录中的文件的 ls命令和用于删除文件的rm命令等关键命令是GNU Core Utilities包的一部分。

如果没有这些关键的实用程序,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桌面上使用的是桌面环境 例如,Ubuntu包括Unity桌面环境,Fedora包括GNOME,Kubuntu包括KDE,而Mint通常包括Cinnamon或MATE。 这些桌面环境提供您看到的一切 - 桌面背景,面板,窗口标题栏和边框。

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

unity-desktop-environment

桌面程序

并非每个桌面程序都是桌面环境的一部分。 例如,Firefox和Chrome是桌面环境不可知的。 它们只是可以在任何桌面环境之上正常运行的程序。 OpenOffice.org是另一套程序,不绑定到特定的桌面环境。

您可以在任何桌面环境中运行任何Linux桌面程序,但是针对某些桌面环境设计的桌面程序可能会出现异常或拖动到其他进程中。 例如,如果你试图在KDE上运行GNOME的Nautilus文件管理器,它会看起来不方便,要求你安装各种GNOME库,并且可能在后台打开GNOME桌面进程。 但它会运行和可用。


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

图片来源: tao mai on Flickr

赞 (0)
分享到:更多 ()