Operating System development tutorials in Rust on the Raspberry Pi をする #4
はじめに
前回の続きから.
04_safe_globals
概要
-
疑似ロックを導入する話
-
global data structure に対して安全にアクセスするための OS 同期プリミティブの showcase(ショーケースってなんだろう)
-
safe Rust では
static mut
なグローバル変数を定義できないので,この章で排他制御の機能を導入し,変更可能なグローバル変数を実現する
実行結果
$ make
Compiling kernel ELF - rpi3
Compiling mingo v0.4.0 (/home/kenta/Git/Kenta11/rust-raspberrypi-OS-tutorials/04_safe_globals)
Compiling tock-registers v0.8.1
Compiling aarch64-cpu v9.0.0
Finished release [optimized] target(s) in 6.09s
Generating stripped binary
Name kernel8.img
Size 7 KiB
$ sudo make test
[sudo] kenta のパスワード:
Boot test - rpi3
-------------------------------------------------------------------
🦀 Running 1 console I/O tests
-------------------------------------------------------------------
1. Checking for the string: 'Stopping here'..................[ok]
Console log:
[0] Hello from Rust!
[1] Chars written: 22
[2] Stopping here
-------------------------------------------------------------------
✅ Success: Boot test
-------------------------------------------------------------------
$ sudo make qemu
Launching QEMU
[0] Hello from Rust!
[1] Chars written: 22
[2] Stopping here.