MR. ROBOT

[ Enclave Operating System ]

Bare-metal x86 OS с zero-trust архитектурой. Ядро бессмертно. Приложения — смертны. Система — вечна.

root@enclave:~

root@enclave:~$ cat /etc/motd


╔══════════════════════════════════════════════════════════╗

║ ENCLAVE OS v0.3-alpha │ Day 29 │ Self-Hosting Ready ║

║ "Zero Trust. Immortal Kernel. Crash-Only Userspace." ║

╚══════════════════════════════════════════════════════════╝


root@enclave:~$ uname -a

EnclaveOS 0.3.0 i386 Enclave x86 HigherHalf ZeroTrust


root@enclave:~$ compile /examples/hello.c /tmp/hello.elf && run /tmp/hello.elf

Hello, World! # ← скомпилировано ВНУТРИ ОС (TinyCC, Ring 3)


root@enclave:~$

Доктрина

// Три столпа, на которых стоит система

🔒 Zero Trust

Ядро не доверяет ни одному приложению. Каждый syscall валидирует указатели, проверяет границы, enforce'ит W^X. Ring 3 — изолированный анклав без прямого доступа к ресурсам.

💀 Immortal Kernel

PID 0 физически не может упасть из-за багов в Ring 3. PID 1 перезапускается Reaper'ом. Shell респавнится за <100мс. Crash приложения — нормальное событие, не катастрофа.

🔥 Crash-Only Userspace

Сервисы не хранят состояние в RAM. Supervisor Trees (Erlang/OTP паттерн). "Let it crash" — упал? Перезапустился. Система живёт вечно, процессы — нет.

Подсистемы

// Что под капотом

Memory: PMM (bitmap, O(1)), Buddy Heap, CoW, On-Demand Paging, VMA, W^X enforcement
Tasking: Round-Robin scheduler, Supervisor Trees, Zombie State Machine, Lazy FPU (#NM)
VFS: Полиморфные ноды, LCRS Tree, DevFS, TmpFS, InitRD (TAR UStar), FAT32 read-only
Syscalls: 25+ вызовов (INT 0x80), POSIX-like ABI, Zero Trust валидация каждого
Graphics: Framebuffer 1024×768×32, Double Buffering, Dirty Rectangles, PSF1 Unicode + кириллица
Self-Hosting: TinyCC (Ring 3) компилирует C → ELF внутри ОС. Shell + Readline + ANSI
Storage: ATA PIO (LBA28), MBR Parser, FAT32 + VFAT LFN (кириллица)
Security: Kernel Stack Guard Pages, RBAC (FS_SYSTEM), OOM Governance, IRET Stack Switch Trap

Архитектура

// Higher Half Kernel, 3 GB User / 1 GB Kernel

┌─────────────────────────────────────────────────────────────────┐ │ USER SPACE (Ring 3) — 3 GB │ │ ┌───────────┐ ┌───────────┐ ┌───────────┐ ┌───────────┐ │ │ │ init.elf │ │ shell.elf │ │ tcc.elf │ │ app.elf | │ │ │ (PID 1) │ │ (PID 2) │ │ (PID N) │ │ (PID N) │ │ │ └─────┬─────┘ └─────┬─────┘ └─────┬─────┘ └─────┬─────┘ │ │ │ │ │ │ │ │ ══════╪═══════════════╪═══════════════╪═══════════════╪══════ │ │ │ INT 0x80 │ (Zero Trust │ Boundary) │ │ │ ══════╪═══════════════╪═══════════════╪═══════════════╪═══════ │ ├────────┼───────────────┼───────────────┼───────────────┼────────┤ │ KERNEL SPACE (Ring 0) — 1 GB @ 0xC0000000 │ │ ┌─────┴───────────────┴───────────────┴───────────────┴─────┐ │ │ │ syscall.c → VFS → PMM → VMM → ELF Loader → Scheduler │ │ │ │ PMM │ Buddy Heap │ Paging │ CoW │ VMA │ TSS │ GDT/IDT │ │ │ └───────────────────────────────────────────────────────────┘ │ │ PID 0: Kernel Idle (sti; hlt; cli) — IMMORTAL │ └─────────────────────────────────────────────────────────────────┘

Стек

// Инструменты и технологии

x86 Protected Mode C (gnu99, freestanding) NASM (i386) Multiboot 1 / GRUB QEMU i686-linux-gnu-gcc GNU ld TinyCC 0.9.27 TAR UStar (initrd) ATA PIO / FAT32 PS/2 Keyboard PIT 1000Hz VBE Framebuffer PSF1 Unicode Font Serial COM1 POSIX-like ABI

Roadmap

// Куда движемся

Day 30 Исправление топ-10 критических багов (CoW, respawn, mprotect) ✅ DONE
Day 31 sys_mkdir + полноценный mkdir в Shell 📋 PLANNED
Day 32 Capability-Based Security (CAP_KEYBOARD, CAP_FRAMEBUFFER) 📋 PLANNED
Day 33 Resource Containers (Zones) + OOM Killer 📋 PLANNED
Day 34 Core Dumps (/var/crash/app.core) 📋 PLANNED
Day 36 🍓 Raspberry Pi Port (BCM2835, ARM1176JZF-S) 📋 PLANNED
Day 41+ User-Mode Drivers (Minix 3), IPC (Message Passing) 📋 PLANNED
Day 50+ RISC-V порт, ARM Cortex-A (64-bit) 📋 PLANNED

Вдохновение

// На плечах гигантов

seL4 — Capability-Based Security + Formal Verification
Erlang/OTP — "Let it crash" + Supervisor Trees
Minix 3 — User-mode drivers + message passing
TinyCC — Минимализм + скорость + self-hosting
QNX — Microkernel + IPC
Linux — POSIX syscalls + VFS + ELF

// Исходный код открыт. Ядро бессмертно. Присоединяйся.

⟨/⟩ GitHub Repository