Porque puedo.
Pasar un buen rato es mi impulso para este proyecto + ¡Aprendo muchas cosas geniales de bajo nivel junto con eso!
El núcleo Cavos es uno monolítico x86_64 escrito en C relativamente simple con unos pocos bits de ensamblaje de Intel aquí y allá. Utiliza el cargador de arranque de Limine y aprovecha el sistema de archivos FAT32 para el arranque junto con Ext2 para la partición raíz. Trato de mantener la estructura del código limpia y bastante fácil de entender, mientras evito demasiada abstracción. Por lo tanto, la calidad del código y la claridad a veces se priorizan sobre las ganancias de rendimiento.
El espacio de usuario es mi enfoque principal en ese momento, con el núcleo bastante estable. Estoy tratando de hacer este sistema operativo lo más cerca de Linux como pueda, mientras agrego mis propias cosas encima. Esto es visible con las llamadas del sistema que son exactamente como las de Linux. ¡Eso no es aleatorio, quiero que los cavos sean lo más compatibles de él posible!
¡No! El núcleo Cavos no comparte código fuente o encabezados con Linux. El código fuente de Linux se extrae durante el ensamblaje del espacio de usuario, pero solo porque algunos programas de terceros (portados) dependen de sus encabezados. Incluso entonces, no se comparte ningún código real.
Es importante mencionar que estos objetivos nunca están satisfechos, tomen mucho tiempo para completarse (estamos hablando de años en el futuro) o nunca se hace en absoluto. Además, esta lista no incluirá todas las características implementadas o planificadas y se pueden cambiar en cualquier momento ...
systemcall Todo sobre esto se puede encontrar en install.md. Vaya allí para obtener más información sobre cómo construir el sistema operativo correctamente, limpiando binarios no utilizados y otras cosas.
Sábado 2 de marzo de 2024. A través de muchas soluciones, decisiones "malas" y una mentalidad dominante de "justos", había reunido un núcleo puramente x86 (32 bits) que podría alimentar aplicaciones de los usuarios de manera poco inicial. Todavía me aferré al código antiguo (desde cuando apenas entendía conceptos simples, como decir paginación), bibliotecas obsoletas y muchas otras cosas. A veces funcionaba, pero no estaba satisfecho.
5:00 pm; Esa tarde decidí comenzar un largo proceso de migración de todo a la arquitectura x86_64 y planchar muchos problemas de confiabilidad, lo que hizo que las pesadillas reales depuraran. Básicamente llegué a un cierto punto para comprender que las soluciones rápidas y dity solo conducen a errores completamente evitables, que fueron extremadamente difíciles de identificar después de que se agregaron enormes cantidades de abstracciones.
Este proyecto tiene licencia bajo GPL V3 (GNU General Public License v3.0). Para obtener más información, visite el archivo de licencia.