Rust

The Embedded Rust Book翻訳の気づきメモ①

Introduction - The Embedded Rust Book お仕事でもRustをやりたいな、と考えて、組込みでRustを広めるために翻訳を行っています。 翻訳を進める中で、技術的にも英語的にも、学びがあるので、それを綴っていきます。 github.com 一応今の状況としては、Intr…

Rustで書かれたVMM firecrackerを読もう!(5)~API Server初期化再訪~

github.com tomo-wait-for-it-yuki.hatenablog.com 前回は、HTTP API Serverの初期化処理を読んでいました。 少しhyperを勉強して、勘違いしていた部分も発覚したので、分かったことを改めて書きます。分からんところは分からんですが。 bind_and_run src/ma…

Rustで書かれたVMM firecrackerを読もう!(4)~API Server初期化~

github.com tomo-wait-for-it-yuki.hatenablog.com 前回は、Vmm::new()を読み、VMMの初期化が大体わかった気になりました。今回はAPI Serverの初期化を見ていきます。 tokioが絡む部分は、非同期処理初心者なので間違っている可能性があります。 ApiServer::…

Rustで書かれたVMM firecrackerを読もう!(3)~mainのテストとVmm::new()~

github.com tomo-wait-for-it-yuki.hatenablog.com 前回は、src/main.rsのmain関数を読みました。そういえば、main関数のテストを紹介しようと思って忘れていたので、今回書きます。 mainのテスト src/main.rsに含まれるユニットテストです。まずは、ヘルパ…

Rustで書かれたVMM firecrackerを読もう!(2)~API ServerとVMMの初期化~

github.com tomo-wait-for-it-yuki.hatenablog.com 前回は、main関数でLOGGERのオブジェクトを作るところまで見ました。 設計を知る 少し公式ドキュメントを読んで、知識を仕入れました。 firecrackerは、KVMを使ってVMを作成します。VMMにつき1つのゲストOS…

Rustで書かれたVMM firecrackerを読もう!(1)

最高の餌が与えられたので、少しずつ時間を取ってコード解析していこうと思います。 github.com firecracker build 何はともあれ、ビルドしてみましょう。 リリースビルドするときは、--releaseをつければ良いみたいです。 とりあえず、debugビルドします。 …

Rust The Embedonomiconをやる②

tomo-wait-for-it-yuki.hatenablog.com Rust The Embedonomiconの続きです。 前回記事では、下記2つの項目を実施しました。 The smallest #![no_std] program Memory layout A main interfaceから続きをやっていきます。 A main interface まず、binary crat…

Rust The Embedonomiconをやる①

良いものを発見したので、やってみましょう。 Preface - The Embedonomicon ターゲットはCortex-Mなので、一通り終わったら、RISC-Vをターゲットにやってみます。 Preface 次の3つのことを習得できるようです。 #[no_std]アプリケーションのビルド memory la…

cargoでリンカを指定して独自リンカスクリプトを使う方法

Rust × RISC-Vでプログラミングをしているのですが、cargoだけで思い通りのリンクができるようになりました。 地味にやり方が見つからなかったのですが、絶対どこかには書かれていると思うんですよね。ご存知の方がいらっしゃいましたらご連絡下さい。 Rust…

RustのtargetにRISC-Vを指定するとspin crateが使えない!?

RustでRISC-Vをターゲットに試行錯誤しています。 試行錯誤の途中経過ですので、情報や解釈が誤っている可能性があります。 先日、Mutexを使うためにspin crateを使おうとしました。 mvdnes.github.io ところが、次のようなコンパイルエラーが発生しています…

RustでRISC-Vバイナリ生成 2018/10版

近いうちにstableで使えるようになるはずです(8月にnightlyに入ったので、12週間後、来週あたり?にstableになるはずです)。 ですが、今必要なので、今確認できた方法を書きます。 下の環境で確認しています。 Ubuntu16.04@VirtualBox rustc 1.31.0-nightly …