Linux 发行版的组件是什么?

  • 一、Linux组件简介
  • 二、Linxu主要组件
    • 1.Linux Kernel
    • 2.GNU 工具
    • 3.显示服务器或视窗系统
    • 4.显示管理器
    • 5.守护 进程
    • 6.包管理器
    • 7.桌面环境
    • 8.用户应用程序
  • 三.结论

一、Linux组件简介

Linux 发行版中有很多组件,成百上千的软件组合在一起,以便为您提供一个可运行的,可用的操作系统。每个Linux发行版都有自己的一组组件,有时它可能与其他Linux发行版非常相似,也可能不同。

这些组件不是由单一供应商开发的,例如Linux内核由 Linus Torvalds 和内核社区和公司(数千人)开发, GNU 工具由GNU项目开发人员和自由软件基金会开发, KDE 桌面环境由项目开发,Firefox浏览器由Mozilla开发,X display server由X基金会开发。等等。

Linux发行版的作用是获取所有这些应用程序的源代码并构建它们,将它们转换为可以安装在用户计算机上的包,并将它们放在包含所有这些包的存储库中。稍后,发行制作者会根据这些源代码构建一个 ISO 文件,您可以下载该文件并将其刻录并安装到您的 PC 上。Linux发行版实际上只是以特定的方式和格式将这些软件交付给最终用户,并且它们彼此不同,因为它们提供的默认组件,软件和功能集。

每个组件都是由不同的编程语言编写的,你不能说Ubuntu例如是由C语言开发的,因为它包含许多由其他编程语言(如Python,Ruby,C++,Perl)开发的应用程序。等。

二、Linxu主要组件

1.Linux Kernel


任何操作系统的核心;内核。1991年,Linus Torvalds宣布 推出Linux内核 的第一个公开版本。从那时起,它发展了很多,今天有成千上万的志愿者,公司和软件开发人员正在努力维护Linux内核。它几乎存在于您周围可能看到的每台智能设备中,从服务器到经过汽车和物联网设备的Android手机等等。Linux几乎无处不在。

Linux内核是负责将软件链接到硬件并在软件应用程序之间分配资源的部分,它还运行I / O进程并通过将它们传递给CPU来执行它们。它还负责打开硬件部件,如GPU,声卡,互联网卡,RAM,硬盘。等。内核是每个操作系统的核心,没有它就无法工作。

今天,Linux内核中现在有2000万行代码。

2.GNU 工具


GNU是由Richard Stallman在1980年代发起的一个项目,他也是FSF基金会的创始人。GNU的目标是创建一个完全自由的操作系统,可以替代UNIX。GNU开发人员创建了围绕操作系统的所有工具和程序,如引导加载程序,bash shell和GCC编译器,但他们没有编写操作系统内核,所以实际上在1991年发生的事情是Linus Torvalds创建了Linux内核,然后使用GNU软件和工具创建了一个功能操作系统。

GNU项目 实际上包括很多东西,比如Bash shell,GNU C Compiler,GRUB引导加载程序,GTK+,Gzip,Nano和许多其他软件。他们中的许多人现在在你的Linux发行版中都有自己的位置。

GNU 的主要项目之一是 GRUB 引导加载程序
这是打开计算机电源按钮后加载的第一个软件,它将从硬盘上的MBR(或GPT)分区加载引导加载程序。引导加载程序的工作是加载操作系统内核及其它需要的组件,以便以后使用,几乎99%的Linux发行版使用名为"GRUB"的引导加载程序。还有其他引导加载程序,如lilo,Burg.。但它们并不常见,而且使用起来很旧。

我们还有 Bash shell 和它的实用程序,它实际上是命令行界面,你可以输入你想要系统直接执行的命令,这是每个Linux发行版的精神:

3.显示服务器或视窗系统


显示服务器是在屏幕上绘制图形用户界面的负责软件。从图标到窗口和菜单,您在屏幕上看到的每一个图形内容都是由显示服务器(也称为Windows系统)完成的。如果没有显示服务器,您最终将在整个屏幕上使用黑色命令行界面。

市面上有许多显示服务器,对于类Unix系统和Linux发行版,最著名的是 X显示服务器 ,它于1987年发布,甚至早于Linux内核,并一直使用到今天。

正如你所看到的,由于X服务器已有30多年的历史,有缺陷并且充满了安全问题,一些由Red Hat和Intel等公司支持的开发人员开始研究一种名为"Wayland"的新显示协议,它仍在进行大量开发。

4.显示管理器


