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

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

image.png

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操作系统是无法启动的。

image.png


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提示符。

image.png


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采用Unity桌面环境,Fedora采用GNOME,Kubuntu采用KDE,Mint一般使用Cinnamon或MATE。 这些桌面环境提供了一些你看得见的东西——桌面背景、面板、窗口的标题栏和边框。桌面环境通常包含一些自己开发的工具软件来形成一个整体。例如,GNOME和Unity包含了Nautilus文件管理器;而KDE则包含了Dolphin文件管理器。

image.png

桌面程序

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


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

相关文章
|
5月前
|
Ubuntu Linux Anolis
Linux系统禁用swap
本文介绍了在新版本Linux系统(如Ubuntu 20.04+、CentOS Stream、openEuler等)中禁用swap的两种方法。传统通过注释/etc/fstab中swap行的方式已失效,现需使用systemd管理swap.target服务或在/etc/fstab中添加noauto参数实现禁用。方法1通过屏蔽swap.target适用于新版系统,方法2通过修改fstab挂载选项更通用,兼容所有系统。
484 3
Linux系统禁用swap
|
5月前
|
Linux
Linux系统修改网卡名为eth0、eth1
在Linux系统中,可通过修改GRUB配置和创建Udev规则或使用systemd链接文件,将网卡名改为`eth0`、`eth1`等传统命名方式,适用于多种发行版并支持多网卡配置。
989 3
|
4月前
|
存储 Linux 开发工具
Linux环境下使用Buildroot配置软件包
使用Buildroot可以大大简化嵌入式Linux系统的开发和维护工作,但它需要对Linux系统和交叉编译有深入的理解。通过上述步骤,可以有效地配置和定制软件包,为特定的嵌入式应用构建高效、稳定的系统。
552 11
|
Ubuntu Linux 网络安全
Linux系统初始化脚本
一款支持Rocky、CentOS、Ubuntu、Debian、openEuler等主流Linux发行版的系统初始化Shell脚本,涵盖网络配置、主机名设置、镜像源更换、安全加固等多项功能,适配单/双网卡环境,支持UEFI引导,提供多版本下载与持续更新。
577 0
Linux系统初始化脚本
|
5月前
|
安全 Linux Shell
Linux系统提权方式全面总结:从基础到高级攻防技术
本文全面总结Linux系统提权技术,涵盖权限体系、配置错误、漏洞利用、密码攻击等方法,帮助安全研究人员掌握攻防技术,提升系统防护能力。
536 1
|
5月前
|
监控 安全 Linux
Linux系统提权之计划任务(Cron Jobs)提权
在Linux系统中,计划任务(Cron Jobs)常用于定时执行脚本或命令。若配置不当,攻击者可利用其提权至root权限。常见漏洞包括可写的Cron脚本、目录、通配符注入及PATH变量劫持。攻击者通过修改脚本、创建恶意任务或注入命令实现提权。系统管理员应遵循最小权限原则、使用绝对路径、避免通配符、设置安全PATH并定期审计,以防范此类攻击。
1170 1
|
5月前
|
Linux 应用服务中间件 Shell
二、Linux文本处理与文件操作核心命令
熟悉了Linux的基本“行走”后,就该拿起真正的“工具”干活了。用grep这个“放大镜”在文件里搜索内容,用find这个“探测器”在系统中寻找文件,再用tar把东西打包带走。最关键的是要学会使用管道符|,它像一条流水线,能把这些命令串联起来,让简单工具组合出强大的功能,比如 ps -ef | grep 'nginx' 就能快速找出nginx进程。
627 1
二、Linux文本处理与文件操作核心命令
|
5月前
|
Linux
linux命令—stat
`stat` 是 Linux 系统中用于查看文件或文件系统详细状态信息的命令。相比 `ls -l`,它提供更全面的信息,包括文件大小、权限、所有者、时间戳(最后访问、修改、状态变更时间)、inode 号、设备信息等。其常用选项包括 `-f` 查看文件系统状态、`-t` 以简洁格式输出、`-L` 跟踪符号链接,以及 `-c` 或 `--format` 自定义输出格式。通过这些选项,用户可以灵活获取所需信息,适用于系统调试、权限检查、磁盘管理等场景。
403 137
|
5月前
|
安全 Ubuntu Unix
一、初识 Linux 与基本命令
玩转Linux命令行,就像探索一座新城市。首先要熟悉它的“地图”,也就是/根目录下/etc(放配置)、/home(住家)这些核心区域。然后掌握几个“生存口令”:用ls看周围,cd去别处,mkdir建新房,cp/mv搬东西,再用cat或tail看文件内容。最后,别忘了随时按Tab键,它能帮你自动补全命令和路径,是提高效率的第一神器。
955 57