Expand description
Zenith Linux - Linux 平台抽象层
本 crate 提供 Linux 平台特有的系统抽象,包括:
- AF_XDP Socket 管理与零拷贝数据通路
- UMEM 内存管理(mmap、锁页、HugePage)
- 四环操作封装(Fill/RX/TX/Completion)
- 描述符安全校验引擎与事务化所有权迁移
- 系统调用封装与能力探测
§架构原则
- 上层接口零 unsafe,所有 unsafe 封装在本 crate 内部
- 单队列单 Owner,无锁、无共享、无阻塞
- 预分配优先,热路径零堆分配
- 描述符全生命周期追踪,守恒等式恒成立
§unsafe 使用
crate 顶层 #,unsafe 仅
在以下位置精确放开,绝不 crate 级全开:
- 本文件
page_size()/get_kernel_version():libc FFI 的安全封装, 以 item 级#[allow(unsafe_code)]精确放开; - affinity / netif / ring / syscalls / umem / xsk / io_uring(feature 门控)
七个模块:文件顶部
#![allow(unsafe_code)]+ 模块文档说明 unsafe 不可 避免的原因(系统调用 / mmap 共享内存 / C 结构体 FFI)。
descriptor / error 模块不含任何 unsafe,不做任何放开。 所有 unsafe 块均附 SAFETY 注释。
Re-exports§
pub use affinity::online_cpu_count;pub use affinity::set_thread_affinity;pub use affinity::set_thread_affinity_range;pub use affinity::AffinityError;pub use descriptor::Descriptor;pub use descriptor::DescriptorEngine;pub use descriptor::DescriptorType;pub use descriptor::XdpDesc;pub use error::LinuxError;pub use error::Result;pub use netif::if_nametoindex;pub use netif::NetIfError;pub use ring::RingOffsets;pub use ring::RingType;pub use ring::XDP_RING_NEED_WAKEUP;pub use ring::XskRing;pub use syscalls::pipe2;pub use syscalls::recvmmsg;pub use syscalls::sendfile;pub use syscalls::sendmmsg;pub use syscalls::splice;pub use syscalls::splice_bidirectional;pub use syscalls::FdGuard;pub use syscalls::SpliceFlags;pub use syscalls::MAX_BATCH_DATAGRAMS;pub use umem::UmemConfig;pub use umem::UmemManager;pub use xsk::XskConfig;pub use xsk::XskSocket;pub use xsk::XskState;
Modules§
- affinity
- 线程 CPU 亲和性绑定(Linux 平台抽象)
- descriptor
- AF_XDP 描述符模块
- error
- Zenith Linux 错误类型
- netif
- 网络接口抽象(Linux 平台)
- ring
- AF_XDP Ring 操作封装
- syscalls
- Linux 高性能零拷贝/批量系统调用封装
- umem
- UMEM 内存管理
- xsk
- AF_XDP Socket 管理
Structs§
- Linux
Platform - Linux 平台信息
- Platform
Capabilities - 平台能力集合