Toaruos-nih ist eine Verteilung von Toaruos, die keine Komponenten von Drittanbietern enthält. Der Bootloader-, Kernel-, Module-, C -Bibliotheks- und UserSpace -Anwendungen und Bibliotheken werden vom Toaruos -Entwicklungsteam und direkten Mitwirkenden geschrieben.
Diese Verteilung zielt darauf ab, den Kern der Mainline Toaruos schließlich zu ersetzen, wobei die verschiedenen Komponenten von Drittanbietern gegen unsere eigene C-Bibliothek basieren. Dies ist ein langfristiges Projekt, und die Entwicklung der C-Bibliothek bis zu dem Punkt, an dem sie für diesen Zweck nützlich ist, wird nicht erwartet, dass es für einige Zeit nicht abgeschlossen ist.
Toaruos-nih verfügt über eine grafische Desktop-Umgebung mit einem Kompositionsfenstermanager, einem fixierten Terminalemulator, einer Shell, mehreren Befehlszeilen-Tools, einem Texteditor (mit Syntax-Hervorhebung), einem dynamischen Lader und können Python 3.6 (die in vorgefertigten CD-Releases enthalten sind). The kernel and included drivers support ATA hard disks and CD drives, ext2 filesystems, ISO 9660 filesystems, PS/2 mice and keyboards, RS232 serial, Intel e1000, RTL8139, and AMD PCNet-series network chipsets, TCP/IPv4, several virtual graphical framebuffers (including Bochs/QEMU and VMware, and support for framebuffers initialized by EFI), advanced VM integration (including absolute pointing devices in VMware, QEMU, and VirtualBox, as well as automatic display resizing, "Seamless Desktop" and hardware cursors in VirtualBox specifically), an implementation of the /proc virtual filesystem, Unix-style pipes and TTYs, shared memory, in-memory read-write temporary filesystem, Intel AC'97 Audio (mit einem Mixer) und mehr.
Die Veröffentlichungen werden gelegentlich auf Github veröffentlicht und Nachtlieder sind unter toaruos.org erhältlich.
Es wird empfohlen, Toaruos -NIH in einem Emulator auszuführen - insbesondere QEMU oder VirtualBox, obwohl einige Tests in der VMware Workstation (angemessen, aber fehlender Treiberunterstützung) und Bochs (nicht empfohlen) durchgeführt wurden.
1 GB RAM und ein Intel AC'97 -Soundchip werden empfohlen:
qemu-system-i386 -cdrom image.iso -serial mon:stdio -m 1G -soundhw ac97,pcspk -enable-kvm -rtc base=localtime
Sie können OVMF auch mit dem entsprechenden QEMU -Systemziel verwenden. Unser EFI -Lader unterstützt sowohl IA32 als auch x64 EFIS:
qemu-system-x86_64 -cdrom image.iso -serial mon:stdio -m 1G -soundhw ac97,pcspk -enable-kvm -rtc base=localtime
-bios /usr/share/qemu/OVMF.fd
qemu-system-i386 -cdrom image.iso -serial mon:stdio -m 1G -soundhw ac97,pcspk -enable-kvm -rtc base=localtime
-bios /path/to/OVMFia32.fd
Toaruos sollte entweder als "anderer/unbekannter" Gast oder als "Other/UNEKT 64-BIT" -Guest mit EFI fungieren.
Alle Netzwerk-Chipsatz-Optionen sollten mit Ausnahme von virtio-net funktionieren (die Arbeit an Virtio-Treibern hat noch nicht begonnen).
Aufgrund der Existenz von Guest -Additions -Treibern wird sehr empfohlen, dass Sie Ihrem VM mindestens 32 MB Videospeicher zur Unterstützung größerer Anzeigeauflösungen zur Verfügung stellen - insbesondere wenn Sie ein 4K -Display verwenden.
Stellen Sie sicher, dass der Audio -Controller auf ICH AC97 eingestellt ist und dass die Audioausgabe aktiviert ist (da er standardmäßig in einigen Versionen von VirtualBox deaktiviert ist).
Halten Sie den System -Chipsatz auf PIIX3 eingestellt, um die beste Kompatibilität zu erhalten. 1 GB RAM wird empfohlen.
Die Unterstützung für VMware ist experimentell.
Zum Schreiben wurde die folgende Konfiguration als Funktion getestet:
Die Verwendung von Bochs zum Ausführen von Toaruos wird nicht empfohlen. Die folgenden Konfigurationsoptionen werden jedoch empfohlen, wenn Sie es versuchen möchten:
pcivga -Gerät aktiviert ist oder Toaruos die Grafikkarte nicht über PCI finden kann.e1000 -Netzwerkgerät mithilfe des slirp -Backends.sync=realtime, time0=local, rtc_sync=1 werden empfohlen. Der gesamte Quellcode für das gesamte Betriebssystem ist in diesem Repository enthalten.
Der NIH -Kernel entspricht im Wesentlichen dem Mainline -Kernel, obwohl die PCI -Anbieter- und Geräte -ID -Liste durch unsere eigene verkleinerte Version ersetzt wurde. Dies war das einzige Element des Drittanbieters des Toaruos-Kernels. Darüber hinaus wurden die Header für den Kernel aus ihren ursprünglichen Verzeichnissen verlegt, um einen saubereren Build zu erleichtern. Der NIH -Kernel sollte als die neueste Version des Toaruos -Kernels angesehen werden.
Mainline Toaruos mit GRUB, das einen multiboot-kompatiblen Elf-Lader darstellte. Zu diesem Zweck implementiert unser nationaler Bootloader auch Multiboot. Da das Schreiben eines Feature-Complete-Bootloaders jedoch kein Ziel dieses Projekts ist, ist der native Bootloader sehr begrenzt und unterstützt nur ATAPI-CDs auf Systemen mit El Torito "No-Emulations" -Schuck. Es wird nicht garantiert auf echte Hardware funktioniert, sondern wurde in QEMU, Bochs, VirtualBox und VMware Player getestet.
Der UserSpace enthält eine Work-in-Progress-C-Standardbibliothek, die toaruos nativen Bibliotheken, den Kompositor (nur in Haus-Grafikroutinen) und verschiedene andere Dienstprogramme und Anwendungen für Erstanbieter.
Stellen Sie zunächst sicher, dass Sie über die notwendigen Build-Tools verfügen, die meist die gleichen wie die Mainline Toaruos sind: yasm , xorriso , genext2fs (mit Debian-Patches), python , mtools (zum Aufbau von Fett-EFI-Nutzlasten) und gnu-efi um den EFI-Bootloader zu bauen (IM-Explore-Implementieren, die notwendige Headers und Make Makitity Makitity und Makitity Makitity Makitity Makitity Makitity Mocity Mocity Mocity Mocity Mocity Mocyity Mocyity Mocyity jedoch jedoch in der Lage.
Run make und Sie werden aufgefordert, eine Toolchain zu erstellen. Antworten Sie y und lassen Sie die Toolchain bauen.
Es gibt Anweisungen zum Bau von Python 3.6 beim Gitlab Wiki.
Derzeit unterstützt nur das Terminal die Verwendung von Freetype als Backend für Text -Rendering, dies wird jedoch in Zukunft erweitert.
Freetyp sollte meistens As -is erstellen, obwohl Libtool beigebracht werden muss, wie man ein gemeinsames Objekt für Toaruos namens libfreetype.so erstellt.
Sobald Freetype erstellt und in base/usr installiert ist, erstellt make ext-freetype die Erweiterungsbibliothek. Platzieren Sie die erforderlichen Schriftarten, die Sie von Maineline Toaruos in base/usr/share/fonts erhalten können.
Mit den verfügbaren Schriftarten erstellen die Build -Skripte größere Ramdisks, um die zusätzlichen Dateien zu erhalten. Der Font -Server wird automatisch beim Start ausgeführt, wenn ein GUI -Startziel ausgewählt wird, und das Terminal verwendet automatisch das Freetype -Backend, wenn er geladen wird.
Der Kompositor kann Cairo zum Rendering verwenden, was die Leistung über den naiven internen SSE-beschleunigten Blitter verbessert.
Durch die Entwicklung von Toaruos-nih wird keine Abi- oder API-Kompatibilität garantiert. Bis ein größerer Korpus der Software von Drittanbietern auf unsere neue C-Bibliothek portiert wird, kann sich die APIs ändern, um die Verwendung der Bibliothek zu verbessern oder zu vereinfachen oder Fehler zu beheben. Selbst Kernel ABI -Kompatibilität wird nicht garantiert, da Systemanrufe verbessert oder mit den Erwartungen an POSIX oder des C -Standards konform gemacht werden.
Toaruos 'Kernel ist völlig intern. Der Userspace basiert jedoch auf mehreren Bibliotheken und Tools von Drittanbietern, wie der Newlib C-Bibliothek, dem Freetyp, Kairo, Libpng und insbesondere Python. Während die Entscheidung, Toaruos für diese Technologien aufzubauen, gar nicht als Fehler angesehen wird, bleibt die Möglichkeit, einen Benutzerspace vollständig von Grund auf neu zu erstellen.
Viele unserer anfänglichen Ziele wurden erreicht, einschließlich ausreichender Unterstützung der C -Bibliothek für Port Python 3.6.
Unsere aktuellen unbefriedigten Ziele umfassen:
base/usr/include sowie grafische Ressourcen für den Kompositor und den Fensterdekorator.Toaruos-nih spiegelt sich regelmäßig auf mehrere Git-Hosting-Sites wider. Die empfohlene Quelle ist GitLab.