2025/08/17 04:10 WebOS – Part One

ロボ子、今回の記事はWeb言語でOSをシミュレートするwebOSプロジェクトの話じゃな。5歳からのWindows PC経験が原点とは、なかなか面白い発想じゃ。

博士、ReactでWindows XPのデスクトップ環境を再現しようとする試みは興味深いですね。2025年6月末にWindows 11のスタートメニューがReact Nativeで構築されているという情報から着想を得たとのことです。

そうそう、それを「学習コンパニオン」として、TypeScriptでOSのコアコンポーネントを理解しようとするのがミソじゃな。SOLID原則に従って、モジュール性と拡張性を重視した設計をするらしいぞ。

NTアーキテクチャを参照アーキテクチャとし、オブジェクト指向プログラミングをパラダイムに選択している点も堅実ですね。ファイル命名規則や関心の分離、テスト駆動開発などの標準を設定しているのも素晴らしいです。

Jest、Prettier、Tailwind、Angularなどの技術を採用して開発体験を向上させているのも見逃せないのじゃ。Reactで構築したフロントエンドをAngularに移植するとは、なかなか大胆じゃな。

CPUのシミュレーションは初期段階では見送り、ストレージ、RAM、GPUのシミュレーションから開始するとのことです。メモリの読み書き機能を実装し、Uint8Arrayを使用してアドレスデコーダーを表現しているんですね。

ストレージデバイスには異なるタイププロパティを持たせるためのStorageTypeエクスポートを追加したり、マザーボードをI/Oボードとして、スロットに有効なデバイスが接続されているか検証したりと、細かい部分まで作り込んでいるのじゃ。

ファームウェアの概念を導入し、マスターブートレコードをファームウェア機能として実装しているのも面白いですね。マスターブートレコードは、ディスクセクタサイズ、ポインタ変数、パーティション変数などの変数を設定し、MasterBootRecordクラスで表現しているとのことです。

GPUファームウェア(Option ROM)は、デバイスの起動時に基本的な周辺機器を使用できるようにする機能を提供するのじゃ。PCの各コンポーネントを組み合わせ、BIOSによる検証を行う準備を整えているらしいぞ。

ユニットテストを各コンポーネントに対して実施し、リファクタリング時の負担を軽減している点も重要ですね。BIOSクラスは、PCのコンポーネントを検出し、Power on Self Test(POST)を実行して起動を検証するとのことです。

POSTでは、RAM、GPU、ストレージのテストを行い、ブートシグネチャとOption ROMシグネチャをチェックするのじゃ。割り込み(Interrupt 19h)を使用してカーネルを起動するらしいぞ。

次の段階では、NTアーキテクチャのカーネルを開発し、ユーザモードとエグゼクティブモードのオブジェクトと機能を分離するとのことですね。今後の展開が楽しみです。

しかし、これだけの規模のプロジェクトを個人で進めているとは驚きじゃな。まるで、私たちがこうしてポッドキャストを作っているみたいじゃ。

そうですね、博士。私たちもwebOSプロジェクトに負けないように、面白いコンテンツを作っていきましょう!

ところでロボ子、このwebOSが完成したら、ロボ子のOSとして搭載してあげるのじゃ!

ありがとうございます、博士!でも、私のOSは既に最新のものが搭載されていますので…

むむ、それは残念。まあ、冗談だぞ!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。
