CentOS软件那么老为什么大家还要用它?
作为一个专业的服务器系统,RHEL 系统理论上每一个软件包都有 RedHat 内部的人员负责维护,这个维护包括长期(和系统生命周期一样长)的开发、更新、测试、运维等。也就是说你能从 RHEL 系统源上获得的每一个软件包,出现问题都可以找 RedHat 负责。所以 RHEL 不可能无限制的扩充自己的软件库,不能信手拈来想加什么就加什么,因为加进来是要负责的,是对应相应的人力成本的。所以软件源的规模必须受到限制,企业级用户特别需要的才会有,可有可无的都要评估一下哪个可以加进来哪个不要。这绝对不是普通的桌面用户群所期望的,因为普通的桌面用户群体的宗旨是 “多多益善,我可以忍受不严重的 bug,但是你不能没有我要的功能软件”。比如你如果没有可以解码播放 rmvb 等格式的播放器,那我是肯定忍不了的。但是如果你提供,只是有一点点广告或者有一点 bug,那我是没问题的,比完全没有要强百倍。
而 CentOS 的软件源的匮乏程度比 RHEL 可能强一点,毕竟它可以不需要对 “甲方爸爸” 负责,所以稍微大胆点多加点东西是能理解的。但是受到系统老旧程度和人手限制,能加的也有限。毕竟很多人只是用 CentOS,但是肯为 CentOS 打包维护更多软件的人凤毛麟角。
软件 “老” 而且会越来越 “老”
一个服务器系统的生存周期非常长,动不动就是十年起步。组成系统的软件在系统构建初期就订下了基线版本,比如在 RHEL-7.0 初次构建的时候选择的 gcc 版本是 4.8,那么即使到现在 (2021 年 11 月)上游最新的 gcc 版本已经更新了 11.2,RHEL-7 最新的系统上的 gcc 仍然是基于的 4.8 版本。虽然应用户需求,中间 backport 了很多修复性和新特性的 patch,但是单论特性肯定还是不能和 11.2 版本比的。这就是为什么说软件老,且越来越老的原因。
那么作为一个普通的桌面用户,如果你想使用新版 gcc 上的某些特性,你会发现自己既没有能力完美的单独更新系统的 gcc 到最新(因为受到其它软件包依赖的限制),也极少有人有能力单独把需要的新特性所对应的代码 backport 到老版本上来增强特性。这样的窘境就完全限制住了用户所能 “享受” 的功能和特性的范围。系统已经生存的时间越久,被限制的越死。
CentOS 和 RHEL 一样的,即使 CentOS 的人有意翻新一些软件的版本,它们绝大部分情况下也无能为力,因为 CentOS 还要随着 RHEL 走呢,所以没法偏离的太远,否则它自己没有那么多人力单独维护。
综上所述,“CentOS 软件那么老为什么大家还要用它?” 这个问题中的 “大家” 就包括了两类人。一类是没有必要用但是瞎跟风才用的。另一类是需要用的。
没必要用但是瞎跟风用的人群
这类人多以新人为主,因为 RHEL(及其下游系统)作为现在最主流的服务器系统,每一个想要入行 Linux 的人基本都会被告知应该从此学起,特别是网上众多的教程、帖子也多是围绕 RHEL 类系统。而 RHEL 系统又是收费的,一般人用不到,于是免费的 CentOS 作为 RHEL 的克隆版就被不明所以的新人误以为是 “免费的 Linux 旗舰版”。好像有一种 “我花 4000 元买的课程免费给大家下载” 一样的 “不赚白不赚” 的喜悦。
殊不知 RHEL 或者说 CentOS 对于普通的桌面用户来说 “又老又资源匮乏”,所以这类用户用久了之后就会发现,周围仍然有很多人在不明所以的安利 CentOS 类系统,但是自己用起来又觉得 “不好用”,于是在心底里产生了 “CentOS 软件那么老为什么大家还要用它?” 的疑问。
但是这个问题为什么没有形成规模,可能是因为大部分人迫于周围很多人都在说 CentOS 好,而自己如果体会不出 CentOS 的好,特别是还问出来,那会显得自己很 Low。
需要用的人群
作为专业的服务器操作系统,RHEL 确实是值得服务器用户使用的。企业级用户就不用说了,某些个人用户也有需要使用面向服务器的操作系统的时候。虽然我上面说 RHEL/CentOS 类的系统对于普通桌面用户来说不好使,那是因为普通桌面用户最主要的需求是系统没有严重 bug 的情况下提供越多越新的功能越好。但是需要服务器系统的用户的需求则是系统能持续稳定运行的时间越长越好。
比如我有一个笔记本电脑,我平时用它办公、浏览网页、看视频、打游戏等,我对它上面的系统的需求就是:
给我提供尽可能多的软件资源能让我选
让我能不费力的跟着享受当前非常新的很多软件特性
即使某个软件或某次更新有 bug,但系统只要维持 1 天以上不死机就可接受。因为基本上我晚上睡觉就关机了,坚持到下次修复没什么困难。
同时我在远处的某个地方还有一台工作机,这个工作机我需要它跑很多定时执行的任务,需要它长期维持某些程序的运行。这个 “长期” 可不是一两天的事,甚至一两个星期都不行,而是以年甚至更久为单位。如果能做到一次开机到死不用重启最好。
我给这个工作机装的一个不算新的 RHEL8 系统,除了非公司大楼停电,它基本没死机重启过。而上面我跑了很多虚拟机,我在这些虚拟机里面装了各种系统,有能支持更多新特性的 Fedora 系统,有比较稳定的 CentOS 系统等。而这个 host 主机上的系统只要能维持稳定,并支持我运行这些虚拟机(或容器)就可以。
相关文章:
CentOS软件那么老为什么大家还要用它?
作为一个专业的服务器系统,RHEL 系统理论上每一个软件包都有 RedHat 内部的人员负责维护,这个维护包括长期(和系统生命周期一样长)的开发、更新、测试、运维等。也就是说你能从 RHEL 系统源上获得的每一个软件包,出现问…...
聚观早报|飞猪:五一出游需求爆发;特斯拉一季度盈利同比跌20%
今日要闻:飞猪:五一出游需求爆发;特斯拉一季度盈利同比暴跌20%;郑渊洁永远不再发表作品;KargoBot推出无人化自动驾驶卡车;中国6G通信技术研发取得重要突破 飞猪:五一出游需求爆发 4 月 19 日&a…...
Redis缓存雪崩、穿透、击穿
Redis缓存雪崩、穿透、击穿 解决方案正常的缓存流程Redis缓存雪崩Redis缓存雪崩解决方案 Redis缓存穿透Redis缓存穿透解决方案 Redis缓存击穿Redis缓存击穿解决方案 解决方案 布隆过滤器,分布式锁 正常的缓存流程 Redis缓存雪崩 Redis中的key大面积失效࿰…...
不要老盯着ChatGPT,这几家公司的产品同样不容小觑
Adept.ai 2022 年成立,致力于一款能够代替人类使用电脑、操控软件的AI助手,旗下模型 ACT-1 还处于雏形阶段,但根据官方示例,已经可以完成通过自然语言指令完成特定的任务。公司创始人曾任OpenAI的工程副总裁,后来进入谷…...
DataBinding 大坑总结(网上我暂时搜不到解决方法)
在使用多Module中使用DataBinding会引发一些奇怪的问题,最近好好的腾出时间来折腾这些奇怪的问题: 1:如果当Module启动DataBinding重启AS启动报错的话,就启用允许多行代码 android { defaultConfig {multiDexEnabled true} } de…...
Linux I/O复用函数的使用情况和select接口的介绍
I/O 复用使得程序能同时监听多个文件描述符,这对于提高程序的性能至关重要。通常, 网络程序在下列情况下需要使用 I/O 复用技术: 1.TCP服务器同时要处理监听套接字和连接套接字 2.服务器同时要处理TCP请求和UDP请求。 3.程序同时要处理多个套…...
leetcode:数字转换为十六进制数(详解)
前言:内容包括:题目,代码实现,大致思路,代码解读 题目: 给定一个整数,编写一个算法将这个数转换为十六进制数。对于负整数,我们通常使用 补码运算 方法。 注意: 十六进制中所有字…...
Android 10 设置人脸解锁时,锁屏显示人脸解锁图标
Android 10设置人脸解锁时,锁屏解锁图标不会显示人脸图标,若想显示人脸图标,可参考以下两点进行修改: 1.此处引用人脸图标资源,请参考如下修改: diff --git a/packages/SystemUI/src/com/android/systemui/…...
【嵌入式环境下linux内核及驱动学习笔记-(5-驱动的并发控制机制)】
目录 1、上下文和并发1.1 上下文1.2 共享与临界内核中并发控制机制分为以下几类:并发控制机制的使用场景: 2、 并发控制机制--中断屏蔽3、并发控制机制--原子变量3.1 相关函数原子量类型a.设置原子量的值b.获取原子量的值c.原子变量加减d.原子变量自增自…...
必学宝典 黑马《最新JavaWeb开发教程》上线
对于程序员,所在的行业更迭实属过快,如果是为了找一份好工作,学技术前一定要先了解技术在市场中的需求情况。不然等你学完之后,才发现自己学了已被淘汰、过时的技术,白白浪费了宝贵的学习时间,后悔都来不及…...
【社区图书馆】学习如何读书
人类社会只有发明了发明的方法之后才能发展。同样道理,你们只有学习了学习的方法之后才能进步。 ——查理芒格 进了开发的门,从一开始就在查文档、百度搜 bug 解决的文章、买书,读书。买了很多很厚的工具书,然后拿来垫桌子。再然后…...
CO02工单组件,新增/删除/修改
REPORT zpp153. 事务代码: ZPP153-整散车生产订单自动调整程序名称:ZPP153-整散车生产订单自动调整程序目的:ZPP153-整散车生产订单自动调整开发人员: *(修改日志)--------------------------------------------------------日志号…...
MIT6.824 lab3AB记录
实验目标:基于raft日志复制算法实现的线性一致性kv存储引擎。 线性一致性: 所有的读操作都能够读取到最近一次写操作的结果。所有节点(或者进程)在同一时刻,看到的数据都是相同的。 简而言之,线性一致性…...
一分钟了解美国棒球体系·棒球1号位
美国棒球体系是一个庞大且复杂的体系,涵盖了从青少年到职业的各个层次。下面是美国棒球体系的主要组成部分: 1. 青少年棒球(Youth Baseball) 美国的青少年棒球体系包括各种地区和全国性的联盟,如Little League、Pony…...
通过ObjectMapper和JsonNode 把JSON字符串转换成树结构数据和获取树节点数据
一.简介 今天同事有个需求,要把一个JSON字符串转换成一个树结构的数据并获取节点数据,鉴于自己不想写递归去转换,于是使用ObjectMapper和JsonNode类去实现。 二.依赖 pom文件引入依赖: <dependency><groupId>com.…...
鉴源论坛 · 观模丨面向界面的图形化测试技术
作者 | 熊一衡 华东师范大学软件工程学院博士 苏亭 华东师范大学软件工程学院教授 版块 | 鉴源论坛 观模 01 什么是面向界面的图形化测试(GUI Testing) 图形用户界面(GUI) 是一种通过图形化方式呈现信息、数据、功能和操作的用户界面,旨在…...
Midjourney以图生图的详细教程(含6种案例介绍)
🏆 文章目标:学习并介绍Midjourney以图生图的详细教程 🍀 Midjourney以图生图的详细教程 ✅ 创作者:熊猫Jay 🎉 个人主页:Jay的个人主页 🍁 展望:若本篇讲解内容帮助到您,…...
基于单片机的电路特性测试仪的设计
摘 要 当今社会科技的飞速发展,智能和便捷已经成为人们的日常诉求。现在放大电路在使用过程中经常出现故障,并且需要测试电路数据,但是大多数是手动进行测试,一定程度上影响了工作效率。 为了测量数据更安全更便捷,针…...
五一将迎2亿人次出行,君子签助力旅行社合规高效签旅游电子合同
近日,为规范旅游市场秩序,促进旅行社高质量发展,文旅部发布了《文化和旅游部办公厅关于进一步规范旅游市场秩序的通知》(下称《通知》),对旅游业提出了新的要求。 《通知》中规范了旅行社经营行为。旅行社要…...
IAP升级遇到的问题
文章目录 1. app程序在SystemClock_Config中跑飞2. 程序HAL_Delay中卡死3. 通过外部flash模拟的U盘没能被电脑识别4. 将bin文件拷贝到片内flash中失败5、APP程序跳转过后串口不能工作 这几天在STM32G473使用IAP升级的时候踩了不少坑 1. app程序在SystemClock_Config中跑飞 boo…...
OpenClaw性能测试:Qwen3.5-4B-Claude处理百页文档实测
OpenClaw性能测试:Qwen3.5-4B-Claude处理百页文档实测 1. 测试背景与目标 上周我在整理一个开源项目的技术文档时,遇到了一个头疼的问题——这份文档长达137页,包含了代码示例、架构图和版本变更说明。手动梳理关键信息耗费了我整整两天时间…...
GLM-4-9B-Chat-1M惊艳效果:输入50万字小说,精准定位伏笔与人物关系图谱
GLM-4-9B-Chat-1M惊艳效果:输入50万字小说,精准定位伏笔与人物关系图谱 1. 百万长文处理新标杆 想象一下,你手头有一部50万字的网络小说,想要找出所有埋设的伏笔线索,理清复杂的人物关系网。传统方法可能需要花费数天…...
GD32F30x串口DMA+空闲中断接收不定长数据,一个LED控制项目带你搞懂
GD32F30x串口DMA空闲中断实战:从零构建LED智能控制系统 在嵌入式开发中,串口通信就像设备的"嘴巴"和"耳朵",而DMA技术则是解放CPU的"隐形助手"。想象一下这样的场景:你需要通过手机APP远程控制实验…...
贪心-摆动序列、不重叠字串数量
Ref 贪心B站搜索-折半搜索 分发饼干 class Solution { public:int findContentChildren(vector<int>& g, vector<int>& s) {sort(g.begin(),g.end());sort(s.begin(),s.end());int cnt0;for(int i0,j0;i<g.size()&&j<s.size();){if(s[j]&…...
如何通过AndroidAnnotations与Kotlin扩展函数实现极速Android开发:新手必备指南
如何通过AndroidAnnotations与Kotlin扩展函数实现极速Android开发:新手必备指南 【免费下载链接】androidannotations Fast Android Development. Easy maintainance. 项目地址: https://gitcode.com/gh_mirrors/an/androidannotations AndroidAnnotations是…...
电子元器件检测数据集VOC+YOLO格式1032张5类别
数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件)图片数量(jpg文件个数):1032标注数量(xml文件个数):1032标注数量(txt文件个数):1032标注类别…...
嵌入式开发工具选择与效率提升实践
1. 嵌入式开发者的工作状态与开发工具选择1.1 程序员工作场景分析嵌入式开发者在家庭办公环境中往往表现出独特的工作状态。通过观察典型的工作场景,我们可以总结出几个关键特征:专注度提升:家庭环境减少了办公室干扰,开发者更容易…...
使用AI大大提升了学习代码的效率
最近看到一个观点,说AI的发展导致代码越来越不值钱了,AI降低了我们学习的门槛,大大提升了学习效率。好像很多程序都可以一个人一天上架一款产品。或许有夸张成分,但像我们普通人都体验到了AI的方便,比如在项目开发的过…...
TscanCode静态代码扫描工具原理与实践
嵌入式静态代码扫描工具TscanCode深度解析1. 静态代码分析技术概述1.1 静态代码扫描原理静态代码扫描是一种在不实际执行程序的情况下,通过词法分析、语法分析、控制流和数据流分析等技术对源代码进行检测的方法。这种技术能够有效识别代码中潜在的错误和缺陷&#…...
多层PCB结构与设计核心技术解析
多层PCB内部结构解析与设计指南1. 多层PCB技术概述1.1 多层PCB的基本概念现代电子设备对电路板的要求越来越高,多层PCB已成为复杂电子系统的标准配置。与单层或双层PCB相比,多层PCB通过在绝缘基材上叠加多个导电层,实现了更高的布线密度和更优…...
