TOARUOS-NIH es una distribución de Toaruos que no contiene componentes de terceros. Su gestor de arranque, kernel, módulos, biblioteca C y aplicaciones y bibliotecas del espacio de usuario están escritos por el equipo de desarrollo de Toaruos y los contribuyentes directos.
Esta distribución tiene como objetivo eventualmente reemplazar el núcleo de la línea principal Toaruos, con los diversos componentes de terceros construyendo contra nuestra propia biblioteca C. Este es un proyecto a largo plazo, y el desarrollo de la biblioteca C hasta el punto en que es útil para este propósito no se espera que se complete durante bastante tiempo.
Toaruos-NIH viene con un entorno de escritorio gráfico con un administrador de ventanas de composición, un emulador terminal con funciones, un shell, varias herramientas de línea de comandos, un editor de texto (con resaltado de sintaxis), un cargador dinámico y puede alojar a Python 3.6 (que se incluye en los lanzamientos de CD previos a la construcción). 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 inicializados por EFI), Integración avanzada de VM (incluidos dispositivos de punta absoluta en VMware, Qemu y VirtualBox, así como un cambio de tamaño automático de visualización, "Desktop sin costuras" y cursores de hardware en VirtualBox específicamente), una implementación del /proc Virtual FileSystem, Tubas de estilo unix y Ttys, Memoria compartida, In-M-M-M-M-M-M-M-M-M-M-M-M-M-M-M-METRITEMIT audio (con un mezclador) y más.
Los lanzamientos se publican ocasionalmente en GitHub, y los nocturnos están disponibles en Toaruos.org.
Se recomienda que ejecute Toaruos -NIH en un emulador, específicamente QEMU o VirtualBox, aunque algunas pruebas se han realizado en VMware Workstation (soporte razonable pero faltante del controlador) y BOCHS (no recomendados).
Se recomiendan 1 GB de RAM y un chip de sonido Intel AC'97:
qemu-system-i386 -cdrom image.iso -serial mon:stdio -m 1G -soundhw ac97,pcspk -enable-kvm -rtc base=localtime
También puede usar OVMF con el objetivo del sistema QEMU apropiado. Nuestro cargador EFI admite IA32 y 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 debe funcionar como un invitado "otro/desconocido" o un invitado "otro/conocido de 64 bits" con EFI.
Todas las opciones de chipset de red deberían funcionar excepto virtio-net (el trabajo en los controladores Virtio aún no ha comenzado).
Es muy recomendable, debido a la existencia de los controladores de adiciones de invitados, que proporciona a su VM al menos 32 MB de memoria de video para admitir resoluciones de visualización más grandes, especialmente si está utilizando una pantalla 4K.
Asegúrese de que el controlador de audio esté configurado en ICH AC97 y que la salida de audio esté habilitada (ya que está deshabilitada de forma predeterminada en algunas versiones de VirtualBox).
Mantenga el chipset del sistema configurado en PIIX3 para obtener la mejor compatibilidad. Se recomienda 1 GB de RAM.
El soporte para VMware es experimental.
Al momento de escribir, la siguiente configuración se ha probado como funcionamiento:
No se recomienda usar bochs para ejecutar toaruos; Sin embargo, se recomiendan las siguientes opciones de configuración si desea probarlo:
pcivga esté habilitado o Toaruos no pueda encontrar la tarjeta de video a través de PCI.e1000 utilizando el backend slirp .sync=realtime, time0=local, rtc_sync=1 . Todo el código fuente para todo el sistema operativo se incluye en este repositorio.
El núcleo NIH es esencialmente el mismo que el kernel principal, aunque el proveedor PCI y la lista de ID del dispositivo han sido reemplazados por nuestra propia versión delgada. Este fue el único elemento de terceros del núcleo Toaruos. Además, los encabezados para el núcleo han sido reubicados de sus directorios originales para facilitar una construcción más limpia. El núcleo NIH debe considerarse la última versión del núcleo Toaruos.
Toaruos principales enviados con grub, que proporcionó un cargador ELF compatible con múltiples múltiples. Con ese fin, nuestro cargador de arranque nativo también implementa Multiboot. Sin embargo, como escribir un cargador de arranque complicado para características no es un objetivo de este proyecto, el cargador de arranque nativo es muy limitado, lo que respalda solo ATAPI CD en sistemas con soporte de "no emulación" de El Torito. No se garantiza que funcione en hardware real, pero se ha probado en QEMU, BOCHS, VirtualBox y VMware Player.
El espacio de usuario incluye una biblioteca estándar C de trabajo en progreso, las bibliotecas nativas de Toaruos, el compositor (usando solo rutinas de gráficos internos) y varias otras utilidades y aplicaciones de primera parte.
Primero, asegúrese de tener las herramientas de compilación necesarias, que son en su mayoría las mismas que Toaruos principales: yasm , xorriso , genext2fs (con Patches Debian), python , mtools (para construir cargas útiles EFI) y gnu-efi para construir el Booter de EFI (exploraré la implementación de los cabezas necesarias y la funcionalidad en el futuro, pero solo por Gnu-Defi.
Ejecute make y se le solicitará que cree una cadena de herramientas. Responder y y permitir que la Cadena de herramientas se construya.
Hay instrucciones sobre la construcción de Python 3.6 disponible en Gitlab Wiki.
Actualmente, solo el terminal admite el uso de FreeType como un backend de representación de texto, pero esto se ampliará en el futuro.
FreeType debe construir principalmente tal cual, aunque a Libtool se le debe enseñar cómo construir un objeto compartido para Toaruos llamado libfreetype.so Entonces, esto se deja como un ejercicio para el lector hasta que he tenido tiempo de formalizar el proceso.
Una vez que FreeType se construye e instale a base/usr , make ext-freetype construirá la biblioteca de extensión. Coloque las fuentes requeridas, que puede obtener de Maineline Toaruos, en base/usr/share/fonts .
Con las fuentes disponibles, los scripts de compilación construirán ramdisks más grandes para acomodar los archivos adicionales. El servidor de fuentes se ejecutará automáticamente en el inicio si se selecciona un objetivo de arranque GUI, y el terminal usará automáticamente el backend de Freetype si se carga.
El compositor puede usar El Cairo para la representación, lo que mejora el rendimiento sobre el designe ingenuo acelerado de SSE interno.
No se garantiza ninguna compatibilidad ABI o API mediante el desarrollo de Toaruos-nih. Hasta que un corpus más grande de software de terceros esté portado a nuestra nueva biblioteca C, las API pueden cambiar para mejorar o simplificar el uso de la biblioteca, o para solucionar errores. Incluso la compatibilidad del núcleo ABI no está garantizada ya que las llamadas del sistema se mejoran o se hacen más compatibles con las expectativas de POSIX o el estándar C.
El núcleo de Toaruos está completamente interno. Sin embargo, su espacio de usuario se basa en varias bibliotecas y herramientas de terceros, como la Biblioteca NewLib C, FreeType, El Cairo, Libpng y, sobre todo Python. Si bien la decisión de construir Toaruos en estas tecnologías no se considera en absoluto un error, la posibilidad sigue siendo construir un espacio de usuario por completo desde cero.
Se han cumplido muchos de nuestros objetivos iniciales, incluido suficiente soporte de biblioteca C para Port Python 3.6.
Nuestros objetivos no satisfechos actuales incluyen:
base/usr/include , así como recursos gráficos para el decorador de compositor y ventana.Toaruos-nih se refleja regularmente a múltiples sitios de alojamiento GIT. La fuente recomendada es Gitlab.