1 ポイント 投稿者 GN⁺ 2024-07-15 | 1件のコメント | WhatsAppで共有

Fusion OS

Fusionは、Nimで実装されたx86-64向けの趣味OS。開発過程は https://0xc0ffee.netlify.app で文書化されている。

スクリーンショット

  • UEFIブートローダー
  • GUI ( 注: このスクリーンショットは、まだ作業中の graphics ブランチから取得されたもの。)
  • Fusionカーネルのブート

機能

現在実装されている機能:

  • UEFIブートローダー
  • 物理メモリマネージャー
  • 仮想メモリマネージャー
  • 単一アドレス空間
  • ユーザーモード
  • プリエンプティブマルチタスキング
  • システムコール
  • ELFローダー
  • タイマー割り込み

計画されている機能:

  • デマンドページング
  • プロセス間通信
  • ディスクI/O
  • ファイルシステム
  • キーボード/マウス入力
  • シェル
  • GUI
  • ネットワーキング

ビルド

Fusionをビルドするには、以下の依存関係をインストールする必要がある:

  • Nim
  • LLVM (clang と lld)
  • Just

次のコマンドでFusionをビルド:

just build

実行

Fusionは現在QEMU上で動作するため、まずQEMUをインストールする必要がある。次のコマンドでFusionを実行:

just run

ライセンス

MIT

GN⁺のまとめ

Fusion OSは、Nimで実装されたx86-64向けの趣味OSで、OS開発の過程を学びたい人に有用。現在はUEFIブートローダー、物理および仮想メモリマネージャー、ユーザーモードなどの基本機能が実装されている。今後はデマンドページング、プロセス間通信、ファイルシステムなど、さまざまな機能が追加される予定。QEMUで簡単にテストできるため、開発や学習に適している。類似プロジェクトとしては xv6 や OSDev などがある。

1件のコメント

 
GN⁺ 2024-07-15
Hacker Newsの意見
  • Author here. 質問に答える準備ができています
  • Your blog/docs are excellent. ブログとドキュメントが素晴らしいです。見せ方と説明のバランスが完璧です
  • Nice, I love to see stuff like this. こういうプロジェクトを見るのは嬉しいです。ここ数年、Nimのエコシステムに断続的に関わってきました。この小さなプロジェクトが続いていくのを見るのは喜ばしいです
  • Nifty! ELFモジュールを簡単に読めるのが面白いです。いつかNimでRTOSを書いてみたいです。Nimで組み込みプログラムを書くのを楽しんでいるので、RTOSを作るのも楽しそうです
  • What is Nim, and what is the overarching design goal for Fusion? Nimとは何か、そしてFusionの全体的な設計目標は何なのか気になります。あまりに初歩的な質問でなければよいのですが、この話題について背景知識がまったくないので、誰かに説明してほしいです
  • Development journal of Fusion’s author: Fusionの作者の開発日誌へのリンクを共有します
  • How does this compare with TempleOS? TempleOSと比べると何が違うのでしょうか。単一アドレス空間を使っている点では似ているように聞こえます
  • The problem that Nim have and many afraid to go Nim is case and style insensitivity. Nimの問題点であり、多くの人がNimを避ける理由は、大文字小文字やスタイルを区別しないことです
    • 例: Is_land == island == IsLaND == is-land
    • チーム環境や実際のプロジェクトでは問題になります
    • 現状がどうなっているのか気になります。最後に確認したときは、主要開発者はGitHubでの人気投票に反対する行動を取らないことにしていました
    • それ以外は、Fusion OSプロジェクトとドキュメントは素晴らしいです