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

推荐订阅源

H
Heimdal Security Blog
P
Privacy International News Feed
S
Schneier on Security
P
Proofpoint News Feed
L
Lohrmann on Cybersecurity
Spread Privacy
Spread Privacy
P
Privacy & Cybersecurity Law Blog
D
Darknet – Hacking Tools, Hacker News & Cyber Security
Scott Helme
Scott Helme
K
Kaspersky official blog
大猫的无限游戏
大猫的无限游戏
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
aimingoo的专栏
aimingoo的专栏
Simon Willison's Weblog
Simon Willison's Weblog
S
Securelist
Help Net Security
Help Net Security
B
Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Security Archives - TechRepublic
Security Archives - TechRepublic
云风的 BLOG
云风的 BLOG
The GitHub Blog
The GitHub Blog
N
News and Events Feed by Topic
Hacker News: Ask HN
Hacker News: Ask HN
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
M
MIT News - Artificial intelligence
雷峰网
雷峰网
博客园 - 司徒正美
V
V2EX
AWS News Blog
AWS News Blog
Know Your Adversary
Know Your Adversary
N
News | PayPal Newsroom
T
Tor Project blog
Cisco Talos Blog
Cisco Talos Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
PCI Perspectives
PCI Perspectives
Google DeepMind News
Google DeepMind News
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
U
Unit 42
C
Cybersecurity and Infrastructure Security Agency CISA
P
Palo Alto Networks Blog
G
Google Developers Blog
T
Threat Research - Cisco Blogs
博客园 - Franky
I
InfoQ
D
DataBreaches.Net
爱范儿
爱范儿
Y
Y Combinator Blog
博客园 - 叶小钗
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报

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 RVA23 包含了什么 | See you soon Rust 的边界检查是否已经有很大的进步 | See you soon 使用 Rust 编写操作系统:Barebones | See you soon 使用 Rust 编写操作系统:引言 | See you soon 编译器笔记:rope | See you soon 编译器笔记:CST | See you soon Paradoxical 札记 | See you soon 简单的相似去重算法(基于向量) | See you soon 更加现代的 PaperMC Minecraft 插件设计指南 | See you soon 简单的 CFG 语法分析方法 | See you soon 简单地使用 Caddy 实现 CORS 配置 | See you soon 让 OpenCV 可以被静态链接 | See you soon 图片搜索笔笺 | See you soon 电路板设计笔记-保护 | See you soon 使用 Rust 实现 SnowflakeId | See you soon 农夫乐事 FaQ 启示 | See you soon 使用 Rust 实现拓展系统札记 | See you soon 遗传学定律的代码实现 | See you soon EN:The Journey of Rust and Procps | See you soon 使用 debootstrap 与 schroot 构建一个纯净环境 | See you soon GPG添加新的用户信息 | See you soon GSoC2024 笔记:使用 Rust 重新实现 procps | See you soon JWT 小册 | See you soon 使用密钥登录 SSH | See you soon Guava:Cache | See you soon 编译器笔记:增量编译 | See you soon Gradle秘境:添加一个类似modCompileOnly的依赖块 | See you soon Minecraft:原始经济系统设计简述 | See you soon TinyRemapper笔记 | See you soon MicroOS:进阶 | See you soon MicroOS:起步 | See you soon Swapfile 指北 | See you soon GPG 物理密钥的安装与密钥的迁移 | See you soon 用GPG签名告诉大家这就是我的提交 | See you soon DFS:深度优先搜索 | See you soon 文章翻译:从init.vim到init.lua | See you soon 目录遍历攻击 | See you soon 如何挂载.img文件,以及如何使用QEMU模拟arm64环境 | See you soon 在树莓派上编译 OpenCV | See you soon 关于卸载BlueStacks后遇到的问题 | 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:


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