Toaruos-nih é uma distribuição de toaruos que não contém componentes de terceiros. Seu carregador de inicialização, kernel, módulos, Ciblioteca C e aplicativos e bibliotecas de espaço de usuários são todos escritos pela equipe de desenvolvimento de Toaruos e colaboradores diretos.
Essa distribuição pretende substituir o núcleo da linha principal Toaruos, com os vários componentes de terceiros construindo contra nossa própria biblioteca C. Este é um projeto de longo prazo, e o desenvolvimento da biblioteca C a ponto de ser útil para esse fim não deve ser concluído por algum tempo.
O Toaruos-Nih vem com um ambiente gráfico de desktop com um gerenciador de janelas de composição, um emulador de terminal característico, um shell, várias ferramentas de linha de comando, um editor de texto (com destaque de sintaxe), um carregador dinâmico e pode hospedar o Python 3.6 (que está incluído nas liberações de CD pré-construídas). 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 Áudio AC'97 (com um misturador) e muito mais.
Ocasionalmente, os lançamentos são publicados no Github, e Nightlies estão disponíveis em toaruos.org.
Recomenda -se que você execute o Toaruos -Nih em um emulador - especificamente Qemu ou VirtualBox, embora alguns testes tenham sido feitos no VMware Workstation (suporte razoável, mas ausente do driver) e Bochs (não recomendado).
1 GB de RAM e um chip de som Intel AC'97 são recomendados:
qemu-system-i386 -cdrom image.iso -serial mon:stdio -m 1G -soundhw ac97,pcspk -enable-kvm -rtc base=localtime
Você também pode usar OVMF com o destino do sistema QEMU apropriado. Nosso carregador EFI suporta IA32 e 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
Os Toaruos devem funcionar como um hóspede "outro/desconhecido" ou um hóspede "outro/uknow de 64 bits" com EFI.
Todas as opções de chipset de rede devem funcionar, exceto no virtio-net (o trabalho de drivers virtio ainda não começou).
É altamente recomendado, devido à existência de drivers de adições de hóspedes, que você fornece à sua VM com pelo menos 32 MB de memória de vídeo para oferecer suporte a resoluções de exibição maiores - especialmente se você estiver usando uma tela 4K.
Verifique se o controlador de áudio está definido como ICH AC97 e se a saída de áudio está ativada (pois está desativada por padrão em algumas versões do VirtualBox).
Mantenha o chipset do sistema definido como PIIX3 para obter a melhor compatibilidade. 1 GB de RAM é recomendado.
O suporte ao VMware é experimental.
Até o escrito, a seguinte configuração foi testada como funcionamento:
Usar Bochs para executar Toaruos não é aconselhado; No entanto, as seguintes opções de configuração são recomendadas se você deseja experimentá -lo:
pcivga estiver ativado ou Toaruos não poderá encontrar a placa de vídeo através do PCI.e1000 usando o back -end slirp .sync=realtime, time0=local, rtc_sync=1 são recomendadas. Todo o código -fonte para todo o sistema operacional está incluído neste repositório.
O kernel NIH é essencialmente o mesmo que o kernel principal, embora o fornecedor do PCI e a lista de identificação de dispositivos tenha sido substituído por nossa própria versão em redução. Este foi o único elemento de terceiros do kernel de Toaruos. Além disso, os cabeçalhos do kernel foram realocados de seus diretórios originais para facilitar uma construção mais limpa. O kernel do NIH deve ser considerado a versão mais recente do kernel Toaruos.
Toaruos principal enviado com Grub, que forneceu um carregador ELF compatível com multiboot. Para esse fim, nosso carregador de inicialização nativo também implementa o MultiBoot. No entanto, como a redação de um carregador de inicialização completa de recursos não é uma meta deste projeto, o carregador de inicialização nativo é muito limitado, suportando apenas o ATAPI CDS em sistemas com o suporte de "não-emoção" do El Torito. Não é garantido que trabalhe em hardware real, mas foi testado em QEMU, Bochs, VirtualBox e VMware Player.
O espaço do usuário inclui uma biblioteca padrão de trabalho em progresso C, as bibliotecas nativas de Toaruos, o Compositor (usando apenas rotinas gráficas internas) e vários outros utilitários e aplicativos de primeira parte.
First, ensure you have the necessary build tools, which are mostly the same as mainline ToaruOS: yasm , xorriso , genext2fs (with Debian patches), python , mtools (for building FAT EFI payloads) and gnu-efi to build the EFI bootloader (I'll explore implementing necessary headers and functionality myself in the future, but for now just pull in gnu-efi and make my life easier).
Run make e você será solicitado a construir uma cadeia de ferramentas. Responda y e deixe a cadeia de ferramentas construir.
Existem instruções sobre a construção do Python 3.6 disponível no Wiki Gitlab.
Atualmente, apenas o terminal suporta o uso do Freetype como um back -end de renderização de texto, mas isso será expandido no futuro.
O Freetype deve construir principalmente como está, embora o Libtool precise ser ensinado a construir um objeto compartilhado para Toaruos chamado libfreetype.so - isso é deixado como um exercício para o leitor até que eu tenha tempo para formalizar o processo.
Depois que o Freetype for construído e instalado na base/usr , make ext-freetype criará a biblioteca de extensão. Coloque as fontes necessárias, que você pode obter da Mainline Toaruos, em base/usr/share/fonts .
Com as fontes disponíveis, os scripts de construção criarão ramdisks maiores para acomodar os arquivos adicionais. O servidor de fontes será executado automaticamente na inicialização se um alvo de inicialização da GUI for selecionado e o terminal usará automaticamente o back -end do Freetype se ele carregar.
O compositor pode usar o Cairo para renderizar, o que melhora o desempenho em relação à ingênua Blitter Acelerado em SSE.
Nenhuma compatibilidade com ABI ou API é garantida através do desenvolvimento de Toaruos-Nih. Até que um corpus maior de software de terceiros seja transportado para a nossa nova biblioteca C, as APIs podem mudar para melhorar ou simplificar o uso da biblioteca ou para corrigir erros. Mesmo a compatibilidade do kernel ABI não é garantida, pois as chamadas do sistema são aprimoradas ou tornadas mais compatíveis com as expectativas do POSIX ou do padrão C.
O kernel de Toaruos é inteiramente internamente. Seu espaço de usuários, no entanto, é construído em várias bibliotecas e ferramentas de terceiros, como a biblioteca C Newlib C, Freetype, Cairo, libpng e, principalmente, Python. Embora a decisão de construir os Toaruos nessas tecnologias não seja considerada um erro, a possibilidade permanece para construir um espaço de usuários inteiramente a partir do zero.
Muitos de nossos objetivos iniciais foram atingidos, incluindo suporte suficiente da biblioteca C ao Port Python 3.6.
Nossos objetivos não atendidos atuais incluem:
base/usr/include , bem como recursos gráficos para o compositor e decorador de janelas.Toaruos-nih é refletido regularmente em vários sites de hospedagem Git. A fonte recomendada é o GitLab.