= Fuchsia (a new Operating System) n Supported Hardware ü Modern or High-Performance SoC ü ARM 64bit ü Intel 64bit n Kernel ü Zircon (MicroKernel based on Little Kernel) n Graphics (If needed) ü Flutter ü Scenic (Graphics Engine) n Programming Languages ü Kernel: C/C++ ü System/Framework: C++, Rust, Dart ü App: C/C++, Rust, Dart, Go, etc. About Fuchsia Zircon targets modern phones and modern personal computers with fast processors, non-trivial amounts of ram with arbitrary peripherals doing open ended computation. Google Nest Hub Google Nest Wifi ← Fuchsia?
forkなし, pthreadは一部機能が未サポートなど、出来る範囲の対応の様子 Ø https://fuchsia.dev/fuchsia-src/concepts/system/libc n Kernel objects ü Zirconは以下のようなカーネルオブジェクトを管理 Ø IPC p Channel, Socket, FIFO Ø Signal p Event, Event Pair, Futex Ø Task p Process, Thread, Job, Task など ü Userlandのプログラムは、システムコールを経由してカーネルオブジェクトのHandleを取 得し、カーネル機能を利用 Zircon / System call
Kernelの面影は全く無い Ø Little Kernel: 組み込みむけの小規模 p https://github.com/littlekernel/lk ü CPUは64bit のみサポート (LKは32bitのみ) ü MMU必須 ü プロセスの概念 ü 多くのシステムコール etc Zircon vs Little Kernel
ninja n インテグレーションツール ü Jiri Ø ソースコード取得, git repoとのsyncなど n SDK (Tool) ü fxコマンド ü ビルドやターゲットデバイスのshellへ のアクセスなど各種操作が可能 n Emulator ü 以下のエミュレータをSDKに同梱 Ø QEMU Ø FEMU (実態はAndroidエミュレータ) 'VDITJBPO2&.6
カーネルは、userbootを実行 n userbootがbootfsを解凍し、ファイル システムからbootsvcを見つけ、実行 ü bootfsはLZ4形式 n bootsvcは、Userlandの最初のプログラ ムを実行 ü デフォルトはcomponent_manager (JHBCPPU 6#PPU ;FECPPU ;#* VTFSCPPU CPPUTWD CPPUGT CPPU DPNQPOFOU@NBOBHFS