当前位置: 首页 > news >正文

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 则提供了用户与这些功能交互的接口。

相关文章:

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

一、初始化系统 Linux不同发行版中的系统初始化系统&#xff08;如 System V init、Upstart 或 systemd&#xff09; System V init&#xff1a; 历史&#xff1a;System V init 是最传统的 Linux 系统初始化系统&#xff0c;起源于 Unix System V 操作系统。运行级别&#xff…...

概率论得学习和整理29: 用EXCEL 描述二项分布

目录 1 关于二项分布的基本内容 2 二项分布的概率 2.1 核心要素 2.2 成功K次的概率&#xff0c;二项分布公式 2.3 期望和方差 2.4 具体试验 2.5 概率质量函数pmf 和cdf 3 二项分布的pmf图的改进 3.1 改进折线图 3.2 如何生成这种竖线图呢 4 不同的二项分布 4.1 p0.…...

C++打造局域网聊天室第九课: 客户端队列及其处理线程

文章目录 前言一、添加客户端队列的参数初始化二、相关函数总结 前言 C打造局域网聊天室第九课&#xff1a; 客户端队列及其处理线程 一、添加客户端队列的参数初始化 在Server.cpp的 ListenThreadFunc()函数内的其他操作处实现客户端队列的添加。 首先进行部分参数的初始化…...

请求go web后端接口 java安卓端播放视频

前端代码 添加gradle依赖 implementation com.squareup.retrofit2:retrofit:2.9.0 implementation com.squareup.retrofit2:converter-gson:2.9.0 添加访问网络权限 <uses-permission android:name"android.permission.INTERNET" />允许http 请求请求 andro…...

XML Schema 复合类型 - 混合内容

XML Schema 复合类型 - 混合内容 XML Schema 是一种用于定义 XML 文档结构和内容的语言。在 XML Schema 中&#xff0c;复合类型是一种包含其他元素和/或属性的复杂类型。混合内容&#xff08;Mixed Content&#xff09;是复合类型的一种特殊形式&#xff0c;它允许元素包含其…...

第8章 搬移特性

8.1 搬移函数 模块化是优秀软件设计的核心所在&#xff0c;好的模块化能够让我在修改程序时只需理解程序的一小部分。为了设计出高度模块化的程序&#xff0c;我得保证互相关联的软件要素都能集中到一块&#xff0c;并确保块与块之间的联系易于查找、直观易懂。同时&#xff0c…...

ARM/Linux嵌入式面经(五九):海尔

1.以后打算在哪里工作 问题回答: 1. 以后打算在哪里工作? 回答这个问题时,我首先会考虑我的个人目标、职业规划以及家庭和生活因素。从职业发展的角度来看,我希望能够在技术氛围浓厚、创新能力强、且能提供良好职业成长机会的地方工作。具体来说,我对以下几个方向特别感…...

java中的List、数组和set

在Java中&#xff0c;List、数组&#xff08;Array&#xff09;和Set 是三种常用的数据结构&#xff0c;它们各自有不同的特性、用途和实现方式。下面我们将深入探讨这三者的特点、区别以及它们在 Java 中的常见使用场景。 1. 数组&#xff08;Array&#xff09; 特性&#x…...

freeswitch(配置文件结构)

vars.xml<X-PRE-PROCESS cmd="set" data="default_password=1234"/>default_password:设置默认密码,为安全起见,建议在部署后立即更改此密码,以防止盗用。<X-PRE-PROCESS cmd=<...

ARMS 用户体验监控正式发布原生鸿蒙应用 SDK

作者&#xff1a;羿莉 背景 对企业数据进行敏感数据扫描和保护可以提升企业或组织的数据安全。一方面敏感数据可能包括个人身份信息、财务记录、医疗记录等&#xff0c;定期扫描这些数据可以防止未经授权的访问和泄露。 另一方面&#xff0c;许多国家和地区都有关于数据保护的…...

