MIT の無料 Xv6 オンライン オペレーティング システム コースを開始するために必要な 3 つのアイテムをコンパイルする方法!

以前の投稿で、MITの無料オンラインオペレーティングシステムコースの聴講にご参加いただけるよう皆様にお願いしました。今回は、MITの教育用オペレーティングシステムであるXv6を私の古いサーバーDarkstarで実行するために行った準備について概説します。
Xv6の現在のバージョンはRISC-V命令セットで動作します。そのため、私のようにIntelアーキテクチャのマシンを持っている多くの人は、Xv6を実行するためにQemuエミュレータが必要です。また、学生である私たちがコードに変更を加えるたびに、Xv6は数秒の再コンパイルが必要となるため、RISC-V GNUツールチェーンも必要です。
QemuとRISC-V GNUツールチェーンは、多くのLinuxディストリビューションのパッケージシステムを使って簡単にインストールできます。しかし、私は自分でコンパイルするのが好きです。また、DarkstarはSlackware64-currentで動作します。Slackwareのデフォルトインストールにはたくさんのものが含まれていますが、QemuとRISC-V GNUツールチェーンは含まれていません。
ケム
Qemuは仮想マシンの実行に使用されていたため、Darkstarにはコンパイル済みの最新版Qemuソースが既にインストールされていました。しかし、最新版Qemuをクローンしてビルドする必要がある場合、 Qemu.orgに記載されている手順は次のとおりです。
git clone https://gitlab.com/qemu-project/qemu.git
cd qemu
git submodule init
git submodule update --recursive
./configure
make
Qemu のコンパイルが完了したら、次のようにインストールする必要があります。
make install
Qemu をビルドしてインストールするには、Sudo または root アクセスが必要です。
RISC-V GNUツールチェーン
ツールチェーンのインストールには、root権限またはsudo権限が必要です。ツールチェーンのコンパイルには、ソースコード用のディスク容量が大量に必要です。ビルド後、Darkstarは以下のコマンドを使用しました。
root@darkstar:/usr/local/src# du -sh riscv-gnu-toolchain/
11G riscv-gnu-toolchain/
root@darkstar:/usr/local/src#
パッケージ システムのインストールと RISC-V GNU ツールチェーンのコンパイルに関するステップ バイ ステップの説明は、MITおよびツールチェーンの Github Readme から入手できます。
Darkstar で使用した手順は次のとおりです。
507 cd /usr
508 ls
509 ls -l local-revert.tgz
510 history | grep local-revert
511 tar cvzf local-revert.tgz local ## Maybe I can revert if needed. :)
512 ls -lh *rev*
513 cd local/src
514 ls
515 git clone --recursive https://github.com/riscv/riscv-gnu-toolchain
516 cd riscv-gnu-toolchain/
517 ls
518 less README.md
519 ./configure --prefix=/usr/local
520 make -j 16
521 make install ## This step is not needed.
以下はツールチェーンビルドプロセス中のtop(1)のスクリーンショットです。Darkstarは16個のコア全てを稼働させながら処理を行っています。

まだ理解できていないのは、インストール手順がなぜ必要ないのかということです。
root@darkstar:/local/src/riscv-gnu-toolchain# make install
make: Nothing to be done for 'install'.
root@darkstar:/usr/local/src/riscv-gnu-toolchain#
以下はmakeコマンドの出力の一部です。makeの実行中に/usr/bin/ginstallが呼び出されているのが分かります。
/usr/bin/ginstall -c -m 644 ../.././riscv-gcc/gcc/wide-int.h /usr/local/lib/gcc/riscv64-unknown-elf/11.1.0/plugin/include/wide-int.h
/usr/bin/ginstall -c -m 644 ../.././riscv-gcc/gcc/xcoff.h /usr/local/lib/gcc/riscv64-unknown-elf/11.1.0/plugin/include/xcoff.h
/usr/bin/ginstall -c -m 644 ../.././riscv-gcc/gcc/xcoffout.h /usr/local/lib/gcc/riscv64-unknown-elf/11.1.0/plugin/include/xcoffout.h
/usr/bin/ginstall -c -m 644 b-header-vars /usr/local/lib/gcc/riscv64-unknown-elf/11.1.0/plugin/include/b-header-vars
make[3]: Leaving directory '/usr/local/src/riscv-gnu-toolchain/build-gcc-newlib-stage2/gcc'
make[2]: Leaving directory '/usr/local/src/riscv-gnu-toolchain/build-gcc-newlib-stage2'
make[1]: Leaving directory '/usr/local/src/riscv-gnu-toolchain/build-gcc-newlib-stage2'
mkdir -p stamps/ && touch stamps/build-gcc-newlib-stage2
このプロセスはインストール手順を必要としないように設計できたはずだと考えるかもしれません。しかし、なぜでしょうか?
おそらく動的ライブラリがいくつか作成されているのではないかと思います。新しく作成されたライブラリは、そのライブラリを使用するバイナリにプログラムされた所定の場所にインストールされなければ、テストすらできないかもしれません。
ここで通常のインストール手順が欠落している理由をご存知の場合は、ヒントを教えてください。
Xv6 オペレーティングシステム
ホームディレクトリで権限のないユーザーとして Xv6 を実行するための設定は次のとおりです。
495 git clone https://github.com/mit-pdos/xv6-riscv.git
496 cd xv6-riscv/
497 ls
498 cat README
499 make qemu
Xv6 が起動して準備完了です! :)
