Rust OS 入门:物理地址 ≠ RAM 地址——地址空间、MMIO 与 Memory Map
物理地址(Physical Address)是一张地址地图,RAM 只是地图上的一种东西。
物理地址(Physical Address)是一张地址地图,RAM 只是地图上的一种东西。
按下电源键时,RAM 还是空的、操作系统也还没有踪影,电脑需要一步步把控制权交给内核。本文梳理从 CPU 上电到 Rust 内核接管之间的启动过程。
师兄很早之前就推荐了这个项目学习,最近终于有时间来体验一下。看完第一节感觉对计算机的了解很有帮助,于是整理这份笔记。
TEE 是黑盒信任根,TPM 是白盒信任根——把它们拼在一起,就拼出了 CCxTrust 协作信任的核心。
TPM(Trusted Platform Module,可信平台模块)是主板上专门做密码运算的安全芯片,Windows 的 BitLocker、指纹登录等安全功能都依赖它。本文从零理解 TPM 的原理。
地址翻译由 hypervisor 负责,而 hypervisor 本身并不可信。SEV-SNP 用 NPT 与 RMP 两级硬件机制解决这个问题,本文梳理它的隔离原理。
硬盘和网络传输中的数据都有加密保护,但数据进入内存参与计算时往往是明文。机密计算(Confidential Computing)解决的就是这个问题,本文介绍它与 TEE 的基本概念。
入门主线走完,最后补五块常用的进阶拼图:CMake、模板、异常、shared_ptr
和 weak_ptr,每块都值得单独深入,这里先打开一扇门。
代码写到一定规模,塞在单个 .cpp
里就会又长又乱;把代码拆成多个文件,是每个 C/C++ 工程的第一步。
程序跑完数据就没了,想留到下次就得把数据写进文件;文件 IO 流(file stream)就是 C++ 读写文件的通道。