เพราะฉันทำได้
การมีช่วงเวลาที่ดีคือไดรฟ์ของฉันสำหรับโครงการนี้ + ฉันเรียนรู้สิ่งที่ต่ำสุดเจ๋ง ๆ !
เคอร์เนล Cavos เป็นเสาหิน x86_64 ที่เขียนด้วย C ที่ค่อนข้างเรียบง่ายโดยมีชุดประกอบ Intel ไม่กี่บิตที่นี่และที่นั่น มันใช้ Limine Bootloader และใช้ประโยชน์จากระบบไฟล์ FAT32 สำหรับการบูตพร้อมกับ Ext2 สำหรับพาร์ติชันรูท ฉันพยายามรักษาโครงสร้างรหัสให้สะอาดและเข้าใจง่ายในขณะที่หลีกเลี่ยงสิ่งที่เป็นนามธรรมมากเกินไป ดังนั้นบางครั้งคุณภาพของรหัสและความชัดเจนจึงจัดลำดับความสำคัญมากกว่าการเพิ่มประสิทธิภาพ
ผู้ใช้พื้นที่เป็นจุดสนใจหลักของฉันในเวลานั้นโดยที่เคอร์เนล ค่อนข้าง เสถียร ฉันกำลังพยายามทำให้ระบบปฏิบัติการนี้ใกล้เคียงกับ Linux เท่าที่จะทำได้ในขณะที่เพิ่มสิ่งของของตัวเองไว้ด้านบน สิ่งนี้สามารถมองเห็นได้ด้วยการโทรของระบบที่เหมือนกับ Linux นั่นไม่ใช่การสุ่มฉันต้องการให้ Cavos เข้ากันได้แบบไบนารีกับมันมากที่สุด!
เลขที่! เคอร์เนล Cavos ไม่แชร์ซอร์สโค้ดหรือส่วนหัวกับ Linux ซอร์สโค้ด Linux ถูก ดึงระหว่างการประกอบ Userspace แต่เพียงเพราะโปรแกรมของบุคคลที่สาม (พอร์ต) บางโปรแกรมขึ้นอยู่กับส่วนหัวของมัน ถึงอย่างนั้นก็ยังไม่มีการแชร์รหัสจริง
สิ่งสำคัญที่จะกล่าวถึงเป้าหมายเหล่านี้อาจไม่พอใจใช้เวลานานมากที่จะทำให้เสร็จ (เรากำลังพูดถึงปีที่ผ่านมา) หรืออาจไม่เคยทำเลย นอกจากนี้รายการนี้จะไม่รวมทุกคุณสมบัติที่นำไปใช้หรือวางแผนและสามารถเปลี่ยนแปลงได้ตลอดเวลา ...
systemcall ทุกอย่างเกี่ยวกับสิ่งนี้สามารถพบได้ที่ Install.md ไปที่นั่นสำหรับข้อมูลเพิ่มเติมเกี่ยวกับการสร้างระบบปฏิบัติการอย่างถูกต้องทำความสะอาดไบนารีที่ไม่ได้ใช้และสิ่งอื่น ๆ
วันเสาร์ที่ 2 มีนาคม 2567 ผ่านการแก้ปัญหาหลายครั้งการตัดสินใจ "ไม่ดี" และความคิดที่ "ไม่ทำงาน" ฉันได้รวบรวมเคอร์เนล x86 (32 บิต) ที่สามารถใช้เชื้อเพลิงแอพพลิเคชั่นผู้ใช้พื้นที่ผู้ใช้ ยังคงยึดติดกับรหัสเก่า (จากด้านหลังเมื่อฉันแทบจะไม่เข้าใจแนวคิดง่ายๆเช่น Say Paging) ห้องสมุดที่ล้าสมัยและสิ่งอื่น ๆ มากมาย บางครั้ง มันก็ใช้งานได้ แต่ฉันก็ไม่พอใจ
17:00 น.; บ่ายวันนั้นฉันตัดสินใจที่จะเริ่มต้นกระบวนการที่ยาวนานในการโยกย้ายทุกอย่างไปยังสถาปัตยกรรม x86_64 และรีดปัญหาความน่าเชื่อถือมากมายซึ่งทำให้ฝันร้ายที่เกิดขึ้นจริง โดยทั่วไปแล้วฉันมาถึงจุดหนึ่งเพื่อทำความเข้าใจว่าการแก้ปัญหาอย่างรวดเร็ว & dity นำไปสู่ความผิดพลาดที่หลีกเลี่ยงได้อย่างสมบูรณ์ซึ่งยากมากที่จะระบุหลังจากมีการเพิ่มจำนวนนามธรรมจำนวนมหาศาล
โครงการนี้ได้รับใบอนุญาตภายใต้ GPL V3 (GNU ทั่วไปใบอนุญาตสาธารณะ v3.0) สำหรับข้อมูลเพิ่มเติมไปที่ไฟล์ใบอนุญาต