跳转至

学习周记

按周/月记录学习进度、产出与思考。

  • 训练营期间的学习记录请见 2026sOsReport
  • 本仓库从训练营结束后开始持续更新,用于沉淀学习轨迹

周报索引

编号 主题
W16 W16 - K3 真板进入自研异步 shell,正向官方 shell 推进
W15 W15 - 实习总结:异步驱动三个月,从 D1 串口到 SMP=16 网卡
W14 W14 - UART 与网卡固定绑核,唤醒路径改为本地优先
W13 W13 - K3 板 SSH 连通,StarryOS 启动多 hart 适配
W12 W12 - 本周做k3的探索工作
W11 W11 - 故障恢复语义:设备出错到链路断开都能安全恢复
W10 W10 - 应用可见的异步网络:栈自己跑,就绪状态桥到 select/poll
W09 W09 - MS5 验收收口:测试暴露的问题与修复
W08 W08 - 网卡收包异步化完成,双向收发推进
W07 W07 - 网卡中断诊断 + 性能测试矩阵收口
W06 W06 - 网卡主线:本地化编译 + 无 IRQ 轮询 + IRQ 诊断启动
W05 W05 - Console polling 基线 + CPU 效率对比
W04 W04 - 异步串口契约收敛 + benchmark 补测收尾
W03 W03 - Q19B userbench → Q19C 全链路收尾
W02 W02 - Lichee RV Dock 真板 smoke 完成(Q16-Q19)
W01 W01 - Q15 收尾 + Q6/Q16/Q17 准备
W00 W00 - 训练营后第一周

月报索引

编号 主题
M00 M00 - 训练营后启动实习中

学习笔记

学习内容

标题 标签
Async/Await 异步运行时 rust, async, future, waker, executor, state-machine
DMA:绕过 CPU 的数据搬运 dma, hardware, uart, nic, cache, pio, descriptor, starryos
MMIO:用 load/store 指令操作硬件 mmio, hardware, volatile, uart, memory, pma
Rust 异步驱动语言特性 rust, async, generic, unsafe, smart-pointer, send, sync, deref
SMP:核心数量如何影响调度,多核为什么不能只靠调度器 smp, riscv, scheduler, ipi, memory-ordering, k3
io_uring 入门 linux, io, async, kernel, syscall

异步串口

标题 标签
Async UART 与 polling Console 性能对比 uart, async, console, polling, performance, benchmark, qemu, d1, latency, throughput
ISR 极简 4 步流程 rust, isr, riscv, interrupt, uart, dependency-injection
ISR 触发后禁用中断 rust, os, riscv, interrupt, uart
Lichee Q19B kbench/userbench 问题与解决
Lichee RV Dock Smoke 前问题清单
Lichee RV Dock Smoke 解决路径
Lichee RV Dock 适配前期准备
OS 抽象具体实现 rust, os, abstraction, trait, async
TTY 阻塞读与 ProcessMode 桥接 rust, tty, ldisc, async, waker
VFS 接口 + flush 实现路径 rust, vfs, tty, flush, syscall
内存序:QEMU 掩盖的真板陷阱 rust, memory-ordering, riscv, smp, atomic, optimization
异步 RX 侧 NAPI 状态机与 spawn 任务 rust, async, napi, uart, task
异步 TX 侧四阶段 drain 与 fast retry rust, async, uart, drain, flush
异步 UART 性能测试设计与结果 benchmark, performance, uart, latency, throughput, testing
异步 UART 驱动总体架构 rust, async, uart, driver, ring-buffer, spsc, io-uring
异步串口入口与全局实例 rust, async, os, riscv, uart
异步串口总体架构:从硬件中断到 read 返回 rust, async, uart, driver, interrupt, ring-buffer, spsc, tty, waker, napi
异步驱动的泛型与 Trait 抽象 rust, generic, trait, async, uart
异步驱动的线程安全 rust, send, sync, atomic, thread-safety, uart

异步网卡

标题 标签
ArceOS 与 StarryOS 异步网卡实现对比 async, nic, arceos, starryos
VirtIO 网卡队列机制入门 virtio, network, queue, descriptor, event-idx, interrupt, mmio
smoltcp 接入与 axnet 本地化决策 smoltcp, axnet, network, dependency, capability, polling-fallback, device-mask
异步网卡手动测试逐项:MS1 到 MS7 每个 PASS 在验什么 rust, async, network, nic, qemu, test, acceptance
异步网卡架构探索 rust, async, network, nic, virtio, smoltcp, architecture, driver
异步网卡的手动 QEMU 测试:MS1 到 MS7 在测什么 rust, async, network, nic, qemu, test, acceptance, driver
异步网卡驱动总体架构 rust, async, network, nic, virtio, smoltcp, driver, recovery, readiness
网卡异步化:全链路异步已打通 rust, async, network, nic, driver, socket, polling, syscall
网卡性能测试矩阵:测什么、为什么这么测 rust, network, benchmark, testing, virtio, qemu, performance, matrix
网卡收发的异步化:为什么做、怎么做 rust, async, network, nic, interrupt, queue, backpressure

异步驱动

标题 标签
SDMMC 异步驱动评审意见 rust, async, driver, sdmmc, review, testability, portability
SDMMC 驱动异步架构分析(simple-sdmmc-extended) rust, async, driver, sdmmc, dma, idmac, arceos, visionfive2
两种异步驱动范式对比:UART copier 流式 vs SDMMC 请求-响应 rust, async, driver, uart, sdmmc, dma, atomic-waker, wait-queue, architecture
为什么异步驱动要做多 hart 适配 smp, multi-hart, async-driver, riscv, starryos, k3
多 hart 适配是怎么落地的 smp, multi-hart, async-driver, riscv, starryos, critical-section, ipi, scheduler
异步开发路径:骨架层可复用,肉层是设备特定的 rust, async, driver, uart, nic, skeleton, framework

视频

标题 标签
演示录屏(2026-10-06) demo

新增内容:在 docs/weeks/、docs/months/ 或 docs/notes/ 下新建 md 文件,push 后自动更新此页。