FD pure microkernel OS written in Zig — Everything is a File Descriptor.
既存の Linux エコシステムとの互換を目指す FD capability ベースのマイクロカーネルです。
詳しくは 設計思想 を参照してください。
- FD-based Microkernel — 全ての process が、rights を縮小して受け渡せる FD capability で authority を持ちます
- Linux Personality Runtime — zpoline で Linux syscall を process 内の関数呼び出しへ変換する、非特権の動的リンク runtime です
- Kobox — capsule を用いた、ユーザー空間で動くLinuxカーネルモジュールの変換レイヤー
- x86_64 — x86_64 対応。AArch64 は今後対応予定
- Native Libc — musl libcを互換レイヤーを用いず、ネイティブで動かせます
- Linux Personality Runtimeを実装しました
- カーネルをFD-based Microkernelへ変更しました
- 独自ドライバからkoboxに全面移行しました。
- Native ABIで musl libcに対応しました。
| Layer | Language | Detail |
|---|---|---|
| Kernel | Zig / C / Rocq | Freestanding / UEFI boot / x86_64 |
| Userland | C / CMake | musl libc / ELF loader / per-process Linux Personality Runtime |
| Tools | Go / Nix / bash | Build Tools |
| Name | Detail |
|---|---|
| Filed | Ext4 / vnode / NVMe |
| Netd | libuinet / net-driver |
| Scheduler | EEVDF / SMP |
| seed | Init |
| Termd | Linux TTY |
| Drmd | DRM / KMS |
| LPR | Zpoline / LinuxShim ... |
Trap delegation からLinux Personality Runtimeに切り替え、高速でシンプルに互換レイヤーが処理できるようになりました。以前動いたバイナリも、段階的に動くようにします。 musl ビルドで確認済み。
apk Lua Chibicc busybox GNU Coreutils Python3 Clang Mesa Sway Xfce
Kobox
| Module | Module |
|---|---|
| NVMe | nvme.ko / nvme-core.ko |
| USB Storage | usbcore.ko / usb-storage.ko / xhci-hcd.ko |
| USB HID(実験中) | usbcore.ko / hid.ko / hid-generic.ko / usbhid.ko / xhci-hcd.ko |
| Ext4 | crc16.ko / mbcache.ko / jbd2.ko / ext4.ko |
| virtio-net | virtio.ko / virtio_ring / virtio_pci.ko / failover.ko / net_failover.ko / virtio_net.ko |
| linux tty | linux_tty_core.ko |
| virtio-input | linux_virtio_input.ko ... |
Kobox は capsule を使う Linux互換レイヤー です。
nix develop
./pacgo sync rootfs詳細は ビルドガイド を参照してください(動作確認済みバージョン・依存関係など)。
PachaOS source code is licensed under the MIT License.
Third-party runtime components are documented in THIRD_PARTY_NOTICES.md.
