在之前的教程 - Linux 简介中,Linux 被介绍为流行的开源操作系统,在桌面、服务器和移动计算环境中具有广泛的应用范围。Linux 是开源的,在 OSS 开发人员和拥护者中非常受欢迎,目前有数百个 Linux 发行版可用。任何 Linux 发行版或软件包都是一个完整的操作系统软件,将 Linux 内核、GNU 实用程序、Shell、桌面环境和一些默认应用程序捆绑在一起。因此,任何 Linux(操作系统)系统,无论其运行的硬件平台如何,基本上都具有以下软件组件 -
1)Linux内核
2) GNU 实用程序
3)外壳
4) 桌面环境
5) 附加应用软件
图 1:Ubuntu Linux 系统
Linux 内核 –
Linux Kernel是Linux系统的核心。它负责管理计算机系统上的硬件和软件。内核基本上实现了四个主要功能——系统内存管理、程序管理、硬件管理和文件系统管理。
Linux 旨在成为 Unix 操作系统的副本。Unix 的开发是为了改善计算机上运行的不同进程对处理器时间的共享。因此,很明显,Linux 本质上是为了改进硬件资源对包括内存在内的进程的分配。Linux 的开发不仅是为了利用物理内存 (RAM),它还通过在辅助存储(硬盘)上创建虚拟内存来扩展可用内存。硬盘上的这个虚拟内存称为交换空间。RAM 和交换空间上的内存被组织成称为页面的块。内核在物理内存和交换空间上定位页面,并创建当前在物理内存中并且接下来必须从交换空间传输到物理内存的内存页面表。它将当前未使用的页面换出以交换空间,并换入应用程序进程当前需要的页面。这种内存页面的换入和换出一直持续到 Linux 继续运行。
内核管理的另一个重要功能是进程管理。这些进程可能在前台运行,在屏幕上显示一些输出,或者它们可能在后台运行,对登录用户不可见。当 Linux 启动时,内核启动第一个进程——Init,它启动所有其他进程。init 进程加载虚拟内存并分配所有由它启动的其他进程,虚拟内存中的一些空间用于数据和程序。在某些 Linux 发行版中,启动后必须启动的进程表位于 /etc/inittabs 文件夹中,而在某些发行版中,启动时必须启动的进程的脚本位于 etc/init.d 文件夹中,并且它们通过 etc/rcX.d 文件夹中的条目启动。
Init 必须定义一个运行级别以确定必须启动哪些进程。通过在 etc/inittabs 文件或 /etc/rcX.d 文件夹中为每个进程定义运行级别,进程与运行级别相关联。运行级别用于指示 init 决定必须为 Linux 系统的特定模式运行哪些进程。
有 7 个运行级别,编号从 0 到 6。运行级别 0 表示停止模式,具有运行级别 0 的进程必须在系统关闭时运行。运行级别 1 表示单用户模式,它会停止 Linux 配置网络接口、启动守护进程或允许非根用户登录。运行级别 2 表示多用户模式,它会停止 Linux 配置网络接口并启动守护进程。运行级别 3 表示多用户模式,具有网络,使 Linux 可以正常运行。运行级别 4 未定义,可以由用户定义。运行级别 5 表示 X11,它使 Linux 正常运行,就像在运行级别 3 中向系统添加显示管理器 (X) 一样。运行级别 6 表示重新启动并重新启动系统。
运行级别 3 和 5 最常用。Linux 可以通过控制运行级别来控制整体功能。通过将运行级别从 3 更改为 5,系统可以从基于控制台的系统更改为图形系统。
Linux作为操作系统必须能够管理硬件资源。内核通过其设备驱动程序与硬件组件通信。设备驱动程序可以与内核一起编译或插入到正在运行的内核中。将设备驱动程序与内核一起编译的方法效率低下,因为每当将新设备插入计算机系统(如连接 USB 随身碟或连接扬声器)时,它都需要重新编译 Linux 内核。因此,在运行的内核中插入设备驱动模块而不重新编译的方法被引入并被普遍使用。
硬件设备在 Linux 中由称为设备文件的特殊文件标识,而与它们的所有通信都由另一种称为节点文件的特殊文件处理。设备文件分为三种类型——字符(用于与内核一次一个字符通信的设备,如调制解调器和终端)、块(用于通过大块数据通信的设备,如硬盘驱动器)和网络(用于通过通过通信网络或互联网发送或接收的数据包)。设备驱动程序规定了 Linux 内核和硬件设备之间必须如何进行数据通信。设备文件定义了这种通信的性质,节点文件定义了所有这些数据通信必须如何执行。
二级存储是大多数计算系统的重要组成部分。Linux 必须能够从硬盘驱动器的各种文件系统读取和写入文件。因此,Linux 内核支持多种文件系统,如 FAT32、NTFS、XFS、ext、ext2、ext3、ext4、iso9660、hpfs、jfs、msdos、minix、nfs、proc、ufs、umsdos、sysv、smb、ncp , ReiserFS 等。 Linux 使用虚拟文件系统 (VFS) 与任何文件系统交互。
这使 Linux 能够从任何类型的文件系统读取和写入数据。
GNU 实用程序 –
系统实用程序对任何操作系统都至关重要,Linux 对此并不陌生。Linux 使用 GNU 系统实用程序,这些实用程序是在 GNU 项目下作为开源软件开发的。这些系统实用程序构成了 Linux 内核和应用软件之间的桥梁。他们负责文件处理、进程管理和文本操作。GNU 实用程序在 Linux 系统中具有如此重要的作用,以至于 Linux 经常被许多纯粹主义者称为 GNU/Linux 系统。
Shell-
Shell 是一个交互式实用程序,用于输入命令并在 Linux 内核上执行它们。对于输入命令,Shell 有一个命令提示符。shell 包括一组用于处理文件和文件系统、管理进程以及与程序交互的内部命令。用户可以通过 shell 启动、停止或更改程序执行。可以将 shell 命令分组到称为 shell 脚本的文件中以执行程序。
有许多可用于 Linux 的 shell。其中有些 shell 更容易创建 shell 脚本,而有些则更容易执行 shell 脚本。Linux 内核中的默认 shell 是 Bash Shell。它由 GNU 项目开发,用于替代 Bourne Shell(以其创建者命名的默认 Unix Shell)。bash Shell 这个名字本身是从“Bourne Again Shell”中创造出来的。
其他可用于 Linux 的流行 shell 包括 Tcsh/Csh shell、Ash Shell、Zsh Shell、Korn Shell 和 Fish Shell。Tcsh/Csh 是增强的 C Shell,它使用 C 语法作为 shell 命令。其主要功能包括类似 C 语言的编程、命令行编辑器、拼写更正、文件名完成和作业控制。Ash 是一个 bash 兼容的 shell,设计用于在受限内存上运行。Korn Shell 或 Ksh 是 Bourne 兼容的 shell,具有高级编程语言功能和交互式命令语言。Zsh 是一个高级 shell,其中包括 korn shell、bash 和 Tchs 的功能以及许多独特的功能,如启动文件、变量索引、函数索引、概念索引、文件名生成、密钥索引、结束注释等。
桌面环境 –
最初,Linux 有命令行界面。随着 Windows 操作系统的流行,对 Linux 图形用户界面的需求开始增长。因此,OSS 开发人员没有浪费时间,许多图形桌面环境是由不同的 OSS 开发人员及其团队开发的。一些流行的桌面环境包括 X Window 系统、KDE 桌面、GNOME 桌面、Unity 桌面、Fluxbox、JWM、Xfce、Fvwm、fvwm95、Mate、Cinnamon、LXQt、LXDE、Luminia、Enlightenment、Sugar、EDE、Project Looking Glass 和通用桌面环境。
X 窗口系统 –
任何桌面环境(程序)都需要与视频卡和显示器进行数据通信,以在显示器屏幕上投影图形环境。X 窗口系统是为包括 Linux 在内的许多操作系统开发的桌面环境。X Window System 最流行的版本是 X.org,它支持许多最新的视频卡。X 窗口系统是一个低级程序,直接与显示硬件(视频卡和显示器)交互。除了 X.org,其他流行的 X 窗口版本是 Wayland 软件(在 Fedora Linux 中提供)和 Mir Display Server(在 Ubuntu Linux 中提供)。桌面环境是 Linux 操作系统不可或缺的一部分。安装时,Linux(具有 X Window 桌面)会创建一个 X Window 配置文件,用于扫描视频卡和显示器,并检测支持的视频模式和分辨率。X Window 只能在屏幕上显示图形环境。它不能让用户操作文件或启动程序。因此,X 窗口系统之上还需要其他桌面环境。
KDE 桌面环境 –
K Desktop 是一个类似于 Windows 的桌面环境,于 1996 年首次发布。它包含一个桌面区域(类似于 Windows),可以放置文件和应用程序的图标。用户可以通过单击其图标来启动应用程序,而在单击文件图标时,系统会提示用户选择一个应用程序来打开该文件。这称为桌面区域。桌面区域底部还有一个面板。该面板具有程序快捷方式和小程序(具有可变图标的小型应用程序)。有一个 K 菜单(类似于 Windows 中的开始菜单),其中包含已安装程序的链接。还有一个任务栏(类似于 windows 中的任务栏),其中放置了当前正在运行的应用程序的图标。
GNOME 桌面 –
GNU 网络对象模型环境(GNOME)是另一种流行的桌面环境,于 1999 年首次发布。它是 Red Hat Linux 和许多其他 Linux 发行版中的默认桌面环境。它包括几个类似于 Windows 的功能,例如,图标的桌面区域、图标和面板区域的拖放功能。GNOME中有许多额外的图形功能,使其有别于流行的窗口外观和感觉。
统一桌面 -
Unity 是为 Ubuntu Linux 开发的桌面环境。它不同于 KDE 和 GNOME。Unity Desktop 的开发目标是在台式电脑、手机和平板电脑等各种平台上提供通用的图形环境。无论是在计算机、移动设备、平板电脑还是平板手机上运行,它都具有相同的图形界面。
KDE 等离子 –
可用的最新版本的 KDE 桌面是由 KDE 软件社区开发的 KDE Plasma。它与几个称为 KDE 应用程序的工具和实用程序打包在一起。比如,它包含 Dolphin 文件浏览应用程序,该应用程序具有批处理文件重命名、选项卡式浏览支持、桌面小部件和多个面板等功能。它还具有用于音频和视频播放应用程序的媒体控制功能的实时窗口预览。它带有自己的外壳,称为 KRunner,甚至可以通过右键单击应用程序的图标来自定义应用程序。它还包含一个 KDE Connect 应用程序,通过它可以将 Android 和黑莓设备连接到桌面,并且可以从 Linux 桌面本身访问通知、电池状态和移动设备文件。KDE Plasma 的默认桌面环境是 OpenSUSE Linux Distro。
低功率 PC 的桌面环境 –
KDE 和 GNOME 有一个很大的优势,它们也可以在旧 PC 和低功率设备上运行。OSS 开发人员煞费苦心地开发了许多其他功能齐全的桌面环境,这些桌面环境可以在旧 PC 和低功率设备上运行。其中一些桌面包括 Fluxbox、JWM、Xfce、Fvwm、fvwm95 等。Fluxbox 是一个简单的桌面,包括面板和弹出菜单。Joe's Window Manager (JWM) 是另一个可以在低内存和低磁盘空间上运行的桌面环境。Xfce 是类似于 KDE 的桌面,设计用于在低内存上运行。Fvwm 是另一个功能齐全的桌面,尽管内存有限,但仍可轻松运行。fvwm95 是基于 Fvwm 的,但它具有类似 Windows 的外观和感觉。
其他桌面环境 –
Linux 发行版还有其他几种流行的桌面环境,如 MATE、Cinnamon、Pantheon、LXQt、PIXEL、Budgie、Enlightenment、LXDE、Trinity 等。大多数流行的 Linux 发行版默认都有一个或其他桌面环境。像 Cinnamon 是 Linux Mint 的默认桌面,Unity 是 Ubuntu 的默认桌面环境,Budgie 是 Solus 的默认桌面环境等等。Linux 用户还可以显式下载和安装桌面环境。必须注意不同的 Linux 发行版有不同的内存要求。例如,Cinnamon 需要 175 MB,GNOME 250 MB,KDE Plasma 300 MB,LXDE 85 MB,XFCE 100 MB,MATE 125 MB,Enlightenment 85 MB,Unity 300 MB 内存 (RAM) 空间。每个环境都有自己的特点和优势。所以,
应用软件 –
Linux 发行版默认提供了一些应用程序软件。每个发行版都有自己的附加应用程序,这些应用程序默认与 Linux 一起安装。用户可以根据自己的需要和用途添加或删除应用软件。不同的 Linux 发行版具有共同的内核和系统实用程序,仅在桌面环境和默认附加应用程序方面有所不同。
Linux 发行版 –
Linux 发行版是完整的 Linux 系统包,包括内核、系统实用程序、外壳、桌面环境和附加应用程序。有数百种 Linux 发行版,其中许多是为特定用户组定制的。Linux 发行版可大致分为三种类型 -
1) 完整的核心 Linux 发行版– 这些发行版包括 Linux 内核、一个或多个桌面环境以及仅对内核必不可少的应用程序和实用程序。它是裸机和核心 Linux 安装。一些流行的核心 Linux 发行版是 Red Hat、Fedora、Slackware、Arch Linux、OpenSUSE、Mandriva Linux、Gentoo 和 Debian。Red Hat 是用于互联网服务器的商业 Linux 发行版。Fedora 是 Red Hat 的衍生产品,供家庭使用。Slackware 是可定制的早期 Linux 发行版,于 1993 年首次发布。OpenSUSE 被设计为家庭和办公室工作站的核心 Linux。Gentoo 发行版适用于高级用户,包含 Linux 源代码和通过 FreeBSD 端口从源代码编译的应用程序。Arch Linux 是另一个为高级用户设计的发行版,包含 PKGBUILD 文件形式的官方和非官方二进制包。Mandriva Linux 是一种流行的、现在由社区驱动的 Red Hat 衍生产品。Debian 是最受 Linux 用户欢迎的非商业发行版。
2) 专业发行版——这些发行版通常是核心发行版的衍生产品,包含核心应用程序的子集以及针对特定用户组的应用程序。Debian 是制作专业发行版的最受欢迎的选择。这些发行版具有自定义安装并针对特定用户组,如图形设计师、教育工作者、开发人员等。一些流行的专业发行版包括 Mint、Ubuntu、CentOS、PCLinuxOS、bolic、Puppy Linux、Solus、Elementary OS 等。
3) LiveCD 测试发行版——许多 Linux 发行版也以可启动 LiveCD 的形式提供。它们不需要任何安装,可以直接从 CD-ROM 引导。许多 LiveCD 可以从互联网上下载,刻录成 CD-ROM 并可以随时随地使用。一些流行的 LiveCD 发行版包括 Ubuntu、PCLinuxOS、Slitaz、Knoppix、Reskatux Linux、Puppy Linux、Tails Live、Clonezilla、Finnix 和 Slax。由于显而易见的原因,LiveCD 发行版通常在功能和应用程序方面受到限制。
在下一个教程中,学习如何安装 Linux 和设置开发环境。
,