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.mzph.cn/diannao/64641.shtml

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

相关文章

3D造型软件solvespace在windows下的编译

3D造型软件solvespace在windows下的编译 在逛开源社区的时候发现了几款开源CAD建模软件&#xff0c;一直囿于没有合适的建模软件&#xff0c;虽然了解了很多的模拟分析软件&#xff0c;却不能使之成为整体的解决方案&#xff0c;从而无法产生价值。opencascad之流虽然可行&…

机器学习04-为什么Relu函数

机器学习0-为什么Relu函数 文章目录 机器学习0-为什么Relu函数 [toc]1-手搓神经网络步骤总结2-为什么要用Relu函数3-进行L1正则化修改后的代码解释 4-进行L2正则化解释注意事项 5-Relu激活函数多有夸张1-细数Relu函数的5宗罪2-Relu函数5宗罪详述 6-那为什么要用这个Relu函数7-文…

Redis篇-21--运维篇3-集群(分片,水平扩展,高可用,集群配置案例,扩展哨兵案例)

1、概述 Redis集群&#xff08;Cluster&#xff09;通过分片&#xff08;sharding&#xff09;实现了水平扩展&#xff0c;允许数据分布在多个节点上&#xff0c;从而提升性能和存储容量。 在Redis集群中&#xff0c;数据被分割成16384个哈希槽&#xff08;hash slots&#x…

QScreen在Qt5.15与Qt6.8版本下的区别

简述 QScreen主要用于提供与屏幕相关的信息。它可以获取有关显示设备的分辨率、尺寸、DPI&#xff08;每英寸点数&#xff09;等信息。本文主要是介绍Qt5.15与Qt6环境下&#xff0c;QScreen的差异&#xff0c;以及如何判断高DPI设备。 属性说明 logicalDotsPerInch&#xff1…

[HNCTF 2022 Week1]你想学密码吗?

下载附件用记事本打开 把这些代码放在pytho中 # encode utf-8 # python3 # pycryptodemo 3.12.0import Crypto.PublicKey as pk from hashlib import md5 from functools import reducea sum([len(str(i)) for i in pk.__dict__]) funcs list(pk.__dict__.keys()) b reduc…

shell8

until循环(条件为假的时候一直循环和while相反) i0 until [ ! $i -lt 10 ] doecho $i((i)) done分析 初始化变量&#xff1a; i0&#xff1a;将变量i初始化为0。 条件判断 (until 循环)&#xff1a; until [ ! $i -lt 10 ]&#xff1a;这里的逻辑有些复杂。它使用了until循环…

【游戏中orika完成一个Entity的复制及其Entity异步落地的实现】 1.ctrl+shift+a是飞书下的截图 2.落地实现

