moe
このシリーズ、ほぼ月1になっていたのでタイトルを変更します。 SIMD と Lazy FPU save / restore CPU の高速化はいくつかの歴史を経て、近年の CPU は「ひとつの命令で多数のデータを処理する」命令をサポートしています。 これを一般に SIMD (Single Inst…
コンピューターの神秘のひとつに、起動時にファイルシステムドライバを読み込むためにファイルシステムにアクセスしなければならないという矛盾があります。 現代の OS では起動に必要なファイルを収めた簡易ファイルシステムを RAM に展開してこれを解決し…
MYOS の起動処理をかんたんに解説します。 MYOS をメインに解説しますが、 TOE は MYOS のサブセットとして開発が始まったので共通点も多いです。 Boot Loader 〜 カーネルエントリポイント まずはブートローダーが起動します。ブートローダーの細かい動作は…
MYOS のスケジューラーは SMP に対応しています。 つまり、 CPU を 100% 使おうとする重いタスクが2個あった場合、合計で 200% ほど使うことができるわけです。 これがシングルコアだったら 100% を仲良く分け合って 50% しか使うことができません。 マルチ…
近代的な OS は一部の組み込み用途をのぞくと画像処理が不可欠です。 MYOS や TOE も画像処理にそれなりの割合を割いています。 MYOS と TOE の大きな違い MYOS の主要なターゲットは UEFI で、 UEFI では 32bit ARGB 形式が標準です。 また、近代的な画像処…
myos では Null Pointer Exception は発生しません。 理由は2つあって、言語に Rust を採用しているというのと、 Null Pointer Exception が発生するようにページングを設定していないからです。 事件編 Rust には Null Pointer Exception によく似た別のエ…
2020 年を振り返ってみると、色々と検討した結果もう Rust を勉強するしかないなー ということになって春ごろから Rust の勉強を開始、そして myos の開発が始まりました。 さて、およそ半年開発を続けてきた「myos」ですが、 「私の OS」ってなんやねーん …
myos の開発をはじめておよそ半年が経ちました。 前回の続き 前回の日記より実装も進歩してはりぼて OS でできることの8〜9割程度が myos でもできるようになりましたが、まだいくつか課題があります。 そもそも myos ははりぼて OS ベースではないし、は…
このシリーズの記事は月1くらいで書こうと思ってて前回からそんなに日付も経ってないのですが、 ここ最近で過去最大にいろいろ変わってしまったので前倒しで書くことにします。 initrd 某はりぼて OS では起動時にフロッピーディスクの内容をメモリに転送し…
古代のコンピュータでは1台のコンピュータでひとつのタスクを実行するのが普通でした。*1 現代のコンピュータでは1台のコンピュータで複数のタスクを同時に実行するのが当たり前となり、さらには複数の OS を並列に動かす技術さえあります。 複数のタスク…
前回の日記でひとつ触れ忘れました。 Rust 自作 OS 日記/Part 4 フォントのはなし - 借り初めのひみつきち ベクターフォントのラスターフォントにないもうひとつの利点、 それは描画予定のサイズよりあらかじめ大きいバッファに描画してから縮小して実際の画…
古きよき太古のコンピューターは ROM にフォントを内蔵していたので文字コードを指定するだけで画面に文字を表示することができました。 現代のコンピューターは広大な画面に自由に図形を描画できるようになった代償として文字を表示するためにフォントが必…
最近の大きな変更点は、カーネルとブートローダーを分離しました! UEFI の便利なところはカーネルを直接起動できるところです。 一方、カーネルに UEFI のコードが含まれることによる問題も少なからずあるので、 ブートローダーを分離することになりました…
前回の日記からまた間が空いてしまったので進捗をば。。 最近多忙につき、あまり開発時間が取れてないですが、 ウィンドウシステムっぽいものを実装始まりました ちなみに以前作ってたアレがこんな感じ まるで進化してない 見た目はだいぶそれっぽいになりま…
前回の日記でお察しかと思いますが、さいきん Rust + UEFI で OS がどのくらい作れるのか検証していました。 TL; DR 結論から言うとマルチスレッドが動く程度までは動いて、今後も継続して開発していこうと思います。(๑╹ω╹๑ ) Rust で OS Rust 特有の苦労し…
更新したのでこちらを見てください!!!neriring.hatenablog.jp
ある日家にあった Surface 3 で moe を起動してみたら、画面が真っ黒のまま進みませんでした。現在の moe はウィンドウシステムが起動する前は基本的に何も画面出力しないので何が起こっているのかさっぱりわかりません。 こういう時はどうしたらいいでしょ…