ง่าย ๆ , อยู่ในตัวเอง, รหัสสะอาด, เอกสารที่มีเอกสารที่ดี, ระบบปฏิบัติการ 64 บิตที่ใช้งานอดิเรกสำหรับโปรเซสเซอร์ Intel และ AMD มันเขียนไว้ในแอสเซมบลี (Intel Syntax) และ C (มาตรฐาน GNU99) ซึ่งฉันพยายามเพิ่มความคิดเห็นลงในซอร์สโค้ดมากที่สุดเท่าที่จะเป็นไปได้ดังนั้นจึงสามารถใช้เป็นข้อมูลอ้างอิงสำหรับนักพัฒนาระบบปฏิบัติการในอนาคต
มันมีส่วนประกอบต่อไปนี้ที่เขียนตั้งแต่เริ่มต้น:
| ส่วนประกอบ | คำอธิบาย | รหัสต้นฉบับ |
|---|---|---|
| MBR | bootloader ขั้นตอนแรก | รหัส |
| รถตัก | bootloader ขั้นตอนที่สอง | รหัส |
| ส่วนประกอบ | คำอธิบาย | รหัสต้นฉบับ |
|---|---|---|
| PML4 | โครงสร้างเพจ | รหัส |
| เพื่อน | ระบบจัดสรรหน่วยความจำ | รหัส |
| สิ่งพิมพ์ | รูปแบบการแยกวิเคราะห์รูปแบบสตริงแบบ printf | รหัส |
| ไดรเวอร์อนุกรม | ส่ง MSG PRINTK ผ่าน RS232 เพื่อช่วยแก้ไขข้อบกพร่อง | รหัส |
| การถ่ายโอนข้อมูลหลัก | Dump CPU Registers เพื่อจุดประสงค์ในการดีบัก | รหัส |
| Syscall/Sysret | วิธีเลือกที่จะข้ามไปที่ Ring 3 และย้อนกลับ | รหัส |
| หลุม | ตัวจับเวลาช่วงเวลาที่ตั้งโปรแกรมได้ | รหัส |
| รูปถ่าย | คอนโทรลเลอร์ขัดจังหวะที่ตั้งโปรแกรมได้ | รหัส |
| (x) ความล่าช้า | ขึ้นอยู่กับ tightloops เนื่องจากฉันใช้หลุม | รหัส |
| CMOS RTC | นาฬิกาเรียลไทม์ | รหัส |
| ผู้กำหนดตารางเวลา | Simple Round-Robin Scheduler | รหัส |
มีการเพิ่มฟังก์ชั่นตามความต้องการ: รหัส
อีกมากที่จะมา! สตาร์/ดู repo นี้เพื่อคอยติดตาม!
ในการสร้างแอพนี้คุณคาดว่าจะ make และติดตั้ง docker ในเครื่องของคุณ การพึ่งพาอาคารอื่น ๆ ทั้งหมดควรได้รับการดูแลโดยอัตโนมัติโดยอิมเมจนักเทียบท่าที่สร้างขึ้นในระหว่างขั้นตอนนี้
ในการสร้างมันคุณต้องวิ่ง:
make build
ในการเรียกใช้แอพนี้คุณคาดว่าจะมีและ make qemu-system-x86_64 ติดตั้งในเครื่องของคุณ
make test
เพื่อให้แน่ใจว่าฉันจะไม่สูญเสียการมุ่งเน้นไปที่สิ่งที่ฉันต้องการให้ระบบปฏิบัติการนี้สามารถทำได้ฉันตัดสินใจที่จะเขียนรายการคุณสมบัติที่ฉันต้องการนำไปใช้ในระยะสั้นถึงปานกลาง
สิ่งที่น่าอัศจรรย์ที่จะมี แต่ฉันไม่แน่ใจว่าฉันมีสิ่งที่ต้องทำในชีวิตของฉันหรือไม่
นี่คือการอ้างอิงทั้งหมดที่ช่วยฉันได้มากในระหว่างการพัฒนาของ Almeidaos
ฟอรัม:
หนังสือ:
OSE ที่มีอยู่:
หลักสูตร: