linux不同发行版中的主要差异

一、初始化系统

        Linux不同发行版中的系统初始化系统(如 System V init、Upstart 或 systemd)

  1. System V init

    • 历史:System V init 是最传统的 Linux 系统初始化系统,起源于 Unix System V 操作系统。
    • 运行级别(Runlevels):它使用运行级别(0-6)来定义系统状态,不同的运行级别对应不同的系统状态和启动的服务集合。
    • 脚本化:System V init 使用 shell 脚本来管理服务,这些脚本通常位于 /etc/init.d/ 目录下。
    • 灵活性:由于其脚本化的特性,它在配置上非常灵活,但也意味着错误处理和依赖管理不如后来的系统严格。
  2. Upstart

    • 历史:Upstart 是由 Ubuntu 开发的,旨在解决 System V init 的一些限制,特别是在处理服务的并行启动和监控方面。
    • 事件驱动:Upstart 是事件驱动的,它可以在特定的事件(如硬件添加或用户登录)发生时启动服务。
    • Job 配置:Upstart 使用自己的配置文件来定义任务(jobs),这些配置文件通常位于 /etc/init/ 目录下。
    • 状态保持:Upstart 能够保持服务的状态,如果服务崩溃,它可以自动重启服务。
  3. systemd

    • 历史:systemd 是由 Red Hat 开发的,旨在提供一个更加强大和高效的系统初始化系统。
    • 单元(Units):systemd 使用单元(units)的概念来管理服务,这些单元可以是服务、挂载点、设备、路径等。
    • 依赖关系:systemd 能够理解和管理服务之间的依赖关系,确保服务按照正确的顺序启动和停止。
    • 并行启动:systemd 支持并行启动服务,这可以显著减少系统的启动时间。
    • 日志管理:systemd 集成了 journald 日志系统,可以集中管理系统日志。
    • socket 和 D-Bus 激活:systemd 支持 socket 激活和 D-Bus 激活,这意味着服务可以在需要时动态启动,而不是在系统启动时就启动。

区别

  • 启动速度:systemd 由于其并行启动的特性,通常比 System V init 和 Upstart 启动更快。
  • 复杂性和功能:systemd 提供了更多的功能和更复杂的配置选项,这使得它更加强大,但也增加了配置的复杂性。
  • 兼容性:System V init 由于其历史悠久,很多老旧的系统和服务仍然依赖于它。Upstart 则在 Ubuntu 和一些衍生版中使用,但随着 Ubuntu 转向 systemd,Upstart 的使用越来越少。
  • 社区接受度:systemd 由于其强大的功能和性能,已经成为许多现代 Linux 发行版的默认初始化系统,但也因其复杂性和对传统工作流程的改变而受到一些社区成员的批评。

总的来说,System V init、Upstart 和 systemd 各有特点,随着技术的发展,systemd 已经成为主流,

二、包管理系统

不同的 Linux 发行版使用不同的包管理系统,以下是一些常见的发行版及其对应的包管理工具:

1,Debian 和 Ubuntu(使用 APT):

包格式:.deb
包管理工具包括 apt, apt-cache, apt-get, dpkg。
常用命令:
更新软件包列表:sudo apt update
安装软件包:sudo apt install <package_name>
升级所有可升级的软件包:sudo apt upgrade
卸载软件包:sudo apt remove <package_name>
APT 提供了一个用户友好的命令行接口来管理包 。


2,Red Hat、CentOS 和 Fedora(使用 YUM 和 DNF):

包格式:.rpm
YUM(Yellowdog Updater, Modified)是一个流行的命令行包管理器,用于管理 RPM 包 。
DNF(Dandified Yum)是 YUM 的一个现代化分支,提供了更快的性能和改进的用户界面 。
常用命令:
安装软件包:sudo yum install <package_name> 或 sudo dnf install <package_name>
更新所有软件包:sudo yum update 或 sudo dnf update
卸载软件包:sudo yum remove <package_name> 或 sudo dnf remove <package_name>

3,Arch Linux(使用 Pacman):

包格式:.tar.gz
Pacman 是 Arch Linux 的包管理器,以其简单和高效著称 。
常用命令:
安装软件包:sudo pacman -S <package_name>
同步软件包数据库:sudo pacman -Sy
升级所有可升级的软件包:sudo pacman -Su
卸载软件包:sudo pacman -R <package_name>


4,openSUSE(使用 Zypper):

包格式:.rpm
Zypper 是 openSUSE 系统上的命令行包管理器,以其速度和效率闻名 。
常用命令:
安装软件包:sudo zypper install <package_name>
更新所有软件包:sudo zypper update
卸载软件包:sudo zypper remove <package_name>
这些包管理系统各有特点,用户可以根据自己的发行版选择合适的工具来管理软件包。

三、网络管理系统

1,Debian 和 Ubuntu(使用 systemd):

