NIH TOARUOS NIH是毒素的分布,其中不包含第三方组件。它的引导加载程序,内核,模块,C库和用户空间应用程序和库都是由Toaruos开发团队和直接贡献者编写的。
该分布旨在最终取代主线Toaruos的核心,并在我们自己的C库中建造各种第三方组件。这是一个长期的项目,并将C库开发到对此目的有用的地步,预计将在相当长的一段时间内完成。
NIH TOARUOS-NIH带有一个图形桌面环境,带有合成窗口管理器,功能符号的终端模拟器,外壳,几个命令行工具,文本编辑器(带有语法突出显示),动态加载程序,并且可以主机Python 3.6(包括在预构建的CD版本中)。内核和包括驱动程序支持ATA硬盘和CD驱动器,EXT2文件系统,ISO 9660文件系统,PS/2小鼠和键盘,RS232 rs232 Serial,Intel E1000,RTL8139,RTL8139和AMD PCNET-PCNET Series网络网络网络芯片,TCP/IPV4,几个Fivtical图形和QMCH(包括BOCH)(包括BOCH)(包括BOCH)(包括BOCH)(包括BOCH) 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音频(带有混音器)等等。
发行版偶尔会发布在Github上,夜间单位可从toaruos.org获得。
建议您在模拟器中运行TOARUOS -NIH - 特别是QEMU或VirtualBox,尽管在VMware Workstation(合理的,但缺少驱动程序支持)和BOCH(不建议)中进行了一些测试。
建议使用1GB的RAM和Intel AC'97声音芯片:
qemu-system-i386 -cdrom image.iso -serial mon:stdio -m 1G -soundhw ac97,pcspk -enable-kvm -rtc base=localtime
您也可以将OVMF与适当的QEMU系统目标使用。我们的EFI装载机支持IA32和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应该用EFI作为“其他/未知”来宾或“其他/UKNOWN 64位”来宾。
除virtio-net外,所有网络芯片组选项均应起作用(尚未在Virtio驱动程序上使用)。
强烈建议您,由于存在访客驱动程序,因此您为VM提供至少32MB的视频内存以支持较大的显示屏分辨率 - 尤其是在使用4K显示屏时。
确保将音频控制器设置为ICH AC97并启用音频输出(因为默认情况下,在某些版本的VirtualBox中被禁用)。
将系统芯片组设置在PIIX3上,以获得最佳兼容性。建议使用1GB的RAM。
对VMware的支持是实验性的。
截至编写时,以下配置已被测试为功能:
不建议使用Bochs运行toaruos;但是,如果您想尝试一下,建议使用以下配置选项:
pcivga设备,否则Toaruos将无法通过PCI找到视频卡。slirp后端启用e1000网络设备。sync=realtime, time0=local, rtc_sync=1 。 整个操作系统的所有源代码都包含在此存储库中。
NIH内核与主线内核基本相同,尽管PCI供应商和设备ID列表已替换为我们自己的缩写版本。这是Toaruos内核的唯一第三方元素。此外,内核的标题已从其原始目录中搬迁,以促进更清洁的构建。 NIH内核应被视为Toaruos内核的最新版本。
Mainline Toaruos用grub运送,该grub提供了兼容兼容的精灵装载机。为此,我们的本机启动加载程序还实现了Multiboot。但是,由于编写功能完整的引导加载程序不是该项目的目标,因此本机引导加载程序非常有限,仅支持El Torito“ no-no-emulation”支持的系统上的ATAPI CD。它不能保证在实际硬件上使用,但已在QEMU,BOCHS,VirtualBox和VMware Player中进行了测试。
用户空间包括一个过程中的C标准库,Toaruos本机库,合成器(仅使用内部图形例程)以及其他各种第一方实用程序和应用程序。
首先,确保您拥有必要的构建工具,这些工具与Mainline Toaruos: yasm , xorriso , genext2fs (带有Debian Patches), python , mtools (用于构建脂肪EFI有效载荷)和GNU-efi和gnu-efi (我将更轻松地探索实现自己的企业,但现在可以探索EFI启动器(我将在未来)中进行实现,但现在可以探索GN,但现在就可以努力。
运行make ,将提示您构建工具链。回复y并允许工具链构建。
有有关Gitlab Wiki可用的python 3.6的说明。
当前,只有终端支持使用freetype作为文本渲染后端,但这将来会扩展。
Freetype应该大部分构建原样,尽管需要教授Libtool如何为toaruos构建一个称为libfreetype.so的共享对象。
建立并安装到base/usr freetype后, make ext-freetype将构建扩展库。将所需的字体放在base/usr/share/fonts中,您可以从主线Toaruos获得。
使用字体可用,构建脚本将构建较大的ramdisks,以适应其他文件。如果选择GUI引导目标,则字体服务器将在启动时自动运行,如果加载加载,终端将自动使用Freetype后端。
该复合材料可以使用开罗进行渲染,从而改善了幼稚的内部SSE加速bliter的性能。
通过开发Toaruos-NIH,不能保证ABI或API兼容性。直到将较大的第三方软件移植到我们的新C库之前,API可能会更改以改进或简化库的使用或修复错误。甚至不保证内核ABI兼容性,因为系统调用得到了改进或更符合POSIX或C标准的期望。
Toaruos的内核完全是内部的。但是,它的用户空间建立在几个第三方库和工具上,例如Newlib C库,Freetype,Cairo,Libpng和最著名的Python。虽然决定在这些技术上建立托亚鲁斯的决定根本不是一个错误,但可能性仍然是完全从头开始构建用户空间的可能性。
我们的许多最初目标已经满足,包括足够的C图书馆支持Port Python 3.6。
我们目前的未满足目标包括:
base/usr/include的C标头,以及合成器和窗口装饰器的图形资源。Toaruos-NIH经常镜像多个GIT托管站点。推荐的来源是gitlab。