Rare項目の翻訳スタート

今、私は「Rare」というプロジェクトの翻訳を準備しています。Rareは、Risc-Vのエミュレーターを実装しているプロジェクトで、元の作者であるAsamiさんは日本のコンピューター教授だと思われます。以前、Githubで彼女のこのチュートリアルを見かけましたが、コードはすでに分割されているものの、チュートリアルは一部しか書かれていませんでした。Risc-Vにとても興味があるため、彼女のコードをテンプレートとして、一歩一歩チュートリアルを補完していこうと思っています。他の学習者の助けになれば幸いです。

本チュートリアルは、Asamiさんが書かれたエミュレーターのチュートリアルに基づいています。著者は第3章までしか書いていませんが、彼女は事前にすべてのコードを10章に分けてあります。そのため、コードを見ながらでも、一歩一歩このエミュレーターを構築することができます。

最終的なエミュレーターは、xv6オペレーティングシステムを実行できるようになります。

私の計画は、彼女のコードとチュートリアルに従って一歩一歩このエミュレーターを作成し、その後、完全な中国語(今は日本語です)のチュートリアルシリーズを作成して説明することです。このチュートリアルは、原作と同様にmdbookを使って構築します。

プロジェクトのアドレス:Github Rare
オンラインチュートリアル:Github.io Rare

前置き

本チュートリアルでは、読者がRustとRISC-Vについてある程度の理解があることを前提としています。そのため、チュートリアル内ではRustやRISC-Vについての詳細な説明は行わず、シミュレーター自体に集中します。RISC-Vについて理解を深めるために、以下の資料を読むことをお勧めします。

Rustに関しては、環境をインストールした後、rustup docsを実行することで、The BookやRustのドキュメントにアクセスできます。

開発環境

テスト用のバイナリファイルを生成するために、clangツールを使用する必要があります。LLVMの公式サイトから、事前にコンパイルされたバージョンをダウンロードできます。私が使用しているバージョンはclang-12ですが、更新されたバージョンでも問題ありません。

推奨される使用方法

  • このプロジェクトをローカルにクローンします。

  • cd Rare/book && mdbook serve コマンドでローカルチュートリアルを開きます。

  • 必要に応じて、git pullで更新します。

ディレクトリ

  • Adder(加算器)

  • Memory and Bus(メモリとバス)

  • Control Status Register(制御ステータスレジスタ)

  • Privilege Mode(特権モード)

  • Exception(例外)

  • PLIC & CLINT

  • UART

  • Interrupt(割り込み)

  • Virtio

  • Page Table(ページテーブル)

元の作者はハードウェアとISA命令セットの2つの部分に分けていましたが、私はそれを1つに統合した方が適切だと考えたため、統合しました。

いいなと思ったら応援しよう!