rcore第一天——环境配置

前言

我摸索了很久的rust,很想放弃或者换语言,但是又很不甘心。手撸一个操作系统确实是够帅,但是配置环境给我搞死了。最终终于挣扎出来了。我买了一个阿里云服务器2核2g的,实践证明不行。或者是我技术不行。后来我一咬牙买了autodl的cpu服务器,搞出来了。应该是算力不够,因为我看阿里云的内存还没满。
文档地址 rCore-Tutorial-Guide 2024

配置

硬件: autodl 32 vCPU Intel® Xeon® Platinum 8352V CPU @ 2.10GHz
系统: Python 3.8(ubuntu18.04)

其他的我没试过,docker也不行就是。

配置步骤

  1. 先更新apt, apt-get update & apt-get upgrade
  2. 配一下镜像 并下载,防止下载失败,我这里用的是中科大的,大家也可以用清华的。
export RUSTUP_DIST_SERVER=https://mirrors.ustc.edu.cn/rust-static
export RUSTUP_UPDATE_ROOT=https://mirrors.ustc.edu.cn/rust-static/rustup
curl https://sh.rustup.rs -sSf | sh
  1. 设置一下环境变量 source $HOME/.cargo/env
  2. 检查一下安装成功没 cargo --version
  3. 再把rust的包管理工具也设置一下源
vi ~/.cargo/config
# i 插入以下内容后 esc :wq保存
[source.crates-io]
replace-with = 'ustc'

[source.ustc]
registry = "sparse+https://mirrors.ustc.edu.cn/crates.io-index/"

  1. 接下来安装qemu
# 安装编译所需的依赖包
sudo apt install autoconf automake autotools-dev curl libmpc-dev libmpfr-dev libgmp-dev \
              gawk build-essential bison flex texinfo gperf libtool patchutils bc \
              zlib1g-dev libexpat-dev pkg-config  libglib2.0-dev libpixman-1-dev git tmux python3
# 下载源码包
# 如果下载速度过慢可以使用我们提供的百度网盘链接:https://pan.baidu.com/s/1z-iWIPjxjxbdFS2Qf-NKxQ
# 提取码 8woe
wget https://download.qemu.org/qemu-7.0.0.tar.xz
# 解压
tar xvJf qemu-7.0.0.tar.xz
# 编译安装并配置 RISC-V 支持
cd qemu-7.0.0
./configure --target-list=riscv64-softmmu,riscv64-linux-user
#上面倒是没啥问题 重点就是在make,make不一定会全部成功
# 一般是这样 make[1]: Leaving directory '/root/qemu-7.0.0/build' 这不一定就是失败了要检查一下,后面会说
make -j$(nproc)

# 按照文章的教程,接下来就是 设置环境变量
 vi  ~/.bashrc 
# 注意 $HOME 是 Linux 自动设置的表示你家目录的环境变量,你也可以根据实际位置灵活调整
export PATH="$HOME/os-env/qemu-7.0.0/build/:$PATH"
export PATH="$HOME/os-env/qemu-7.0.0/build/riscv64-softmmu:$PATH"
export PATH="$HOME/os-env/qemu-7.0.0/build/riscv64-linux-user:$PATH"
 source  ~/.bashrc
# 接下来就是 要 但是很多人会 bash: qemu-system-riscv64: command not found
qemu-system-riscv64 --version
qemu-riscv64 --version

好,问题就是在 /os-env/qemu-7.0.0/ 我们安装路径不一样,qemu不一定在 os-env下,所以两种办法,1:建一个os-env文件夹,把qemu移进去。2,改掉os-env。

可以去qemu-7.0.0/build/文件夹下找 那两个文件夹,看看里面有没有内容 然后可以./qemu-system-riscv64 --version看看是不是就有版本了。这样就安装成功了。

  1. 下载项目
git clone https://github.com/LearningOS/rCore-Tutorial-Code-2024S
cd rCore-Tutorial-Code-2024S
git checkout ch1
cd os
# 不急着make  先看看rust 版本是不是nightly 如果不是 就执行下面的 
rustup install nightly-2024-05-25
rustup override set nightly-2024-05-25-x86_64-unknown-linux-gnu

# 为了稳健 再改一个东西 在 rCore-Tutorial-Code-2024S 下有一个  rust-toolchain.toml 
# 改一行就可以 
channel = "nightly-2024-05-25"
# 最后再make 就成功了。
LOG=DEBUG make run

更多推荐