Skip to content

NeoDOS-Project/NeoDOS

Repository files navigation

NeoDOS — Un Sistema Operativo Moderno en Rust para x86-64

Version Tests Rust Organization

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.


Arquitectura en 30 segundos

Boot UEFI → Bootloader → Kernel (11 fases de boot) → NeoInit (PID 1) → NeoShell (Ring 3)

El kernel se organiza en 5 capas verticales:

  1. Arch (x86_64) — GDT, IDT, paginación 4 niveles, SMP trampoline
  2. HAL v0.4 — raw/safe split, 26 primitivas extern "C", asm confinado
  3. 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
  4. NEM Driver Runtime — pipeline de certificación (8 estados), capacidades (12 flags), aislamiento X4 (16 slots × 1 MB), ABI versionado
  5. Syscall SSDT — 32 syscalls activos, tabla de 256 slots, O(1) dispatch, tabla de permisos separada

Estado Actual

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

Project Organization

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

Quick Start

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

Documentación Clave

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

Licencia

NeoDOS es software experimental. Úselo bajo su propio riesgo.

About

NeoDOS - A modern NT-like operating system written in Rust for x86-64

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors

Languages