Monkos เป็นระบบปฏิบัติการ 64 บิตทดลองสำหรับโปรเซสเซอร์ Intel และ AMD มันเป็นส่วนผสมของภาษา C และแอสเซมบลีและเป็นงานที่กำลังดำเนินการ ปัจจุบันประกอบด้วย BIOS boot loader, ระบบคอนโซลเสมือน, ระบบการจัดการขัดจังหวะ, ตัวจัดการหน่วยความจำเพจ, การจัดสรรกองฮีป, ไดรเวอร์อุปกรณ์ง่าย ๆ สองสามตัวและเปลือกแบบโต้ตอบแบบดั้งเดิม Boot Loader ได้รับการออกแบบมาเพื่อเปิดระบบปฏิบัติการจาก CDROM
ระบบปฏิบัติการในปัจจุบันสร้างภายใต้ Linux โดยใช้ cross-compiler มีสองวิธีในการสร้างมัน: (1) โดยการติดตั้งเครื่องมือที่จำเป็นทั้งหมดในระบบของคุณและทำ make หรือ (2) โดยใช้คอนเทนเนอร์ Docker สำเร็จรูปที่มีเครื่องมือสร้างทั้งหมดที่คุณต้องการ
ในการสร้างด้วยเครื่องมือที่ติดตั้งในระบบในพื้นที่ของคุณคุณจะต้องติดตั้งซอฟต์แวร์ต่อไปนี้แล้ว:
เครื่องมือเหล่านี้ส่วนใหญ่มีให้บริการจากผู้จัดการแพ็คเกจ Linux มาตรฐาน อย่างไรก็ตาม cross-compiler ไม่ได้ ในการสร้าง cross-compiler ปรึกษาคำแนะนำในหน้านี้ ตรวจสอบให้แน่ใจว่าได้ปฏิบัติตาม LIBGCC โดยไม่มีคำแนะนำในโซนสีแดง
เมื่อคุณติดตั้งเครื่องมือทั้งหมดและทำให้แน่ใจว่า cross-compiler อยู่ในเส้นทางของคุณแล้วให้เรียก make
$ make สิ่งนี้ส่งผลให้ไฟล์ CDROM ISO ที่สามารถบูตได้ที่เรียกว่า monk.iso ในไดเรกทอรีย่อยของคุณ
เนื่องจากมันอาจเป็นเรื่องยุ่งยากในการสร้างและติดตั้ง cross-compiler จึงมีการเตรียมคอนเทนเนอร์ Docker ทำให้คุณสามารถหลีกเลี่ยงการสร้าง cross-compiler ด้วยตัวคุณเอง ในการเรียกใช้งานสร้างที่อิงกับ Docker ตรวจสอบให้แน่ใจว่าคุณติดตั้ง Docker เวอร์ชันล่าสุดในระบบของคุณให้เพิ่มตัวเองในกลุ่มผู้ใช้ Docker ของระบบของคุณแล้วพิมพ์ต่อไปนี้:
$ make docker สิ่งนี้จะดึงคอนเทนเนอร์ Docker ลง ( brett/monkos-build ) หากคุณยังไม่มีให้เรียกใช้งานสร้างภายในคอนเทนเนอร์และสร้างไฟล์ ISO (และไฟล์เอาต์พุตระดับกลางอื่น ๆ ทั้งหมด) ในไดเรกทอรีย่อยของคุณ มันทำงานได้เกือบราวกับว่าคุณวิ่ง make โดยใช้ cross-compiler ที่ติดตั้งในระบบของคุณ
มีหลายวิธีในการเรียกใช้ Monkos เมื่อคุณมีไฟล์ ISO วิธีแรกและเวลาที่ใช้เวลามากที่สุดคือการเผาไหม้เป็น CD หรือ DVD ROM โดยใช้ยูทิลิตี้การเผาไหม้ที่คุณชื่นชอบ นี่เป็นวิธีเดียวที่จะทดสอบ Monkos ในระบบโลหะเปลือย
หรือคุณสามารถเปิดระบบปฏิบัติการโดยใช้ซอฟต์แวร์เสมือนจริงเช่น VMware หรือ VirtualBox
หรือคุณสามารถเรียกใช้ระบบปฏิบัติการในอีมูเลเตอร์ที่ใช้ Linux เช่น QEMU หรือ BOCHS Monkos Makefile ทำให้ทางเลือกนี้ง่ายโดยเฉพาะอย่างยิ่งโดยการจัดทำกฎการสร้างอย่างง่ายเพื่อเปิดตัวระบบปฏิบัติการใน QEMU:
$ make testนอกจากนี้คุณยังสามารถใช้ MakeFile เพื่อเริ่มต้นเซสชันการดีบักเคอร์เนลภายใต้ QEMU และ GDB ก่อนอื่นเปิด QEMU ในโหมดการดีบัก:
$ make debugจากนั้นเริ่มเซสชันดีบักเกอร์ GDB โดยการแนบ GDB ไปยังจุดดีบักเกอร์ QEMU:
$ gdb
(gdb) set arch i386:x86-64
(gdb) symbol-file build/monk.sys
(gdb) target remote localhost:8864
(gdb) layout src
เรียกใช้ make docs เพื่อสร้างเอกสารที่จัดรูปแบบอย่างสวยงามสำหรับ Monkos คุณจะต้องติดตั้ง Doxygen ในระบบของคุณเพื่อทำสิ่งนี้
$ make docs เอกสาร Doxygen จะปรากฏในไดเรกทอรีย่อย docs/monk หากต้องการดูพวกเขาเปิดตัวในเบราว์เซอร์ของคุณ (ในกรณีนี้ Firefox):
$ firefox docs/monk/index.htmlในการสร้างแท็กโค้ดเพื่อการค้นหาสัญลักษณ์ที่ง่ายภายในตัวแก้ไขของคุณให้ใช้ MakeFile เพื่อเรียกใช้ยูทิลิตี้ที่มีความชุ่มชื้น:
$ make tags สิ่งนี้สร้างไฟล์ .tags ในไดเรกทอรี Monkos ของคุณ
ในการทำความสะอาดไฟล์ระดับกลางทั้งหมดให้ใช้ Clean Build:
$ make cleanในการทำความสะอาดไฟล์การพึ่งพาที่สร้างขึ้นทั้งหมดให้ใช้ CleanDeps Build:
$ make cleandepsโปรดปรึกษาเอกสารที่จัดรูปแบบ Doxygen ซึ่งเป็นส่วนหนึ่งของชุดเอกสาร Monkos
นี่คือทรัพยากรบางส่วนที่ฉันพึ่งพาในความพยายามของฉันเพื่อทำความเข้าใจกับการพัฒนา bootloader และระบบปฏิบัติการที่หลากหลายและหลากหลาย:
การใช้ซอร์สโค้ดนี้ถูกควบคุมโดยใบอนุญาตสไตล์ BSD ที่สามารถพบได้ในไฟล์ใบอนุญาต