学习笔记——PLCT汪辰:开发RISC-V上的操作系统(持续更新)

目录

第0章

下载源码

运行环境

构建和使用说明

第1章

记录一个本人没听说过的架构

第2章~第4章


第0章

下载源码

git clone https://gitee.com/unicornx/riscv-operating-system-mooc.git

运行环境

推荐使用 Ubuntu 20.04,Ubuntu 20.04 是目前最新的 Ubuntu 长期稳定发行版,在这个环境下安装运行环境也最简单。

有些同学向汪老师反映希望仍然使用Ubuntu 18.04,因为 Ubunt 18.04 的官方源还不支持 RISC-V 的开发工具包,所以搭建环境稍微复杂一些,PLCT实验室写了一个简单的说明文档,感兴趣的同学可以看 这里

所有演示代码在以下环境下验证通过,请仔细核对你的 Ubuntu 版本和内核版本与以下信息是否一致。

bash 复制代码
$ lsb_release -a

No LSB modules are available.

Distributor ID: Ubuntu

Description: Ubuntu 20.04.3 LTS

Release: 20.04

Codename: focal

$ uname -r

5.11.0-27-generic

目前在 Ubuntu 20.04 环境下我们可以直接使用官方提供的 GNU工具链和 QEMU 模拟器,执行如下命令在线安装即可开始试验:

bash 复制代码
$ sudo apt update

$ sudo apt install build-essential gcc make perl dkms git gcc-riscv64-unknown-el

首先,创建一个工作目录,然后进入该目录:

bash 复制代码
$ mkdir $HOME/ws

$ cd $HOME/ws

下载开发工具包tools.tar.gz,下载地址为:文件分享

下载完毕后将该文件拷贝到$HOME/ws下并解压:

bash 复制代码
$ tar xzf tools.tar.gz

将以下路径加入 HOME/.bashrc(使用命令gedit HOME/.bashrc 打开$HOME/.bashrc文件)

bash 复制代码
export PATH="$PATH:$HOME/ws/tools/gcc/bin:$HOME/ws/tools/qemu/bin"

重新导入$HOME/.bashrc或者重启系统使配置生效即可

构建和使用说明

源码文件下载or挪到ws文件夹下。

然后在~/ws/riscv-operating-system-mooc目录下执行make命令

  • make:编译构建
  • make run:启动 qemu 并运行
  • make debug:启动调试
  • make code:反汇编查看二进制代码
  • make clean:清理

具体使用参考具体子项目下的 Makefile 文件。

第1章

记录一个本人没听说过的架构

哈佛架构(就是它) :++指令和数据分开存储++。优点是执行效率较高,缺点是总线开销更大,控制逻辑更复杂。在一些小型的微控制器、微处理器上,更倾向用哈佛架构。

冯诺依曼架构(学计组时都是以冯诺依曼架构入门):++指令和数据不加区别地存储在存储器中++,经由同一个总线传输。优点是总线开销小,控制逻辑实现更简单;缺点是执行效率低。大型的服务器、台式机用冯诺依曼架构。

第2章~第4章

课程和ppt上讲得很详细,本人暂未有疑虑之处。

相关推荐
小满Autumn1 天前
log4net 日志框架 — 从配置到实战速查手册
笔记·c#·.net·wpf·上位机·log4net
袁小皮皮不皮1 天前
1.HCIP BFD 学习笔记(优化版)
服务器·网络·笔记·网络协议·学习·智能路由器·ip
装不满的克莱因瓶1 天前
【自动驾驶领域】学习 Cityscapes 数据集——城市街景语义理解的标准基准
人工智能·pytorch·python·深度学习·学习·机器学习·自动驾驶
清辞8531 天前
产品经理需求推进流程
大数据·深度学习·学习·产品经理
YM52e1 天前
鸿蒙PC ArkTS 声明合并问题深度解析与最佳实践
学习·华为·harmonyos·鸿蒙·鸿蒙系统
海兰1 天前
【实用程序】电商销售分析仪表盘 — 从零搭建一个AI参与的全栈数据洞察系统
人工智能·学习·算法
ken22321 天前
在 Libreoffice Calc中输入自定义表情字符时,需要保存之后,才能正常显示
学习
zwenqiyu1 天前
P5283 [十二省联考 2019] 异或粽子题解
c++·学习·算法
编程圈子1 天前
电机驱动开发学习2. 直流无刷电机工作原理
驱动开发·学习
MartinYeung51 天前
[论文学习]大型语言模型(LLM)安全与隐私-基于善、恶、丑的深度分析
学习·安全·语言模型