¿Qué tipo de proyecto relacionado con Kernel OS es interesante para estudiantes universitarios?

Creo que podría elegir un componente del núcleo, como el planificador, el administrador de memoria virtual o el planificador de E / S y escribir su propio algoritmo o variante de política. Por ejemplo, se han desarrollado varios algoritmos de planificación interesantes (Programador completamente justo, etc.). Esto estaría listo para experimentar con varios parámetros, tomar muchas métricas basadas en diferentes cargas de usuarios, etc.

Escribir su propio controlador de dispositivo también es una muy buena experiencia de aprendizaje. Intente elegir un dispositivo USB simple y escriba un controlador, idealmente uno que aún no tenga un controlador. Ya hay un montón de controladores USB para diferentes clases de dispositivos, por lo que escribir un almacenamiento masivo o un controlador HID no debería ser demasiado difícil con todo el código de ejemplo para trabajar. Teóricamente, todo lo que necesita es el protocolo, el mapa de registro y la hoja de datos.

Greg KH ha escrito varios artículos excelentes sobre el desarrollo de controladores de dispositivos, que incluyen:

  • “Escribir un controlador USB simple”, http://www.linuxjournal.com/arti…

Si tuvo algunas personas en el desarrollo de Arduino, podría hacer que algunos construyan un escudo y otros escriban un controlador y algunos escriban el código de tierra del usuario. Las posibilidades son infinitas…

El proyecto (Linux) Kernel Newbies también tiene una lista de proyectos valiosos para Linux, tanto pequeños como grandes:

  • http://kernelnewbies.org/KernelP…

Recomiendo echar un vistazo a los proyectos MikeOS http://mikeos.berlios.de/ y GeekOS https://code.google.com/p/geekos/ para conocer cómo funcionan los núcleos.

Después de tener una idea básica sobre los núcleos, escribir un módulo de kernel de Linux (incluso pequeños) y jugar junto con el formato ELF y sus binarios es algo divertido.

Proyecto interesante: Comprenda ELF, realice un cambio menor. Luego intente realizar cambios en el código GeekOS para admitir su ELF personalizado.

Intente implementar un sistema de archivos usando FUSE http://fuse.sourceforge.net/