Un sistema operativo todo incluido de 64 bits, desde el cargador de arranque hasta el espacio de usuarios.
Lensoros está migrando lejos de Github, a favor del Foss Codeberg.
Lensoros en CodeBerg
Máquinas virtuales gratuitas y compatibles:
Si solo está interesado en asomar Lensoros y no editar el código, recomiendo una versión previa a la página de la página de lanzamientos. Incluirá todos los recursos e instrucciones necesarios sobre cómo ejecutar lensoros. Tenga en cuenta que a esto le faltará muchas características para garantizar la máxima compatibilidad entre los sistemas. Al construir desde la fuente, puede construir para su sistema exacto y obtener todas las características posibles habilitadas.
Nota: No hay automatización para nada excepto QEMU por ahora. Sin embargo, existen instrucciones sobre cómo configurar una máquina virtual en Virtualbox y VMware Workstation Pro reproductor.
Cuando se genera el sistema de compilación Cmake, busca QEMU en su sistema; Si lo encuentra, agregará los siguientes objetivos al proyecto. Invírelos para lanzar QEMU desde los medios de arranque de Lensoros correspondientes, después de construirlo si no está actualizado.
Los objetivos:
run_qemu - directamente desde el directorio que imita lensoros.imgrunimg_qemu - lensoros.imgruniso_qemu - lensoros.isorunhda_qemu - lensoros.bin (más común)Para los objetivos que actualmente no admiten particiones GPT (es decir, ISO, IMG y directamente del directorio), realmente no hay espacio de usuario disponible . Quiero decir, es posible, pero tendría que modificar cosas para colocar los procesos y las bibliotecas del espacio de usuario en la partición de arranque en lugar de en la partición de datos del espacio de usuario, y luego también modificar el núcleo para cargarlos desde allí.
Suponiendo que el sistema de compilación CMake se generó en el bld/ subdirectorio, invoque como:
cmake --build bld --target < name of target > New para crear una nueva máquina virtual (VM).Other y la versión de Other/Unknown (64-bit) .Do not add a virtual hard disk .Create para crear la nueva máquina virtual.Settings .System dentro de la lista de la izquierda.ICH9 .Enable EFI (special OSes only) .Storage dentro de la lista de la izquierda.IDE ) y seleccione Remove Controller .Storage Devices y seleccione AHCI (SATA) .Optical Drive o Hard Disk dependiendo de si desea arrancar desde .iso o .bin , respectivamente.Add en la nueva ventana Selector de medios virtuales que aparece.Optical Drive o Hard Disk , elija LensorOS.iso o LensorOS.bin .Network dentro de la lista de la izquierda.Serial Ports dentro de la lista de la izquierda.Enable Serial Port , se selecciona COM1 , IRQ es 4 y I/O Port es 0x3F8 . Home en la lista en el lado izquierdo. Haga clic en Create a New Virtual Machine a la derecha.I will install the operating system later. opción.Other y una versión de Other 64-bit .Customize Hardware...New CD/DVD a la izquierda, luego haga clic en Advanced... a la derecha.SATA , luego haga clic en OK .Use ISO image file y luego haga clic en Browse...LensorOS.iso (ubicado en bin/ ).Remove cerca del centro inferior.Close en la parte inferior derecha para cerrar la ventana de configuración de hardware.Finish ..vmx en un editor de texto.firmware="efi" . Tendrá que seleccionar UEFI Shell una vez que VMware Workstation se inicie en lensoros (incluso si dice algo como Unsupported ).
Hay múltiples pasos en el proceso de construcción de lensoros, descritos aquí.
Nota: Se espera que todos los bloques de los comandos de Shell dados comiencen con el directorio de trabajo en la raíz del repositorio.
Descargue e instale las siguientes dependencias de todo el proyecto si aún no las tiene, o si la versión que tiene no está actualizada.
sudo apt install build-essential makeA continuación, clone el código fuente del repositorio. Si desea editar el código y hacer contribuciones, asegúrese de desembolsar primero y clonar desde ese repositorio.
git clone https://codeberg.org/LensPlaysGames/LensorOS.git Esto creará un subdirectorio titulado LensorOS con el contenido de este repositorio en el directorio de trabajo actual.
Nota: Esta sección va a cambiar , y cualquier información aquí puede volverse incorrecta o desactualizada en cualquier momento. Esto se debe a estar en el medio de los cargadores de arranque migratorios al cargador de arranque de radios creado.
El gestor de arranque es una aplicación EFI; Específicamente un cargador SO escrito para la especificación de UEFI. (Actualmente v2.9). Esa especificación describe el uso de ejecutables PE32+ con un subsistema específico. Como sabrán, Windows también utiliza el formato PE32+ como formato ejecutable. Esto significa que un compilador que genera ejecutables de Windows generará el formato adecuado de ejecutable para una aplicación EFI, dada la modificación del subsistema. Sin embargo, hace más o menos veinte años, GNU decidió escribir scripts de enlace de reubicación personalizados que crean ejecutables PE32+ a partir de ejecutables ELF. Esto significa que se utiliza un compilador que genera ejecutables ELF, entonces ese ejecutable se transforma en un ejecutable PE32+ con el subsistema adecuado para una aplicación EFI. Afortunadamente, todo esto es manejado por el sistema de compilación.
Si ya tiene un sistema de compilación, puede usar lo siguiente para actualizar el cargador de arranque (el objetivo existe solo en UNIX ):
cmake --build bld --target bootloaderAl comenzar de nuevo, puede ejecutar el sistema de compilación del cargador de arranque manualmente.
Cree las dependencias para el gestor de arranque:
cd gnu-efi
make Eso solo tiene que hacerse una vez, para generar libgnuefi.a .
Desde aquí, el ejecutable de Bootloader se puede construir usando el bootloader Make Target:
cd gnu-efi
make bootloaderVea el readme de la cadena de herramientas
Una vez que la cadena de herramientas se pueda usar, continúe aquí.
Recomiendo echar un vistazo a toolchain/config.cmake y ver con qué hay que jugar, pero ir con los valores predeterminados es igual de bien.
Primero, genere un sistema de compilación con CMake. Si elige un sistema de compilación diferente, tenga en cuenta que no todos los sistemas de compilación honra nuestra solicitud de utilizar una cadena de herramientas personalizada. Recomiendo ninja, ya que puede acelerar los tiempos de construcción. Otro consejo para acelerar los tiempos de construcción; Instale ccache . Los scripts de CMake en este proyecto detectan y lo usan automáticamente.
cmake -G Ninja -B bldTenga en cuenta que hay mensajes críticos en la salida del comando anterior que pueden detallar los objetivos críticos que no se han creado debido a que los programas no se encuentran en el sistema.
Para construir libc, programas de espacio de usuario y finalmente el ejecutable de kernel, invoca el sistema de compilación generado por CMake:
cmake --build bldCMake creará ciertos objetivos si las dependencias adecuadas se detectan en el sistema.
Para ver una lista de todos los objetivos disponibles, use el siguiente comando:
cmake --build bld --target helpLos objetivos más utilizados de la lente:
runhda_qemuimage_gptimage_vdiuserspacekernelAquí hay una lista de los objetivos de compilación actuales relacionados con la generación de medios de arranque, así como sus dependencias enumeradas debajo de cada uno.
image_raw : combine ejecutables y recursos construidos para generar medios de arranque FAT32 compatibles con UEFI.gnu-efi/x86_64/bootloader/main.efi .Kernel (se basa en boot/LensorOS/kernel.elf ).sudo apt install mtoolsimage_gpt : cree una imagen de disco duro de arranque y partida de GPT desde Fat32 Boot Media.image_rawscripts .image_iso : cree una imagen de arranque de CD-ROM "El-Torito" ISO-9660 desde Fat32 Boot Media.image_rawsudo apt install xorrisoimage_vdi -Convertir la imagen de disco sin procesar GPT en formato de imagen de disco virtual ( .vdi ).image_gptComo ejemplo, se puede generar una imagen de arranque compatible con UEFI compatible con FAT32 utilizando el siguiente comando:
cmake --build bld --target image_rawSolo se necesita un comando para construir el núcleo Lensoros, generar nuevos medios de arranque y luego iniciar la máquina virtual QEMU en Lensoros.
cmake --build bld --target runhda_qemuEl trabajo en Lensoros comenzó el 9 de enero de 2022.
scripts/sysroot.sh ).