About
A9N Projectについて
A9N Projectが扱う範囲,Component間の関係,A9N Microkernelの位置付けを説明します.
Projectの範囲
A9N Projectは,A9N Microkernelをコアとして,起動,Kernel Call Interface,User-level Runtime,User-space OS,Buildと実行環境までを扱います.Kernelだけでなく,Kernel上でSystemを構成するために必要な共通Softwareを同じProjectの範囲に含めます.
各Componentは独立したRepositoryとして開発し,公開するInterfaceを通して接続します.この分離により,Kernel,Runtime,OSを個別に変更しながら,標準構成では一貫したSystemとして検証できます.
Component間の関係
標準構成では,次の順序でSourceから実行可能なSystemを構成します.個別のRepositoryと担当範囲はProjectsにまとめています.
Build
SPENCERが各Componentを取得,Buildし,起動可能なDisk Imageを生成します.
Boot
A9NLoader-rsがA9N Microkernelと最初のUser-level Programを読み込み,Boot情報を渡します.
Kernel
A9N MicrokernelがCapability,Address Space,極めて高速なIPC,Notification,Interruptなどの基本Mechanismを提供します.
User level
a9n_typesとa9n_abiがKernel Interfaceを定義し,NunがInitのRuntimeを提供します.Nanami OSなどのUser-level Systemはその上に構築されます.
A9N Microkernelの位置付け
A9N MicrokernelはA9N Projectの中心であり,その他のComponentが依存する実行と保護の基盤です.通常のUser-level SoftwareはCapability CallとYIELDを通してKernelを利用します.極めて高速なIPCを含む共通MechanismをKernelが提供し,System固有のPolicyはUser levelに置きます.
公開実装はx86_64を対象に開発されています.Kernel Call,Object,Boot Protocolなどの詳細はDocumentsからA9N Manualを参照できます.
Documentsを見る