Acerca de
Laylaos es un sistema operativo de pasatiempo con un núcleo escrito en C. El proyecto comenzó alrededor de 2015 y tardó casi 9 años en llegar a un punto estable donde sentí que podría compartirse con el mundo. Se entiende como una herramienta de aprendizaje para comprender mejor el funcionamiento interno del kernel de un sistema operativo, cómo funcionan el sistema y cómo implementar un entorno de interfaz de usuario gráfico (GUI).
Definitivamente no es un sistema destinado al uso diario (al menos aún no).
Capturas de pantalla
Más capturas de pantalla
Características
Las características del proyecto incluyen:
- Multitarea monolítica de 64 bits núcleos preventivos escritos en C (el código de 32 bits se incluye aquí pero no es completamente funcional)
- Pila de red (basada en Picotcp)
- Soporte de Ata/Atapi y Ahci
- Soporte de sonido Intel HDA básico
- Teclado y mouse de PS2
- Consolas virtuales
- Objeto compartido dinámico virtual (VDSO)
- Instalaciones de comunicación de interprocesos (IPC) en forma de memoria compartida, semáforos y colas de mensajes
- Caché de la página para la carga de las páginas
- Soporte ACPI a través de ACPICA
- B Library (actualmente usando Musl)
- Puertos del software de terceros (GNU coreUtililes, inetUtils, bash, varias bibliotecas de decodificación de imágenes y audio/video, etc.)
- Escritorio gráfico con muchas aplicaciones (en su mayoría demostrativas)
- Sdl2
- Qt5.12
- Openttd
- Una bifurcación de sdl2 doom
Lista de tareas
Esto es principalmente para realizar un seguimiento de dónde estamos y qué hay que hacer a continuación:
- Más syscalls, incluidas las colas de mensajes de Posix, syscalls
- Más funcionalidad de GUI (editor de texto, instalación de captura de pantalla, programa de pintura, temas de escritorio, archivador, navegador web, etc.)
- VFAT, EXT3, EXT4, NFS FILESYSTOST STISTSM (tal vez NTFS en algún momento)
- Registro de kernel y quizás un servidor syslogd
- Soporte de intercambio
- Soporte USB
- Multiprocesamiento simétrico (SMP)
Paquetes prebuidados
Puede descargar una imagen de disco de arranque prebuilt que incluya todo (incluido el software portado) de la página de versiones. Sin embargo, tenga en cuenta que la imagen del disco descomprimida es probable que sea grande (3+ GIB de tamaño). Puede usar esta imagen para ejecutar Laylaos en Bochs o Qemu.
Si desea probar Laylaos en Oracle VM VirtualBox, deberá convertir la imagen de disco de arranque en una imagen VDI. Esto se puede hacer ejecutando: VBoxManage convertfromraw bootable_disk.img bootable_disk.vdi
Luego puede crear una nueva máquina virtual en VirtualBox usando la imagen de disco. Probablemente enfrentará un problema ya que la imagen contiene dos archivos ( /boot/grub/grub.cfg y /etc/fstab ) con un nombre de dispositivo de arranque codificado (algo así como /dev/hda4 ). Para poder usar este disco como un disco SATA (o AHCI) en VirtualBox, debe tener:
- Edite estos dos archivos en la imagen del disco que descargó y cambia el nombre del dispositivo a
/dev/sda4 (suponiendo que conecte el disco en el puerto SATA 0; la imagen contiene 4 particiones) - Build Laylaos desde la fuente y cree la imagen de disco de arranque usando:
./create_bootable_disk.sh rootdev sda4
Vea a continuación si decidió construir Laylaos a partir de la fuente.
Cómo construir
Para construir Laylaos a partir de la fuente:
- Descargue este repositorio y descomprima el archivo zip
- Cambiar directorio al directorio de origen descomprimido, por ejemplo
cd ~/downloads/laylaos-master - Cambiar el directorio al subdirectorio
build-scripts en el árbol de origen: cd build-scripts - Para ejecutar la compilación (esto debe hacerse desde el directorio
build-scripts ): ./buildos.sh - Ve a tomar un café o mejor aún, almuerza. ¡Se necesitan un poco más de 3 horas para construir todo el proyecto!
- ¡Ah, y necesita conexión a Internet para descargar las fuentes de software portado!
- Cuando se realice la compilación, cree una imagen de arranque de harddisk ejecutando:
./create_bootable_disk.sh - La imagen de disco de arranque se llama
bootable_disk.img y se crea de forma predeterminada en el directorio de trabajo actual (puede ejecutar ./create_bootable_disk.sh help para ver la lista de opciones) - Un archivo
bochsrc se crea automáticamente junto con bootable_disk.img (es posible que desee corregir el nombre del dispositivo inalámbrico que usa en el archivo). Ahora puedes ejecutar bochs: bochs -q - Otro script llamado
qemu.sh también se crea para permitirle probar el sistema operativo bajo QEMU. Sin embargo, necesita un dispositivo de red Tun/Tap para ejecutar Laylaos en QEMU usando el script proporcionado. Primero debe ejecutar sudo ./netprep.sh para crear el dispositivo de red, luego puede continuar ejecutando qemu.sh
Licencias
- Laylaos se libera bajo GPL V3.
- Picotcp (sobre el cual se construye nuestra pila de red) se lanza bajo GPL V2 o V3.
- ACPICA se lanza bajo una doble información y licencias compatibles con Unix.
- Los archivos de timidez (necesarios para el sonido en Doom) están en el dominio público (consulte su archivo
copyright.txt ). - La fuente monoespacial utilizada en la consola del sistema y la terminal GUI es Dina Font, que se libera bajo una licencia gratuita.
- Libaelf32.A y Libbaelf64.A son parte de ASMLIB, la biblioteca de optimización de software de Agner Fog, que se lanza bajo GPL.
- Todos los demás software portado vienen con sus respectivas licencias.