Morning Edition
星期五, 一月 2, 2026

折鸦夜明け前

我们的同志在困难的时候,要看到成绩,要看到光明,要提高我们的勇气。

CPU/内存虚拟化, 调度和并发

本文是 OSTEP (Operating System: Three Easy Pieces) 的简单笔记, 由于 OSTEP 和我写博客的叙述思路很像(日常往自己脸上贴金hhh), 所以这里就只列一个大纲供自己复习.

并且本文建立在 一条操作系统的使命 | Amiriox’s StorageCSAPP3e第六章(存储器层次结构) | Amiriox’s Storage 两篇文章的叙述之上, 仅仅增量补充了必要的内容

一些重要的主题 (如调度和并发) 可能 (几乎是一定) 会单独开一篇文章, 在基于这本书介绍的内容下再补充一些我其他地方学到的相关知识和经验.

OSTEP 是一本无论从知识本身还是讲解技巧上都比较不错的书, 推荐读原书而非总结博客.

(草稿)从设备到操作系统: 如何编写驱动

组件介绍

  • cpu 内存, 系统总线, pci总线
  • 早期简单设备GPIO直接控制
  • PCI/USB总线

I/O 相关概念

I/O传输方式:

  • PIO(PMIO/MMIO轮询), Interrupt, DMA (中断不一定一定比PIO好, 比如网卡设备)

I/O传输内容:

  • 操作系统组件与驱动交互, 驱动与设备交互
  • 驱动传递给设备命令和数据
  • 文件/流/virtio-mmio的共享内存(1, 2略)

oscamp 暑期 proj 周纪要

(六) 7.13:

回顾会议内容, 总结任务目标:

  • arceos/tour/* 添加对其他架构 (aarch64/x86_64/loongarch) 的支持
  • arceos/tour 下新增一些例子, 体现 ArceOS 特定功能, 如图形显示功能/文件系统功能/新调度算法功能

把工具链换到最新的:

  • #[naked] 更改为 #[unsafe(naked)]. 裸函数使得编译器不会为函数生成序言和尾声代码(比如保存/恢复寄存器, 设置栈帧等), 操作系统开发的部分场景要求完全控制寄存器细节

  • 同时将 asm! 改为 naked_asm!. 裸函数内一般没有 Rust 代码, 因为会隐含地依赖序言和尾声, 所以几乎都是内联汇编代码

  • naked_asm! 不支持伪指令和宏(虽然我不知道为什么原来这里要写伪指令, 可能是和 arm 统一?), 所以要把那一段全部改写成 RISC-V 汇编, 好在代码量比较少, 如果多了我还真想不出什么方便的方法

假期计划(0x1)

…以下计划仅供参考, 不必全部完成, 我估计这计划我得弄到大三结束才能弄完来着 更不要因此有压力

你更应关注的是 current state 的稳定性与质量, 而非整体的计划与进度

无论是学习计划还是玩的计划均不以完成为目的, 以尽可能多地体验和接触为目的, 同时训练和适应学习状态

事实上, 唯一必要的反而是”不以计划完成为目的, 尽可能体验当下”这一点的训练.

从另一个角度来讲, 进度上的最优解也是”不以进度为目的”的心态才能达到的方案.