使用 esrally race 测试 Elasticsearch 性能:实践指南

在 Elasticsearch 性能优化和容量规划中&#xff0c;使用 esrally 进行基准测试是官方推荐的方式。通过 esrally race 命令&#xff0c;您可以针对不同的数据集与挑战类型&#xff0c;对 Elasticsearch 集群进行精确的性能评估。本文将简要介绍常用的数据集与挑战类型&#xff…...

OkHttp源码分析:分发器任务调配,拦截器责任链设计,连接池socket复用

目录 一&#xff0c;分发器和拦截器 二&#xff0c;分发器处理异步请求 1.分发器处理入口 2.分发器工作流程 3.分发器中的线程池设计 三&#xff0c;分发器处理同步请求 四&#xff0c;拦截器处理请求 1.责任链设计模式 2.拦截器工作原理 3.OkHttp五大拦截器 一&#…...

中国计算机学会计算机视觉专委会携手合合信息举办企业交流活动,为AI安全治理打开“新思路”

近期&#xff0c;《咬文嚼字》杂志发布了2024年度十大流行语&#xff0c;“智能向善”位列其中&#xff0c;过去一年时间里&#xff0c;深度伪造、AI诈骗等话题屡次登上热搜&#xff0c;AI技术“野蛮生长”引发公众担忧。今年9月&#xff0c;全国网络安全标准化技术委员会发布了…...

重生之我在异世界学编程之C语言:深入预处理篇(上)

大家好&#xff0c;这里是小编的博客频道 小编的博客&#xff1a;就爱学编程 很高兴在CSDN这个大家庭与大家相识&#xff0c;希望能在这里与大家共同进步&#xff0c;共同收获更好的自己&#xff01;&#xff01;&#xff01; 本文目录 引言正文一、预处理的作用与流程&#xf…...

dolphinscheduler服务RPC框架源码解析(二)RPC核心注解@RpcService和@RpcMethod设计实现

1.工程目录 从3.2.1版本之后这个dolphinscheduler中的RPC框架工程就从原来的dolphinscheduler-remote工程重构到了dolphinscheduler-extract工程。 dolphinscheduler 父项目 dolphinscheduler-extract RPC服务项目 dolphinscheduler-extract-alert 监控告警服务RPC接口定义、…...

【从零开始入门unity游戏开发之——C#篇04】栈(Stack)和堆(Heap),值类型和引用类型,以及特殊的引用类型string

文章目录 知识回顾一、栈&#xff08;Stack&#xff09;和堆&#xff08;Heap&#xff09;1、什么是栈和堆2、为什么要分栈和堆3、栈和堆的区别栈堆 4、总结 二、值类型和引用类型1、那么值类型和引用类型到底有什么区别呢&#xff1f;值类型引用类型 2、总结 三、特殊的引用类…...

ARCGIS国土超级工具集1.2更新说明

ARCGIS国土超级工具集V1.2版本&#xff0c;功能已增加至47 个。在V1.1的基础上修复了若干使用时发现的BUG&#xff0c;新增了"矢量分割工具"菜单&#xff0c;同时增加及更新了了若干功能&#xff0c;新工具使用说明如下&#xff1a; 一、勘测定界工具栏更新界址点成果…...

暂停window11自动更新

window11 的自动更新功能&#xff0c;一方面在后台占用资源&#xff0c;容易导致电脑卡顿&#xff1b;另一方面&#xff0c;“更新并关机” 和 “更新并重启” 的设置令人极其反感。很多补丁兼容性很差&#xff0c;更新后极易引发电脑蓝屏、闪屏等意想不到的 bug。 1.winR打开运…...

Git简介和特点

目录 一、Git简介 二、Git特点 1.集中式和分布式 (1)集中式版本控制系统 (2)分布式版本控制系统 2.版本存储方式的差异 (1)直接记录快照&#xff0c;而非差异比较 3.近乎所有操作都是本地执行 一、Git简介 Git是目前世界上最先进的的分布式控制系统&#xff08;没有之一…...

