Skip to content
Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 5 additions & 23 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

7 changes: 3 additions & 4 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -98,8 +98,7 @@ members = [
"os/arceos/modules/axipi",
"os/arceos/modules/axlog",
"os/arceos/modules/axmm",
"os/arceos/modules/axnet",
"os/arceos/modules/axnet-ng",
"net/ax-net",
"os/arceos/modules/axruntime",
"os/arceos/modules/axsync",
"os/arceos/modules/axtask",
Expand Down Expand Up @@ -171,8 +170,8 @@ ax-memory-addr = { version = "0.6.9", path = "memory/memory_addr" }
ax-memory-set = { version = "0.6.10", path = "memory/memory_set" }
axpanic = { version = "0.1.0", path = "components/axpanic" }
ax-mm = { version = "0.5.17", path = "os/arceos/modules/axmm" }
ax-net = { version = "0.5.16", path = "os/arceos/modules/axnet" }
ax-net-ng = { version = "0.7.1", path = "os/arceos/modules/axnet-ng" }
ax-net = { version = "0.7.1", path = "net/ax-net" }
axnet = { version = "0.7.1", package = "ax-net", path = "net/ax-net" }
ax-page-table-entry = { version = "0.8.10", path = "memory/page_table_entry" }
ax-page-table-multiarch = { version = "0.8.12", path = "memory/page_table_multiarch" }
ax-percpu = { version = "0.4.13", path = "components/percpu/percpu" }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@ Rootfs 处理也经历了模块化重构。我们将共享的 rootfs 辅助函
4 月初最重大的工程是将整个工作区中所有 crate 的名称统一到 `ax-*` 前缀规范下,在 4 月 7-8 日集中完成。此次重命名覆盖了 ArceOS 所有核心模块,涉及数百个文件中的引用更新:

- 内核基础设施:`axhal` → `ax-hal`、`axtask` → `ax-task`、`axmm` → `ax-mm`、`axsync` → `ax-sync`、`axdma` → `ax-dma`
- 驱动与设备:`axdriver` → `ax-driver`、`axnet` → `ax-net`、`axnet-ng` → `ax-net-ng`、`axinput` → `ax-input`、`axdisplay` → `ax-display`
- 驱动与设备:`axdriver` → `ax-driver`、`axnet` → `ax-net`、`axnet` → `ax-net`、`axinput` → `ax-input`、`axdisplay` → `ax-display`
- 文件系统:`axfs` → `ax-fs`、`axfs-ng` → `ax-fs-ng`
- 运行时与配置:`axruntime` → `ax-runtime`、`axconfig` → `ax-config`、`axplat` → `ax-plat`
- 标准库与 POSIX:`axstd` → `ax-std`、`axlibc` → `ax-libc`、`arceos_api` → `ax-api`、`arceos_posix_api` → `ax-posix-api`
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -112,10 +112,10 @@ ArceOS 本月继续加强运行时错误发现能力。lockdep 扩展了 task-he

### 网络栈与 POSIX 行为

网络栈方面,`ax-net` 迁移到 crates.io 版本的 smoltcp,并在后续同步到 smoltcp 0.13.1。`ax-net-ng` 新增 ICMP raw socket 支持,并修复 TCP send 后未轮询接口导致 epoll waiter 无法被及时唤醒的问题。随后,socket option、ARP pending queue、SIOCGIFINDEX/FIONREAD 等行为也继续向 Linux 兼容语义靠拢。
网络栈方面,`ax-net` 迁移到 crates.io 版本的 smoltcp,并在后续同步到 smoltcp 0.13.1。`ax-net` 新增 ICMP raw socket 支持,并修复 TCP send 后未轮询接口导致 epoll waiter 无法被及时唤醒的问题。随后,socket option、ARP pending queue、SIOCGIFINDEX/FIONREAD 等行为也继续向 Linux 兼容语义靠拢。

- [PR #410](https://github.com/rcore-os/tgoskits/pull/410) — `ax-net` 迁移到 crates.io smoltcp(周睿)
- [PR #368](https://github.com/rcore-os/tgoskits/pull/368) — `ax-net-ng` ICMP raw socket 支持(sunhaosheng)
- [PR #368](https://github.com/rcore-os/tgoskits/pull/368) — `ax-net` ICMP raw socket 支持(sunhaosheng)
- [PR #485](https://github.com/rcore-os/tgoskits/pull/485) — TCP send 后轮询接口以唤醒 epoll waiter(CharlieV)
- [PR #884](https://github.com/rcore-os/tgoskits/pull/884) — `SO_TYPE`、`SO_PROTOCOL`、`SO_DOMAIN` socket option 支持(取地址符)
- [PR #911](https://github.com/rcore-os/tgoskits/pull/911) — ARP pending queue drain 与 cache TTL/capacity 调整(Feiran Qin)
Expand Down
6 changes: 2 additions & 4 deletions docs/docs/architecture/arceos.md
Original file line number Diff line number Diff line change
Expand Up @@ -93,8 +93,7 @@ ArceOS 的 17 个模块按重要性分为两类:四个必选模块构成最小
| `ax-driver` | `ax-driver` | 设备探测与驱动初始化(virtio、AHCI、SDMMC 等) |
| `ax-fs` | `fs` | 文件系统(FAT、ramfs、ext4) |
| `ax-fs-ng` | `fs-ng` | 下一代文件系统(FAT、ext4,带 LRU 缓存) |
| `ax-net` | `net` | 网络栈(基于 smoltcp) |
| `ax-net-ng` | `net-ng` | 下一代网络栈(异步感知,基于 smoltcp) |
| `ax-net` | `net` | 统一网络栈(TCP/UDP/raw/Unix/vsock/DNS/DHCP,基于 smoltcp) |
| `ax-display` | `display` | 图形显示(帧缓冲) |
| `ax-input` | `input` | 输入设备管理 |
| `ax-dma` | `dma` | DMA 内存分配与管理(依赖 `paging`) |
Expand All @@ -114,11 +113,10 @@ ArceOS 的 17 个模块按重要性分为两类:四个必选模块构成最小
| `ax-sync` | `modules/axsync` | mutex 等同步原语 | `ax-task`、任意并发模块 |
| `ax-driver` | `modules/axdriver` | 设备探测与驱动初始化 | `ax-fs`、`ax-net`、`ax-display` |
| `ax-fs` | `modules/axfs` | 文件系统挂载、文件/目录 API | `ax-driver` |
| `ax-net` | `modules/axnet` | 网络栈、socket 抽象 | `ax-driver` |
| `ax-net` | `net/ax-net` | 统一网络栈、socket 抽象 | `rd-net`、`rdif-vsock`、`smoltcp` |
| `axconfig` | `modules/axconfig` | 构建期常量与目标参数 | 所有模块 |
| `ax-log` | `modules/axlog` | 多级日志与格式化输出 | 所有模块 |
| `ax-fs-ng` | `modules/axfs-ng` | 下一代文件系统 | `ax-driver` |
| `ax-net-ng` | `modules/axnet-ng` | 下一代网络栈 | `ax-driver` |
| `ax-dma` | `modules/axdma` | DMA 内存分配与管理 | `ax-runtime`、`ax-mm` |
| `ax-ipi` | `modules/axipi` | 处理器间中断管理 | `ax-hal` |
| `ax-input` | `modules/axinput` | 输入设备管理与事件分发 | `ax-driver` |
Expand Down
8 changes: 4 additions & 4 deletions docs/docs/architecture/rdrive-rdif.md
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ flowchart TB
subgraph Consumers["消费方"]
Runtime["ax-runtime"]
Fs["ax-fs / ax-fs-ng"]
Net["ax-net / ax-net-ng"]
Net["ax-net / ax-net"]
Starry["starry-kernel"]
Axvisor["axvisor"]
end
Expand Down Expand Up @@ -351,7 +351,7 @@ Phase 3: block volume service

Phase 4: NET / NET-NG 硬切

- `ax-net` / `ax-net-ng` 从 `AxNetDevice` 切到 `rd-net` 或 net service。
- `ax-net` / `ax-net` 从 `AxNetDevice` 切到 `rd-net` 或 net service。
- DHCP/static IP policy 留在 net service 或 NET/NET-NG,不回到 platform glue。

Phase 5: display / input / vsock 硬切
Expand Down Expand Up @@ -388,7 +388,7 @@ yarn build
cargo xtask clippy --package rdrive
cargo xtask clippy --package ax-runtime
cargo xtask clippy --package ax-fs-ng
cargo xtask clippy --package ax-net-ng
cargo xtask clippy --package ax-net
cargo xtask clippy --package starry-kernel
cargo xtask clippy --package axvisor
```
Expand All @@ -406,6 +406,6 @@ rg "rdrive::get_|rdrive::get_one|rdrive::get_list" os/arceos/modules os/StarryOS

- StarryOS QEMU smoke。
- ext4 rootfs 启动与读写。
- `net-ng` / DHCP。
- `net` / DHCP。
- aarch64 QEMU 动态平台配置。
- Axvisor QEMU / GIC / `rdif-intc` 路径。
4 changes: 2 additions & 2 deletions docs/docs/components/crates/ax-errno.md
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ flowchart TD

### 使用场景
- `AxErrorKind` / `AxError`:在 `ax-alloc`、`ax-mm`、`ax-net`、`ax-fs`、`ax-task` 等模块里高频使用。
- `LinuxError`:在 `ax-libc`、`ax-posix-api`、`ax-net-ng` 的 POSIX 兼容路径中直接使用。
- `LinuxError`:在 `ax-libc`、`ax-posix-api`、`ax-net` 的 POSIX 兼容路径中直接使用。
- `ax_err!` / `ax_err_type!`:在 `axvisor`、`ax-net`、`ax-std`、`ax-task` 等代码里广泛出现。
- `canonicalize()`:适合把兼容层传回来的 Linux 错误重新折叠到内核内部语义。

Expand All @@ -86,7 +86,7 @@ graph LR
ax_errno --> ax-allocator["ax-allocator"]
ax_errno --> axio["ax-io"]
ax_errno --> ax-mm["ax-mm"]
ax_errno --> ax-net["ax-net/ax-net-ng"]
ax_errno --> ax-net["ax-net/ax-net"]
ax_errno --> ax-api["ax-api"]
ax_errno --> arceos_posix["ax-posix-api"]
ax_errno --> starry_kernel["starry-kernel"]
Expand Down
4 changes: 2 additions & 2 deletions docs/docs/components/crates/ax-fs-ng.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ graph LR
current --> axpoll["axpoll"]
current --> ax-sync["ax-sync"]
ax_feat["ax-feat"] --> current
ax_net_ng["ax-net-ng"] --> current
ax_net["ax-net"] --> current
ax_runtime["ax-runtime"] --> current
starry_kernel["starry-kernel"] --> current
```
Expand Down Expand Up @@ -74,7 +74,7 @@ graph LR

### 3.3 被依赖情况
- `ax-feat`
- `ax-net-ng`
- `ax-net`
- `ax-runtime`
- `starry-kernel`

Expand Down
6 changes: 3 additions & 3 deletions docs/docs/components/crates/ax-io.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@
- `IoBuf::remaining()`:当前还剩多少字节可读
- `IoBufMut::remaining_mut()`:当前还剩多少空间可写

这不是新的 I/O 模型,而是给通用 trait 层补上一点对内核路径很实用的容量语义。`ax-net-ng` 的发送/接收接口、部分文件与缓冲区适配器都会消费这类信息。
这不是新的 I/O 模型,而是给通用 trait 层补上一点对内核路径很实用的容量语义。`ax-net` 的发送/接收接口、部分文件与缓冲区适配器都会消费这类信息。

### 1.5 `alloc` feature 的边界

Expand Down Expand Up @@ -93,7 +93,7 @@

1. `ax_std::io` 直接重导出 `axio` 的 trait 与类型,把它包装成 ArceOS 应用看到的 `std::io` 风格接口。
2. `ax-fs`、`ax-fs-ng` 的文件对象实现 `Read` / `Write` / `Seek`,复用统一的缓冲器和默认读写逻辑。
3. `ax-net`、`ax-net-ng` 以及更上层 socket 封装使用 `axio` 作为同步收发 trait 的公共接口。
3. `ax-net`、`ax-net` 以及更上层 socket 封装使用 `axio` 作为同步收发 trait 的公共接口。
4. `ax-api`、`ax-posix-api`、StarryOS 的 `FileLike`/用户缓冲访问对象通过 `axio` 收敛系统调用读写路径。

### 2.3 `PollState` 的实际使用位置
Expand Down Expand Up @@ -130,7 +130,7 @@
- `ax-std`、`ax-libc`
- `ax-api`、`ax-posix-api`
- `ax-fs`、`ax-fs-ng`
- `ax-net`、`ax-net-ng`
- `ax-net`、`ax-net`
- StarryOS 的文件、网络、pipe、用户态缓冲访问和系统调用包装层

### 3.3 跨层关系
Expand Down
2 changes: 1 addition & 1 deletion docs/docs/components/crates/ax-lazyinit.md
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ graph LR
ax_lazyinit --> ax-mm["ax-mm"]
ax_lazyinit --> ax-ipi["ax-ipi"]
ax_lazyinit --> ax-fs["ax-fs / ax-fs-ng"]
ax_lazyinit --> ax-net["ax-net / ax-net-ng"]
ax_lazyinit --> ax-net["ax-net / ax-net"]
ax_lazyinit --> ax-display["ax-display"]
ax_lazyinit --> ax-input["ax-input"]
ax_lazyinit --> axplat["多个 axplat 平台 crate"]
Expand Down
Loading
Loading