DM 用于在引导加载程序后显示欢迎屏幕,并启动桌面会话作为与 X 显示服务器的连接。显示管理器是欢迎屏幕,在允许您登录到桌面环境之前,它会要求您输入用户名和密码。如果您使用的是 GNOME 环境,那么默认的显示管理器应该是 GDM,如果您使用的是 KDE 环境,那么默认的显示管理器应该是 KDM。

您可以使用所需的任何显示管理器,即使您运行的桌面环境与其默认值不同。

您不能一次运行多个 DM,因为 X 服务器不允许同时运行多个图形会话。

5.守护 进程

守护程序是在操作系统后台运行的程序,而不是在用户界面上具有窗口的普通应用程序。它们运行操作系统所需的一些特定作业和进程,例如网络管理器守护程序,它允许您在登录到系统时自动连接到网络。

最著名的守护程序称为"systemd",它是控制整个操作系统作业的主守护程序。它是加载 Linux 内核后执行的第一个进程。它的工作只是控制其他守护程序,并在需要时或您需要的任何时间运行它们,它控制操作系统上可用的所有服务,并且可以在需要时打开或关闭或修改它。

在过去,"sysvinit"担任这项工作,但由于它变得陈旧,几乎所有的Linux发行版现在都使用systemd。

6.包管理器


在Linux上,软件被视为"包"。如果你想在Linux系统上安装应用程序,库,游戏或其他任何东西,你应该使用包和包管理器来做到这一点。在Linux上,你不会通过互联网并试图找到一些好的应用程序来下载并安装在你的PC上,你永远不应该在Linux上这样做,这不是Windows。

您所做的只是打开软件包管理器/软件中心以查找并安装所需的应用程序,您可以搜索它们的名称并一键安装它们。如果您不知道要查找的内容,可以在Ubuntu PackagesFedora Packages等网站上在线搜索软件包描述,以获取软件包名称并在以后安装。

这里最主要的是打包系统,Redhat系列和许多其他Linux发行版系列使用"rpm"打包系统。在这个系统中,软件包采用.rpm格式(如Windows上的.exe),但在Debian系列的Linux发行版中,系统使用"dpkg"打包系统,该系统将其软件包作为.deb格式提供。

您无法在基于rpm的Linux发行版上安装.deb文件,它不起作用,您可以尝试将其从.deb转换为.rpm但是使用名为"Alien"的软件,但它也可能不起作用,您应该从系统的官方存储库中获取软件包

请记住:打包系统是管理 Linux 上软件的核心系统。您可以使用它来创建软件包/在本地安装它们以及许多其他事情,但通常我们不会每天处理它,我们使用"包管理器",它就像在Linux上管理软件的界面一样。

Linux桌面上有许多不同的包管理器,它们因发行版而异,例如,Ubuntu使用"apt"包管理器,而Fedora使用"dnf",openSUSE使用"zypper",而Arch使用"pacman"。

为了清楚起见,如果你想 - 例如 - 在你的系统上安装Firefox,你应该在Ubuntu上运行以下命令:

sudo apt install firefox

Fedora 上:

sudo dnf install firefox

openSUSE上:

sudo zypper install firefox

等等…正如你所看到的,它们非常相似,但在深处,它们非常不同。从它们的工作方式,到速度和安全性,"rpm"是Linux桌面的标准打包系统(由Linux基金会选择),但"deb"包的数量比.rpm包多得多,因此您可以选择在质量或易用性之间做出决定。

7.桌面环境


桌面环境是一组应用程序和库,它们组合在一起以向用户提供图形应用程序。他们为最终用户提供了很多核心库,服务,程序等等。Linux桌面上最著名的桌面环境是GNOMEKDE

例如, GNOME 使用 GTK 库来绘制其应用程序的 GUI(图形用户界面)小部件,而 KDE使用 Qt 库。GNOME 带有一个名为 “GNOME Shell” 的桌面界面,而 KDE则带有 “KDE Plasma”。桌面环境还提供其他应用程序,如显示管理器、文件管理器、会话管理器、存档器应用程序、Web 浏览器、UI 工具包、设置管理器。还有更多。

8.用户应用程序


最后,您获得了每天使用的正常应用程序;Firefox,LibreOffice,Terminal Emulator,VLC Media Player,Pidgin…等等,这些应用程序都在用户空间中,并且可以从一个发行版到另一个发行版完全不同。

这些应用程序(和所有其他软件包)并从分发存储库下载;存储库就像一个存储包文件及其元数据并将其分发给用户的地方,以便他们可以随时安装它们。

三.结论

有很多组件构成了Linux发行版,这些组件可能会从一个发行版更改为另一个发行版,它们可能完全不同,但这是一件好事,因为代码是开源的,你可以用你的操作系统做任何你想做的事情。我希望在这篇文章之后,你们都对这些事情有了好的看法。在下面的评论部分分享您心中的问题,有误解的地方也欢迎留言。

