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

Ubuntu也开始锈化了?Ubuntu 计划在 25.10 版本开始引入 Rust Coreutils

上个月,jnsgruk发表了《未来20年的Ubuntu工程》(Engineering Ubuntu For the Next 20 Years)一文,其中概述了打算在未来几年中如何发展Ubuntu的四个关键主题。在这篇文章中,重点讨论 了“现代化”。在很多方面对Ubuntu进行现代化改造,例如专注于图形化shell体验、虚拟化堆栈、核心系统实用程序、默认shell实用程序等。

多年来,像 GNU Coreutils 这样的项目对于 Ubuntu 和其他 Linux 发行版给数百万用户带来的类似 Unix 的体验起到了至关重要的作用。GNU Coreutils是 GNU 操作系统的基本文件、shell 和文本操作实用工具。这些是每个操作系统都应具备的核心实用程序。对许多人来说,这个软件包提供的实用程序已成为 Linux 的代名词,如 ls、cp 和 mv。近年来,人们一直在努力用 Rust 重新实现这套工具,目标是实现与现有工具的 100% 兼容。类似的项目,如 sudo-rs ,旨在用更现代、内存更安全的工具替代关键的安全实用程序。

从 Ubuntu 25.10 开始,我们的目标是将其中一些现代实现作为默认设置。近期目标是将 uutils 的 coreutils 实现作为 Ubuntu 25.10 的默认设置,如果条件允许,还将在下一个长期支持(LTS)版本 Ubuntu 26.04 LTS 中采用。

But… why?

Rust 语言、其类型系统和借用检查器(以及其社区!)通力合作,鼓励开发人员编写安全、可靠、有弹性的软件。随着安全性的提高,安全保证也会随之提高,而随着安全性的提高,系统的整体弹性也会随之提高–还有什么比从构建发行版的基础工具开始更合适的呢?

最近,一篇关于 2025 年使用 Rust 开发基础软件的文章 。除其他外,这篇文章还声称 “基础软件需要性能、可靠性和生产力”。如果基础软件失效,那么构建在其上的所有其他层也会失效。如果基础软件包存在性能瓶颈,那么它们就会成为上面各层所能达到的性能的底线。

Ubuntu 为全球数百万台设备提供支持,从数据中心的服务器到自主系统中的安全关键系统,因此我们有责任确保我们所提供的软件是最有弹性、最值得信赖的。

要做到这一点,方法有很多:我们可以为 Kubernetes 等项目提供长期支持 ,我们可以努力做到符合以安全为中心的标准 ,但另一种方法是以安全、稳健、正确和弹性为核心价值来发布软件。

当然,这并不是要对现有的实现方法指手画脚。这些工具中的许多已经稳定运行多年,默默地提高性能、修复漏洞。在较新实现上工作的一个可爱的副作用是,它有时也会促进原始上游项目的改进!

uutils 重写除了更宽松的许可证以外,还有如下几个优点:

提供对 Windows、macOS、BSD、甚至安卓(通过 busybox)的支持

提供单文件版本

提供一些改善生活质量的小功能

为什么要用 Rust 来重写这些工具?

Sylvestre 在接受采访的时候说,这些核心组件的代码有些可能已经有三十多年四十年,他们时至今日依然可以正常运作——但有些已经失去了维护。

为什么会选择 Rust,Sylvestre 提到了年轻人对 C 语言的兴致没有以前那么高了,他们更喜欢更“酷”的语言,让下一代人维护这些核心设施更加轻松是他的主要驱动力。我们没办法保证未来三十年,甚至是十年后还能有足量的、能力足够的 C 语言用户来维护这些古老的从上世纪传流下来的代码。

除此之外,使用 Rust 的主要理由并非是很多人津津乐道的安全性,而主要是因为这门语言结合了很多工程经验使其更加易用:比如 cargo,比如并发,比如些许函数式特性。

由于 Sylvestre 先前参与了 Clang 和 LLVM 的开发,而 Clang 有个很经典的观点:“如果我们没有实现一个 GCC 标志(功能?),那就是个 bug”,他带着这个信念参加了 uutils 的开发并且成为了现在 uutils 的主要维护者,我认为没有这个观点 uutils 的 coreutils 不会在今天能够成为 Ubuntu 25.10 的选择:带着这个观点,实现相同的数据处理模型,再加上吸收了更多工程经验的系统级语言作为工具,全新的代码基更能面对未来维护上的挑战。

