用Rust写一个支持UEFI的操作系统 (2)
所有的代码都可以从我的GitHub repo获得
什么是操作系统
在现代语境下,OS这个单词可能代表很多东西。
OS可以用来命名一个内核,例如Linux,Mach(macOS的内核)等。OS也可以用来命名一个内核和一组用户空间程序,例如GNU/Linux,macOS等。
在本系列文章中,我们主要关注OS内核的部分。那么OS的内核主要做什么呢?
OS内核的主要作用是提供硬件资源的虚拟化抽象,并为用户空间程序提供一组API来使用这些资源。
在这个定义中,OS内核应该:
- 管理计算(CPU,GPU,应用程序特定加速器)和存储资源(内存,磁盘等),并将它们分配给用户空间程序。
- 提供一个统一的接口来操作外设(键盘,鼠标,网络等)。
所以,在这篇文章中,我们会尝试通过UEFI接口检测设备的核心硬件资源:
- CPU
- 内存布局
- 图形