AtmOS Spec

最終更新: 2026-11-09

AtmOS(アトモス)は Raspberry Pi 3B+ 向けのオリジナルベアメタル OS。ARM64 / Rust で実装。 目標は「起動が速く、ネットワークを使えて、日常の作業を自分向けに最適化できる」こと。

名称: AtmOS(アトモス)/ 独自言語 Aura(アウラ、拡張子 .aura)/ ファイルシステム SylFS(シルフス)。

名前の由来


ドキュメント索引

主要設計・管理ドキュメント

ファイル 内容
README.md この索引 + OS 基本方針
implementation_plan.md Webブラウザ開発計画・ユニットテスト拡充計画(未来の開発計画のみを一元管理)
AURA.md Aura(.aura アプリ/REPL 用の独自言語)の言語仕様・リテラル/シンボル/テンプレート構文の厳密仕様・組み込み関数リファレンス・アプリパッケージ設計。※ ブラウザの <script> は JavaScript エンジンが実行(DESIGN 参照)
SYLFS.md SylFS(独自ファイルシステム)の完全仕様書。COW トランザクション、二重化・自己修復、B+Tree インデックス、エクステント割当、ストレージポリシー、全 API リファレンス
DESIGN.md アーキテクチャ概要・起動シーケンス・ネットワーク・ブラウザ(テーブル含む)・JavaScript エンジン・アプリ実行アーキテクチャ・キーボードショートカット一覧(§15)・レイアウト座標規約・TLS・EL1/EL0・構造ハードニング・ヒープアロケータ設計
TODO.md 未完了タスク・優先順位・実装計画(CSS3 互換性の残タスク一覧を含む)
TECHNOTE.md バグ分析・技術調査ノート(DHCP / SMP / TLS / USB・GPU・WiFi / ヒープ破壊・OOM / レイアウトバグ / QEMU 自動回帰テスト手法)
SETUP.md 開発環境・ビルド手順・RPi3B+ 実機試験・UTM セットアップ
walkthrough.md 完了済み実装・修正の履歴(v0.2 系。新しい順)。v0.1 系は walkthrough/v0.1.md に確定保存
shared_state.md static mut など共有状態の排他の監査台帳
kernel_performance.md カーネルの高速化・安定化 改善案(TLB フラッシュ削減・ページテーブル共有・MMU 粒度・tickless idle・スケジューラ O(1) 化・static mut 排他監査・例外ログ充実)。※ 2026-11-03 時点で残りは tickless idle のみ(TODO.md 3 章)

コンポーネント別・個別機能仕様書

ファイル 内容
canvas2d.md <canvas> Canvas 2D コンテキスト仕様(アフィン変換・パス走査・ラスタライズ・JS 接続・不変条件 C-1〜C-19)
flex_min_size.md Flexbox 自動最小サイズ・内在幅・基準サイズ解決仕様(不変条件 FB-1〜FB-4)
container_query.md CSS @container コンテナクエリ仕様
multicol.md CSS 多段組(columns, column-count, column-gap)仕様
paint_order.md 描画順序・スタッキングコンテキスト仕様
alpha_compositing.md アルファブレンディング・合成仕様
backdrop_blur.md backdrop-filter: blur() 仕様
gradient_raster.md 線形・放射グラデーションのラスタライズ仕様
webfont_loading.md Web フォント非同期取得・キュー管理仕様
woff2_glyf_transform.md WOFF2 glyf 変換・復元仕様
dynamic_pseudo_states.md 動的疑似クラス(:hover, :active, :focus 等)仕様
resource_loading.md リソースローディング制御仕様
fetch_priority.md リソース取得優先度制御仕様
tcp_receive.md TCP 受信側状態機械・再構成バッファ・再送処理仕様
l1_l2_usb.md DWC2 USB コントローラ L1/L2 状態機械・パケット処理仕様
logging_policy.md シリアルログ規約・モジュール名・ログレベル方針
complexity_annotation.md 計算量アノテーション規約

旧 AURA_SYNTAX_DETAILS.md / APP_ARCHITECTURE.md / INVENTORY.md / KEYBOARD_SHORTCUTS.md / WALKTHROUGH_COMPLETION_LOG.md は 2026-06-30 の整理でそれぞれ上記ファイルへ統合・圧縮済み(docs/ 配下の同名 .html は CI 生成物の残骸であり参照不要)。全コンポーネントの棚卸し(旧 INVENTORY.md)は独立ファイルとしては維持せず、状況は各ファイル(DESIGN.md の構成表・TODO.md・walkthrough.md)に分散して反映する運用とする。

