หมายเหตุของออสเดฟ
หนังสือที่มีต้นกำเนิดมาจากการรวบรวมบันทึกย่อ มีจุดมุ่งหมายเพื่อแนะนำผู้อ่านตลอดขั้นตอนต่างๆ ในการสร้างเคอร์เนลระบบปฏิบัติการตั้งแต่เริ่มต้น เขียนในขณะที่เขียน (และเขียนใหม่) เคอร์เนลของเราเอง แต่ละบทจะครอบคลุมขั้นตอนของกระบวนการตั้งแต่การเลือกโปรแกรมโหลดบูตไปจนถึงการเรียกใช้ ELF ที่โหลดในพื้นที่ผู้ใช้
เราหวังว่าคุณจะเพลิดเพลินและพบสิ่งที่น่าสนใจที่นี่!
เนื้อหาของพื้นที่เก็บข้อมูลนี้มีจำหน่ายในรูปแบบ หนังสือที่พิมพ์ ด้วย โดยสามารถซื้อผ่าน Lulu:
- หนังสือปกอ่อน : คลิกที่นี่
- ปกแข็ง : คลิกที่นี่
รุ่นต้นแบบล่าสุดประกอบด้วย PDF ที่สร้างจากต้นแบบ
บทปัจจุบัน:
- ส่วนที่ 0: บทนำ
- ความรู้สมมุติ
- เกี่ยวกับผู้เขียน
- ส่วนที่ 1: การสร้างและการบูตโปรโตคอล
- การสร้างเคอร์เนล
- Bootloaders และโปรโตคอลการบูต
- Makefiles
- สคริปต์ลิงก์เกอร์
- การสร้าง Iso ที่สามารถบูตได้
- ส่วนที่ 2: สถาปัตยกรรมและไดรเวอร์พื้นฐาน
- ภาพรวม
- สวัสดีชาวโลก
- เคอร์เนลครึ่งสูงกว่า
- ตารางคำอธิบายสากล
- ขัดจังหวะ
- ตาราง ACPI
- APIC
- ตัวจับเวลา
- ภาพรวมแป้นพิมพ์ PS2
- การจัดการการขัดจังหวะคีย์บอร์ด PS2
- การใช้งานไดรเวอร์คีย์บอร์ด PS2
- ส่วนที่ 3: เอาต์พุตวิดีโอ
- เฟรมบัฟเฟอร์
- การวาดข้อความบน Framebuffer
- ส่วนที่ 4: การจัดการหน่วยความจำ
- ภาพรวม
- หน่วยความจำกายภาพ
- เพจจิ้ง
- ผู้จัดการหน่วยความจำเสมือน
- การจัดสรรฮีป
- ส่วนที่ 5: การจัดกำหนดการ
- ภาพรวม
- ผู้วางกำหนดการ
- กระบวนการและเธรด
- ล็อค
- ส่วนที่ 6: การเดินทางสู่ Userspace
- ภาพรวม
- การสลับโหมด
- อัปเดตการจัดการการขัดจังหวะ
- การโทรของระบบ
- ตัวอย่าง Syscall ABI
- ส่วนที่ 7: การสื่อสารระหว่างกระบวนการ
- ภาพรวม
- หน่วยความจำที่ใช้ร่วมกัน
- การส่งข้อความ
- ส่วนที่ 8: ระบบไฟล์
- ภาพรวม
- ระบบไฟล์เสมือน
- ระบบไฟล์ Tar
- ส่วนที่ 9: กำลังโหลดและดำเนินการ ELF
- ตอนที่ 10: ก้าวไปไกลกว่านั้น
- พิเศษ: ภาคผนวก
- การแก้ไขปัญหาทั่วไป
- เคล็ดลับและเทคนิค
- ภาษาซี
- ร่วมงานกับ NASM
- ทั้งหมดเกี่ยวกับคอมไพเลอร์ข้าม
- การดีบัก
- การป้องกันหน่วยความจำ
- ทรัพยากรที่เป็นประโยชน์
- รับทราบ
โครงการของเรา
- DreamOs64: ระบบปฏิบัติการ 64 บิตเขียนตั้งแต่เริ่มต้นโดย Ivan G.
- Northport: ระบบปฏิบัติการ 64 บิตอีกตัวพร้อม SMP และรองรับ riscv! โดย ดีน ที.
- DreamOs: ระบบปฏิบัติการ 32 บิตเขียนตั้งแต่เริ่มต้น โครงการนี้ถูกยกเลิกแล้ว แต่ก็ยังคุ้มค่าที่จะกล่าวถึง โดย Ivan G.
ผู้เขียน
- Ivan G (dreamos82) - ผู้แต่งและผู้สร้างบันทึกเหล่านี้
- คณบดีที (DeanoBurrito) - ผู้แต่ง
ใบอนุญาต
เนื้อหา (รหัส ข้อความ และเนื้อหาอื่นๆ) ของพื้นที่เก็บข้อมูลนี้ได้รับอนุญาตภายใต้สัญญาอนุญาตสาธารณะของ Creative Commons Attribution-NonCommercial 4.0 โปรดดูไฟล์ใบอนุญาตสำหรับข้อความฉบับเต็ม
แม้ว่าจะไม่ใช่คำแนะนำทางกฎหมาย แต่ใบอนุญาตนี้สามารถสรุปได้ดังนี้:
- คุณมีอิสระที่จะแบ่งปัน (คัดลอกและแจกจ่าย) เนื้อหานี้ในสื่อหรือรูปแบบใดก็ได้
- ปรับเปลี่ยน (รีมิกซ์ แปลงร่าง และสร้างต่อ) เนื้อหา
ภายใต้ข้อจำกัดดังต่อไปนี้:
- คุณต้องให้เครดิตที่เหมาะสม ระบุลิงก์ไปยังใบอนุญาต และระบุว่ามีการเปลี่ยนแปลงหรือไม่
- คุณไม่สามารถใช้วัสดุเพื่อการใช้งานเชิงพาณิชย์ได้
โปรดทราบว่าไม่มีการรับประกันใดๆ ทั้งสิ้น