如何通过docker 部署minio,端口号为9105

通过Docker部署MinIO对象存储服务&#xff0c;并指定API端口为9105&#xff0c;可以按照以下步骤进行。我们将基于已有的资料来详细说明这一过程。 1. 准备工作 首先&#xff0c;确保你的系统上已经安装了Docker。如果没有安装&#xff0c;可以根据官方文档指导完成安装。接下…...

浅谈 React Hooks

React Hooks 是 React 16.8 引入的一组 API&#xff0c;用于在函数组件中使用 state 和其他 React 特性&#xff08;例如生命周期方法、context 等&#xff09;。Hooks 通过简洁的函数接口&#xff0c;解决了状态与 UI 的高度解耦&#xff0c;通过函数式编程范式实现更灵活 Rea…...

C++_核心编程_多态案例二-制作饮品

#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为&#xff1a;煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例&#xff0c;提供抽象制作饮品基类&#xff0c;提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...

连锁超市冷库节能解决方案:如何实现超市降本增效

在连锁超市冷库运营中&#xff0c;高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术&#xff0c;实现年省电费15%-60%&#xff0c;且不改动原有装备、安装快捷、…...

leetcodeSQL解题:3564. 季节性销售分析

leetcodeSQL解题&#xff1a;3564. 季节性销售分析 题目&#xff1a; 表&#xff1a;sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...

【JavaSE】绘图与事件入门学习笔记

-Java绘图坐标体系 坐标体系-介绍 坐标原点位于左上角&#xff0c;以像素为单位。 在Java坐标系中,第一个是x坐标,表示当前位置为水平方向&#xff0c;距离坐标原点x个像素;第二个是y坐标&#xff0c;表示当前位置为垂直方向&#xff0c;距离坐标原点y个像素。 坐标体系-像素 …...

JVM暂停(Stop-The-World,STW)的原因分类及对应排查方案

JVM暂停(Stop-The-World,STW)的完整原因分类及对应排查方案,结合JVM运行机制和常见故障场景整理而成: 一、GC相关暂停​​ 1. ​​安全点(Safepoint)阻塞​​ ​​现象​​:JVM暂停但无GC日志,日志显示No GCs detected。​​原因​​:JVM等待所有线程进入安全点(如…...

使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台

🎯 使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台 📌 项目背景 随着大语言模型(LLM)的广泛应用,开发者常面临多个挑战: 各大模型(OpenAI、Claude、Gemini、Ollama)接口风格不统一;缺乏一个统一平台进行模型调用与测试;本地模型 Ollama 的集成与前…...

【Java学习笔记】BigInteger 和 BigDecimal 类

BigInteger 和 BigDecimal 类 二者共有的常见方法 方法功能add加subtract减multiply乘divide除 注意点&#xff1a;传参类型必须是类对象 一、BigInteger 1. 作用&#xff1a;适合保存比较大的整型数 2. 使用说明 创建BigInteger对象 传入字符串 3. 代码示例 import j…...

论文笔记——相干体技术在裂缝预测中的应用研究

目录 相关地震知识补充地震数据的认识地震几何属性 相干体算法定义基本原理第一代相干体技术&#xff1a;基于互相关的相干体技术&#xff08;Correlation&#xff09;第二代相干体技术&#xff1a;基于相似的相干体技术&#xff08;Semblance&#xff09;基于多道相似的相干体…...

嵌入式学习笔记DAY33(网络编程——TCP)

一、网络架构 C/S &#xff08;client/server 客户端/服务器&#xff09;&#xff1a;由客户端和服务器端两个部分组成。客户端通常是用户使用的应用程序&#xff0c;负责提供用户界面和交互逻辑 &#xff0c;接收用户输入&#xff0c;向服务器发送请求&#xff0c;并展示服务…...