Un système d'exploitation tout compris 64 bits, du chargeur de démarrage à l'espace utilisateur.
Lensoros migre loin de GitHub, en faveur du Foss Codeberg.
Lensoros sur Codeberg
Machines virtuelles gratuites et compatibles:
Si vous êtes simplement intéressé à pousser autour de Lensoros et non à l'édition de code, je recommande une version prédéfinie de la page des versions. Il comprendra toutes les ressources et instructions nécessaires sur la façon d'exécuter Lensoros. Gardez à l'esprit que cela manquera de nombreuses fonctionnalités pour assurer une compatibilité maximale entre les systèmes. En construisant à partir de Source, vous pouvez construire pour votre système exact et obtenir toutes les fonctionnalités possibles activées.
Remarque: il n'y a pas d'automatisation pour quoi que ce soit sauf Qemu pour l'instant. Il existe cependant des instructions sur la façon de configurer une machine virtuelle dans VirtualBox et VMware Workstation Player.
Lorsque le système de construction CMake est généré, il recherche QEMU sur votre système; S'il le trouve, il ajoutera les cibles suivantes au projet. Invoquez-les pour lancer Qemu à partir du support Lensoros Boot correspondant, après l'avoir construit s'il n'est pas à jour.
Les cibles:
run_qemu - directement du répertoire qui imite Lensoros.imgrunimg_qemu - LENSOROS.IMGruniso_qemu - Lensoros.isorunhda_qemu - LENSOROS.BIN (le plus commun)Pour les cibles qui ne prennent pas actuellement en charge les partitions GPT (c.-à-d. ISO, IMG et directement à partir du répertoire), il n'y a pas vraiment d'espace utilisateur disponible . Je veux dire, c'est possible, mais vous devrez modifier des choses pour placer les processus et les bibliothèques de l'espace utilisateur dans la partition de démarrage plutôt que dans la partition des données de l'espace utilisateur, puis modifiez également le noyau pour les charger à partir de là.
En supposant que le système de construction CMake a été généré dans le bld/ sous-répertoire, invoque comme:
cmake --build bld --target < name of target > New bouton pour créer une nouvelle machine virtuelle (VM).Other et de la version des Other/Unknown (64-bit) .Do not add a virtual hard disk .Create pour créer la nouvelle machine virtuelle.Settings .System dans la liste à gauche.ICH9 .Enable EFI (special OSes only) .Storage dans la liste à gauche.IDE ) et sélectionnez Remove Controller .Storage Devices étiquetés et sélectionnez AHCI (SATA) .Optical Drive ou Hard Disk selon que vous souhaitez démarrer à partir du .iso ou .bin , respectivement.Add la nouvelle fenêtre de sélecteur de supports virtuels qui apparaît.Optical Drive ou Hard Disk a été sélectionné, choisissez LensorOS.iso ou LensorOS.bin .Network dans la liste à gauche.Serial Ports dans la liste à gauche.Enable Serial Port est vérifié, COM1 est sélectionné, IRQ est 4 et I/O Port est 0x3F8 . Home dans la liste du côté gauche. Cliquez sur Create a New Virtual Machine à droite.I will install the operating system later. option.Other et une version de Other 64-bit .Customize Hardware...New CD/DVD à gauche, puis cliquez sur Advanced... à droite.SATA , puis cliquez sur OK .Use ISO image file , puis cliquez sur Browse...LensorOS.iso (situé dans bin/ ).Remove près du centre inférieur.Close en bas à droite pour fermer la fenêtre de configuration matérielle.Finish ..vmx dans un éditeur de texte.firmware="efi" . Vous devrez sélectionner UEFI Shell une fois que VMware Workstation Boots dans Lensoros (même si cela dit quelque chose comme Unsupported ).
Il y a plusieurs étapes dans le processus de construction Lensoros, décrite ici.
Remarque: tous les blocs de commandes shell donnés devraient commencer par le répertoire de travail à la racine du référentiel.
Téléchargez et installez les dépendances suivantes à l'échelle du projet si vous ne les avez pas déjà, ou si la version que vous avez n'est pas à jour.
sudo apt install build-essential makeEnsuite, clonez le code source du référentiel. Si vous souhaitez modifier le code et apporter des contributions, assurez-vous d'abord et de clone de ce référentiel.
git clone https://codeberg.org/LensPlaysGames/LensorOS.git Cela créera un sous-répertoire intitulé LensorOS avec le contenu de ce référentiel dans le répertoire de travail actuel.
Remarque: Cette section va changer et toute information ici peut devenir incorrecte ou obsolète à tout moment. Cela est dû au milieu de la migration des chargeurs de démarrage vers le chargeur de démarrage des rayons auto-créés.
Le chargeur de démarrage est une application EFI; spécifiquement un chargeur de système d'exploitation écrit pour la spécification UEFI. (actuellement v2.9). Cette spécification décrit l'utilisation d'exécutables PE32 + avec un sous-système spécifique. Comme vous le savez peut-être, le format PE32 + est également utilisé par Windows comme format exécutable. Cela signifie qu'un compilateur qui génère des exécutables Windows générera le format approprié d'exécutable pour une application EFI, compte tenu de la modification du sous-système. Cependant, il y a une vingtaine d'années, GNU a décidé d'écrire des scripts de liaison de relocalisation personnalisés qui créent des exécutables PE32 + à partir d'Elfe Executiles. Cela signifie qu'un compilateur qui génère des exécutables ELF est utilisé, alors cet exécutable est transformé en un exécutable PE32 + avec le sous-système approprié pour une application EFI. Heureusement, tout cela est géré par le système de construction.
Si vous avez déjà un système de construction, vous pouvez utiliser ce qui suit pour mettre à jour le chargeur de démarrage (la cible existe uniquement sur UNIX ):
cmake --build bld --target bootloaderLorsque vous démarrez frais, vous pouvez exécuter le système de construction de chargeur de démarrage manuellement.
Construisez les dépendances du chargeur de démarrage:
cd gnu-efi
make Cela ne doit jamais être fait une seule fois, pour générer libgnuefi.a .
De là, l'exécutable de chargeur de démarrage peut être construit à l'aide de la cible de la charge bootloader :
cd gnu-efi
make bootloaderVoir la chaîne d'outils Readme
Une fois que la chaîne d'outils est utilisable, continuez ici.
Je recommande de jeter un œil à toolchain/config.cmake et à voir ce qu'il y a pour jouer, mais aller avec les valeurs par défaut est tout aussi bien.
Tout d'abord, générez un système de construction à l'aide de CMake. Si vous choisissez un système de construction différent, gardez à l'esprit que tous les systèmes de construction n'honorent pas notre demande d'utilisation d'une chaîne d'outils personnalisée. Je recommande Ninja, car cela peut accélérer les temps de construction. Un autre conseil pour accélérer les temps de construction; installer ccache . Les scripts CMake de ce projet détectent et l'utilisent automatiquement.
cmake -G Ninja -B bldVeuillez noter qu'il y a des messages critiques dans la sortie de la commande ci-dessus qui peuvent détailler les cibles critiques n'ont pas été créées en raison des programmes qui ne sont pas trouvés sur le système.
Pour construire LIBC, les programmes d'espace utilisateur et enfin l'exécutable du noyau, invoquez le système de construction généré par CMake:
cmake --build bldCMake créera certaines cibles si les dépendances appropriées sont détectées sur le système.
Pour voir une liste de toutes les cibles disponibles, utilisez la commande suivante:
cmake --build bld --target helpCibles les plus utilisées de l'objectif:
runhda_qemuimage_gptimage_vdiuserspacekernelVoici une liste des cibles de construction actuelles relatives à la génération de supports de démarrage, ainsi que leurs dépendances répertoriées sous chacune.
image_raw - combinez des exécutables et des ressources construits pour générer des supports de démarrage FAT32 compatibles UEFI.gnu-efi/x86_64/bootloader/main.efi .Kernel (repose sur boot/LensorOS/kernel.elf ).sudo apt install mtoolsimage_gpt - Créez l'image du disque dur botable à échéance GPT à partir des supports de démarrage FAT32.image_rawscripts .image_iso - Créez l'image CD-ROM BOOTABLE ISO-9660 "El-Torito" à partir des supports de démarrage FAT32.image_rawsudo apt install xorrisoimage_vdi - Convertir l'image de disque brut à carte GPT en format d'image de disque virtuel ( .vdi ).image_gptÀ titre d'exemple, une image de démarrage compatible UEFI formatée FAT32 peut être générée à l'aide de la commande suivante:
cmake --build bld --target image_rawIl ne faut qu'une seule commande pour construire le noyau Lensoros, générer de nouveaux supports de démarrage, puis lancer la machine virtuelle Qemu dans Lensoros.
cmake --build bld --target runhda_qemuLes travaux sur Lensoros ont commencé le 9 janvier 2022.
scripts/sysroot.sh ).