備忘録やめた

備忘録として使用していたけどやめた.このブログに載せてあるコードのライセンスは別途記載がない限りWTFPL OR NYSLです.

Rust

安定版Rustでの自作OSの試み

はじめに この記事は自作OS Advent Calendar 2021並びにRust Advent Calendar 2021の14日目の記事です. Rustを使用してOSを自作する場合,Nightlyの使用が前提とされている雰囲気を感じます.有名なチュートリアルであるWriting an OS in RustでもNightlyの…

`offset`ではなく,整数型にキャストして演算する

OSを書く場合などでは,しばしばあるアドレスを基準とした相対アドレスが必要となる場合があります.例えばVideo RAM(VRAM)へのアクセスでは,VRAMの開始アドレスを基準として,アクセスしたい画面上の座標と,解像度を用いて最終的なVRAM上の番地を確定し…

ExactSizeIteratorを使う

コード play.rust-lang.org 解説 RustのIteratorはsize_hintという,イテレーションの回数の上限下限を返すメソッドがありますが,イテレーションの回数が確定している場合,素直にlenメソッドが欲しい場合があります.ExactSizeIteratorではlenメソッドが提…

cargo: `--out-dir`でバイナリの生成場所を変更する

コード Nightlyが必要です. cargo build --out-dir . -Z unstable-options 実行すると,カレントディレクトリにバイナリが生成されます.--out-dirはunstableなので,-Z unstable-optionsが必要です. 参考 doc.rust-lang.org

Rustの変数と定数

数日前に久しぶりに記事を書いたけど,あれを書くだけで午前中全部使った気がする.毎日ブログを書いたりQiitaに沢山投稿する人はすごい(小並感). その数日前の記事でC++でOSを作成中という事を書いたが,なんかの拍子でRustに目を向けた.Rustはmutをつ…