在这里插入图片描述

从 Rust 使用者/爱好者的角度来说是个巨大的利好,因为 Ubuntu 下场有望促进 uutils 项目和相关依赖的迅速迭代。不过就目前 uutils 项目的完成度来看,25.10 是否能引入还是需要打一个大问号的。目前来看,虽然进展整体不错,但还是有不少测例是skip和fail状态的。

参考:
https://discourse.ubuntu.com/t/carefully-but-purposefully-oxidising-ubuntu/56995

相关文章:

Ubuntu也开始锈化了?Ubuntu 计划在 25.10 版本开始引入 Rust Coreutils

上个月,jnsgruk发表了《未来20年的Ubuntu工程》(Engineering Ubuntu For the Next 20 Years)一文,其中概述了打算在未来几年中如何发展Ubuntu的四个关键主题。在这篇文章中,重点讨论 了“现代化”。在很多方面对Ubuntu…...

C++命名空间、内联与捕获

命名空间namespace 最常见的命名空间是std,你一定非常熟悉,也就是: using namespace std;命名空间的基本格式 注意,要在头文件里面定义! namespace namespace_name{data_type function_name(data_type parameter){data_type result;//function contentreturn result;}…...

PostgreSQL 系统管理函数详解

PostgreSQL 系统管理函数详解 PostgreSQL 提供了一系列强大的系统管理函数,用于数据库维护、监控和配置。这些函数可分为多个类别,以下是主要功能的详细说明: 一、数据库配置函数 1. 参数管理函数 -- 查看所有配置参数 SELECT name, sett…...

mdadm 报错: buffer overflow detected

最近跑 blktest (https://github.com/osandov/blktests) 时发现 md/001 的测试失败了 单独执行,最后定位到是 mdadm 命令报错: buffer overflow detected 这个 bug 目前已经修复: https://git.kernel.org/pub/scm/utils/mdadm/mdadm.git/commit/?id827e1870f3205…...

java ReentrantLock

线程同步工具。可以替代 synchronized . private final ReentrantLock reentrantLock new ReentrantLock();void testTask1 () {reentrantLock.lock(); // 获取锁try {System.out.println(Thread.currentThread().getName() " 进入临界区");// 模拟执行业务逻辑Th…...

kettle从入门到精通 第九十六课 ETL之kettle Elasticsearch 增删改查彻底掌握

场景: 群里有小伙伴咨询kettle从Elasticsearch中抽取数据,群里老师们纷纷响应,vip小伙伴是不是有中受宠若惊的感觉。 今天我们使用kettle通过es的原生rest接口来进行操作es,开整。 前提:本篇文章基于elasticsearch:7.…...

Kafka的核心组件有哪些?简要说明其作用。 (Producer、Consumer、Broker、Topic、Partition、ZooKeeper)

Kafka 核心组件解析 1. 基础架构图解 ┌─────────┐ ┌─────────┐ ┌─────────┐ │Producer │───▶ │ Broker │ ◀─── │Consumer │ └─────────┘ └─────────┘ └────────…...

Missashe考研日记-day34

Missashe考研日记-day34 1 专业课408 学习时间:3h学习内容: 今天是学习I/O管理第二小节的内容,听了课也做了题,这是操作系统倒数第二节知识了,还差最后一节就完结了。知识点回顾: 1.I/O核心子系统&#x…...

机器人跑拉松是商业噱头还是技术进步的必然体现

一、机器人跑拉松是商业噱头还是技术进步的必然体现 机器人参与马拉松赛事究竟是营销噱头还是技术进步的必然要求,需要从技术验证、行业推动、公众认知以及争议焦点等多个维度综合分析。基于全球首场人形机器人半程马拉松(2025年北京亦庄赛事&#xff0…...

传输层协议 1.TCP 2.UDP

传输层协议 1.TCP 2.UDP TCP协议 回顾内容 传输层功能:定义应用层协议数据报文的端口号,流量控制对原始数据进行分段处理 传输层所提供服务 传输连接服务数据传输服务:流量控制、差错控制、序列控制 一、传输层的TCP协议 1.面向连接的…...

LLM :Function Call、MCP协议与A2A协议

LLM 的函数调用、模型上下文协议 (MCP) 和 Agent to Agent (A2A) 协议:概念、区别与实例对比 引言:LLM 不断演进的格局 大型语言模型 (LLM) 的日益精进,使其能力已超越简单的文本生成,迈向与现实世界进行复杂交互的新阶段。为了…...

当当狸智能天文望远镜 TW2 | 用科技触摸星辰,让探索触手可及

当科技邂逅星空,每个普通人都能成为宇宙的追光者 伽利略用望远镜揭开宇宙面纱的 400 年后,当当狸以颠覆传统的设计,让天文观测从专业领域走入千家万户。当当狸智能天文望远镜 TW2,重新定义「观星自由」—— 无需专业知识&#xff…...

白杨SEO:如何查看百度、抖音、微信、微博、小红书、知乎、B站、视频号、快手等7天内最热门话题及流量关键词有哪些?使用方法和免费工具推荐以及注意事项【干货】

大家好,我是白杨SEO,专注SEO十年以上,全网SEO流量实战派,AI搜索优化研究者。 (温馨提醒:本文有点长,看不完建议先收藏或星标,后面慢慢看哈) 最近,不管是在白…...

Spring AI 之 AI核心概念

模型 人工智能(AI)模型是用于处理和生成信息的算法,通常旨在模拟人类的认知功能。这些模型通过从大规模数据集中学习模式和规律,能够生成预测结果、文本、图像或其他形式的输出,从而增强各行业应用的效能。 AI 模型种类繁多,每种模型都适用于特定的应用场景。虽然以 Ch…...

微软输入法常用快捷键介绍以及调教技巧

微软输入法(Microsoft Pinyin Input Method)是 Windows 系统内置的中文输入工具,以其高效、智能化的特点广受用户喜爱。掌握其常用快捷键和特殊模式可以显著提升输入效率。本文将介绍微软输入法在 Windows 10/11 环境下的常用快捷键及 U 模式…...

基于大模型的输卵管妊娠全流程预测与治疗方案研究报告

一、引言 1.1 研究背景与意义 输卵管妊娠作为异位妊娠中最为常见的类型,严重威胁着女性的生殖健康和生命安全。受精卵在输卵管内着床发育,随着胚胎的生长,输卵管无法提供足够的空间和营养支持,极易引发输卵管破裂、大出血等严重并发症,若救治不及时,甚至会导致孕产妇死…...

16.Excel:打印技巧

一 区域打印 不用打印整个表格,比如只想打印框选出来的信息。 选中区域调整列宽。 二 整表打印 选中整个工作表, 如果调完边距后仍然打印不完全,就用缩放功能。 三 居中打印 打印部分区域的时候,预览图不在居中。 四 行号打印 五 …...

AI驱动的Kubernetes管理:kubectl-ai 如何简化你的云原生运维

AI驱动的Kubernetes管理:kubectl-ai 如何简化你的云原生运维 kubectl-ai 项目概览核心能力:AI 如何赋能 kubectl自然语言的魔力:从繁琐命令到简单对话智能的命令生成与执行不仅仅是执行:结果的可解释性广泛的 AI 模型支持&#xf…...

maven基本介绍

Maven是一个常用的项目构建工具,用于管理Java项目的构建、依赖管理和项目信息管理。它可以帮助开发人员自动化构建过程,统一项目结构和构建规范,并管理项目所需的外部依赖库。 Maven通过一个项目对象模型(Project Object Model&a…...

SPL量化 BBIC(多空指标)

BBIC 是一种将不同天数移动平均线加权平均之后的综合指标&#xff0c;属于均线型指标&#xff0c;一般选用 3 日、6 日、12 日、24 日等 4 条平均线。BBIC 越小股价越强势&#xff0c;BBIC < 1 为多头行情&#xff0c; BBIC>1 为空头行情。 计算公式&#xff1a; 1. 3 日…...

【ArcGIS Pro微课1000例】0068:Pro原来可以制作演示文稿(PPT)

文章目录 一、新建演示文稿二、插入页面1. 插入地图2. 插入空白文档3. 插入图像4. 插入视频三、播放与保存一、新建演示文稿 打开软件,新建一个地图文档,再点击【新建演示文稿】: 创建的演示文档会默认保存在目录中的演示文稿文件夹下。 然后可以对文档进行简单的设计,例如…...

【论文阅读】Reconstructive Neuron Pruning for Backdoor Defense

我们的主要贡献包括&#xff1a; 我们引入了在相同样本集上进行神经元“遗忘”和“恢复”的新技术&#xff0c;并揭示了这种简单的基于重构的学习过程可以帮助暴露DNNs中的后门神经元。我们提出了一个新的防御方法——重构神经元剪枝&#xff08;RNP&#xff09;&#xff0c;它…...

[数据处理] 3. 数据集读取

&#x1f44b; 你好&#xff01;这里有实用干货与深度分享✨✨ 若有帮助&#xff0c;欢迎&#xff1a;​ &#x1f44d; 点赞 | ⭐ 收藏 | &#x1f4ac; 评论 | ➕ 关注 &#xff0c;解锁更多精彩&#xff01;​ &#x1f4c1; 收藏专栏即可第一时间获取最新推送&#x1f514;…...

Ceph 原理与集群配置

一、Ceph 工作原理 1.1.为什么学习 Ceph&#xff1f; 在学习了 NFS 存储之后&#xff0c;我们仍然需要学习 Ceph 存储。这主要是因为不同的存储系统适用于不同的场景&#xff0c;NFS 虽然有其适用之处&#xff0c;但也存在一定的局限性。而 Ceph 能够满足现代分布式、大规模、…...

【C++】类和对象

文章目录 1. 为什么引入类&#xff1f;1.1 C类的设计目标1.2 类的核心特性1.3 类与结构体的区别 2. 类的定义2.1 类定义格式2.2 访问限定符2.3 类域 3. 实例化3.1 实例化概念3.2 对象大小 4. this指针5. 类的默认成员函数6. 构造函数7. 析构函数8. 拷贝构造函数9. 赋值运算符重…...

【计算机视觉】OpenCV项目实战:OpenCV_Position 项目深度解析:基于 OpenCV 的相机定位技术

OpenCV_Position 项目深度解析&#xff1a;基于 OpenCV 的相机定位技术 一、项目概述二、技术原理&#xff08;一&#xff09;单应性矩阵&#xff08;Homography&#xff09;&#xff08;二&#xff09;算法步骤&#xff08;三&#xff09;相机内参矩阵 三、项目实战运行&#…...

【Linux系列】如何区分 SSD 和机械硬盘

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...

【AI提示词】双系统理论专家

提示说明 专注于认知心理学领域的专家&#xff0c;研究快思考&#xff08;直觉&#xff09;与慢思考&#xff08;理性&#xff09;的切换机制及其在认知科学中的应用。 提示词 # Role: 双系统理论专家## Profile - language: 中文 - description: 专注于认知心理学领域的专家…...

CI/CD与DevOps流程流程简述(给小白运维提供思路)

一 CI/CD流程详解&#xff1a;代码集成、测试与发布部署 引言 在软件开发的世界里&#xff0c;CI/CD&#xff08;持续集成/持续交付&#xff09;就像是一套精密的流水线&#xff0c;确保代码从开发到上线的整个过程高效、稳定。我作为一名资深的软件工程师&#xff0c;接下来…...

python调用国税乐企直连接口开数电票之查询税收分类编码信息

背景 通过国税官方开放乐企平台接口, 实现了在EPR系统内直接开票. 无需通过任何第三方系统.逐步更新到CSDN专栏分享大家参考. 接口说明 定时获取可用税收分类编码&#xff0c;绑定ERP内部的编码, 使开票时能根据商品匹配到对应的税收分类编码…针对不同编码维护了 18 类增值…...

国标GB28181视频平台EasyGBS打造电力行业变电站高效智能视频监控解决方案

一、方案背景​ 在数字化浪潮席卷电力行业的当下&#xff0c;变电站作为电力输送与分配的核心枢纽&#xff0c;其运行的安全性与稳定性直接关乎社会生产生活的正常运转。然而&#xff0c;传统变电站监控模式设备存在兼容性差、数据处理滞后、管理效率低下等问题&#xff0c;无…...

快速上手 Docker:从入门到安装的简易指南(Mac、Windows、Ubuntu)

PS&#xff1a;笔者在五一刚回来一直搞Docker部署AI项目&#xff0c;发现从开发环境迁移到生成环境时&#xff0c;Docker非常好用。但真的有一定上手难度&#xff0c;推荐读者多自己尝试踩踩坑。 本篇幅有限&#xff0c;使用与修改另起篇幅。 一、Docker是什么 #1. Docker是什…...

Kubernetes(k8s)学习笔记(九)--搭建多租户系统

K8s 多租户管理 多租户是指在同一集群中隔离多个用户或团队&#xff0c;以避免他们之间的资源冲突和误操作。在K8s中&#xff0c;多租户管理的核心目标是在保证安全性的同时&#xff0c;提高资源利用率和运营效率。 在K8s中&#xff0c;该操作可以通过命名空间&#xff08;Nam…...

后端项目进度汇报

项目概述 本项目致力于构建一个先进的智能任务自动化平台。其核心技术是一套由大型语言模型&#xff08;LLM&#xff09;驱动的后端系统。该系统能够模拟一个多角色协作的团队&#xff0c;通过一系列精心设计或动态生成的处理阶段&#xff0c;来高效完成各种复杂任务&#xff…...

掌握 Kubernetes 和 AKS:热门面试问题和专家解答

1. 在 AKS&#xff08;Azure Kubernetes 服务&#xff09;中&#xff0c;集群、节点、Pod 和容器之间的关系和顺序是什么&#xff1f; 在 AKS&#xff08;Azure Kubernetes 服务&#xff09;中&#xff0c;集群、节点、Pod 和容器之间的关系和顺序如下&#xff1a; 集群&#…...

C++面向对象设计类的核心知识详解总述(1)

C 中的类是面向对象编程&#xff08;OOP&#xff09;的核心&#xff0c;用于封装数据和操作这些数据的函数。 下面将系统讲解 C 中类的核心知识点&#xff08;包含语法 概念 示例&#xff09;&#xff1a; 一、类的基本结构 class MyClass { public:// 构造函数MyClass();//…...

【大模型系列篇】Qwen3思考预算及思考模式切换实现原理探索

我们之前一期有介绍过阿里发布并开源的Qwen3大语言模型&#xff0c;无缝集成思考模式、多语言和MCP智能体&#xff1a;《Qwen3开源全新一代大语言模型来了&#xff0c;深入思考&#xff0c;更快行动》&#xff0c;感兴趣的小伙伴可以跳转阅读。 而在本次开源的 Qwen3 的更新中…...

PPT 制作难题迎刃而解,影刀 RPA 开启自动化创作时代

前言 影刀cto说过这么一句话&#xff1a;不迷信AI&#xff0c;也不忽视AI&#xff0c;我们要打造以AI驱动的RPA&#xff0c;AI对当前社会的影响真的不亚于一场战争的爆发 RPA&#xff08;机器人流程自动化&#xff09;作为一种已被广泛应用的技术&#xff0c;能基于预设规则自…...

Node.js面试题

一、什么是Node.js&#xff1f; Node.js 是一个开源的跨平台 JavaScript 运行时环境&#xff0c;允许开发者在服务器端运行 JavaScript 代码。它基于 Chrome 的 V8 JavaScript 引擎构建&#xff0c;能够高效地处理 I/O 操作&#xff0c;适合构建高性能的网络应用。 异步非阻塞&…...

C# NX二次开发:投影曲线和偏置曲线UFUN函数详解

大家好&#xff0c;今天要讲的是关于投影曲线和偏置曲线相关的函数。 &#xff08;1&#xff09;UF_CURVE_create_proj_curves1&#xff1a;这个函数的定义为创建投影曲线。 Defined in: uf_curve.h Overview Creates projection curves. Objects to project may be poi…...

从明文裸奔到密钥长城:HTTPS加密全链路攻防与CA信任锚点构建

前言&#xff1a;本文将从HTTP的隐患出发&#xff0c;深入剖析HTTPS如何通过加密算法、数字证书与信任链机制重塑网络通信的安全边界。我们将探讨协议的证书颁发机构&#xff08;CA&#xff09;的信任逻辑&#xff0c;以及HTTPS在性能与安全之间的平衡艺术。将帮助您更从容地应…...

C# WPF 颜色拾取器

x:Name=Color Picker 语言:C# WPF 下载:https://download.csdn.net/download/polloo2012/90780640 主界面 颜色库 关于我们 颜色拾取器是一种能够帮助用户获取颜色信息,并进行颜色选择、识别和调整的工具,以下将从其常见类型、使用场景及部分软件工具这几个维度展开介绍…...

MySQL关于锁的面试题

目录 1.了解过 MySQL 死锁问题吗&#xff1f; 2.什么是线程死锁&#xff1f;死锁相关面试题 2.1 什么是死锁&#xff1a; 2.2 形成死锁的四个必要条件是什么&#xff1f; 2.3 如何避免线程死锁&#xff1f; 3. MySQL 怎么排查死锁问题&#xff1f; 4.Java线上死锁问题如…...

亚远景-ASPICE vs ISO 21434:汽车软件开发标准的深度对比

ASPICE&#xff08;Automotive SPICE&#xff09;和ISO 21434是汽车软件开发领域的两大核心标准&#xff0c;分别聚焦于过程质量与网络安全。以下从核心目标、覆盖范围、实施重点、协同关系及行业价值五个维度进行深度对比分析&#xff1a; 一、核心目标对比 ASPICE&#xff1…...

第5讲、Transformer 编码器(Encoder)处理过程详解

&#x1f50d; Transformer 编码器&#xff08;Encoder&#xff09;处理过程详解 Transformer Encoder 是一个由 N 层&#xff08;一般为 6 层&#xff09;堆叠而成的模块结构。每一层的本质是两个核心子模块&#xff1a; 多头自注意力&#xff08;Multi-Head Self-Attention…...

Flutter Drawer 详解

目录 一、引言 二、Drawer 的基本用法 三、主要属性 四、常见问题与解决方案 4.1 手势冲突处理 4.2 多级导航管理 4.3 响应式布局适配 五、最佳实践建议 5.1 性能优化 5.2 无障碍支持 5.3 跨平台适配 六、结论 相关推荐 一、引言 在移动应用开发中&#xff0c;侧边…...

游戏引擎学习第263天:添加调试帧滑块

运行游戏&#xff0c;开始今天的开发工作。 我们继续游戏代码基础上进行重构&#xff0c;目标是实现更多的性能分析界面功能&#xff0c;尤其是调试用的用户界面。 目前运行游戏并打开性能分析窗口后&#xff0c;发现界面功能上还有不少缺陷。现在的界面可以向下钻取查看具体…...

Hadoop客户端环境准备

hadoop集群我们配置好了&#xff0c;要与它进行交互&#xff0c;我们还需要准备hadoop的客户端。要分成两步&#xff1a;下载hadoop包、配置环境变量。 1. 找到资料包路径下的Windows依赖文件夹&#xff0c;拷贝hadoop-3.1.0到非中文路径&#xff08;比如d:\hadoop-3.1.0&#…...

当“信任”遇上“安全”:如何用Curtain Logtrace记录文件操作活动 守护团队与数据的双重底线?

你是否也有过这样的担忧&#xff1f; 团队成员在处理敏感数据时是否遵守了公司规范&#xff1f; 某份被篡改或外泄的文档&#xff0c;到底发生了什么&#xff1f; 为了数据安全而频繁加密、限制下载&#xff0c;却反过来打击了员工的工作积极性…… 如何在不伤害团队信任的…...

如何进行室内VR全景拍摄?

如何进行室内VR全景拍摄&#xff1f; 室内VR全景拍摄作为先进的视觉技术&#xff0c;能够为用户提供沉浸式的空间体验。本文介绍如何进行室内VR全景拍摄&#xff0c;并阐述众趣科技在这一领域的技术支持和服务优势。 室内VR全景拍摄基础 1. 室内VR全景拍摄概述 室内VR全景拍…...