这些发行版使用 systemd 作为系统和服务管理器。
网络服务通常由 NetworkManager 管理,可以通过 nmcli 命令行工具进行控制。
重启网络服务的命令:sudo systemctl restart NetworkManager.service 或 sudo systemctl restart networking.service(取决于具体的服务名称)。


2,Red Hat、CentOS 和 Fedora(使用 systemd):

这些发行版也使用 systemd。
同样,NetworkManager 是管理网络服务的常用工具。
重启网络服务的命令:sudo systemctl restart NetworkManager.service。


3,openSUSE(使用 systemd):

openSUSE 使用 systemd 并且也支持 NetworkManager。
重启网络服务的命令:sudo systemctl restart NetworkManager.service。

4,Arch Linux(使用 systemd):

Arch Linux 使用 systemd 作为默认的系统和服务管理器。
网络服务可以通过 NetworkManager 或 netctl(一个简单的网络配置管理器)来管理。
重启网络服务的命令:sudo systemctl restart NetworkManager.service 或 sudo systemctl restart netcfg.service(取决于具体的服务名称)。


5.** Gentoo(使用 OpenRC)**:

Gentoo 使用自己的初始化系统 OpenRC。
网络服务可以通过 /etc/init.d/net.lo 脚本来管理。
重启网络服务的命令:sudo /etc/init.d/net.lo restart。


6,Slackware(使用 SysVinit):

Slackware 使用传统的 System V init 系统。
网络服务可以通过 /etc/rc.d/rc.inet1 脚本来管理。
重启网络服务的命令:sudo /etc/rc.d/rc.inet1 restart。


7,Alpine Linux(使用 OpenRC):

Alpine Linux 使用 OpenRC 作为其初始化系统。
网络服务可以通过 /etc/init.d/networking 脚本来管理。
重启网络服务的命令:sudo /etc/init.d/networking restart。

四、在 Linux 系统中,NetworkManagerNetwork Services 是两种不同的网络管理方式。下面是它们的主要区别和特点:

NetworkManage

  1. NetworkManager 是一个用于管理网络连接的工具,主要用于动态配置和管理网络接口。它提供了多种接口供用户使用,包括命令行界面(nmcli)、文本用户界面(nmtui)和图形用户界面(nm-connection-editor)。其主要特点包括:

    1. 自动管理网络连接:NetworkManager 能够自动检测和配置网络接口,支持有线和无线网络的即插即用管理。

    2. 多种配置方式:用户可以通过命令行、文本界面或图形界面来配置网络,提供了灵活的使用体验。

    3. D-Bus API:NetworkManager 提供 D-Bus API 接口,允许其他应用程序与其交互,以实现更复杂的网络管理功能。

    4. 连接文件管理:网络设备的配置保存在 /etc/NetworkManager/system-connections 目录中,用户可以方便地管理和编辑这些连接文件。

  2. 使用场景

    • 适合桌面环境和需要频繁切换网络的用户,特别是在移动设备上。
    • 适用于需要图形界面或命令行工具进行网络管理的场景。

Network Services

  1. 概述

    • Network Services 通常指的是通过传统的网络服务管理方式来配置和管理网络连接,通常依赖于系统的网络配置文件。
    • 在大多数 Linux 发行版中,网络服务的配置文件通常位于 /etc/sysconfig/network-scripts/(如 CentOS 和 RHEL)或 /etc/network/interfaces(如 Debian 和 Ubuntu)。
  2. 功能

    • 静态配置:通过编辑 /etc/sysconfig/network-scripts/ifcfg-* 文件来手动配置网络接口,包括 IP 地址、网关、DNS 等信息。
    • 服务管理:使用 systemctl 命令来启动、停止和重启网络服务,例如 systemctl restart network
    • 兼容性:虽然 NetworkManager 是推荐的管理工具,但 network services 仍然可以与 NetworkManager 一起使用,以支持旧的配置文件格式
  3. 使用场景

    • 适合服务器环境或不需要频繁切换网络的场景,特别是在需要稳定和可预测的网络配置时。
    • 对于需要精细控制网络设置的用户,传统的网络服务管理方式可能更合适。

总结

  • NetworkManager 更加灵活和动态,适合需要频繁切换网络的桌面用户和移动设备。
  • Network Services 则提供了更传统的网络配置方式,适合服务器和静态网络环境。

在现代 Linux 发行版中,NetworkManager 通常是默认的网络管理工具,但在某些情况下,用户可以选择使用传统的网络服务管理方式,具体取决于使用场景和需求。
 

五、systemctlsystemd 

