[笔记一] 学习开发一个RISC-V上的操作系统
资料来源
1 环境准备
代码克隆
- git clone --depth=1 git@gitee.com:unicornx/riscv-operating-system-mooc.git
- 参考 README.md 搭建环境
- sudo apt update
- sudo apt install build-essential gcc make perl dkms git gcc-riscv64-unknown-elf gdb-multiarch qemu-system-misc
- 常用构建命令
- make:编译构建
- make clean:清理
- make run:启动 qemu 并运行
- make debug:启动调试
- make code:反汇编查看二进制代码
2 计算机系统复习
讲解 C语言 编写 Hello World 程序,从编译到运行显示过程
- CPU(Central Processing Unit):ALU(Arithmetic Logical Unit) + CU(Control Unit) + Registers
- IO Bridge
- Main Memory
- 总线
- USB Controller + Disk Controller + Graphic Adapter
冯 诺依曼架构
- 指令和数据均存储在存储器中,总线开销小,控制逻辑实现简单
- 但执行效率较低
- 通用计算机体系结构,广泛用于个人电脑、服务器
哈佛架构
现代应用中,也有两种融合应用的场景,也是根据实际应用场景而定
- 从 Disk 中源文件 hello.c > gcc编译链接 a.out > 运行 加载到内存 Main Memory
- Control Unit:取指(Fetch) > 译码(Decode) > 执行(Execute):晶振 驱动 控制单元去执行
存储设备的层次结构
- 寄存器 > 高速缓存 > 主存储器 > 本地存储(磁盘) > 远程存储(网盘)
- 速度 快 > 慢
- 容量 小 > 大
- 成本 高 > 低
操作系统
- 保护硬件被失控的软件应用程序滥用
- 向应用程序提供简单一致的抽象接口来控制复杂的多种外设
- 应用程序与操作系统之间通过 系统调用(System Call) 来交互
- 操作系统 与 硬件 通过 指令集架构ISA 来交互