รหัสนี้อาจดูไม่เหมาะสมในหลาย ๆ สถานที่และจะได้รับการปรับปรุงใหม่ไม่ช้าก็เร็ว คลังสินค้าใหม่ DEAPH-OS รอให้ฉันกลับมาเติมเต็มในหลุม เวอร์ชัน Refactored: https://github.com/yiezias/recover-os
โครงการนี้ขึ้นอยู่กับสถาปัตยกรรม AMD64 (หรือสถาปัตยกรรม X86_64) ของระบบปฏิบัติการที่ใช้โดย "การกู้คืนความจริงของระบบปฏิบัติการ" แนวคิดหลักและรหัสสอดคล้องกับหนังสือต้นฉบับ
ระบบปฏิบัติการที่ดำเนินการโดย "ระบบปฏิบัติการจริงคืนค่า" ทำงานบนโปรเซสเซอร์สถาปัตยกรรม X86 32 บิต แต่ตอนนี้เราได้เข้าสู่ยุค 64 บิตแล้ว ดังนั้นฉัน สำเนา อ้างถึงรหัสใน "การกู้คืนความจริงของระบบปฏิบัติการ" เพื่อใช้เวอร์ชัน 64 บิต
$ make run สามารถรวบรวมและเริ่มต้น Bochs Emulator
ระบบปฏิบัติการนี้มีในปี 2048 งูและมินิเกมอื่น ๆ
เขียนรหัสด้วยการกู้คืน:
(เทอร์มินัลไม่ได้ใช้การเปลี่ยนเส้นทางอินพุตและเอาต์พุตและแมวด้านล่างแตกต่างจาก CAT ภายใต้ Linux)
(เพียงแสดงฟังก์ชั่นการเขียนไฟล์ข้อความ)

2048 เกมมินิ:

งูโลภ (เฟรมลดลงอย่างจริงจังดังนั้นฉันจะไม่ปล่อยภาพเคลื่อนไหว):

หนังสือที่เกี่ยวข้องกับเข้าใจง่ายที่สุดที่ฉันได้อ่านรายละเอียดและน่าสนใจ แม้ว่ามันจะดูยาวไปหน่อยผู้เขียนก็ยังต้องลองวิธีที่แตกต่างกันเพื่อให้ผู้อ่านเข้าใจ (ฉันจะหาหนังสือที่เป็นมิตรได้ที่ไหน) ในบรรดาหนังสือที่เกี่ยวข้องกับระบบปฏิบัติการหลายเล่มในที่สุดฉันก็เลือกหนังสือเล่มนี้ในที่สุด คนเดียวที่สามารถเข้าใจได้ การใช้งานระบบระบบปฏิบัติการ
ส่วนใหญ่ความแตกต่างระหว่างสถาปัตยกรรม AMD64 และ X86
ภายใต้สถาปัตยกรรม AMD64 ฟังก์ชั่นโดยทั่วไปจะใช้การลงทะเบียนเพื่อส่งผ่านพารามิเตอร์และฟังก์ชั่นการเรียกใช้การประชุมภายใต้ x86 ไม่มีค่าอ้างอิง แต่มันง่ายที่จะเข้าใจตัวเอง เขียนฟังก์ชั่น C ในรายละเอียดและรวบรวมลงในแอสเซมบลีแล้วคุณจะเข้าใจโดยการเขียนใน GCC ความรู้นี้เป็นสิ่งจำเป็นในหลาย ๆ ที่ในระหว่างกระบวนการพัฒนา
โหมดยาวสามารถเข้าใจได้ว่า 64 บิต คุณสมบัติ โหมดที่ได้รับการป้องกันโปรเซสเซอร์จะต้องเปลี่ยนจากโหมดจริงเป็นโหมดป้องกันและจากนั้นเป็นโหมดยาว
วิธีที่สะดวกที่สุดในการรับข้อมูลคือแน่นอนว่าเครื่องมือค้นหา แต่เครื่องมือค้นหามักไม่สามารถหาเนื้อหาที่พวกเขาต้องการได้และข้อมูลที่เชื่อถือได้อย่างแท้จริงยังคงเป็นเอกสาร AMD หรือ Intel
ระบบนี้ละทิ้งวิธีการขัดจังหวะการใช้งานการเรียกใช้ระบบและใช้คำสั่งการโทรระบบ Syscall Sysret Fast System เพื่อนำไปใช้ สำหรับรายละเอียดโปรดดูเอกสาร AMD หรือ Intel และเนื้อหาไม่ซับซ้อน
ระบบไฟล์ของผู้เขียนไม่รู้สึกดีนัก ในอีกด้านหนึ่งระบบไฟล์ค่อนข้างซับซ้อนอยู่แล้ว แต่ผู้เขียนมักใช้ฟังก์ชั่นเกือบหลายร้อยบรรทัดและรหัสบางอย่างสามารถนำกลับมาใช้ใหม่ได้ แต่จำเป็นต้องดำเนินการซ้ำ ๆ ซึ่งทำให้เกิดความสับสนโดยรวม ระบบไฟล์ระบบนี้เทียบเท่ากับการเปลี่ยนแปลงที่สำคัญในผู้เขียน แต่ไม่ควรเข้าใจยากตามหนังสือและรหัสของผู้เขียน ระบบไฟล์ของระบบนี้ไม่ได้ใช้ฟังก์ชั่นระดับไดเรกทอรี แต่ไม่ส่งผลกระทบต่อการใช้งานฟังก์ชั่นอื่น ๆ ของระบบดังนั้นจึงถูกละเว้น
เชลล์ของผู้เขียนถูกนำไปใช้ในเคอร์เนล ระบบนี้ใช้เชลล์เป็นแอปพลิเคชันและกระบวนการเริ่มต้นใช้การเรียกระบบ EXECV เพื่อโหลดเชลล์ไดเรกทอรีรูท คำสั่งในตัวของระบบผู้แต่งจำนวนมากยังถูกนำไปใช้โดยตรงเป็นแอปพลิเคชันในระบบนี้ แต่ระดับรหัสคล้ายกัน นอกจากนี้ยังมีมินิเกมพิเศษที่สามารถเรียกอินเทอร์เฟซระบบปฏิบัติการเพื่อใช้แอปพลิเคชันได้อย่างอิสระและระบบนี้เสร็จสมบูรณ์โดยทั่วไป