Minios เป็นเคอร์เนลระบบปฏิบัติการขนาดเล็กสำหรับผู้เรียนการพัฒนาระบบปฏิบัติการที่สามารถทำงานบน CPU สถาปัตยกรรม 32 บิต Minios มุ่งเน้นไปที่การเรียนรู้และการค้นคว้าแนวคิดหลักและหลักการพื้นฐานในการพัฒนาระบบปฏิบัติการและใช้ระบบย่อยพื้นฐานหรือโมดูลพื้นฐานต่างๆในระบบปฏิบัติการตามฮาร์ดแวร์ทั่วไป
เคอร์เนลระบบปฏิบัติการยอดนิยมเช่น Linux และ FreeBSD นั้นดี แต่ไม่เหมาะสำหรับผู้เริ่มต้นในการพัฒนาเคอร์เนล ในอีกด้านหนึ่งเคอร์เนลระบบปฏิบัติการเหล่านี้ได้พัฒนามานานหลายปีและได้สะสมรหัสจำนวนมาก (รุ่นแรกของ Linux Kernel V2.6.12 ที่วางจำหน่ายในปี 2548 มีรหัสประมาณ 4 ล้านบรรทัด) ในทางกลับกันเนื่องจากความต้องการของแอปพลิเคชันในสภาพแวดล้อมการผลิตรหัสเคอร์เนลเหล่านี้มีรายละเอียดจำนวนมากที่ไม่เกี่ยวข้องกับหลักการพื้นฐานของระบบปฏิบัติการซึ่งเป็นเรื่องยากสำหรับผู้เริ่มต้นที่จะเข้าใจประเด็นสำคัญ ดังนั้นการเริ่มต้นด้วยเคอร์เนลระบบปฏิบัติการที่เรียบง่ายด้วยรหัสจำนวนเล็กน้อยโดยใช้เวลาสั้น ๆ เพื่อทำความคุ้นเคยกับตัวเองและเชี่ยวชาญแนวคิดหลักและหลักการพื้นฐานของสาขาการพัฒนาเคอร์เนลระบบปฏิบัติการระบบการพัฒนาความรู้พื้นฐานเหล่านี้ในระดับหนึ่ง แม้ว่าคุณจะไม่ได้วางแผนที่จะมีส่วนร่วมในการพัฒนาเคอร์เนลการเรียนรู้ความรู้พื้นฐานเกี่ยวกับระบบปฏิบัติการผ่านเคอร์เนลที่เริ่มต้นได้ง่ายจะช่วยให้คุณเขียนแอพพลิเคชั่นที่มีประสิทธิภาพมากขึ้นและมีประสิทธิภาพ
Minios ส่วนใหญ่ได้รับการพัฒนาตามภาษา C และภาษาแอสเซมบลี x86 และเครื่องมือการพัฒนาที่ใช้ ได้แก่ :
ในหมู่พวกเขา Binutils เป็นชุดเครื่องมือสำหรับการใช้งานไฟล์ไบนารีรวมถึงเครื่องมือสำหรับการสร้างไลบรารีแบบคงที่เครื่องมือสำหรับแถบสำหรับการลบตารางสัญลักษณ์จากไฟล์ไบนารีเพื่อลดขนาดไฟล์ ฯลฯ
ปัจจุบัน Minios เริ่มต้นจากฟลอปปี้ดิสก์และกระบวนการเริ่มต้นคือ:
เนื่องจาก Minios เป็นเคอร์เนลระบบปฏิบัติการสำหรับผู้เรียนจึงส่วนใหญ่ทำงานในเครื่องเสมือนจริงด้วยเครื่องเสมือนเสริมรวมถึง Bochs และ QEMU
เรียกใช้มินิโอใน Bochs
sudo apt-get install bochs ได้โดยตรงภายใต้ระบบ Ubuntu เพื่อติดตั้ง คุณสามารถดาวน์โหลดซอร์สโค้ดของ Bochs ก่อนจากนั้นรวบรวมและติดตั้ง คุณสามารถเลือก Bochs เวอร์ชันที่ต้องการเมื่อติดตั้งผ่านซอร์สโค้ดtar zxvf misc/80m.img.tar.gz . และคลายภาพฮาร์ดดิสก์จากแพ็คเกจการบีบอัดภาพฮาร์ดดิสก์bochs ในไดเรกทอรีปัจจุบันเพื่อเริ่มเครื่องเสมือน Bochs Bochs จะอ่านข้อมูลการกำหนดค่าจากไฟล์ BochSRC ก่อนจากนั้นยืนยันข้อมูลพรอมต์ Run ที่ได้รับจาก BOCHS เพื่อให้มินิโอทำงานเป็น BOCHSเรียกใช้มินิโอใน QEMU
sudo apt-get install qemu-system-x86 ภายใต้ระบบ Ubuntu สำหรับการติดตั้งหรือคุณสามารถดาวน์โหลดซอร์สโค้ดของ QEMU สำหรับการรวบรวมและการติดตั้งtar zxvf misc/80m.img.tar.gz . และคลายภาพฮาร์ดดิสก์จากแพ็คเกจการบีบอัดภาพฮาร์ดดิสก์./launch-qemu.sh ในไดเรกทอรีปัจจุบันเพื่อเริ่มเครื่องเสมือน QEMU จากนั้นมินิโอจะเริ่มทำงานโดยตรงใน QEMU เครื่องเสมือน QEMU ไม่ได้ใช้ไฟล์กำหนดค่าเช่น BOCHSRC ข้อมูลการกำหนดค่าถูกระบุผ่านตัวเลือกบรรทัดคำสั่ง สคริปต์ Launch-qemu.sh มีตัวเลือกการกำหนดค่าที่ใช้ในปัจจุบัน Minios สามารถดีบั๊กในระดับแอสเซมบลีโดยใช้ฟังก์ชั่นการดีบักที่รวมอยู่ใน Bochs หรือ Qemu แต่วิธีการดีบักนี้ไม่สะดวกมากที่จะใช้เพราะโปรแกรมประกอบมีความยาวและอ่านยาก โชคดีที่ทั้ง Bochs และ Qemu ได้รับการสนับสนุน GDB ในตัว ด้วยการรวมกับฟังก์ชั่นการดีบักระยะไกลที่จัดทำโดย GDB Minios สามารถแก้ไขข้อบกพร่องได้ที่ซอร์สโค้ด C
การดีบักมินิโอด้วย Bochs+GDB
./launch-bochs-gdb.sh ในไดเรกทอรีแหล่ง Minios สคริปต์เชลล์ที่รันจะเรียกใช้ GDB ในหน้าต่างเทอร์มินัลใหม่และโหลดเวอร์ชันดีบั๊กของเคอร์เนลไบนารีtarget remote :2345 ในอินเตอร์เฟสคำสั่ง GDB เพื่อสร้างการเชื่อมต่อกับ BOCHSการดีบัก minios ด้วย QEMU+GDB
./launch-bochs-gdb.sh ในไดเรกทอรีแหล่ง Minios สคริปต์เชลล์ที่รันจะเรียกใช้ GDB ในหน้าต่างเทอร์มินัลใหม่และโหลดเวอร์ชันดีบั๊กของเคอร์เนลไบนารีtarget remote :1234 ในอินเตอร์เฟสคำสั่ง GDB เพื่อสร้างการเชื่อมต่อกับ QEMU # 编译 MiniOS 内核和用户程序 init,并写入到软盘镜像 a.img 中
make image
# 清除所有 .o 目标文件
make clean
# 清除所有 .o 目标文件和可执行文件
make realclean