【Rust日报】2026-11-09 ping 只发出去一包
内容提要
Redox OS 合入 Virtio-FS 驱动,可在 Cloud Hypervisor 上启动到 shell,并修复 UEFI、virtio-blk 和中断问题,但尚不可部署,后续将支持 cloud-init、PVH 等。Actix Web 本季度发布 100 多个 crate,新增 HTTP QUERY、默认 h2c 和 TCP no-delay,并修复多项安全漏洞。cel-rust 上线浏览器 playground。另有开发者讨论只面向 Mac 的原生 Rust GUI 工具包。
延伸解读
从 ping 故障看虚拟化移植的隐藏依赖
Redox 在 Cloud Hypervisor 上 ping 只发出第一包,表面是网络问题,实际是定时器中断缺失。内核的 timeout 触发和调度器 tick 原本依赖 PIT 或 HPET 中断,而 Cloud Hypervisor 不提供这些传统设备。修复改用每个 CPU 的 local APIC timer(TSC-deadline 模式),才恢复四包发送和抢占调度。这提醒读者:把系统迁移到现代虚拟化平台时,旧硬件的隐式依赖可能以看似无关的故障暴露。
Actix Web 季度更新:性能与安全并重
Actix 生态本季度发布 100 多个 crate,除了新增 HTTP QUERY 方法和默认 h2c、TCP no-delay,还集中修复了多个安全问题:解压后请求体受大小限制、关闭大窗口 Brotli、拒绝畸形 chunked 结束符、修复静态文件服务的 stored XSS 等。报告建议执行 cargo update。对使用 Actix 的团队来说,这次更新既带来内存占用改善,也包含需要尽快跟进的安全补丁,升级时需留意自动解压行为将在 v5 移除。
cel-rust playground 降低 CEL 表达式试错成本
cel-rust 将 playground 放到浏览器,支持自动运行开关、语法高亮、AST 浏览器和多种主题,设置与内容保存在本地。CEL 是非图灵完备、语法接近 C 的表达式语言,常用于请求校验等场景。评论提到 protovalidate 和 protobuf 消息校验。对想评估 CEL 的开发者,这个 playground 提供了无需本地搭建即可编写和调试表达式的入口,但注意当前 crate 版本 0.15.0 并未随帖子更新。
只做 Mac 的原生 GUI 工具包面临定位取舍
有开发者提议用 Rust 封装真正的 AppKit 控件,以解决文本框行为、VoiceOver 和大表格等 Mac 习惯问题,并支持百万行表格滚动和细粒度状态更新。评论反应分化:有人认爲只做 Mac 会与 Swift 竞争、形成阻碍;也有人从 Slint 换到 egui 后表示可接受,但需要菜单栏支持。作者回复菜单栏已覆盖。这反映小众平台工具包需在原生体验与生态广度之间权衡。
Q&A
Redox OS 在 Cloud Hypervisor 上 ping 只发出去一包的原因是什么?
因为 Cloud Hypervisor 没有 PIT 和 HPET,内核中负责触发超时的处理函数原本只由 PIT 中断调用,导致后续 ping 包无法被定时唤醒;同时调度器的抢占 tick 也停止,系统变成协作式调度。
Redox OS 的 Virtio-FS 驱动是如何工作的?
Virtio-FS 驱动使用 FUSE 协议,通过 virtqueue 与宿主机上的 virtiofsd 通信,每个共享目录是一个 scheme,路径为 /scheme/virtio-fs.<tag>,目录项缓存使用 LRU,不用的项通过 FUSE_FORGET 通知宿主机。
Actix Web 本季度有哪些主要更新?
发布了 100 多个 crate,新增 HTTP QUERY 方法支持,默认开启 h2c 和 TCP no-delay,内存占用最多减少约 99%,并修复了多个安全漏洞,包括请求体解压限制、Brotli 大窗口关闭、chunked 结束符拒绝、静态文件 XSS 等。
cel-rust 的浏览器 playground 有哪些功能?
playground 支持自动运行开关、Ctrl+Enter 或 Run 求值、语法高亮、AST 浏览器(高级模式)、多种主题和代码主题,设置和上次内容保存在浏览器中。
原生 Mac GUI 工具包的设计思路是什么?
每个 view 是真正的 AppKit 控件,表格使用 NSTableView,状态放在 signal 中,修改 signal 只更新受影响的控件,菜单、工具栏、文档、undo、拖放和 Dark Mode 走系统,还提供 self-check 模式驱动应用并检查屏幕内容。
Redox OS 在 Cloud Hypervisor 上目前还有哪些限制?
目前还不能作为可部署实例,不能自己关机(重启已支持),后续工作需要兼容 cloud-init 的首次启动配置、PVH 直接启动、virtio-vsock、virtio-balloon、virtio-rng 以及快照恢复。