最終更新: 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 全体を無人操作できる。
Shift+Enter
で改行・最大 5 行).text は .user_text(0x400000)
より下=最初の 2 ブロック (0〜4MB)
に収める必要がある(ユーザーページテーブルがこの範囲を EL1
専用にマップするため。TECHNOTE 参照)scheduler::Priority):
High(カーネル・ネット・FS・GUI 入力)/ Normal(アプリ)/
Low(バックグラウンド).aura
アプリ/REPL 用。サンドボックス実行(将来は Wasm)os_lib/js/):
ブラウザの <script> / onclick を実行。
自前の lexer・parser・ツリーウォーク評価器・標準ライブラリ・DOM
ブリッジ。 無限ループから OS
を守るためステップ予算・再帰深度上限を備える(DESIGN「JavaScript
エンジン」参照)。 動的サイト向けに
fetch/XMLHttpRequest(相対 URL
解決)、location/history(SPA ルーティング)、
DOM 要素
API(属性・dataset・matches/closest/querySelector・ミューテーション)、
Event
のバブリング/委譲/伝播制御、IntersectionObserver/ResizeObserver/MutationObserver、
setInterval/clearInterval、CustomEvent、Element.animate()、eval/Function
コンストラクタ、class(private
field/method・Proxy)、Promise/async/generator、
BigInt/TypedArray/DataView/ArrayBuffer/Blob、HTML5
制約検証(ValidityState
全フラグ・pattern/step・フォーム単位の集約)を実装。詳細な到達ラインは
TODO.md「JavaScript エンジン」節・walkthrough.md 参照/apps/アプリ名/ フォルダが単位(macOS
.app 方式)| フェーズ | 内容 | 状態 |
|---|---|---|
| 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 サンドボックス | 未着手 |