Notas de Osdev
Un libro, originado como una colección de notas, destinado a guiar al lector a través de los pasos para construir un núcleo de sistema operativo desde cero. Escrito mientras escribíamos (y reescribíamos) nuestros propios núcleos, cada capítulo cubre un paso del proceso desde la selección de un gestor de arranque hasta la ejecución de un ELF cargado en el espacio de usuario.
¡Esperamos que lo disfrutes y encuentres algo interesante aquí!
El contenido de este repositorio también está disponible como libro impreso , se puede adquirir a través de Lulu:
- Tapa blanda : Haga clic aquí
- Tapa dura : Haga clic aquí
La última versión maestra contiene el PDF creado a partir del maestro.
Capítulos actuales:
- Parte 0: Introducción
- Conocimiento asumido
- Acerca de los autores
- Parte 1: Protocolos de construcción y arranque
- Construyendo un núcleo
- Cargadores de arranque y protocolos de arranque
- Archivos Make
- Secuencias de comandos del vinculador
- Generando una ISO de arranque
- Parte 2: Arquitectura y controladores básicos
- Descripción general
- Hola Mundo
- Una mitad superior del núcleo
- Tabla de descriptores globales
- Interrumpe
- Tablas ACPI
- APIC
- Temporizadores
- Descripción general del teclado PS2
- Manejo de interrupciones del teclado de PS2
- Implementación del controlador de teclado PS2
- Parte 3: Salida de vídeo
- El búfer de fotogramas
- Dibujar texto en Framebuffer
- Parte 4: Gestión de la memoria
- Descripción general
- Memoria física
- paginación
- Administrador de memoria virtual
- Asignación de montón
- Parte 5: Programación
- Descripción general
- El programador
- Procesos e hilos
- Cabellos
- Parte 6: Llegar al espacio de usuario
- Descripción general
- Modos de conmutación
- Manejo de interrupciones actualizado
- Llamadas al sistema
- Ejemplo de llamada al sistema ABI
- Parte 7: Comunicación entre procesos
- Descripción general
- Memoria compartida
- Paso de mensaje
- Parte 8: Sistema de archivos
- Descripción general
- El sistema de archivos virtuales
- El sistema de archivos Tar
- Parte 9: Carga y ejecución de ELF
- Teoría
- Cargando y ejecutando
- Parte 10: Ir más allá
- Extras: Apéndices
- Solución de problemas generales
- Consejos y trucos
- Lenguaje C
- Trabajando con NASM
- Todo sobre compiladores cruzados
- Depuración
- Protección de la memoria
- Recursos útiles
- Expresiones de gratitud
Nuestros Proyectos
- DreamOs64: SO de 64 bits escrito desde cero por Ivan G.
- Northport: ¡Otro sistema operativo de 64 bits con SMP y soporte riscv! por Dean T.
- DreamOs: SO de 32 bits escrito desde cero. Este proyecto está descontinuado, pero aún así vale la pena mencionarlo. También de Iván G.
Autores
- Ivan G (dreamos82) - Autor y creador de estas notas.
- Dean T (DeanoBurrito) - Autor.
Licencia
El contenido (código, texto y otros activos) de este repositorio tiene la licencia pública Creative Commons Atribución-No Comercial 4.0; consulte el archivo de LICENCIA para ver el texto completo.
Si bien no es un asesoramiento legal, esta licencia se puede resumir en:
- Eres libre de compartir (copiar y redistribuir) este material en cualquier medio o formato.
- Adaptar (remezclar, transformar y construir sobre) el material.
Bajo las siguientes restricciones:
- Debe dar el crédito correspondiente, proporcionar un enlace a la licencia e indicar si se realizaron cambios.
- No se puede utilizar el material para usos comerciales.
Tenga en cuenta que no se proporcionan garantías de ningún tipo.