Official repository moved to the NeoDOS-Project organization.
NeoDOS es un sistema operativo de 64 bits escrito en Rust con arquitectura híbrida: kernel monolítico con subsistema de drivers aislados estilo microkernel. Arranca en UEFI, soporta SMP, tiene un planificador prioritario estilo NT, drivers con certificación y capacidades, un sistema de archivos propio, y un modelo de seguridad ACL-based.
Filosofía: Explícito sobre mágico. Capas, no montones. Fallo rápido, fallo claro. Driver aislado, kernel pequeño.
Boot UEFI → Bootloader → Kernel (11 fases de boot) → NeoInit (PID 1) → NeoShell (Ring 3)
El kernel se organiza en 5 capas verticales:
- Arch (x86_64) — GDT, IDT, paginación 4 niveles, SMP trampoline
- HAL v0.4 — raw/safe split, 26 primitivas extern "C", asm confinado
- System Services — scheduler (4 prioridades, aging, work stealing), memory (buddy+slab, demand paging), KOBJ, VFS, IPC/pipes, IRP async I/O, Event Bus, seguridad NT6
- NEM Driver Runtime — pipeline de certificación (8 estados), capacidades (12 flags), aislamiento X4 (16 slots × 1 MB), ABI versionado
- Syscall SSDT — 32 syscalls activos, tabla de 256 slots, O(1) dispatch, tabla de permisos separada
| Aspecto | Estado |
|---|---|
| Kernel | v0.49.0 — 656 tests, 32 syscalls SSDT activos, 24 fases de boot |
| Drivers NEM | 7 drivers standalone (PS/2, serial, RTC, ACPI, PCI, ATA, AHCI) + 5 reference |
| User-mode | NeoShell Ring 3, 27 binarios .NXE, 2 DLLs .NXL (libneodos, libmath) |
| Object Manager | Ob unificado: handles, KOBJ, URN, seguridad (RAX 60-66) |
| Input | 4 Virtual Terminals (Alt+F1-F4), per-VT input queues, shadow buffers |
| Virtual Terminals | Console state save/restore per VT, framebuffer shadow redraw |
| SMP | 16 CPUs, per-CPU KPRCB, IPI (reschedule, TLB shootdown, call-function) |
| Seguridad | NT6 SRM: SID, Token, ACL, ACE, SeAccessCheck |
| Rendimiento | HPET → APIC timer 1 KHz, slab con per-CPU hot cache, work stealing |
NeoDOS is now developed under the NeoDOS-Project GitHub organization.
| Repository | Description |
|---|---|
| NeoDOS | Main repository (kernel, bootloader, drivers, tools, docs) |
| .github | Community health files, issue and PR templates |
bash scripts/build.sh # bootloader + kernel + GPT disk image
bash scripts/build.sh --neodos-image # + NeoDOS FS image + user binaries
bash scripts/qemu-debug.sh # QEMU + OVMF, serial a stdout, GDB :1234
gdb -x .gdbinit # desde neodos/, conecta a QEMU
python3 scripts/auto_test.py # Test runner automático headless| Documento | Descripción |
|---|---|
| Visión Arquitectónica | Plan director, diagnóstico, roadmap v0.40→v1.0 |
| Arquitectura | Arquitectura actual del sistema |
| Source of Truth | Invariantes y contratos arquitectónicos |
| Boot | Boot sequence, fases, GPT layout |
| Syscalls | Referencia completa de syscalls |
| Object Manager | Ob types, namespace, operaciones |
| Memory | Buddy allocator, slab, demand paging |
| Drivers | NEM format, certificación, capacidades |
| Filesystem | NeoFS, VFS, IoStack |
| Repository Architecture | Propuesta de organización multi-repositorio |
| Roadmap | Items pendientes y completados |
| Debug | Guía de depuración con GDB |
NeoDOS es software experimental. Úselo bajo su propio riesgo.