CI(GitHub Actions): push/PR ごとに cargo clippy(unwrap_used/expect_used + クレート全体 string_slice の deny を含む)+ リリースビルドを実行し、続けて QEMU スモークテスト(シリアルコンソール 経由で起動時の自己テスト(JS_SELFTEST / BIGINT_SELFTEST / AURA_SELFTEST / CSS_SELFTEST / LAYOUT_SELFTEST / IME_SELFTEST / CLOUD_SELFTEST / H264_SELFTEST / H264_GOLDEN / RECLOCK_SELFTEST / FS_SELFTEST / USBSCHED_SELFTEST の各 PASS)→ ログイン→ブラウザ起動→HTTPS ロード成功を expect で無人検証、arm/v1/test_browser.sh)を 走らせる(.github/workflows/ci.yml)。main への push では rustdoc(docs/api/)と 依存グラフ(docs/graphs/、cargo-depgraph + cargo-modules)も自動生成・公開される (.github/workflows/pages.yml)。

シリアル (UART) 入力はキーボードと同一の入力パイプラインに流れる(main.rs の UART_FIFO ドレイン → keyboard::ascii_to_scancode → process_key_event)ため、 -serial stdio 経由で OS 全体を無人操作できる。


OS 基本方針

対象・前提

ファイル管理

ネットワーク方針

UI 方針

メモリ管理

プロセス管理

アプリケーション実行・スクリプト


開発ロードマップ

フェーズ 内容 状態
Phase 1 メモリ管理・プロセス管理・タイマー割り込み 完了
Phase 2 SylFS(COW + チェックサム + B-tree) 完了
Phase 3 ネットワーク(IPv4 / TCP / UDP / DNS / HTTP / HTTPS / TLS 1.3) 完了
Phase 4 ブラウザ(HTML / CSS / レイアウト / レンダラ)+ JavaScript エンジン 完了
Phase 5 GUI 操作・デバッグ・Aura / IME 拡充、WMタブUI改善 完了
Phase 6 WiFi(CYW43455 SDIO)ドライバ完成 完了
Phase 7 外部連携(Google Drive / GitHub、OAuth2 + HTTPS)。Drive / OneDrive ネイティブアプリ(REST 読み書き) 完了(実ネット疎通は未検証)
Phase 8 本物YouTube動画視聴機能(H.264 Baseline/Main/High + AAC-LC デコーダ・fMP4・MSE・入れ子 iframe 埋め込み再生)、システムモニターUI改善 完了(H.264 / AAC-LC 本物デコーダ完成、ffmpeg とビット一致、YouTube 埋め込み iframe 再生確認済み)
Phase 9 動的サイト対応(JS: fetch/XHR/location/history/DOM/Event、CSS: flexbox/Grid/position/overflow/transform/@media) 完了(JS/CSS/LAYOUT 全 PASS。本物 SPA は DRM/規模的に対象外)
Phase 10 起動制御とネットワークの堅牢化(ウィンドウ状態・サイズ起動オプション、ping DNSフォールバック、CI/CD警告解消) 完了
Phase 11 ブラウザ互換性強化(CSS Grid/flex-basis/shrink/order、aspect-ratio、transform、@media、Observer API 群) 完了(2026-06-28)
Phase 12 CSS3 互換性の深掘り(疑似クラス/要素・グラデーション・アニメーション/トランジション・カウンタ/quotes・論理プロパティ等の網羅的なバグ潰し) 完了(2026-07-06。P1=軽微な残タスクは0件。改修規模の大きい P2 項目(多段組レイアウト・テキスト選択等)は TODO.md の「CSS3 互換性」参照)
Phase 13 HTML5/CSS3/ECMAScript2025 互換性キャンペーン(新規ギャップの継続的な発掘・実装。eval/Function、HTML5 制約検証、フォームコントロール等) 進行中(2026-07-08〜。都度 TODO.md/walkthrough.md に記録)
Phase 14 ユニットテスト基盤の完全隔離構成・全領域拡充(arm/v1/tests/、2385件の完全隔離テスト全件PASS) 完了
将来 WebDAV / Wasm サンドボックス 未着手

spec 運用ルール

非目標