systemd

  1. 概述

    • systemd 是一种系统和服务管理器,旨在取代传统的初始化系统(如 System V init)。
    • 它负责在系统启动时管理系统服务、进程、挂载点、设备等。
  2. 功能

    • 并行启动systemd 支持并行启动服务,从而加快系统启动速度。
    • 依赖管理:能够自动处理服务之间的依赖关系,确保服务按照正确的顺序启动和停止。
    • 单元(Units):使用单元文件(.service、.socket、.mount 等)来定义和管理服务及其他系统资源。
    • 日志管理:集成了 journald 日志系统,可以集中管理和查看系统日志。
    • 状态监控:可以监控服务的状态,并在服务崩溃时自动重启。
  3. 使用场景

    • 适用于现代 Linux 发行版,特别是在需要高效管理服务和系统资源的环境中。

systemctl

  1. 概述

    • systemctl 是与 systemd 配合使用的命令行工具,用于管理系统服务和资源。
    • 它提供了一个统一的接口来启动、停止、重启和查询服务的状态。
  2. 功能

    • 服务管理:使用 systemctl start <service>systemctl stop <service>systemctl restart <service> 等命令来管理服务。
    • 状态查询:可以通过 systemctl status <service> 查看服务的当前状态。
    • 启用和禁用服务:使用 systemctl enable <service> 和 systemctl disable <service> 来设置服务在启动时是否自动启动。
    • 查看日志:可以使用 journalctl 命令查看与 systemd 相关的日志信息。
  3. 使用场景

    • 适用于需要通过命令行管理服务和系统资源的用户和管理员。

总结

  • 关系systemd 是系统和服务管理器,而 systemctl 是与 systemd 交互的命令行工具。可以将 systemd 看作是一个框架,而 systemctl 是操作这个框架的工具。
  • 功能systemd 提供了服务管理的底层功能,而 systemctl 则提供了用户与这些功能交互的接口。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/491724.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Elasticsearch02-安装7.x

零、文章目录 Elasticsearch02-安装7.x 1、Windows安装Elasticsearch &#xff08;1&#xff09;JDK安装 Elasticsearch是基于java开发的&#xff0c;所以需要安装JDK。我们安装的Elasticsearch版本是7.15&#xff0c;对应JDK至少1.8版本以上。也可以不安装jdk&#xff0c;…

又要考试了

一、实现无名管道练习&#xff1a;父进程写入管道&#xff0c;子进程读取管道数据。 #include<myhead.h> int main(int argc, const char *argv[]) {int fd[2];char buff[1024]"王吕阳&#xff0c;崔庆权别卷了";char s[1024];if(pipe(fd)-1){perror("pi…

Unity添加newtonsoft-json

package name "com.unity.nuget.newtonsoft-json": "3.2.1",打开包管理器 输入包名称和版本 点击添加

HarmonyOS:多线程并发-Worker

Worker主要作用是为应用程序提供一个多线程的运行环境&#xff0c;可满足应用程序在执行过程中与宿主线程分离&#xff0c;在后台线程中运行一个脚本进行耗时操作&#xff0c;极大避免类似于计算密集型或高延迟的任务阻塞宿主线程的运行。具体接口信息及使用方法详情请见Worker…

JMeter配置原件-计数器

一、面临的问题&#xff1a; 由于本人的【函数助手对话框】中counter计数器每次加2&#xff0c;且只显示偶数(如下图所示)&#xff0c;因此借助【配置原件-计数器】来实现计数功能。 如果有大佬知道解决方式&#xff0c;麻烦评论区解答一下&#xff0c;谢谢。 二、配置原件-c…

系统可观测性——Logback日志框架

摘要 Logback是一种Java日志框架&#xff0c;可以提供高度可配置的日志记录功能&#xff0c;包括级别控制和事件过滤等功能。它基于SLF4J&#xff08;Simple Logging Facade for Java&#xff09;日志抽象层&#xff0c;可以与多种流行的Java日志框架兼容&#xff0c;如Log4j和…

【自然语言处理与大模型】使用llama.cpp将HF格式大模型转换为GGUF格式

llama.cpp的主要目标是在本地和云端的各种硬件上以最小的设置和最先进的性能实现LLM推理。是一个专为大型语言模型&#xff08;LLM&#xff09;设计的高性能推理框架&#xff0c;完全使用C和C编写&#xff0c;没有外部依赖&#xff0c;这使得它可以很容易地被移植到不同的操作系…

NVR小程序接入平台EasyNVR设置预置位显示“参数错误”的解决方法

视频监控技术在现代社会中的应用已经变得越来越广泛&#xff0c;从城市安防到家庭安全&#xff0c;从交通管理到商业监控&#xff0c;其作用无处不在。随着科技的不断进步&#xff0c;视频监控不仅提高了安全性&#xff0c;还带来了许多新的机遇和挑战。 近期&#xff0c;我们收…

【MySQL】InnoDB引擎中的Compact行格式

