นี่คือหลักสูตรระยะเวลาที่ 5 ของฉันเกี่ยวกับหัวข้อ "ระบบปฏิบัติการ" ที่ภาควิชาวิทยาศาสตร์คอมพิวเตอร์และเทคโนโลยีมหาวิทยาลัยเทคนิครัฐ Bauman Moscow
เป้าหมายหลักคือการทำความคุ้นเคยกับหลักการของการดำเนินงานเคอร์เนล OS ในระดับต่ำ เป็นลำดับให้พัฒนาไลบรารี C ขั้นต่ำสำหรับงาน I/O (เช่นฟังก์ชั่นเช่น Putchat, Printf, Gets, Scanf) และการจัดการหน่วยความจำ (Malloc, ฟรีและอื่น ๆ ) ในที่สุดเขียนแอพที่แสดงให้เห็นถึงประสิทธิภาพของพวกเขา การประเมินหลักสูตรได้รับการประเมินใน Mark 5/5
การสร้างโครงการด้วยเครื่องมือ Make MakeFile มีตรรกะทั้งหมด นี่คือขั้นตอนหลัก:
รับไฟล์รูปภาพ (disk.img) จากรุ่นล่าสุดจากนั้นเพียงแค่เขียนลงใน USB หรือเรียกใช้กับ Emulator x86 สำหรับ QEMU มันเป็นคำสั่งต่อไปนี้:
spam@eggs: ~ $ sudo qemu-system-i386 -hda disk.imgLinux กำลังพัฒนาและทดสอบใน Ubuntu 18.04 LTS น้อยที่สุด
ก่อนอื่นตรวจสอบให้แน่ใจว่าคุณมีเครื่องมือทั้งหมดที่ระบุไว้ในการติดตั้งบล็อก การพึ่งพา จากนั้นทำสิ่งต่อไปนี้:
spam@eggs: ~ $ git clone https://github.com/nexterot/develop-os-free
spam@eggs: ~ $ cd develop-os-free
spam@eggs: ~ $ makeในกรณีที่มีข้อผิดพลาดหรือเพียงแค่ทำความสะอาดไดเรกทอรี:
spam@eggs: ~ $ make clean นอกจากนี้คำสั่งต่อไปนี้เป็นนามแฝงสำหรับ make clean && make :
spam@eggs: ~ $ make rebuildเพื่อทดสอบด้วย qemu emulator ให้เรียกใช้:
spam@eggs: ~ $ make run losetup: bin/disk.img: failed to set up loop device: Device or resource busy
ค้นหาอุปกรณ์ลูปที่วุ่นวาย:
spam@eggs: ~ $ losetup -aจากนั้นแก้ไขบรรทัดถัดไปใน MakeFile, การเปลี่ยน '/dev/loop2' หรือ และ '/dev/loop3' เป็นอุปกรณ์ลูปฟรี:
loop_first = /dev/loop2
loop_second = /dev/loop3
ในที่สุดก็ทำ:
spam@eggs: ~ $ make rebuild
