Propuesta Oficial de TFG
1. Título
Desarrollo de un kernel académico para arquitecturas x8664 en C++
2. Resumen
El proyecto trata de programar y documentar un kernel académico en C++ de 64 bits que sea capaz de correr en máquinas x8664 que dispongan de UEFI. Junto al sistema se desarrollará un bootloader en C con posix-uefi capaz de arrancarlo mediante los UEFI Boot Services. La ejecución del kernel se realizará en la máquina virtual qemu con el firmware UEFI de edk2 Ovmf. La finalidad del proyecto es disponer de un kernel académico que implemente las funcionalidades básicas que hacen funcionar los sistemas operativos modernos y documentar toda su implementación.
3. Motivación
El lado teórico de los sistemas operativos tiene muchos recursos para aprender “step by step” (OSTEP, Tanenbaum, etc) mientras que en el lado de la implementación de kernels y sistemas encontramos pocos materiales y menos con tecnologías modernas como x8664, UEFI, C++, etc. Escribir un kernel académico desde cero y documentar su implementación junto a detalles del funcionamiento interno ayudaría a dar explicaciones demostrables de forma práctica sobre aspectos de bajo nivel del funcionamiento de un ordenador (memoria virtual, impresión por pantalla, etc). La Universidad actualmente carece de líneas de trabajo en este ámbito, abrir un proyecto en esta línea sería muy enriquecedor.
4. Proyectos Similares
4.1. Development of an Operating System in C
- Institución: International University of Sarajevo
- Publicación: Agosto 2017
- Autor: Mehmed Duhović
- Enlace: https://www.academia.edu/40464917/DEVELOPMENT_OF_AN_OPERATING_SYSTEM_IN_C
4.2. The little book about OS development
- Publicación: Enero 2015
- Autor: Erik Helin & Adam Renberg
- Enlace: https://littleosbook.github.io/book.pdf
4.3. blogos
- Autor: Philipp Oppermann
- Enlace: https://os.phil-opp.com/
4.4. xv6
- Institución: MIT (CSAIL)
- Autor: Russ Cox, Frans Kaashoek, Robert Morris
- Enlace: https://pdos.csail.mit.edu/6.828/2021/xv6.html
4.5. PonchoOS
- Autor: alias poncho
- Enlace: https://github.com/Absurdponcho/PonchoOS/tree/main
4.6. SerenityOS
- Autor: Colaborativo. Andreas Kling (principal)
- Años en desarrollo: ~4
- Enlace: https://serenityos.org/
4.7. PowerNex
- Autor: Dan Printzell (principal)
- Años en desarrollo: ~6
- Enlace: https://github.com/PowerNex/PowerNex
4.8. Toaruos
- Autor: K. Lange
- Años en desarrollo: ~11
- Enlace: https://github.com/klange/toaruos
4.9. RedoxOS
- Autor: Colaborativo. Jeremy Soller (principal)
- Años en desarrollo: ~6
- Enlace: https://www.redox-os.org/
4.10. TempleOS
- Autor: Terry Davis
- Años en desarrollo: ~16
- Enlace: https://templeos.org/