Un sistema operativo propio, de cero, con escritorio gráfico.
Kernel freestanding en C11. Sin Linux, sin Windows, sin macOS.
x86_64
·
C11
·
Multiboot2
·
ES / EN
CordOS es un kernel x86_64 compilado como software freestanding: escribe el framebuffer, atiende el teclado y el ratón, y pinta su propia interfaz. Arranca con GRUB (Multiboot2), elige idioma, muestra un splash, pide sesión y abre un escritorio con ventanas, dock y Spotlight.
No es un fork. No reutiliza drivers ni syscalls de otro sistema. Lo que corre en la máquina es código de este árbol.
| Superficie | Qué ves |
|---|---|
| Sesión | Idioma → splash → login → escritorio |
| Escritorio | Dock, ventanas, menús, Spotlight (Win/Ctrl + Space) |
| Apps | Archivos, Terminal, Ajustes, Acerca de |
| Kernel | PMM, VMM, heap, tareas, syscalls, VFS / NosFS |
| Disco | Persistencia en AHCI / IDE (no es un truco de VirtualBox) |
| Idioma | Español e inglés en UI y shell |
Cuenta de desarrollo: usuario admin, contraseña admin.
En Windows, con WSL y VirtualBox, basta un comando. Reconstruye la ISO y abre la VM:
.\run-vbox.ps1La ISO queda en dist/cordos.iso. El serial del kernel, en out/serial.log.
Compilar a mano, QEMU y demo i386
Toolchain 64: x86_64-elf-gcc / x86_64-elf-ld (recomendado en ~/opt/cross64). En Windows el build x86_64 va por WSL.
make # x86_64 → dist/cordos.iso
make check # Multiboot2 + tests de host
make run # QEMU (ciclos rápidos / serial)
make run-vbox # Linux con VBoxManage en PATH
make ARCH=i386 # demo 32-bit congeladaPowerShell solo para la demo i386: .\build.ps1 y .\run.ps1.
BIOS experimental: make mbr && make disk && make run-bios (hace falta nasm). Detalle en docs/boot_protocol.md.
VirtualBox: firmware BIOS, VBoxSVGA, ≥128 MiB VRAM, ratón PS/2. Clic para capturar el puntero; Right Ctrl lo suelta. Si la imagen se ve pequeña, Host+F a pantalla completa.
Guía completa: docs/USER.md.
src/
boot/ Multiboot, entrada 64-bit
arch/x86_64/ GDT, IDT, ISR, PIC, PIT, context switch
arch/i386/ demo 32-bit (congelada)
kernel/ kmain, panic, string, selftest
mm/ PMM, VMM, heap
proc/ tareas, scheduler, syscalls
drivers/ framebuffer, teclado, ratón, PCI, disco, red
fs/ VFS, NosFS, initrd, usuarios
ui/ draw, login, desktop, splash, onboarding
shell/ shell de emergencia, i18n
include/ headers públicos por módulo
out/ son artefactos intermedios. El entregable es dist/cordos.iso.
docs/USER.md |
Compilar, VirtualBox, QEMU, idioma |
docs/DEV.md |
Mapa de módulos, syscalls, drivers |
docs/UI_PLAN.md |
UX: arranque → login → Home |
docs/ROADMAP.md |
Plan vivo (canónico). 0–11 cerradas. 13 ELF + spawn/fds. Falta confirmar preempt en VBox |
docs/abi.md |
ABI de syscalls |
docs/nosfs.md |
Sistema de archivos |
- Desde cero — kernel propio, ABI propia, FS propio.
- Freestanding — sin libc del anfitrión; solo lo que implementamos.
- Incremental — cada fase deja algo arrancable.
- Honesto — GRUB y el toolchain son andamiaje; el producto no es Linux.