Toaruos-Nih เป็นการกระจายของ Toaruos ซึ่งไม่มีส่วนประกอบของบุคคลที่สาม Bootloader, เคอร์เนล, โมดูล, ไลบรารี C และแอพพลิเคชั่นผู้ใช้พื้นที่และห้องสมุดล้วนเขียนโดยทีมพัฒนา Toaruos และผู้สนับสนุนโดยตรง
การกระจายนี้มีวัตถุประสงค์เพื่อแทนที่แกนกลางของการฉีด Toaruos ด้วยส่วนประกอบของบุคคลที่สามที่สร้างขึ้นกับห้องสมุด C ของเราเอง นี่เป็นโครงการระยะยาวและการพัฒนาห้องสมุด C จนถึงจุดที่มันเป็นประโยชน์สำหรับจุดประสงค์นี้ไม่คาดว่าจะแล้วเสร็จในระยะเวลาหนึ่ง
Toaruos-Nih มาพร้อมกับสภาพแวดล้อมเดสก์ท็อปแบบกราฟิกพร้อมตัวจัดการหน้าต่างคอมโพสิต, เครื่องจำลองเทอร์มินัลที่มีคุณสมบัติ, เชลล์, เครื่องมือบรรทัดคำสั่งหลายตัว, ตัวแก้ไขข้อความ (พร้อมไฮไลต์ไวยากรณ์) ตัวโหลดแบบไดนามิกและสามารถโฮสต์ Python 3.6 (ซึ่งรวมอยู่ในซีดีที่สร้างไว้ล่วงหน้า) เคอร์เนลและไดรเวอร์รวมสนับสนุนฮาร์ดดิสก์ ATA และไดรฟ์ซีดี, ระบบไฟล์ ext2, ระบบไฟล์ ISO 9660, หนูและคีย์บอร์ด PS/2, RS232 อนุกรม, Intel E1000, RTL8139 และ AMD PCNet-Series FrameD FrameBuffers เริ่มต้นโดย EFI) การรวม /proc ขั้นสูง (รวมถึงอุปกรณ์การชี้แบบสัมบูรณ์ใน VMware, QEMU และ VirtualBox รวมถึงการแสดงผลอัตโนมัติการปรับขนาด AC'97 Audio (พร้อมมิกเซอร์) และอื่น ๆ
มีการเผยแพร่เป็นครั้งคราวบน GitHub และ Nightlies มีให้บริการจาก toaruos.org
ขอแนะนำให้คุณเรียกใช้ Toaruos -NIH ในตัวจำลอง - โดยเฉพาะ QEMU หรือ VirtualBox แม้ว่าจะทำการทดสอบบางอย่างในเวิร์กสเตชัน VMware (สมเหตุสมผล แต่การสนับสนุนไดรเวอร์ที่ขาดหายไป) และ BOCHS (ไม่แนะนำ)
แนะนำให้ใช้ RAM 1GB และชิปเสียง 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 ควรทำหน้าที่เป็นแขก "อื่น ๆ/ไม่รู้จัก" หรือแขก "อื่น ๆ/unown 64 บิต" กับ EFI
ตัวเลือกชิปเซ็ตเครือข่ายทั้งหมดควรทำงานยกเว้น virtio-net (ทำงานกับไดรเวอร์ Virtio ยังไม่ได้เริ่มต้น)
ขอแนะนำอย่างยิ่งเนื่องจากการมีอยู่ของไดรเวอร์เพิ่มเติมของแขกที่คุณให้หน่วยความจำวิดีโอ VM อย่างน้อย 32MB เพื่อรองรับความละเอียดของจอแสดงผลขนาดใหญ่โดยเฉพาะอย่างยิ่งหากคุณใช้จอแสดงผล 4K
ตรวจสอบให้แน่ใจว่าตัวควบคุมเสียงถูกตั้งค่าเป็น ICH AC97 และเปิดใช้งานเสียงเสียง (เนื่องจากถูกปิดใช้งานโดยค่าเริ่มต้นใน VirtualBox บางรุ่น)
ให้ชิปเซ็ตระบบตั้งค่าเป็น PIIX3 เพื่อความเข้ากันได้ที่ดีที่สุด แนะนำให้ใช้ RAM 1GB
การสนับสนุนสำหรับ VMware เป็นการทดลอง
เมื่อเขียนการกำหนดค่าต่อไปนี้ได้รับการทดสอบว่าเป็นการทำงาน:
ไม่แนะนำให้ใช้ bochs เพื่อเรียกใช้ toaruos; อย่างไรก็ตามแนะนำตัวเลือกการกำหนดค่าต่อไปนี้หากคุณต้องการลอง:
pcivga หรือ Toaruos จะไม่สามารถค้นหาการ์ดวิดีโอผ่าน PCI ได้e1000 โดยใช้แบ็กเอนด์ slirpsync=realtime, time0=local, rtc_sync=1 แนะนำ ซอร์สโค้ดทั้งหมดสำหรับระบบปฏิบัติการทั้งหมดรวมอยู่ในที่เก็บนี้
เคอร์เนล NIH นั้นเหมือนกับเคอร์เนลการฉีดแม้ว่าผู้ขาย PCI และรายการรหัสอุปกรณ์ถูกแทนที่ด้วยเวอร์ชันที่บางลงของเราเอง นี่เป็นองค์ประกอบของบุคคลที่สามเพียงอย่างเดียวของเคอร์เนล Toaruos นอกจากนี้ส่วนหัวของเคอร์เนลได้ถูกย้ายจากไดเรกทอรีดั้งเดิมของพวกเขาเพื่ออำนวยความสะดวกในการสร้างที่สะอาดขึ้น เคอร์เนล NIH ควรได้รับการพิจารณาว่าเป็นเคอร์เนล Toaruos เวอร์ชันล่าสุด
Mainline Toaruos จัดส่งด้วยด้วงซึ่งให้บริการโหลดเอลฟ์ที่เข้ากันได้กับมัลติบูต ด้วยเหตุนี้ bootloader ดั้งเดิมของเราก็ใช้ Multiboot อย่างไรก็ตามเนื่องจากการเขียน bootloader ที่สมบูรณ์แบบไม่ได้เป็นเป้าหมายของโครงการนี้ bootloader ดั้งเดิมมี จำกัด มากรองรับเฉพาะ CD Atapi ในระบบที่สนับสนุน El Torito "No-Emulation" ไม่รับประกันว่าจะทำงานกับฮาร์ดแวร์จริง แต่ได้รับการทดสอบใน QEMU, BOCHS, VirtualBox และ VMware Player
ผู้ใช้พื้นที่รวมถึงไลบรารีมาตรฐาน C ที่กำลังดำเนินการอยู่ห้องสมุด Toaruos Native Libraries, Compositor (โดยใช้เฉพาะรูทีนกราฟิกภายใน บริษัท ) และยูทิลิตี้และแอพพลิเคชั่นอื่น ๆ อื่น ๆ อีกมากมาย
ก่อนอื่นให้แน่ใจว่าคุณมีเครื่องมือสร้างที่จำเป็นซึ่งส่วนใหญ่จะเหมือนกับการฉีด Toaruos: yasm , xorriso , genext2fs (พร้อมแพทช์ debian), python , mtools (สำหรับการสร้าง EFI ไขมันที่ gnu-efi ขึ้น)
เรียกใช้ make และคุณจะได้รับแจ้งให้สร้างเครื่องมือ ตอบกลับ y และอนุญาตให้ toolchain สร้าง
มีคำแนะนำเกี่ยวกับการสร้าง Python 3.6 จาก Gitlab Wiki
ปัจจุบันมีเพียงเทอร์มินัลเท่านั้นที่รองรับการใช้ Freetype เป็นแบ็กเอนด์การเรนเดอร์ข้อความ แต่จะขยายตัวในอนาคต
Freetype ส่วนใหญ่ควรสร้างตามที่เป็นอยู่แม้ว่า libtool จะต้องได้รับการสอนวิธีการสร้างวัตถุที่ใช้ร่วมกันสำหรับ toaruos ที่เรียกว่า libfreetype.so - นี่คือการออกกำลังกายสำหรับผู้อ่านจนกว่าฉันจะมีเวลาทำให้กระบวนการเป็นทางการ
เมื่อ Freetype ถูกสร้างและติดตั้งไปยัง base/usr แล้ว make ext-freetype จะสร้างไลบรารีส่วนขยาย วางแบบอักษรที่ต้องการซึ่งคุณสามารถรับได้จาก Maineline Toaruos ใน base/usr/share/fonts
ด้วยฟอนต์ที่มีอยู่สคริปต์ Build จะสร้าง ramdisks ขนาดใหญ่ขึ้นเพื่อรองรับไฟล์เพิ่มเติม เซิร์ฟเวอร์ตัวอักษรจะทำงานโดยอัตโนมัติเมื่อเริ่มต้นหากเลือกเป้าหมายการบูต GUI และเทอร์มินัลจะใช้แบ็กเอนด์ Freetype โดยอัตโนมัติหากโหลด
ผู้ประกอบการสามารถใช้กรุงไคโรสำหรับการแสดงผลซึ่งช่วยปรับปรุงประสิทธิภาพการทำงานเหนือ Blitter ที่เร่งด้วย SSE ในบ้าน
ไม่มีการรับประกันความเข้ากันได้ของ ABI หรือ API ผ่านการพัฒนาของ Toaruos-NIH จนกว่าคลังข้อมูลขนาดใหญ่ของซอฟต์แวร์บุคคลที่สามจะถูกส่งไปยังไลบรารี C ใหม่ของเรา APIs อาจเปลี่ยนไปเพื่อปรับปรุงหรือทำให้การใช้ห้องสมุดง่ายขึ้นหรือแก้ไขข้อบกพร่อง แม้แต่ความเข้ากันได้ของเคอร์เนล ABI ก็ไม่ได้รับประกันว่าการเรียกใช้ระบบได้รับการปรับปรุงหรือทำตามความคาดหวังของ POSIX หรือมาตรฐาน C
เคอร์เนลของ Toaruos อยู่ในบ้านทั้งหมด อย่างไรก็ตามผู้ใช้พื้นที่ถูกสร้างขึ้นบนห้องสมุดและเครื่องมือของบุคคลที่สามหลายแห่งเช่นห้องสมุด Newlib C, Freetype, Cairo, Libpng และ Python ที่โดดเด่นที่สุด ในขณะที่การตัดสินใจสร้าง Toaruos บนเทคโนโลยีเหล่านี้ไม่ได้ถือว่าเป็นความผิดพลาด แต่ความเป็นไปได้ยังคงเป็นไปได้ที่จะสร้างพื้นที่ผู้ใช้ทั้งหมดตั้งแต่เริ่มต้น
เป้าหมายเริ่มต้นของเราหลายอย่างได้รับการบรรลุถึงรวมถึงการสนับสนุนห้องสมุด C ที่เพียงพอไปยัง Port Python 3.6
เป้าหมายที่ไม่คาดคิดในปัจจุบันของเรารวมถึง:
base/usr/include รวมถึงทรัพยากรกราฟิกสำหรับนักแต่งเพลงและมัณฑนากรหน้าต่างToaruos-Nih สะท้อนให้เห็นถึงไซต์โฮสติ้ง Git หลายแห่งเป็นประจำ แหล่งที่มาที่แนะนำคือ Gitlab