exploring os
1.0.0
พื้นที่เก็บข้อมูลนี้เป็นการเดินทางผ่านแนวคิดระบบปฏิบัติการด้วยการใช้งานจริงใน C. ในแต่ละวันมุ่งเน้นไปที่หัวข้อเฉพาะให้ความเข้าใจทางทฤษฎีและประสบการณ์การเข้ารหัสเชิงปฏิบัติ
| วัน | หัวข้อ | หมวดหมู่แนวคิด | ระดับความยาก | โฟกัสการใช้งาน |
|---|---|---|---|---|
| 1 | แนวคิดกระบวนการ | กระบวนการ | ง่าย | คำจำกัดความกระบวนการ |
| 2 | สถานะกระบวนการและการเปลี่ยนผ่าน | กระบวนการ | ปานกลาง | การดำเนินการตามแผนภาพของรัฐ |
| 3 | กลไกการสร้างกระบวนการ | กระบวนการ | ปานกลาง | fork (), exec () syscalls |
| 4 | ขั้นตอนการกำหนดเวลากระบวนการ | การกำหนดเวลา | ปานกลาง | อัลกอริทึม FCFS |
| 5 | อัลกอริทึมการกำหนดเวลา | การกำหนดเวลา | แข็ง | SJF, ลำดับความสำคัญ, Round Robin |
| 6 | การสลับบริบท | กระบวนการ | แข็ง | รายละเอียดการใช้งาน |
| 7 | แนวคิดเธรด | ด้าย | ง่าย | ด้ายความเข้าใจพื้นฐาน |
| 8 | การสร้างและการจัดการด้าย | ด้าย | ปานกลาง | Posix Threads |
| 9 | การเปรียบเทียบกระบวนการกับเธรดเทียบกับ | ด้าย | ปานกลาง | การวิเคราะห์เปรียบเทียบ |
| 10 | โมเดลมัลติเธรด | ด้าย | แข็ง | ผู้ใช้กับเคอร์เนลเธรด |
| 11 | พื้นฐานพร้อมกัน | การซิงโครไนซ์ | ปานกลาง | สภาพการแข่งขัน |
| 12 | mutex และ semaphores | การซิงโครไนซ์ | แข็ง | การดำเนินการ |
| 13 | แนวคิดการหยุดชะงัก | การซิงโครไนซ์ | แข็ง | กลยุทธ์การป้องกัน |
| 14 | อัลกอริทึมการตรวจจับการหยุดชะงัก | การซิงโครไนซ์ | แข็ง | อัลกอริทึมของนายธนาคาร |
| 15 | ภาพรวมการจัดการหน่วยความจำ | หน่วยความจำ | ง่าย | ลำดับชั้นของหน่วยความจำ |
| 16 | ตรรกะกับที่อยู่ทางกายภาพ | หน่วยความจำ | ปานกลาง | การแปลที่อยู่ |
| 17 | การจัดสรรหน่วยความจำที่ต่อเนื่องกัน | หน่วยความจำ | ปานกลาง | กลยุทธ์การจัดสรร |
| 18 | กลไกการเพจ | หน่วยความจำ | แข็ง | การใช้งานตารางหน้า |
| 19 | อัลกอริทึมการเปลี่ยนหน้า | หน่วยความจำ | แข็ง | FIFO, LRU, เหมาะสมที่สุด |
| 20 | การแบ่งส่วน | หน่วยความจำ | ปานกลาง | ตารางส่วน |
| 21 | แนวคิดหน่วยความจำเสมือนจริง | หน่วยความจำ | แข็ง | อุปสงค์เพจ |
| 22 | การจัดสรรหน่วยความจำภายใน (Malloc, ฟรี) | การจัดการหน่วยความจำ | แข็ง | การจัดสรรหน่วยความจำที่กำหนดเอง |
| 23 | เทคนิคการจัดการหน่วยความจำแบบไดนามิก | การจัดการหน่วยความจำ | แข็ง | กลยุทธ์สระว่ายน้ำหน่วยความจำ |
| 24 | พื้นฐานระบบไฟล์ | ระบบไฟล์ | ง่าย | แนวคิดไฟล์ |
| 25 | โครงสร้างระบบไฟล์ | ระบบไฟล์ | ปานกลาง | โครงสร้างไดเรกทอรี |
| 26 | วิธีการจัดสรรไฟล์ | ระบบไฟล์ | ปานกลาง | เชื่อมโยงกัน |
| 27 | การจัดการพื้นที่ว่าง | ระบบไฟล์ | แข็ง | บิตเวกเตอร์รายการที่เชื่อมโยง |
| 28 | กลไกการป้องกันไฟล์ | ระบบไฟล์ | ปานกลาง | การควบคุมการเข้าถึง |
| 29 | การจัดการระบบ I/O | ระบบ I/O | ปานกลาง | อุปกรณ์ I/O |
| 30 | อัลกอริทึมการกำหนดเวลาดิสก์ | ระบบ I/O | แข็ง | สแกน C-Scan |
| 31 | การจัดการขัดจังหวะ | ระดับต่ำ | แข็ง | เวกเตอร์ขัดจังหวะ |
| 32 | การใช้งานระบบขั้นสูง | การเขียนโปรแกรมระดับต่ำ | แข็ง | การออกแบบ wrapper syscall |
| 33 | การติดตามการโทรขั้นสูงของระบบ | ระดับต่ำ | แข็ง | การสกัดกั้น Syscall |
| 34 | การพัฒนาโมดูลเคอร์เนล | ระดับต่ำ | แข็ง | โมดูลเคอร์เนลที่โหลดได้ |
| 35 | การสื่อสารระหว่างกระบวนการ | IPC | แข็ง | ท่อคิวข้อความ |
| 36 | หน่วยความจำที่ใช้ร่วมกันขั้นสูง | IPC | แข็ง | หน่วยความจำที่ใช้ร่วมกันในระดับต่ำ |
| 37 | การเขียนโปรแกรมซ็อกเก็ตดำน้ำลึก | การสร้างเครือข่าย | แข็ง | การใช้ซ็อกเก็ตดิบ |
| 38 | การกำหนดเวลา CPU ขั้นสูง | การกำหนดเวลา | แข็ง | คิวหลายระดับ |
| 39 | ระบบปฏิบัติการแบบเรียลไทม์ภายใน | ที่มีความเชี่ยวชาญ | แข็ง | การออกแบบเคอร์เนล RTOS |
| 40 | การจัดการหน่วยความจำเคอร์เนล Linux | เคอร์เนล | แข็ง | การจัดสรรพื้น |
| 41 | การซิงโครไนซ์กระบวนการขั้นสูง | การซิงโครไนซ์ | แข็ง | อัลกอริทึมของปีเตอร์สัน |
| 42 | ทฤษฎีกราฟการจัดสรรทรัพยากร | การซิงโครไนซ์ | แข็ง | การหยุดชะงัก |
| 43 | เทคนิคการกระจายตัวของหน่วยความจำ | หน่วยความจำ | ปานกลาง | การกระจายตัวขั้นสูง |
| 44 | การจัดการแคชภายใน | หน่วยความจำ | แข็ง | การเชื่อมโยงกับแคช |
| 45 | การจดบันทึกระบบไฟล์ | ระบบไฟล์ | แข็ง | กลไกการทำธุรกรรม |
| 46 | การพัฒนาไดรเวอร์อุปกรณ์ | ระดับต่ำ | แข็ง | ไดรเวอร์อุปกรณ์ตัวละคร |
| 47 | การใช้กลไกความปลอดภัย | ความปลอดภัย | แข็ง | เคอร์เนลควบคุมการเข้าถึง |
| 48 | กระบวนการจำลองการกำหนดตารางเวลา | การกำหนดเวลา | แข็ง | เครื่องจำลองที่ครอบคลุม |
| 49 | ระบบไฟล์เครือข่ายภายใน | ระบบไฟล์ | แข็ง | การออกแบบ FS แบบกระจาย |
| 50 | กลไกการจัดการข้อผิดพลาด | ระดับต่ำ | แข็ง | การจัดการข้อยกเว้น |
| 51 | หน่วยความจำเสมือนจริง Hypervisor | ขั้นสูง | แข็ง | เทคนิคการจำลองเสมือนจริง |
| 52 | อัลกอริทึมระบบปฏิบัติการแบบกระจาย | ขั้นสูง | แข็ง | โปรโตคอลฉันทามติ |
| 53 | การออกแบบเคอร์เนล OS แบบฝัง | ที่มีความเชี่ยวชาญ | แข็ง | เคอร์เนลน้อยที่สุด |
| 54 | Microkernel Advanced Design | สถาปัตยกรรม | แข็ง | ข้อความผ่าน |
| 55 | การทำโปรไฟล์ประสิทธิภาพของระบบปฏิบัติการ | ขั้นสูง | แข็ง | การติดตามเคอร์เนล |
| 56 | การประมวลผลแบบขนาน | ขั้นสูง | แข็ง | ความเท่าเทียมกันในระดับต่ำ |
| 57 | กลไกการทนต่อความผิดพลาด | ขั้นสูง | แข็ง | เทคนิคการกู้คืน |
| 58 | การปรับสมดุลโหลดขั้นสูง | ขั้นสูง | แข็ง | กลยุทธ์การกำหนดเวลา |
| 59 | Internals Containerization | ขั้นสูง | แข็ง | การใช้งานเนมสเปซ |
| 60 | การซิงโครไนซ์เคอร์เนลดั้งเดิม | ขั้นสูง | แข็ง | Spinlocks, RCU |
| 61 | การวิเคราะห์ช่องโหว่ด้านความปลอดภัย | ความปลอดภัย | แข็ง | บัฟเฟอร์ล้น |
| 62 | กลไกเคอร์เนลการเข้ารหัส | ความปลอดภัย | แข็ง | การเข้ารหัสดั้งเดิม |
| 63 | เทคนิคการตรวจจับมัลแวร์ | ความปลอดภัย | แข็ง | การตรวจจับระดับเคอร์เนล |
| 64 | ระบบนิติวิทยาศาสตร์ดำน้ำลึก | ความปลอดภัย | แข็ง | การวิเคราะห์ร่องรอยเคอร์เนล |
| 65 | การออกแบบการจัดสรรหน่วยความจำ | หน่วยความจำ | แข็ง | การใช้งานฮีปแบบกำหนดเอง |
| 66 | กลไก IPC ขั้นสูง | IPC | แข็ง | การส่งสัญญาณขั้นสูง |
| 67 | เทคนิคการดีบักเคอร์เนล | ระดับต่ำ | แข็ง | การวิเคราะห์ความผิดพลาดของเคอร์เนล |
| 68 | การจัดการ Syscall ขั้นสูง | ระดับต่ำ | แข็ง | การเพิ่มประสิทธิภาพ Syscall |
| 69 | เสร็จสิ้นต้นแบบเคอร์เนล OS | โครงการ | แข็ง | เคอร์เนลที่สามารถบูตได้น้อยที่สุด |
แต่ละโครงการมีระยะเวลา 3 วันช่วยให้สามารถสำรวจและดำเนินการในเชิงลึก
สร้างเคอร์เนลที่สามารถบู๊ตได้น้อยที่สุด
ใช้งานจัดสรรหน่วยความจำที่กำหนดเอง
พัฒนาเครื่องจำลองระบบไฟล์
สร้างตัวจำลองการกำหนดเวลากระบวนการ
ออกแบบตัวจัดการหน่วยความจำเสมือนจริง
พัฒนาโมดูลเคอร์เนลที่โหลดได้
ใช้ระบบไฟล์เครือข่าย
สร้างเคอร์เนลระบบปฏิบัติการแบบเรียลไทม์
ใบอนุญาต
นี่คือทรัพยากรการศึกษาขั้นสูงสำหรับการทำความเข้าใจระบบปฏิบัติการผ่านการใช้งานเชิงลึก