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

如何选择OS--Linux不同Distribution的选用

写在前言:

刚写了Windows PC的不同editions的选用,趁热,把Linux不同的Distribution选用也介绍下,希望童鞋们可以了解-->理解-->深入了解-->深入理解--...以致于能掌握特定版本的Linux的使用甚者精通。……^.^……

so,前提是你有了才可以用武之地,现在应该有数百个 Linux 发行版可用把,做出正确的选择似乎令人生畏。本文旨在通过鄙人卓见,给童鞋们在选择最适合你们需求的 Linux 发行版做参考。【选择符合您需求的完美(没有完美的 .. :))】

所以那句话挺好,选择大于努力!

第一部分:关于Linux Distribution的几种理解

对于 Linux 初学用户来说,选择 Linux Distribution(发行版)可能是最困难的事情之一。有很多优秀的选择,它们都有自己独特的强项。还有不断的更新、新闻和一般的社区闲聊,使水更加浑浊,使这个过程不再是一条直接的路线。但是,在选择有助于解决问题的发行版时,你可以问自己几个问题,这一切都是为了选择适合你想要和需要的最佳位置的发行版。

什么是 Linux 发行版?(参考redhat.com

Linux® 发行版或发行版是从 Linux 内核构建的可安装操作系统,支持用户程序、存储库和库。每个供应商或社区的版本都是一个发行版

由于 Linux 操作系统是开源的,并根据 GNU 通用公共许可证 (GPL) 发布,因此任何人都可以运行、研究、修改和重新分发源代码,甚至可以出售其修改后的代码的副本。这与传统操作系统(Unix、Microsoft Windows 和 MacOS)有很大不同,后者是专有的,修改性要低得多。

市面上已经有 100 ++个 Linux Distor(以下列举一些),还有更多的 Linux Distor 正在涌现。每个发行版都试图为用户解决一些问题。有些适合初学者、开发人员,而有些只适合创业者。

第二部分:确定你的需求和偏好

在深入了解 Linux 发行版之前,请确定您的要求和偏好。请考虑以下因素:

a. 目的:你是开发人员、系统管理员还是普通用户?不同的发行版可以满足特定需求,因此了解你的目的将有助于缩小选择范围。

b. 硬件兼容性:某些发行版可能不支持较旧或特定的硬件。确保所选发行版与硬件兼容,以避免潜在问题。

c. 界面:Linux 发行版附带各种桌面环境,这些环境会影响整体外观。确定是喜欢简单、轻量级的界面,还是功能丰富的现代界面。

d. 稳定性和更新:稳定性有多重要?你是愿意用尖端功能换取更稳定的体验,还是更喜欢使用最新软件进行频繁更新?

如果考虑更多的场景(比如适用于NAS、USB、Servers、教育者、注重隐私、游戏等),Best Linux distro of 2024 | TechRadar这篇文章非常好,值得一读!

研究下流行的 Linux 发行版

有许多可用的 Linux 发行版,每个发行版都有自己独特的功能和特征。研究最流行的发行版至关重要,因为它们往往拥有更大的社区和更好的支持。一些著名的 Linux 发行版包括:

a. Ubuntu:Ubuntu 以其用户友好性而闻名,是初学者的绝佳选择。它提供广泛的软件和硬件支持,使其成为一个多功能选项。

b. Redhat系列,一般选用CentOS,其处于红帽生态链的上游,即Fedora → CentOS → RHEL,个别用户也可以选用RHEL,但是企业作用优稳的服务器居多。这个系列适用于中游砥柱的人选用。

c. Debian:Debian 是一个稳定而强大的发行版,非常适合那些优先考虑可靠性和长期支持的人。

d. Arch Linux:对于喜欢高度可定制和简约体验的有经验的用户来说,Arch Linux 是一个很好的选择。

e. Linux Mint:Linux Mint 具有与 Windows 类似的界面,是一个适合初学者的发行版,可为从 Windows 切换的用户提供平稳过渡。

评估支持和社区

在选择 Linux 发行版时,拥有强大的社区和充足的支持资源至关重要。请考虑以下因素:

a. 文档:检查发行版是否提供全面的文档来指导您完成安装、故障排除和日常使用。

b.论坛和支持渠道:通过论坛、邮件列表或其他支持渠道评估社区的响应能力和帮助性。

c. 第三方支持:确认发行版具有足够的第三方支持,包括软件、驱动程序和教程。

同时需要保持不断更新和接受变化的态度。请记住,Linux 发行版在不断发展,随着时间的推移,您可能需要重新评估您的选择。如果你的需求或偏好发生变化,请愿意探索其他发行版。在 Linux 发行版之间切换相对简单,因此不要害怕尝试新事物。

第三部分:先试或后付

在确定 Linux 发行版之前,请使用实时 USB 或虚拟机对其进行测试。这允许您评估发行版的性能、兼容性和界面,而不会影响现有系统。检测时需要考虑的一些因素包括:

a. 安装过程:评估安装过程的简单性和用户友好性。

b. 默认软件:检查默认应用程序和软件包管理器,确保它们满足您的要求。

c. 性能和稳定性:在试用期内监控发行版在硬件上的性能和稳定性。

对于非企业的客户建议使用社区版本,毕竟正规的商用途径价格不菲。

 

第四部分:企业版VS社区版的选择

Linux 发行版提供社区版或企业版。社区发行版是主要由开源软件开发社区支持和维护的免费Linux 发行版。企业或商业 Linux 发行版可通过供应商的订阅获得,并且不仅仅依赖于社区支持。

社区发行版和企业发行版之间的主要区别在于谁决定什么对用户很重要。社区发行版的方向由贡献者设定,他们从各种开源软件选项中选择和维护软件包。企业发行版的方向由供应商根据其客户的需求设定。

企业发行版有哪些优势?

如果 Linux 是免费和开源的,您为什么要为商业发行版付费呢?对于没有太多命令行经验或只想尝试和试验的 Linux 初学者用户来说,社区发行版是一个不错的选择。如果您尝试长期支持服务器,那么像 Fedora 这样的社区发行版可能不是最佳选择。社区发行版依赖于其社区成员基于论坛的支持,并且发布周期并不总是有规律的。

企业发行版(如 Red Hat Enterprise Linux)旨在满足业务需求和关注点。Red Hat Enterprise Linux 提供 10 年生命周期支持(而不是 Fedora 的 2 年支持),因此您可以更好地支持长期应用程序。使用企业发行版,您可以获得补丁、更新、升级、专家技术支持以及培训和教程。Enterprise 发行版有时包括包管理器,这些程序支持安装和管理 Linux 软件包。

第五部分:桌面版VS服务器版的选择

有了这个,是时候看看您需要问自己的最基本问题了。你是在桌面还是服务器上运行此发行版?这些情况的需求非常不同。服务器发行版需要坚如磐石的稳定性,而在桌面上安装更新的软件可能会更好。

如果您计划运行服务器,那么您正在寻找较长的发布周期、您计划部署的软件的兼容版本、支持和一般可靠性。

对于桌面,你可以随意,不一定需要较长的发布周期,随时更新需要的应用程序。你甚至可能想要一个滚动发布,让你始终处于最前沿。你可以选择使用图形桌面环境或者不想要,就会减少一些臃肿和笨重的东西。

第六部分:我的场景

场景一:某大型汽车制造业,使用的Linux 基本是server版,ubuntu lts和centos各有比重,一般作为生产辅助的系统和非生产侧系统,比如OA,BPM和一些内部CRM;而生产系统一般以商业版的linux 服务为主,比如oracle linux集群作为数据库服务,甚至SAP是运行在Unix系统之上。……

场景二:某新兴制造业,内部使用的Linux基本是server 社区版,centos居多,主要用于内部信息化部门研发小组使用,比如一些小程序开发,HR接口、OA接口、BPM等小型系统;生产侧系统如MES承载的基础集群为商业版本的Linux系统,搭建的k8s使用Ubuntu lts版本,银行数据库服务使用oracle Linux。……

场景三:教学使用场景,使用centos8 desktop 社区版,ubuntu desktop 社区版,kali linux……

场景四:……WSL2使用的一些Linux版本。

后续待补充……

相关文章:

如何选择OS--Linux不同Distribution的选用

写在前言: 刚写了Windows PC的不同editions的选用,趁热,把Linux不同的Distribution选用也介绍下,希望童鞋们可以了解-->理解-->深入了解-->深入理解--...以致于能掌握特定版本的Linux的使用甚者精通。……^.^…… so&a…...

cesium效果不酷炫怎么办--增加渲染器

DrawCommand 可以发挥 WebGL 全部潜力吗? 回答: Cesium 的 DrawCommand 是一个用于表示 WebGL 渲染管线中单个绘制调用的低级抽象。它封装了执行 WebGL 绘制所需的所有信息,包括着色器程序、顶点数组、渲染状态、统一变量(unifo…...

计算机网络:概述 --- 体系结构

目录 一. 体系结构总览 1.1 OSI七层协议体系结构 1.2 TCP/IP四层(或五层)模型结构 二. 数据传输过程 2.1 同网段传输 2.2 跨网段传输 三. 体系结构相关概念 3.1 实体 3.2 协议 3.3 服务 这里我们专门来讲一下计算机网络中的体系结构。其实我们之前…...

DEPLOT: One-shot visual language reasoning by plot-to-table translation论文阅读

文章链接:https://arxiv.org/abs/2308.01979http://arxiv.org/abs/2212.10505https://arxiv.org/abs/2308.01979 源码链接:https://github.com/cse-ai-lab/RealCQA 启发:two-stage方法可能是未来主要研究方向,能够增强模型可解释…...

从 HDFS 迁移到 MinIO 企业对象存储

云原生、面向 Kubernetes 、基于微服务的架构推动了对 MinIO 等网络存储的需求。在云原生环境中,对象存储的优势很多 - 它允许独立于存储硬件对计算硬件进行弹性扩展。它使应用程序无状态,因为状态是通过网络存储的,并且通过降低操作复杂性&a…...

Rust 常见问题汇总

问题1: cargo build 一直提示Blocking waiting for file lock on package cache。 在 cargo.toml 文件中添加了依赖之后,运行 cargo build 命令时,如果卡在 blocking waiting for file lock on package cache lock 这里, 后来发…...

java泛型类与泛型方法

Java泛型类和泛型方法是Java泛型编程中的重要组成部分。它们允许开发者编写类型安全且高度复用的代码。下面详细介绍泛型类和泛型方法的概念、用法和示例。 泛型类 泛型类是在类定义中使用类型参数的类,可以指定具体的类型实例化该类。这样可以确保类型安全&#…...

Android String资源文件中,空格、换行以及特殊字符如何表示

空格&#xff1a; 例&#xff1a;<string name"test">test test</string> 换行&#xff1a;\n 例&#xff1a;<string name"test">test \n test</string> tab&#xff1a;\t …...

CUDA及GPU学习资源汇总

CUDA C Programming Guide 的中文翻译版GPU中的SM和warp的关系推荐几个不错的CUDA入门教程CUDA编程入门极简教程...

uniapp vue3 梯形选项卡组件

实现的效果图&#xff1a; 切换选项卡显示不同的内容&#xff0c;把这个选项卡做成了一个组件&#xff0c;需要的自取。 // 组件名为 trapezoidalTab <template> <view class"pd24"><view class"nav"><!-- 左侧 --><view cla…...

如何在微信小程序中实现WebSocket连接

微信小程序作为一种全新的应用形态&#xff0c;凭借其便捷性、易用性受到了广大用户的喜爱。在实际开发过程中&#xff0c;实时通信功能是很多小程序必备的需求。WebSocket作为一种在单个TCP连接上进行全双工通信的协议&#xff0c;能够实现客户端与服务器之间的实时通信。本文…...

二级等保测评中安全物理环境的重要性及高危项分析

当今数字化时代&#xff0c;信息安全至关重要。网络安全等级保护测评是确保信息系统安全稳定运行的重要手段之一&#xff0c;其中二级等保测评对于许多企业和组织来说是必须要达到的安全标准。 而安全物理环境作为等保测评的重要组成部分&#xff0c;其重要性不容忽视。 安全物…...

C++11——lambda

lambda lambda的介绍lambda的使用lambda的细节->捕捉列表 lambda的介绍 lambda是匿名函数&#xff0c;再适合的场景去使用可以提高代码的可读性。 场景&#xff1a; 假设有一个Goods类需要进行按照价格、数量排序 class Goods {string name;size_t _price;//价格int num;/…...

Dubbo3序列化安全问题

序列化安全 在 Dubbo 3.0 中&#xff0c;序列化协议的安全性得到了加强。 1. 序列化安全性升级 Triple 协议: 推荐使用 Triple 协议 的非 Wrapper 模式&#xff0c;该模式在安全性上更为严格。需要开发人员编写 IDL&#xff08;接口描述语言&#xff09;文件&#xff0c;这虽…...

秒懂Linux之共享内存

目录 共享内存概念 模拟实现共享内存 创建key阶段 ​编辑创建共享内存阶段 删除共享内存阶段 查看共享内存属性阶段 挂接共享内存到进程阶段 取消共享内存与进程挂接阶段 进程通信阶段 添加管道改进版 共享内存函数 shmget函数 shmat函数 shmdt函数 shmctl函数 共享内存概念 共…...

【计算机网络】网络层协议解析

网络层的两种服务IPv4分类编址划分子网无分类地址 IPv4地址应用IP数据报的发送和转发过程主机发送IP数据报路由器转发IP数据报 IPv4数据报首部格式ICMP网际控制报文协议虚拟专用网VPN与网络地址转换NAT 网络层主要任务是实现网络互连&#xff0c;进而实现数据包在各网络之间的传…...

sqlist void reverse(SqList A)

#include <stdlib.h> #include <stdio.h> #include <iostream> using namespace std; #define INIT_SIZE 5 #define INCREMENT 10 # define OK 1 # define ERROR 0/* 定义ElemType为int类型 */ typedef int ElemType; void input(ElemType &s); void out…...

聊聊Thread Local Storage

聊聊ThreadLocal 为什么需要Thread Local StorageThread Local Storage的实现PThread库实现操作系统实现GCC __thread关键字实现C11 thread_local实现JAVA ThreadLocal实现 Thread Local Storage 线程局部存储&#xff0c;简称TLS。 为什么需要Thread Local Storage 变量分为全…...

WEB攻防-JS项目Node.js框架安全识别审计验证绕过

知识点&#xff1a; 1、原生JS&开发框架-安全条件 2、常见安全问题-前端验证&未授权 详细点&#xff1a; 1、什么是JS渗透测试&#xff1f; 在JavaScript中也存在变量和函数&#xff0c;当存在可控变量及函数调用即可参数漏洞 2、流行的Js框架有哪些&#xff1f; …...

STM32——SPI

1.SPI简介 SPI&#xff0c;是英语Serial Peripheral Interface的缩写&#xff0c;顾名思义就是串行外围设备接口。SPI&#xff0c;是一种高速的&#xff0c;全双工&#xff0c;同步的通信总线&#xff0c;并且在芯片的管脚上只占用四根线&#xff0c;节约了芯片的管脚&#xf…...

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…...

JVM垃圾回收机制全解析

Java虚拟机&#xff08;JVM&#xff09;中的垃圾收集器&#xff08;Garbage Collector&#xff0c;简称GC&#xff09;是用于自动管理内存的机制。它负责识别和清除不再被程序使用的对象&#xff0c;从而释放内存空间&#xff0c;避免内存泄漏和内存溢出等问题。垃圾收集器在Ja…...

华为OD机试-食堂供餐-二分法

import java.util.Arrays; import java.util.Scanner;public class DemoTest3 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseint a in.nextIn…...

Python爬虫(一):爬虫伪装

一、网站防爬机制概述 在当今互联网环境中&#xff0c;具有一定规模或盈利性质的网站几乎都实施了各种防爬措施。这些措施主要分为两大类&#xff1a; 身份验证机制&#xff1a;直接将未经授权的爬虫阻挡在外反爬技术体系&#xff1a;通过各种技术手段增加爬虫获取数据的难度…...

【Zephyr 系列 10】实战项目:打造一个蓝牙传感器终端 + 网关系统(完整架构与全栈实现)

🧠关键词:Zephyr、BLE、终端、网关、广播、连接、传感器、数据采集、低功耗、系统集成 📌目标读者:希望基于 Zephyr 构建 BLE 系统架构、实现终端与网关协作、具备产品交付能力的开发者 📊篇幅字数:约 5200 字 ✨ 项目总览 在物联网实际项目中,**“终端 + 网关”**是…...

Python Ovito统计金刚石结构数量

大家好,我是小马老师。 本文介绍python ovito方法统计金刚石结构的方法。 Ovito Identify diamond structure命令可以识别和统计金刚石结构,但是无法直接输出结构的变化情况。 本文使用python调用ovito包的方法,可以持续统计各步的金刚石结构,具体代码如下: from ovito…...

[大语言模型]在个人电脑上部署ollama 并进行管理,最后配置AI程序开发助手.

ollama官网: 下载 https://ollama.com/ 安装 查看可以使用的模型 https://ollama.com/search 例如 https://ollama.com/library/deepseek-r1/tags # deepseek-r1:7bollama pull deepseek-r1:7b改token数量为409622 16384 ollama命令说明 ollama serve #&#xff1a…...

PostgreSQL——环境搭建

一、Linux # 安装 PostgreSQL 15 仓库 sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-$(rpm -E %{rhel})-x86_64/pgdg-redhat-repo-latest.noarch.rpm# 安装之前先确认是否已经存在PostgreSQL rpm -qa | grep postgres# 如果存在&#xff0…...

Golang——7、包与接口详解

包与接口详解 1、Golang包详解1.1、Golang中包的定义和介绍1.2、Golang包管理工具go mod1.3、Golang中自定义包1.4、Golang中使用第三包1.5、init函数 2、接口详解2.1、接口的定义2.2、空接口2.3、类型断言2.4、结构体值接收者和指针接收者实现接口的区别2.5、一个结构体实现多…...

C++--string的模拟实现

一,引言 string的模拟实现是只对string对象中给的主要功能经行模拟实现&#xff0c;其目的是加强对string的底层了解&#xff0c;以便于在以后的学习或者工作中更加熟练的使用string。本文中的代码仅供参考并不唯一。 二,默认成员函数 string主要有三个成员变量&#xff0c;…...