Introducción a DariOS
DariOS es un sistema operativo (SO) simple, desarrollado en NASM 16 bits, diseñado para ser ejecutado en plataformas que soportan arquitecturas x86. A través de este proyecto, aprenderemos los conceptos fundamentales de la creación de un SO a bajo nivel, utilizando las capacidades de la arquitectura de 16 bits.
Características Principales
- Basado en NASM 16 bits: DariOS está implementado completamente en ensamblador, utilizando el lenguaje NASM para 16 bits.
- Interfaz básica de texto: Utiliza BIOS interrupts para interacción básica con el hardware.
- Arranque simple: Un proceso de arranque desde un sector de arranque (bootloader), que carga y ejecuta el núcleo del sistema operativo.
- Shell como núcleo: El núcleo de DariOS está basado en una shell sencilla que permite al usuario ejecutar comandos básicos en la terminal. Esta shell proporciona una forma de interactuar con el sistema y ejecutar funciones como mostrar la fecha, hora, cambiar colores, entre otras.
Objetivo
El objetivo principal de DariOS es proporcionar una introducción práctica a los conceptos fundamentales de los sistemas operativos, especialmente en sistemas de bajo nivel. El proyecto está desarrollado en NASM 16 bits, lo que permite a los programadores aprender de manera sencilla y directa cómo funcionan los sistemas operativos sin las abstracciones modernas.
Este proyecto tiene como objetivo enseñar a los desarrolladores los aspectos básicos del diseño de un sistema operativo, tales como la gestión de arranque, la gestión de la memoria, el uso de interrupciones y la comunicación con el hardware. Aunque DariOS es un sistema operativo extremadamente simple, contiene los fundamentos de cualquier sistema operativo más complejo y permite una comprensión profunda de cómo se diseñan y desarrollan los sistemas operativos a bajo nivel.
Objetivos específicos:
- Aprender a interactuar con el hardware a nivel de bajo nivel: Desde la gestión de entradas y salidas (E/S) hasta la manipulación directa de registros y la memoria.
- Comprender el proceso de arranque de un sistema operativo: El bootloader, el kernel y la transición entre ambos.
- Trabajar con un sistema operativo basado en 16 bits: Usar NASM 16 bits para crear un SO, que ayuda a entender los desafíos y limitaciones de las arquitecturas de 16 bits.
- Desarrollar habilidades de programación a bajo nivel: Desde la creación de un sistema operativo hasta la manipulación de interrupciones BIOS y gestión de memoria.
DariOS está diseñado principalmente con fines educativos. Su propósito es enseñar los conceptos básicos de la creación de un sistema operativo, permitiendo a los desarrolladores obtener una comprensión más profunda de lo que sucede en un SO, más allá de las abstracciones modernas.
Requisitos del Sistema
Para ejecutar y desarrollar DariOS, se requieren los siguientes recursos y herramientas:
-
Arquitectura x86 de 16 bits: DariOS está diseñado para ser ejecutado en plataformas que soporten la arquitectura x86 de 16 bits. Esto es clave para que los programas y el sistema operativo se gestionen en modo real, utilizando las características propias de esta arquitectura.
-
Emulador (QEMU o Bochs): Si no se tiene acceso a hardware físico compatible, se puede utilizar un emulador para ejecutar DariOS. Los emuladores recomendados son:
- QEMU: Un emulador de hardware de código abierto que permite ejecutar sistemas operativos sin necesidad de una máquina física.
- Bochs: Otro emulador que también soporta arquitecturas x86, utilizado para probar y ejecutar DariOS en un entorno controlado.
-
NASM (Netwide Assembler): Es necesario tener instalado el ensamblador NASM para compilar y ensamblar el código fuente de DariOS. NASM es el compilador que transforma el código fuente escrito en ensamblador a código binario que la máquina puede ejecutar.
-
PC Real (Opcional): Aunque el uso de un emulador es lo más común para este tipo de proyectos, también es posible ejecutar DariOS en un PC real que soporte la arquitectura x86 de 16 bits. Para hacerlo, es necesario:
- Crear un medio de arranque (por ejemplo, un USB o un disquete) que contenga la imagen de DariOS.
- Configurar la BIOS del PC para arrancar desde dicho medio de arranque.
Esta opción permite probar el sistema operativo directamente en un hardware físico y observar cómo interactúa con el dispositivo.
Estructura del Proyecto
El proyecto DariOS está estructurado en los siguientes componentes clave:
- Bootloader: El código que carga el sistema operativo en la memoria. Este es el primer código ejecutado cuando la máquina arranca.
- Kernel (núcleo): El núcleo del sistema operativo es responsable de la gestión de procesos, la entrada/salida (E/S) y la comunicación con el hardware a través de interrupciones. DariOS tiene un kernel monolitico simple.
12 Comandos de DariOS
DariOS incluye una pequeña colección de 12 comandos básicos para interactuar con el sistema operativo y ejecutar acciones simples. Estos comandos permiten a los usuarios ver información en pantalla, interactuar con el sistema y realizar tareas básicas de programación a nivel de texto.
Lista de comandos:
clear
: Limpia la pantalla.hola
: Te muestra un Hola Mundo!date
: Muestra la fecha actual.time
: Muestra la hora del sistema.color
: Simula un error de sintaxis.color red
: Cambia el color del texto a rojo.color green
: Cambia el color del texto a verde.color blue
: Cambia el color del texto a azul.color blue
: Restablece el color de texto.shutdown
: Apaga el sistema operativo.age
: Te pide tu edad y te la dice.random
: Genera un numero aleatorio entre 0 y 65535. Estos comandos básicos proporcionan funcionalidades esenciales para interactuar con DariOS y pueden ser utilizados para aprender cómo los sistemas operativos manejan la entrada y salida de datos.