HN público: por fin ejecuté el OS de hobby que escribí yo mismo en una IBM ThinkPad vintage
(github.com/joexbayer)- RetrOS-32 es un proyecto de sistema operativo de hobby de 32 bits basado en la arquitectura i386
- Ofrece funciones de gráficos, multitarea y redes, y también ha sido probado en hardware real
- Está escrito en C, C++ y ensamblador, y soporta compilación multiplataforma mediante Docker
- Es posible construir un sistema de usuario, ejecutarlo en emulación con QEMU y arrancarlo en hardware físico
- El proyecto cuenta con funciones de kernel bastante completas y una pila de red, y sigue agregando características de forma continua
Introducción al proyecto RetrOS-32bit
- Es un proyecto de desarrollo de un sistema operativo de hobby de 32 bits basado en la arquitectura i386
- Soporta entorno gráfico, multitarea y funciones de red
- Fecha de inicio del proyecto: 12 de mayo de 2022
Información básica de inicio de sesión
- Cuentas de usuario predeterminadas: system, admin, guest
- La contraseña de admin es
admin, y guest no tiene contraseña - Se pueden crear nuevos usuarios con el comando
admin create <nombre_de_usuario> <contraseña>
Principales lenguajes y herramientas de desarrollo
- C, Assembly: kernel, utilidades y sistema de compilación
- C++: aplicaciones de espacio de usuario
- Make: automatización de compilación
- Docker: proporciona un entorno de compilación multiplataforma
Hardware probado
- Lenovo x240
- Asus Eee PC series
- Dell Optiplex 780
- Samsung N150 Plus
- Samsung NP-NC10
- IBM Thinkpad a21p
Primeros pasos (Getting Started)
Herramientas necesarias (Prerequisites)
- Docker: compilación multiplataforma
- QEMU: emulación de máquina virtual
- Entorno Linux/WSL:
build-essential,gcc-multilib,grub2,xorriso,xxd - MacOS: se requiere usar Docker (limitaciones para compilar x86 de 32 bits)
Instalación (Installation)
- Clonar el repositorio Git
- Inicializar los submódulos de Git
- Crear el archivo de imagen con los comandos
make compile,make img - Ejecutar el emulador QEMU con el comando
make qemu
En MacOS y Windows se recomienda usar Docker
Uso (Usage)
- Subir el archivo
.imgy ejecutarlo en el sitio copy.sh v86 - También se puede ejecutar directamente con QEMU:
make qemuoqemu-system-i386 <nombre_de_imagen> - En hardware físico, se puede arrancar grabando un ISO basado en GRUB en USB/CD
Estructura del proyecto (resumen breve)
apps: aplicaciones de espacio de usuariobin: archivos binariosboot: código fuente del bootloaderdrivers: drivers del kernelfs: código del sistema de archivosgraphics: código de procesamiento gráficoinclude: archivos de encabezadokernel: código fuente principal del kernellib: bibliotecasnet: código de redrootfs: sistema de archivos raíztests: código de pruebastools: herramientas de compilación y utilidades
Hoja de ruta de desarrollo (Roadmap)
- Bootloader personalizado y arranque compatible con GRUB completados
- Implementados planificación preventiva multihilo y separación entre kernel y espacio de usuario
- Pila de red: Ethernet, IP, ARP, UDP, TCP, DHCP, DNS completados
- Sistema gráfico: implementados gestor de ventanas, widgets y renderizado con doble framebuffer
- Sistema de archivos: similar a Ext2, soporte para FAT16, lectura/escritura disponible
- Planes futuros: agregar soporte para servidor web, FTP, IRC, SSH, Telnet, HTTP y HTML
1 comentarios
Comentarios de Hacker News