Autor: Xabier Iglesias
Fecha | Versión | Descripción |
---|---|---|
07/02/24 | 0.1 | Versión inicial |
Compilar con:
nasm -fbin boot.asm -o boot.bin
Ejecutar con:
qemu-system-x86_64 -fda boot.bin
Este curso pretende introducir al alumno en el desarrollo de sistemas operativos. Se tratarán los conceptos básicos de los sistemas operativos, así como las técnicas de programación necesarias para su desarrollo.
- Conocer los conceptos básicos de los sistemas operativos.
- Conocer las técnicas de programación necesarias para el desarrollo de sistemas operativos.
- Conocer las particularidades de la arquitectura x86.
- Introducción a los sistemas operativos
- El proceso de arranque
- Interrupciones y excepciones
- Memoria física
- Memoria virtual
- El heap
- Teclado
- Drivers
- Disco
- Sistema de ficheros ext2
- Sistema de ficheros virtual
- Procesos
- El formato ELF
- Multitarea y planificación
- Llamadas al sistema
- Conceptos avanzados
- Un ordenador con Windows + WSL o Linux. Con 8GB de RAM, 20GB de espacio libre y un procesador de 64 bits (x86_64) con soporte para virtualización y al menos 4 núcleos.
- Recomendado 16GB de RAM y un procesador con 8 núcleos.
- Conocimientos de programación en C.
- Conocimientos de arquitectura de computadores.
- Solvencia en el uso de la línea de comandos de Linux.
- Primero haz el QUIZ de nivel!
- Después abre el primer tema desde la terminal y lee el README.md
- Clona el tag correspondiente al tema y comprueba que compila y ejecuta.
- Trata de comprender el código asociado al tema con la ayuda de la explicación del README.md
- Realiza los ejercicios propuestos.
- Modifica el código de la unidad a tu gusto y comprueba que funciona.
- Pregrúntame cualquier duda que tengas.
- Continúa con el siguiente tema y repite el proceso.
Nota: Las sesiones grabadas y las clases no se corresponden directamente con los temas. Las clases son una guía para el estudio de los temas.