Linux 发行版的组件是什么?相关推荐

  1. Linux发行版的组成

    Linux发行版的组成 一个Linux发行版有很多的组件,这些组件由不同的人使用不同的编程语言进行开发. Linux发行版所做的是,获取这些应用的源代码并构建它们,将它们转换成可以安装在用户电脑上的包 ...

  2. 常用 Linux 发行版操作系统大盘点!

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 详细演示了如何在Windows系统和macOS系统上基于虚 ...

  3. 《精通Linux设备驱动程序开发》——1.5 Linux发行版

    本节书摘来自异步社区<精通Linux设备驱动程序开发>一书中的第1章,第1.5节,作者:[印]Sreekrishnan Venkateswaran(斯里克里斯汉 温卡特斯瓦兰)著,更多章节 ...

  4. Linux 发行版与Linux内核

    提出问题:Linux 发行版是什么,它又与Linux内核有什么联系? 这是我也存在疑惑的地方,在Fedora中文社区找到的较为官方的说法. https://www.fdzh.org/slides/20 ...

  5. linux下代码写错了怎么更改_AWS全面上市开源Linux发行版,专为容器操作系统设计...

    AWS宣布其容器操作系统Bottlerocket全面上市,Bottlerocket是它专为运行软件容器而开发的开源Linux发行版. 该Linux发行版不仅设计为运行容器,使应用可以在多个计算环境中运 ...

  6. ubuntu rpm安装_为什么说Ubuntu是一个值得尊敬的Linux发行版

    Ubuntu用了好长时间了,最早接触的是RedHat,个人使用体验并不好,当时一直在想,为什么就没有一个更好用的Linux操作系统呢?别万年不变的Windows不行吗?(当时作为一个穷学生党,完全不想 ...

  7. 6加载光盘 virtualbox vm_6个轻量级Linux发行版(2019年)

    轻量级Linux发行版是使用相对较少电脑资源的Linux发行版.找到一个不错的轻量级Linux发行版并不容易,因为可选择的发行版实在太多了.本文精选了6个轻量级Linux发行版,如果您有一台老旧或者低 ...

  8. linux centos7.9图形界面版本下载_适合在任何地方使用的 Linux:15 个小型 Linux 发行版...

    (给Linux爱好者加星标,提升Linux技能) 转自:Linux中国 https://linux.cn/article-12281-1.html 如果你有一台老旧的 PC,或者是基于单板计算机的小型 ...

  9. 严重的 BootHole 漏洞影响所有 Linux 发行版和 Windows 系统(详细分析)

     聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士团队 Eclypsium 公司发现,GRUB2 引导程序 (bootloader) 中存在"BootHole" 漏洞,导 ...

最新文章

  1. 分析Booking的150种机器学习模型,我总结了六条成功经验
  2. SpringBoot - 构建监控体系02_定义度量指标和 Actuator 端点
  3. 安装python3.8.0步骤_python3.8.0安装教程_后端开发
  4. python中swap的意思_Python为什么不需要swap(a,b)
  5. nginx开发遇到的问题
  6. 升级域控制器-从Windows 2012升级到2016案例之1
  7. 监测生命体征、活动水平的可穿戴电子产品设计方案
  8. Java多线程及锁相关面试题
  9. 常用图像处理库都有哪些?
  10. 深入理解Docker ulimit
  11. 岁月划过生命线(2016 年终总结 -季度之星)
  12. 语音合成工具Coqui TTS安装及体验
  13. 戴尔笔记本重装系统后识别不出固态盘的问题的方法
  14. 一文读懂大数据两大核心技术
  15. bzoj 1539 [POI2005]Dwu-Double-row 建图+思路
  16. 月下独酌(作者:李白li bai)
  17. 根据物理公式在Unity中实现抛物线运动.2
  18. oracle账号分享
  19. 消防应急照明灯具安装方式
  20. python等待线程结束_如何等待线程完成后再继续

热门文章

  1. c#编码技巧(三):EventArgs的使用
  2. 存档在 ‘工具开发’ 分类
  3. Vue相关开源项目库汇总 http://www.opendigg.com/tags/front-vue
  4. 触发器在计算机中的作用,施密特触发器的作用_施密特触发器的典型应用
  5. 少儿编程:现在是学习的最好时代!
  6. 余秋雨----十万进士
  7. 服务器安装r2008系统教程,windowserver2008R2安装IIS环境教程
  8. 分页查询sql语句(mysql)
  9. html代码重排,是什么导致重排(layout / reflow)
  10. Android studio内存泄露分析工具