Ein 64-Bit-All-Inclusive-Betriebssystem, vom Bootloader bis zum UserSpace.
Lensoros migriert von Github zugunsten des Foss -Codebergs.
Lensoros auf Codeberg
Kostenlose, kompatible virtuelle Maschinen:
Wenn Sie nur daran interessiert sind, in Lensoros herumzustöbern und keinen Code zu bearbeiten, empfehle ich eine vorgefertigte Version der Releases-Seite. Es wird alle erforderlichen Ressourcen und Anweisungen zum Ausführen von Lensoros enthalten. Beachten Sie, dass dies viele Funktionen fehlen wird, um die maximale Kompatibilität für Systeme zu gewährleisten. Wenn Sie aus der Quelle erstellen, können Sie für Ihr genaues System erstellen und jede mögliche Funktion aktivieren.
Hinweis: Für den Moment gibt es keine Automatisierung für etwas außer QEMU. Es gibt jedoch Anweisungen zum Einrichten einer virtuellen Maschine in VirtualBox und VMware Workstation Player.
Wenn das CMake -Build -System erzeugt wird, sucht es nach QEMU in Ihrem System. Wenn es es findet, fügt es dem Projekt die folgenden Ziele hinzu. Rufen Sie sie auf, um QEMU aus den entsprechenden Lensoros -Boot -Medien zu starten, nachdem Sie es erstellt haben, wenn es nicht auf dem neuesten Stand ist.
Die Ziele:
run_qemu - direkt aus dem Verzeichnis, das lensoros.img nachahmtrunimg_qemu - lensoros.imgruniso_qemu - lensoros.isorunhda_qemu - lensoros.bin (am häufigsten)Für Ziele, die derzeit keine GPT -Partitionen unterstützen (dh ISO, IMG und direkt aus dem Verzeichnis), ist wirklich kein Benutzerspace verfügbar . Ich meine, es ist möglich, aber Sie müssten Dinge ändern, um Benutzerspace -Prozesse und -Bibliotheken in die Boot -Partition anstatt in der UserSpace -Datenpartition zu setzen, und dann auch den Kernel ändern, um sie von dort aus zu laden.
Unter der Annahme, dass das CMake -Build -System in der bld/ Subd Directory erzeugt wurde, rufen Sie wie folgt auf:
cmake --build bld --target < name of target > New Schaltfläche, um eine neue virtuelle Maschine (VM) zu erstellen.Other und Version von Other/Unknown (64-bit) .Do not add a virtual hard disk .Create , um die neue virtuelle Maschine zu erstellen.Settings .System innerhalb der Liste links.ICH9 .Enable EFI (special OSes only) .Storage in der Liste.IDE ) und wählen Sie Remove Controller .Storage Devices und wählen Sie AHCI (SATA) .Optical Drive oder Hard Disk aus, je nachdem, ob Sie von .iso bzw. .bin starten möchten.Add , das auftaucht.Optical Drive oder Hard Disk ausgewählt wurde, entweder LensorOS.iso oder LensorOS.bin .Network innerhalb der Liste links.Serial Ports innerhalb der Liste links.Enable Serial Port ist, COM1 ist ausgewählt, IRQ 4 und I/O Port 0x3F8 . Home . Klicken Sie auf der rechten Seite Create a New Virtual Machine .I will install the operating system later. Option.Other und eine Version Other 64-bit .Customize Hardware...New CD/DVD aus und klicken Sie dann auf Advanced... rechts.SATA und klicken Sie dann auf OK .Use ISO image file und klicken Sie dann auf Browse...LensorOS.iso (befindet sich in bin/ ).Remove in der Nähe der unteren Mitte.Close , um das Fenster zur Hardwarekonfiguration zu schließen.Finish ..vmx in einem Texteditor endet.firmware="efi" . Sie müssen UEFI Shell auswählen, sobald VMware Workstation in Lensoros startet (auch wenn es so etwas wie Unsupported wird).
Der hier beschriebene Lensoros -Erstellungsprozess gibt mehrere Schritte.
HINWEIS: Alle angegebenen Blocks der Shell -Befehle werden voraussichtlich mit dem Arbeitsverzeichnis am Stammverzeichnis des Repositorys beginnen.
Laden Sie die folgenden projektweiten Abhängigkeiten herunter und installieren Sie sie, wenn Sie sie noch nicht haben oder wenn die Version, die Sie haben, nicht auf dem neuesten Stand ist.
sudo apt install build-essential makeKlonen Sie als nächstes den Quellcode aus dem Repository. Wenn Sie den Code bearbeiten und Beiträge leisten möchten, gehen Sie zuerst auf und klonen Sie von diesem Repository.
git clone https://codeberg.org/LensPlaysGames/LensorOS.git Dadurch wird ein Unterverzeichnis mit dem Titel LensorOS mit dem Inhalt dieses Repositorys im aktuellen Arbeitsverzeichnis erstellt.
Hinweis: Dieser Abschnitt wird sich ändern , und alle Informationen hier können jederzeit falsch oder veraltet werden. Dies liegt an der Mitte des migrierenden Bootloaders zum selbst erstellten Radii-Bootloader.
Der Bootloader ist eine EFI -Anwendung; Speziell ein OS -Lader, der für die UEFI -Spezifikation geschrieben wurde. (derzeit v2.9). Diese Spezifikation beschreibt die Verwendung von PE32+ -Ausführbaren mit einem bestimmten Subsystem. Wie Sie vielleicht wissen, wird das PE32+ -Format auch von Windows als ausführbares Format verwendet. Dies bedeutet, dass ein Compiler, der Windows Executables erzeugt, angesichts der Subsystemänderung das richtige Format der ausführbaren Datei für eine EFI -Anwendung generiert. Vor ungefähr zwanzig Jahren hat GNU jedoch beschlossen, benutzerdefinierte Linker -Skripte für Verschiebung zu schreiben, die PE32+ Executables von ELF Executables erstellen. Dies bedeutet, dass ein Compiler, der ELF -ausführbare Produkte erzeugt, verwendet wird, und diese ausführbare Datei wird dann in eine mit dem richtige Subsystem für eine EFI -Anwendung ausführbare PE32+ -Aufleistung umgewandelt. Zum Glück wird all dies vom Build -System behandelt.
Wenn Sie bereits über ein Build -System verfügen, können Sie Folgendes verwenden, um den Bootloader zu aktualisieren (Ziel ist nur auf Unix vorhanden):
cmake --build bld --target bootloaderWenn Sie frisch anfangen, können Sie das Bootloader -Build -System manuell ausführen.
Erstellen Sie die Abhängigkeiten für den Bootloader:
cd gnu-efi
make Das muss immer nur einmal erledigt werden, um libgnuefi.a zu erzeugen.
Von hier aus kann der ausführbare Bootloader mit dem bootloader Make Target erstellt werden:
cd gnu-efi
make bootloaderSiehe den Toolchain Readme
Sobald die Toolchain verwendbar ist, fahren Sie hier fort.
Ich empfehle einen Blick auf toolchain/config.cmake und zu sehen, was es gibt, mit dem es sich um die Standard handelt, aber es ist genauso gut, mit den Standardeinstellungen zu gehen.
Erstellen Sie zunächst ein Build -System mit CMake. Wenn Sie ein anderes Build -System auswählen, denken Sie nicht alle Build -Systeme aus, um eine benutzerdefinierte Toolchain zu verwenden. Ich empfehle Ninja, da es die Bauzeiten beschleunigen kann. Ein weiterer Tipp, um die Bauzeiten zu beschleunigen; ccache installieren. Die CMake -Skripte in diesem Projekt erkennen und verwenden sie automatisch.
cmake -G Ninja -B bldBitte beachten Sie, dass die Ausgabe des obigen Befehls kritische Nachrichten gibt, die möglicherweise kritische Ziele beschreiben, die nicht erstellt wurden, da Programme, die nicht auf dem System zu finden sind, nicht erstellt wurden.
Um LIBC, UserSpace -Programme und schließlich den ausführbaren Kernel aufzubauen, rufen Sie das von CMake generierte Build -System auf:
cmake --build bldCMake erstellt bestimmte Ziele, wenn die richtigen Abhängigkeiten vom System erkannt werden.
Verwenden Sie den folgenden Befehl, um eine Liste aller verfügbaren Ziele anzuzeigen:
cmake --build bld --target helpDie am häufigsten verwendeten Ziele von Objektiv:
runhda_qemuimage_gptimage_vdiuserspacekernelHier finden Sie eine Liste der aktuellen Build -Ziele, die sich auf die Startmediengenerierung beziehen, sowie deren Abhängigkeiten, die jeweils unter aufgeführt sind.
image_raw -Kombinieren Sie erstellte ausführbare Funktionen und Ressourcen, um UEFI-kompatible FAT32-Boot-Medien zu generieren.gnu-efi/x86_64/bootloader/main.efi .Kernel -Build -Ziel (basiert auf boot/LensorOS/kernel.elf ).sudo apt install mtoolsimage_gpt -Erstellen Sie GPT-partitionierte, bootfähige Festplattenbild aus FAT32-Startmedien.image_rawscripts -Unterabzeichnung.image_iso -Erstellen Sie ISO-9660 "El-Torito" -Bootable-CD-ROM-Bild aus FAT32-Startmedien.image_rawsudo apt install xorrisoimage_vdi -Konvertieren Sie das GPT-partitionierte Rohdisk in das virtuelle Festplattenbildformat ( .vdi ).image_gptBeispielsweise kann ein formatiertes UEFI-kompatibler Startbild mit FAT32 unter Verwendung des folgenden Befehls generiert werden:
cmake --build bld --target image_rawEs braucht nur einen Befehl, um den Lensoros -Kernel zu erstellen, neue Boot -Medien zu generieren und dann die virtuelle QEMU -Maschine in Lensoros zu starten.
cmake --build bld --target runhda_qemuDie Arbeiten an Lensoros begannen am 9. Januar 2022.
scripts/sysroot.sh ) initialisiert.