Toaruos-nih هو توزيع Toaruos الذي لا يحتوي على مكونات طرف ثالث. تتم كتابة جميع عمليات التحميل ، و kernel ، والوحدات النمطية ، ومكتبة C ، وتطبيقات وفضاء المستخدمين من قبل فريق تطوير Toaruos والمساهمين المباشرين.
يهدف هذا التوزيع إلى استبدال جوهر Toaruos الرئيسي في نهاية المطاف ، ببناء مكونات الطرف الثالث المختلفة ضد مكتبة C الخاصة بنا. هذا مشروع طويل الأجل ، وتطوير مكتبة C إلى النقطة التي يكون من المتوقع أن يتم إكمالها لبعض الوقت.
يأتي Toaruos-NIH مع بيئة سطح مكتب رسومية مع مدير نافذة التركيب ، ومحاكي طرفي مميز ، وقذيفة ، وعدة أدوات لخط الأوامر ، ومحرر نص (مع تسليط الضوء على بناء الجملة) ، وموظف ديناميكي ، ويمكنه استضافة Python 3.6 (الذي يتم تضمينه في إصدارات الأقراص المضغوطة المُنصفة مسبقًا). يدعم kernel و Provers Drivers أقراص ATA الصلبة ومحركات الأقراص المضغوطة ، ونظم ملفات ext2 ، ونظم ملفات ISO 9660 ، والفئران PS/2 لوحات المفاتيح ، و RS232 Serial ، و Intel E1000 ، و RTL8139 ، و AMD PCNET-Series ، و TCP/IPV4 ، و Suppertive PrakeBarist FrameBuffers التي تم تهيئتها بواسطة EFI) ، وتكامل VM المتقدم (بما في ذلك أجهزة التأشير المطلقة في VMware و QEMU و VirtualBox ، وكذلك تغيير حجم العرض التلقائي ، "Seamless Desktop" و Armorware Consors in Virtualbox على وجه التحديد) ، وتنفيذ /proc shystem stysty spies و ttys in-memory in-memory in-memory in-memory in-memory in-memory AC'97 الصوت (مع خلاط) ، وأكثر من ذلك.
يتم نشر الإصدارات في بعض الأحيان على Github ، وتتوفر Lightlies من Toaruos.org.
يوصى بتشغيل toaruos nih في محاكي - على وجه التحديد QEMU أو VirtualBox ، على الرغم من أن بعض الاختبارات قد تم في محطة عمل VMware (معقولة ، ولكن دعم السائق المفقود) و Bochs (غير موصى بها).
ينصح بذاكرة وصول عشوائي 1 جيجا بايت وشريحة صوت Intel AC'97:
qemu-system-i386 -cdrom image.iso -serial mon:stdio -m 1G -soundhw ac97,pcspk -enable-kvm -rtc base=localtime
يمكنك أيضًا استخدام OVMF مع هدف نظام QEMU المناسب. يدعم Loader 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 إما كضيف "آخر/غير معروف" أو "ضيف" 64 بت معروف مع EFI.
يجب أن تعمل جميع خيارات مجموعة شرائح الشبكة باستثناء virtio-net (لم يبدأ العمل على برامج تشغيل Virtio).
يوصى بشدة ، نظرًا لوجود برامج تشغيل الإضافات الضيوف ، فإنك تزود VM مع ما لا يقل عن 32 ميجابايت من ذاكرة الفيديو لدعم قرارات العرض الأكبر - خاصة إذا كنت تستخدم شاشة 4K.
تأكد من تعيين وحدة التحكم الصوتية على ICH AC97 وأن يتم تمكين إخراج الصوت (حيث يتم تعطيله افتراضيًا في بعض إصدارات VirtualBox).
الحفاظ على مجموعة شرائح النظام على PIIX3 للحصول على أفضل توافق. ينصح 1 جيجابايت من ذاكرة الوصول العشوائي.
دعم VMware هو تجريبي.
اعتبارًا من الكتابة ، تم اختبار التكوين التالي على أنه يعمل:
لا ينصح باستخدام Bochs لتشغيل Toaruos ؛ ومع ذلك ، يوصى بخيارات التكوين التالية إذا كنت ترغب في تجربتها:
pcivga أو لن يتمكن Toaruos من العثور على بطاقة الفيديو من خلال PCI.e1000 باستخدام الواجهة الخلفية slirp .sync=realtime, time0=local, rtc_sync=1 . يتم تضمين جميع التعليمات البرمجية المصدر لنظام التشغيل بأكمله في هذا المستودع.
إن NIH kernel هو نفس kernel الرئيسي ، على الرغم من أن بائع PCI وقائمة معرف الجهاز قد تم استبداله بإصدارنا المنحرف. كان هذا هو العنصر الوحيد من طرف ثالث في نواة Toaruos. بالإضافة إلى ذلك ، تم نقل رؤوس النواة من الدلائل الأصلية لتسهيل البناء الأنظف. ينبغي اعتبار kernel من المعاهد الوطنية للصحة أحدث إصدار من kernel toaruos.
Toaruos Mainline يتم شحنها مع Grub ، والتي وفرت محمل Elf متوافق مع متعدد القدمين. تحقيقًا لهذه الغاية ، يقوم محمل التمهيد الأصلي أيضًا بتنفيذ Multiboot. ومع ذلك ، نظرًا لأن كتابة محمل التمهيد المكتمل للميزات ليس هدفًا لهذا المشروع ، فإن محمل التمهيد الأصلي محدود للغاية ، ويدعم فقط CDS ATAPI على أنظمة مع EL TORITO "عدم التوليد". ليس من الضروري العمل على أجهزة حقيقية ، ولكن تم اختباره في QEMU و BOCHS و VirtualBox و VMware Player.
تشتمل مساحة المستخدمين على مكتبة قياسية للعمل C ، ومكتبات Toaruos الأصلية ، والمؤلف (باستخدام إجراءات الرسومات الداخلية فقط) ، ومختلف أدوات وتطبيقات الطرف الأول.
أولاً ، تأكد من أن لديك أدوات البناء اللازمة ، والتي هي في الغالب مثل Toaruos Mainline: yasm ، xorriso ، genext2fs (مع بقع دبيان) ، python ، mtools (لبناء حمولة efi الدهنية) و gnu-efi لبناء efi bootloader (سأستكشف تنفيذ الرؤوس اللازمة والوظيفة في المستقبل ، ولكن حتى الآن مجرد السحب.
قم بتشغيل make وسيتم مطالبتك بإنشاء مجموعة أدوات. الرد y والسماح لمخطوط الأدوات للبناء.
هناك تعليمات حول بناء Python 3.6 المتاحة من Gitlab Wiki.
في الوقت الحالي ، تدعم المحطة الدعم فقط باستخدام FreeType كإعداد نصية ، ولكن سيتم توسيع هذا في المستقبل.
يجب أن تبني Freetype في الغالب كما هو ، على الرغم من أنه يحتاج Libtool إلى تعليم كيفية بناء كائن مشترك لـ Toaruos يسمى libfreetype.so - يتم ترك هذا كتمرين للقارئ حتى كان لدي وقت لإضفاء الطابع الرسمي على العملية.
بمجرد إنشاء FreeType وتثبيته على base/usr ، make ext-freetype ستقوم بإنشاء مكتبة الامتداد. ضع الخطوط المطلوبة ، والتي يمكنك الحصول عليها من Toaruos الرئيسي ، في base/usr/share/fonts .
مع توفر الخطوط ، ستقوم برامج Build Scripts ببناء Ramdisks أكبر لاستيعاب الملفات الإضافية. سيتم تشغيل خادم FONT تلقائيًا عند بدء التشغيل إذا تم تحديد هدف التمهيد واجهة المستخدم الرسومية ، وسيستخدم المحطة تلقائيًا الواجهة الخلفية FREETYPE إذا تم تحميلها.
يمكن للمؤلف استخدام القاهرة لتقديمها ، مما يحسن الأداء على الوهمة الساذجة في SSE.
لا يتم ضمان توافق ABI أو API من خلال تطوير Toaruos-nih. حتى يتم نقل مجموعة أكبر من برامج الطرف الثالث إلى مكتبة C الجديدة الخاصة بنا ، قد تتغير واجهات برمجة التطبيقات لتحسين أو تبسيط استخدام المكتبة ، أو لإصلاح الأخطاء. حتى توافق kernel ABI غير مضمون حيث يتم تحسين مكالمات النظام أو جعلها أكثر توافقًا مع توقعات POSIX أو معيار C.
نواة Toaruos في المنزل بالكامل. ومع ذلك ، تم تصميم مساحة المستخدمين الخاصة بها على العديد من مكتبات وأدوات الطرف الثالث ، مثل مكتبة Newlib C و Freetype و Cairo و Libpng و Python بشكل خاص. على الرغم من أن قرار بناء Toaruos على هذه التقنيات لا يعتبر خطأً على الإطلاق ، إلا أن إمكانية بناء مساحة مستخدمين بالكامل من نقطة الصفر.
تم تحقيق العديد من أهدافنا الأولية ، بما في ذلك دعم مكتبة C الكافي لـ Port Python 3.6.
تشمل أهدافنا الحالية غير الملباة:
base/usr/include ، وكذلك الموارد الرسومية للملحق وزخارف النافذة.ينعكس Toaruos nih بانتظام إلى مواقع استضافة GIT متعددة. المصدر الموصى به هو gitlab.