Toaruos-nihは、サードパーティのコンポーネントが含まれていないToaruosの分布です。ブートローダー、カーネル、モジュール、Cライブラリ、ユーザースペースのアプリケーションとライブラリはすべて、Toaruos開発チームと直接的な貢献者によって書かれています。
この分布は、最終的にメインラインのトーアルーのコアを置き換えることを目的としています。さまざまなサードパーティコンポーネントが独自のCライブラリに反して構築されています。これは長期的なプロジェクトであり、この目的に役立つCライブラリを開発することは、かなり長い間完了することは予想されません。
Toaruos-nihには、合成ウィンドウマネージャー、特徴的なターミナルエミュレータ、シェル、いくつかのコマンドラインツール、テキストエディター(構文強調表示)、動的ローダーを備えたグラフィカルなデスクトップ環境が付属しており、Python 3.6(事前に構築されたCDリリースに含まれています)をホストできます。カーネルと含まれているドライバーは、ATAハードディスクとCDドライブ、Ext2ファイルシステム、ISO 9660ファイルシステム、PS/2マウスおよびキーボード、RS232シリアル、Intel E1000、RTL8139、およびAMD PCNETシリーズネットワークチップセット、TCP/IPVUFFS、VOCH/QEMBS/QEMUSをサポートする(TCP/IPVUFF)(TCP/IPVUFFS)をサポートしています。 EFIによって初期化されたフレームバッファー、Advanced VM Integration(VMware、QEMU、およびVirtualBoxの絶対ポインティングデバイス、および自動ディスプレイのサイズ、「Seamless Desktop」およびVirtualBoxのハードウェアカーソル)、 /proc Virtual Filesシステムの実装、Inix-Style Pipes、Inttys、In in In In In in In In In In In In In In in Insy-shemory AC'97オーディオ(ミキサー付き)など。
Githubにリリースが掲載されることがあり、Toaruos.orgからNightliesが入手できます。
vmwareワークステーション(妥当ですがドライバーサポートが欠落している)およびボッチ(推奨されない)でいくつかのテストが行われていますが、エミュレータでtoaruos -nihを実行することをお勧めします。
1GBのRAMとIntel AC'97サウンドチップをお勧めします:
qemu-system-i386 -cdrom image.iso -serial mon:stdio -m 1G -soundhw ac97,pcspk -enable-kvm -rtc base=localtime
また、適切なQEMUシステムターゲットを備えたOVMFを使用することもできます。 EFIローダーは、IA32とX64の両方のEFIをサポートしています。
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ドライバーの作業はまだ開始されていません)。
ゲストの追加ドライバーが存在するため、特に4Kディスプレイを使用している場合は、より大きなディスプレイ解像度をサポートするために、少なくとも32MBのビデオメモリをVMに提供することを強くお勧めします。
オーディオコントローラーが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カーネルの最新バージョンと見なす必要があります。
Multiboot互換のELFローダーを提供するMainline ToaruosがGrubを添えて出荷されました。そのために、ネイティブのブートローダーもマルチビートを実装しています。ただし、機能を完了するブートローダーを書くことはこのプロジェクトの目標ではないため、ネイティブブートローダーは非常に限られており、El Toritoの「emmulation no-Emulation」サポートを備えたシステム上のATAPI CDのみをサポートしています。実際のハードウェアで作業することは保証されていませんが、QEMU、Bochs、VirtualBox、およびVMwareプレーヤーでテストされています。
ユーザースペースには、進行中のC標準ライブラリ、Toaruosネイティブライブラリ、Compositor(社内グラフィックルーチンのみを使用)、およびその他のさまざまなファーストパーティユーティリティおよびアプリケーションが含まれています。
まず、 yasm 、 xorriso 、 genext2fs (Debian Patchesを使用)、 python 、 mtools (脂肪EFIペイロードの構築)、およびEFIブートローダーを構築するためのgnu-efi efiなど、メインライントールオスとほぼ同じ必要なビルドツールがあることを確認します(future in future in future in future for in futer for futer for futer in fore fored fored fored fored fore in fore end furity
makeすると、ツールチェーンの構築が求められます。 yに返信し、ツールチェーンが構築されます。
Gitlab Wikiから入手可能なPython 3.6の構築に関する指示があります。
現在、端末のみがFreetypeを使用してバックエンドをレンダリングすることをサポートしていますが、これは将来拡張されます。
freetypeはほとんどがそのまま構築する必要がありますが、libtoolは、 libfreetype.soと呼ばれるtoaruosの共有オブジェクトを構築する方法を教える必要があります。
Freetypeが構築され、 base/usrにインストールされると、 make ext-freetype拡張ライブラリを構築します。 base/usr/share/fontsに、メインライントーラオから入手できる必要なフォントを配置します。
フォントを使用できると、ビルドスクリプトは、追加のファイルを付与するために、より大きなラムディスクを構築します。 GUIブートターゲットが選択されている場合、フォントサーバーは起動時に自動的に実行され、端末がロードされた場合はフリー型バックエンドを自動的に使用します。
コンポジターはレンダリングにカイロを使用できます。これにより、ナイーブの社内SSEアクセラレーションブリッターのパフォーマンスが向上します。
toaruos-nihの開発により、ABIまたはAPIの互換性は保証されません。サードパーティソフトウェアの大規模なコーパスが新しいCライブラリに移植されるまで、APIはライブラリの使用を改善または簡素化するか、バグを修正するために変更される場合があります。 Kernel ABIの互換性は、POSIXまたはC標準の期待にシステムコールが改善されたり、より準拠しているため、保証されていません。
Toaruosのカーネルは完全に社内です。ただし、ユーザースペースは、NewLib Cライブラリ、Freetype、Cairo、Libpng、特にPythonなど、いくつかのサードパーティライブラリとツールの上に構築されています。これらのテクノロジーにToaruosを構築する決定は間違いとはまったく考えられていませんが、ユーザースペースを完全にゼロから構築する可能性は残っています。
Port Python 3.6に対する十分なCライブラリサポートを含む、当社の最初の目標の多くが満たされています。
現在の満たされていない目標は次のとおりです。
base/usr/includeのCヘッダー、およびコンポジタと窓のデコレーターのグラフィカルリソースを含む。Toaruos-nihは、複数のGitホスティングサイトに定期的にミラーリングされます。推奨されるソースはgitlabです。