摘要
为什么要改 使用过 Linux 系统的人大概都遇到过——程序跑着跑着突然崩溃,只丢下一行 "Segmentation fault(段错误)",没有任何具体原因提示。这类崩溃十有八九是内存安全问题:越界访问、悬垂指针、缓冲区溢出,超过 70% 的高危漏洞根因在此。 导致该问题的根因在于 C/C++ 把内存管理交给了开发者。而 Rust 换了个思路--通过所有权、借用检查在编译期对安全代码进行严格的引用合法性验证,并在运行时加入边界检查和 panic,从而在安全代码中消除非法内存访问,仅在 unsafe 代码中才可能引入内存风险。 上游Rust化已经在加速 目前Linux内核已合并 2万+行 Rust 代码,主要是桥接 C 和 Rust 的适配层,且Rust 将用于新驱动和新子系统开发。 针对这一技术演进趋势,OpenAtom openKylin(简称“openKylin”)社区成立了RFL SIG组,专门维护了 openkylin/rust-for-linux 跟踪仓库,持续跟进上游 Rust 集成进展,为 openKylin 3.0 及未来版本引入 Rust 能力做技术储备。这个仓库专注追踪 Rust 驱动等特性,与主内核仓库(openkylin/linux)形成互补——主仓库负责"现在用的内核",rust-for-linux 负责"未来内核的 Rust 能力储备"。 openKylin 3.0系统工具同步改造 除了内核外,跑在用户空间的系统工具,同样是系统的"承重墙"——time、wget等,这些看似不起眼的命令行工具,每天都在被各类脚本、编译流程、应用程序等高频调用,一旦出问题就是连锁反应。因此,我们从几十个候选组件中,筛掉了系统核心、启动链、桌面框架层等高风险项,选出第一批进行 Rust 改造试验:上游组件改造后组件功能风险等级timekylin-time计时工具,测量程序运行耗时和资源占用较低wgetkylin-wget网络下载工具,HTTP/HTTPS/FTP 文件下载中ki18nkylin-ki18n国际化库,翻译框架中................................ 内核和核外同步改造的意义 openKylin 3.