借り初めのひみつきち

仮ブログです。

2021-03-01から1ヶ月間の記事一覧

Wasm on Wasm

ついに、 WebAssembly の自作エミュレータの上で動く自作 OS の上で自作 WebAssembly ランタイムが動くようになりました つまり Wasm on Wasm ですね٩( 'ω' )و 以下に試験的に体験版設置してるので起動してみることができます。 meg-os.org もちろん PC98 …

initramfs

コンピューターの神秘のひとつに、起動時にファイルシステムドライバを読み込むためにファイルシステムにアクセスしなければならないという矛盾があります。 現代の OS では起動に必要なファイルを収めた簡易ファイルシステムを RAM に展開してこれを解決し…

MYOS の起動処理概要

MYOS の起動処理をかんたんに解説します。 MYOS をメインに解説しますが、 TOE は MYOS のサブセットとして開発が始まったので共通点も多いです。 Boot Loader 〜 カーネルエントリポイント まずはブートローダーが起動します。ブートローダーの細かい動作は…

スケジューラーと優先順位の逆転

MYOS のスケジューラーは SMP に対応しています。 つまり、 CPU を 100% 使おうとする重いタスクが2個あった場合、合計で 200% ほど使うことができるわけです。 これがシングルコアだったら 100% を仲良く分け合って 50% しか使うことができません。 マルチ…

3種のビットマップ

昨日の日記で何故ビットマップクラスが3種類必要になるのか少し補則します。 生ポインタと Box 旧 MYOS のビットマップは生ポインタでデータを管理していました。 これは所有権もライフタイムも Rust によって管理されておらず借用の制限もなかったので C …

ビットマップクラス統合

近代的な OS は一部の組み込み用途をのぞくと画像処理が不可欠です。 MYOS や TOE も画像処理にそれなりの割合を割いています。 MYOS と TOE の大きな違い MYOS の主要なターゲットは UEFI で、 UEFI では 32bit ARGB 形式が標準です。 また、近代的な画像処…

アクティビティモニターの作り方

MYOS や TOE にはアクティビティモニターがあります。 これらは見せ方が若干異なりますが、定期的にスケジューラーが集計したデータをそのまま表示しているだけです。 では、スケジューラーはどのように集計しているのでしょうか? CPU時間 スレッドの切り替…