Toaruos-Nih est une distribution de Toaruos qui ne contient aucun composant tiers. Son chargeur de démarrage, son noyau, ses modules, sa bibliothèque C et ses applications et bibliothèques d'espace utilisateur sont tous écrits par l'équipe de développement Toaruos et les contributeurs directs.
Cette distribution vise à remplacer éventuellement le cœur des Toaruos principaux, avec les différents composants tiers construits contre notre propre bibliothèque C. Il s'agit d'un projet à long terme, et le développement de la bibliothèque C au point où il est utile à cet effet ne devrait pas être achevé pendant un certain temps.
Toaruos-Nih est livré avec un environnement de bureau graphique avec un gestionnaire de fenêtres de composition, un émulateur de terminal fonctionnant, un shell, plusieurs outils de ligne de commande, un éditeur de texte (avec une mise en surbrillance de syntaxe), un chargeur dynamique, et peut héberger Python 3.6 (qui est inclus dans les versions de CD pré-construites). 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 initialisé par EFI), l'intégration avancée de la machine virtuelle (y compris les périphériques de pointage absolus dans VMware, Qemu et VirtualBox, ainsi que le redimensionnement automatique de l'affichage, "SEAMNOLSHTOP" et les curseurs matériels dans VirtualBox spécifiquement), une implémentation du Memory, des fichiers de fichiers virtuels /proc Audio AC'97 (avec un mélangeur), et plus encore.
Les sorties sont occasionnellement publiées sur GitHub, et les nocturnes sont disponibles sur Toaruos.org.
Il est recommandé d'exécuter Toaruos-Nih dans un émulateur - spécifiquement Qemu ou VirtualBox, bien que certains tests aient été effectués dans VMware Workstation (Assistance raisonnable, mais manquante) et Bochs (non recommandé).
1 Go de RAM et une puce sonore Intel AC'97 sont recommandées:
qemu-system-i386 -cdrom image.iso -serial mon:stdio -m 1G -soundhw ac97,pcspk -enable-kvm -rtc base=localtime
Vous pouvez également utiliser OVMF avec la cible du système QEMU approprié. Notre chargeur EFI prend en charge les EFI IA32 et X64:
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
Les Toaruos devraient fonctionner soit comme un invité "autre / inconnu", soit un invité "autre / unu connu 64 bits" avec EFI.
Toutes les options de chipset réseau doivent fonctionner, sauf pour virtio-net (les travaux sur Virtio Drivers n'ont pas encore commencé).
Il est fortement recommandé, en raison de l'existence de pilotes d'ajouts d'invités, que vous fournissez à votre machine virtuelle avec au moins 32 Mo de mémoire vidéo pour prendre en charge les résolutions d'affichage plus grandes - surtout si vous utilisez un écran 4K.
Assurez-vous que le contrôleur audio est défini sur ICH AC97 et que la sortie audio est activée (car elle est désactivée par défaut dans certaines versions de VirtualBox).
Gardez le chipset système réglé sur PIIX3 pour une meilleure compatibilité. 1 Go de RAM est recommandé.
La prise en charge de VMware est expérimentale.
Au cours de la rédaction, la configuration suivante a été testée comme fonctionnant:
L'utilisation de bochs pour exécuter des Toaruos n'est pas conseillé; Cependant, les options de configuration suivantes sont recommandées si vous souhaitez l'essayer:
pcivga est activé ou que Toaruos ne pourra pas trouver la carte vidéo via PCI.e1000 à l'aide du backend slirp .sync=realtime, time0=local, rtc_sync=1 sont recommandés. Tout le code source de l'ensemble du système d'exploitation est inclus dans ce référentiel.
Le noyau NIH est essentiellement le même que le noyau principal, bien que le fournisseur PCI et la liste d'ID de périphérique aient été remplacés par notre propre version maximale. C'était le seul élément tiers du noyau Toaruos. De plus, les en-têtes du noyau ont été déplacés de leurs répertoires d'origine pour faciliter une construction plus propre. Le noyau NIH devrait être considéré comme la dernière version du noyau Toaruos.
TOARUOS MAINLINE expédiés avec Grub, qui a fourni un chargeur ELF compatible multiboot. À cette fin, notre chargeur de démarrage natif implémente également Multiboot. Cependant, comme la rédaction d'un chargeur de démarrage complet n'est pas un objectif de ce projet, le chargeur de démarrage natif est très limité, ne prenant en charge que les CD ATAPI sur les systèmes avec la prise en charge d'El Torito "sans émotion". Il n'est pas garanti de fonctionner sur le matériel réel, mais a été testé dans Qemu, Bochs, VirtualBox et VMware.
L'espace utilisateur comprend une bibliothèque standard de travail en cours de travail, les bibliothèques natives de Toaruos, le compositeur (en utilisant uniquement des routines graphiques internes) et divers autres utilitaires et applications de première partie.
Tout d'abord, assurez-vous que vous avez les outils de construction nécessaires, qui sont pour la plupart les mêmes que les Toaruos principaux: yasm , xorriso , genext2fs (avec Debian Patches), python , mtools (pour créer des charges utiles Fat EFI) et gnu-efi pour construire le EFI BootLodeur (je vais explorer les en-têtes nécessaires et faire la vie moi-même dans le futur, mais pour maintenant, mais pour le GNU-FIFE et faire ma vie.
Exécutez make et vous serez invité à construire une chaîne d'outils. Répondez y et permettez à la chaîne d'outils de construire.
Il y a des instructions sur la construction de Python 3.6 disponible auprès du Wiki Gitlab.
Actuellement, seul le terminal prend en charge en utilisant Freetype comme backend de rendu de texte, mais cela sera élargi à l'avenir.
Freetype devrait principalement construire en tant quelles, bien que Libtool doit apprendre à construire un objet partagé pour Toaruos appelé libfreetype.so - Ceci est laissé comme un exercice pour le lecteur jusqu'à ce que j'aie le temps de formaliser le processus.
Une fois que Freetype est construit et installé sur base/usr , make ext-freetype créera la bibliothèque d'extension. Placez les polices requises, que vous pouvez obtenir à partir de Maineline Toaruos, en base/usr/share/fonts .
Avec les polices disponibles, les scripts de construction créeront de plus grands ramelles pour accueillir les fichiers supplémentaires. Le serveur de police s'exécutera automatiquement au démarrage si une cible de démarrage de GUI est sélectionnée, et le terminal utilisera automatiquement le backend Freetype s'il se charge.
Le compositeur peut utiliser le Caire pour le rendu, ce qui améliore les performances par rapport au blitter naïf-interne accéléré par SSE.
Aucune compatibilité ABI ou API n'est garantie par le développement de Toaruos-Nih. Jusqu'à ce qu'un corpus plus grand de logiciels tiers soit porté vers notre nouvelle bibliothèque C, les API peuvent changer pour améliorer ou simplifier l'utilisation de la bibliothèque, ou pour corriger les bogues. Même la compatibilité du noyau ABI n'est pas garantie car les appels du système sont améliorés ou sont plus conformes aux attentes de POSIX ou de la norme C.
Le noyau de Taruos est entièrement interne. Son espace utilisateur, cependant, est construit sur plusieurs bibliothèques et outils tiers, tels que la bibliothèque Newlib C, Freetype, Cairo, LibPNG et notamment Python. Bien que la décision de construire des Toaruos sur ces technologies ne soit pas du tout considérée comme une erreur, la possibilité reste de créer un espace utilisateur entièrement à partir de zéro.
Beaucoup de nos objectifs initiaux ont été atteints, y compris une prise en charge suffisante de la bibliothèque C à Port Python 3.6.
Nos objectifs actuels non satisfaits comprennent:
base/usr/include , ainsi que des ressources graphiques pour le compositeur et le décorateur de fenêtres.Taruos-Nih se reflète régulièrement sur plusieurs sites d'hébergement GIT. La source recommandée est gitlab.