目录 1、背景2、数据示例3、Compact解释【1】组成【2】头部信息【3】隐藏列【4】数据列 4、总结 1、背景 mysql中数据存储是存储引擎干的事&#xff0c;InnoDB存储引擎以页为单位存储数据&#xff0c;每个页的大小为16KB&#xff0c;平时我们操作数据库都是以行为单位进行增删…

达梦查询表字段详细信息脚本(字段名称、描述、类型、长度及是否为空)

达梦查询表字段详细信息脚本&#xff08;字段名称、描述、类型、长度及是否为空&#xff09; 该SQL 脚本&#xff0c;用于查询表中字段的基本信息&#xff0c;包括字段名称、描述、数据类型、数据长度、是否为空及是否为主键等属性。 SQL 脚本 -- 输入变量 DECLAREp_owner VA…

YashanDB共享集群产品能力观测:细节足见功底

本文基于前泽塔数科研发总监-王若楠2024年11月在“2024年国产数据库创新生态大会”-“根”技术专场的演讲整理形成&#xff0c;主要对崖山共享集群YAC的架构、功能、高可用性、性能四大方面进行全面测试&#xff0c;并分享了测试环境和测试结论。 年初&#xff0c;基于某些商业…

[C++]类的继承

一、什么是继承 1.定义&#xff1a; 在 C 中&#xff0c;继承是一种机制&#xff0c;允许一个类&#xff08;派生类&#xff09;继承另一个类&#xff08;基类&#xff09;的成员&#xff08;数据和函数&#xff09;。继承使得派生类能够直接访问基类的公有和保护成员&#xf…

无人机节气门控制技术概述!

一、无人机节气门信号特点 无人机节气门信号主要用于调节无人机的发动机输出功率&#xff0c;其特点主要包括&#xff1a; 高精度&#xff1a;节气门信号需要高精度地反映发动机的转速、功率等状态&#xff0c;以确保无人机能够准确、稳定地飞行。 实时性&#xff1a;无人机…

机器学习之 K-Means

1. 什么是 K-Means&#xff1f; K-Means 是一种常用的无监督学习算法&#xff0c;主要用于聚类分析任务。其目标是将数据集划分为 K 个不同的簇&#xff0c;使得同一簇内的数据点之间的相似性更高&#xff0c;而不同簇的数据点差异更大。K-Means 算法使用了一个简单而有效的迭…

智慧公交指挥中枢,数据可视化 BI 驾驶舱

随着智慧城市的蓬勃发展&#xff0c;公共交通作为城市运营的核心枢纽&#xff0c;正朝着智能化和数据驱动的方向演进。通过整合 CAN 总线技术(Controller Area Network&#xff0c;控制器局域网总线)、车载智能终端、大数据分析及处理等尖端技术&#xff0c;构建的公交“大脑”…

盲盒3.0版h5版-可打包app-新优化版紫色版

整体界面ui美观大气&#xff0c;盲盒项目也是一直比较热门的&#xff0c;各大平台一直自己也有做。 感兴趣的小伙伴可以搭建做自己的项目。盲盒项目的利润率还是很大的。

如何理解符号引用和直接引用?

我们知道在 JVM 中类加载总共使用 5 步组成的&#xff0c;而类的生命周期总共有 7 个阶段&#xff0c;如下图所示&#xff1a; 其中每步的含义如下&#xff1a; 1.加载 加载&#xff08;Loading&#xff09;阶段是整个“类加载”&#xff08;Class Loading&#xff09;过程中…

海康萤石摄像机接入EasyNVR流程:开启RTSP-》萤石视频添加到EasyNVR-》未来支持海康SDK协议添加到EasyNVR

EasyNVR目前支持GB28181、RTSP、ONVIF、RTMP&#xff08;推流&#xff09;这几种协议接入&#xff0c;目前正在增加海康HIKSDK、大华DHSDK等几种SDK的接入&#xff0c;我们今天就介绍一下萤石摄像机怎么通过RTSP接入到EasyNVR。 第一步&#xff1a;萤石摄像机开启 萤石设备默…

【Unity离线渲染器】Octane for Unity 排坑(注册、证书申请、安装)

Unity使用Octane 异常复杂迷惑&#xff0c;官网多数差评就在此&#xff0c;Octane 论坛对unity的讨论已多年未更新。 经过我半天的不屑努力与排错&#xff0c;终于找到一种比较靠谱的方法。 (我用的unity版本是2022.3&#xff0c;估计2017都行&#xff08;不确定&#xff09;&…

Android Studio创建新项目并引入第三方so外部aar库驱动NFC读写器读写IC卡

本示例使用设备&#xff1a;https://item.taobao.com/item.htm?spma21dvs.23580594.0.0.52de2c1bbW3AUC&ftt&id615391857885 一、打开Android Studio,点击 File> New>New project 菜单&#xff0c;选择 要创建的项目模版&#xff0c;点击 Next 二、输入项目名称…