与具体 OS 无关的 crates

Crates为Modules实现提供更底层的支持,通用的基础库,与os无关。

Crates 列表

  • allocator: 内存分配算法,包括:bitmap、buddy、slab。
  • arm_gic: ARM通用中断控制器 (GICv2) 。
  • arm_pl011: ARM串行通信接口,用于处理器和外部设备之间的串行通信 。
  • axerrno: ArceOS的错误码定义。
  • axfs_devfs: ArceOS的设备(Device)文件系统,是axfs_vfs一种实现。
  • axfs_ramfs: ArceOS的内存(RAM)文件系统,是axfs_vfs一种实现。
  • axfs_vfs: ArceOS的虚拟文件系统接口。
  • axio: no_std环境下的I/O traits 。
  • capability: Capability-based security 通过设置访问权限控制对系统资源的访问。
  • crate_interface: 提供一种在 crate 中定义接口(特征)的方法,其目的是解决循环依赖。
  • driver_block: 通用的块存储(磁盘)驱动程序的接口定义。
  • driver_common: ArceOS的通用设备驱动接口定义,包括:disk、serial port、 ethernet card、GPU。
  • driver_display: 通用的图形设备驱动程序接口定义。
  • driver_net: 通用的网络设备 (NIC) 驱动程序定义。
  • driver_pci: 定义对PCI总线操作。
  • driver_virtio: 实现在driver_common定义的驱动。
  • flatten_objects: 为每个存储对象分配一个唯一的ID。
  • handler_table: 无锁的事件处理程序表。
  • kernel_guard: 利用RAII创建具有本地IRQ或禁用抢占的临界区,用于在内核中实现自旋锁。
  • lazy_init: 延迟初始化。
  • linked_list: 链表。
  • memory_addr: 提供理物理和虚拟地址操作的辅助函数。
  • page_table: 页表。
  • page_table_entry: 页表项。
  • percpu: per-CPU的数据结构。
  • percpu_macros: per-CPU的数据结构的宏实现。
  • ratio: 比率相关计算。
  • scheduler: 统一的调度算法接口,包括:cfs、fifo、round_robin。
  • slab_allocator: no_std 环境下的 Slab 分配器(一种内存管理算法)。
  • spinlock: no_std 环境下的自旋锁实现。
  • timer_list: 定时器,在计时器到期时触发。
  • tuple_for_each: 提供遍历tuple字段的宏和方法。