一、orika工具使用 1)工具类 package com.xinyue.game.utils;import ma.glasnost.orika.MapperFactory; import ma.glasnost.orika.impl.DefaultMapperFactory;/*** author 王广帅* since 2022/2/8 22:37*/ public class XyBeanCopyUtil {private static MapperFactory mappe…

frp内网穿透笔记

文章目录 一、环境介绍二、配置过程2.1 下载文件2.3 服务器A的配置2.3 目标机B的配置2.4 电脑C怎么用 三、问题汇总 一、环境介绍 带公网的vps服务器A&#xff0c;需要穿透到的无公网目标电脑B&#xff0c;以及一台需要通过公网访问B的电脑C。frp 0.47.0&#xff1a;frp_0.47.…

PostgreSQL的交互式终端使用一系列命令来获取有关文本搜索配置对象的信息

在 psql&#xff08;PostgreSQL 的交互式终端&#xff09;中&#xff0c;你可以使用一系列命令来获取有关文本搜索配置对象的信息。这些命令主要围绕 \dF 系列&#xff0c;以及使用 SQL 查询 pg_ts_config 系统视图。以下是你可以使用的一些方法&#xff1a; 使用 \dF 系列命令…

写定制程序容易遇见的问题(FLASH不够时)

做了一个关于定制两条串口协议的活&#xff0c;主要是要在源代码基础上进行修改。源代码只剩了200多字节flash。本来最初我的想法很奇特&#xff0c;用结构体来模仿寄存器的写法。当我写完几行代码后&#xff0c;编译链接&#xff0c;立马就报CODE内存超了。 然后最终还是选择…

【Leetcode 热题 100 - 扩展】303. 区域和检索 - 数组不可变

问题背景 给定一个整数数组 n u m s nums nums&#xff0c;处理以下类型的多个查询&#xff1a; 计算索引 l e f t left left 和 r i g h t right right&#xff08;包含 l e f t left left 和 r i g h t right right&#xff09;之间的 n u m s nums nums 元素的 和 &a…

本地缓存和Redis缓存 存储更新时间的更新套路

//先获取redis key和local key //从reids中获取数据 – 为空 先设置redis缓存30天,value为当前时间 然后设置本地缓存,value为当前时间 从数据库里读数据 – 不为空 获取本地缓存时间 if本地缓存时间 < redis缓存时间(认为已更新)或者本地为空 从数据库读数据 else 从本地缓…

处理错误的两种方式:try...catch 与 then...catch

一、try...catch try...catch 是一种用于捕获和处理同步代码中异常的机制。其基本结构如下&#xff1a; try {// 可能会抛出异常的代码 } catch (error) {// 处理异常 }使用场景&#xff1a; 主要用于同步代码&#xff0c;尤其是在需要处理可能抛出的异常时。适用于函数调用…

【十进制整数转换为其他进制数——短除形式的贪心算法】

之前写过一篇用贪心算法计算十进制转换二进制的方法&#xff0c;详见&#xff1a;用贪心算法计算十进制数转二进制数&#xff08;整数部分&#xff09;_短除法求二进制-CSDN博客 经过一段时间的研究&#xff0c;本人又发现两个规律&#xff1a; 1、不仅仅十进制整数转二进制可…

【Harmony Next】多个图文配合解释DevEco Studio工程中,如何配置App相关内容,一次解决多个问题?

解决App配置相关问题列表 1、Harmony Next如何配置图标&#xff1f; 2、Harmony Next如何配置App名称&#xff1f; 3、Harmony Next如何配置版本号&#xff1f; 4、Harmony Next如何配置Bundle ID? 5、Harmony Next如何配置build号&#xff1f; 6、Harmony Next多语言配置在哪…

Mybatis分页插件的使用问题记录

项目中配置的分页插件依赖为 <dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper</artifactId><version>5.1.7</version></dependency>之前的项目代码编写分页的方式为&#xff0c;通过传入的条件…

Anthropic 工程师关于提示词工程的深入探讨

李玉光 北京聚云科技有限公司 联合创始人兼首席架构师 拥有 12 年以上的 Amazon Web Services 开发与架构经验。擅长设计和实施大规模、高弹性、自动化的云原生解决方案。云成本优化方面经验丰富&#xff0c;帮助众多企业有效降低云使用成本。并协助各类行业客户利用 Amazon We…

SpringBoot之validation参数校验并返回统一格式提示

前言 在日常的开发过程中&#xff0c;后端需要经常对参数进行校验&#xff0c;比如某参数不能为空&#xff0c;格式等&#xff0c;只有校验通过后才可以执行后续的业务逻辑&#xff0c;否则就要在接口返回错误信息给前端。 一般情况下&#xff0c;可以使用if…else…来校验参数…

【技术干货】移动SDK安全风险及应对策略

移动SDK&#xff08;软件开发工具包&#xff09;已经成为应用开发中不可或缺的一部分。通过SDK&#xff0c;开发者能够快速集成分析、广告调度、音视频处理、社交功能和用户身份验证等常见功能&#xff0c;而无需从零开始构建。这不仅能节省时间和资源&#xff0c;还能提高开发…

MATLAB中cvx工具箱的使用

CVX 是 MATLAB 中一个用于解决凸优化问题的建模工具箱。它使得定义、求解和分析凸优化问题变得简单。CVX 允许用户用类似数学表达的方式编写凸优化问题&#xff0c;而不需要过多关注底层的优化算法。CVX 的核心功能是将一个简单的数学问题转化为 MATLAB 可以理解并求解的标准形…