惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Hugging Face - Blog
Hugging Face - Blog
GbyAI
GbyAI
Engineering at Meta
Engineering at Meta
有赞技术团队
有赞技术团队
博客园 - 【当耐特】
H
Hackread – Cybersecurity News, Data Breaches, AI and More
WordPress大学
WordPress大学
博客园_首页
美团技术团队
H
Help Net Security
MongoDB | Blog
MongoDB | Blog
宝玉的分享
宝玉的分享
大猫的无限游戏
大猫的无限游戏
小众软件
小众软件
J
Java Code Geeks
A
About on SuperTechFans
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
IT之家
IT之家
T
The Blog of Author Tim Ferriss
Microsoft Azure Blog
Microsoft Azure Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
B
Blog
雷峰网
雷峰网
爱范儿
爱范儿

See you soon

哟,好久不见,无线打印 | See you soon 试试将文章版本化管理吧 | See you soon 使用 Quadlet 将 Podman 中的 Postgres 当作 systemd 服务运行 | See you soon 大他者,那个无时无刻都在盯着你的东西 | See you soon Laws of Software Engineering,软件工程定律 | See you soon 浅记多因素身份认证 | See you soon Linux 内核中的度量单位 | See you soon 重置 GPG 智能密钥 | See you soon 向 NAS 引入 samba | See you soon 无法重复键入的 Fcitx5 | See you soon ZFS 降级事故 | See you soon 记被 XanMod Kernel 和 AppArmor 联合坑的一次踩坑 | See you soon agent 的 skill 与 toolcall | See you soon 记一次服务器被挂恶意挖矿二进制 | See you soon 活着的 Arc | See you soon 令 acme.sh 使用 Cloudflare 的 DNS API 签发与续签证书 | See you soon 于 Tokio 中卸载 CPU Bound 任务 | See you soon 如我所见,梦破碎的时候 | See you soon 74LS 家族手册 | See you soon JDK Projects 备忘录 | See you soon 关于历史 | See you soon 用 curl 下载 OnePlus 的 ROM | See you soon 实用命令切片 | See you soon 再见,Oh My Zsh。 | See you soon 你不应该复用 strings.Builder | See you soon 博客的明日 | See you soon 被 AppArmor 击杀的 Dockge | See you soon AI 时代的自我 | See you soon 支持删除的布隆过滤器 | See you soon 基于栈的虚拟机与基于寄存器的虚拟机 | See you soon
ZH:Rust 与 Procps 之旅 | See you soon
Krysztal Huang · 2024-08-20 · via See you soon

大家好,我是 Krysztal Huang,Debian 的 uutils/procps 贡献者之一。

很高兴能参与 GSoC 2024,为 uutils 项目做出贡献,并在此过程中学到了许多有趣的知识和技能。:)

Debian 和 uutils 社区非常友好,这是非常棒的。我使用 Debian 作为我的主要操作系统已有大约八年的时间,主要是被它的稳定性所吸引。我经常依赖 Debian 来支持我的个人服务和各种项目。

procps 项目

最广泛使用的 procps 实现是 GPLv3 许可下的 procps-ng 项目。它提供了一组用于系统信息统计的工具,多年来一直被广泛使用,并且表现良好。然而,它是用 C 语言编写的,并采用 GPLv3 许可。

该项目已经使用了三十多年,但因为许可证的原因,其自由性不足。此外,它可能还会在我们的操作系统中继续存在很长时间。

procps 和 C 语言已经逐渐老化。年轻的开发者更倾向于使用像 Rust 这样的新编程语言。因此,procps 可能会依赖上一代开发者来维护,而年轻一代由于对 C 语言不熟悉,可能对其兴趣不大。因此,想要参与开发的年轻人可能无法有效地修复问题。

CVE 与 Rust

Rust 提供了出色的内存安全性和性能。原始 procps 的许多 CVE 都与内存安全问题有关(例如,缓冲区溢出):

……等等。

然而,在 Rust 中,得益于它的所有权系统,这些问题在编译时就能被捕获。

所以……?

我正在uutils组织下重写 procps。新的实现被简单地命名为 procps,在这个过程中我学到了很多:从理解 /proc 伪文件系统到了解 *NIX(及 *NIX 类)系统之间的差异。

uutils procps 的初始实现主要集中在 Linux 平台。然而,为了支持更广泛的 *NIX 平台,包括 macOS 和 FreeBSD,我们必须处理这些操作系统在实现上的细微差异。截至目前,uutils procps 不支持 macOS 和 FreeBSD。

相关问题:

uutils procps的最终目标是同时支持 *NIX 和 Windows 平台。然而,Windows 和 *NIX 平台的线程模型差异显著,因此有必要将这些线程模型抽象为一个更通用的模型。

最重要的是,uutils 的 procps 实现使用 MIT 协议进行授权,这是一款十分宽松的开源协议。意味着 uutils 的 procps 几乎没有任何限制,从源码分发到使用。

我做了什么?

我实现了一些命令的基本部分,它们现在可以运行最基本的功能。

相关 PR:


感谢我的导师们,没有你们的帮助,我可能无法如此顺利地融入社区和开发中。:)