ความคิดริเริ่มในการใช้การสนับสนุน Linux สำหรับชิป Apple M1 ซึ่งสนับสนุนโดยโครงการ Asahi Linux และ Corellium ได้มาถึงจุดที่เป็นไปได้ที่จะเรียกใช้เดสก์ท็อป GNOME ในสภาพแวดล้อม Linux ที่ทำงานบนระบบด้วยชิป Apple M1 เอาต์พุตหน้าจอถูกจัดระเบียบโดยใช้ framebuffer และรองรับ OpenGL โดยใช้ซอฟต์แวร์แรสเตอร์ไรเซอร์ LLVMPipe ขั้นตอนต่อไปคือการเปิดใช้งานโปรเซสเซอร์ร่วมของจอแสดงผลเพื่อส่งออกความละเอียดสูงสุด 4K ซึ่งเป็นไดรเวอร์ที่ได้รับการออกแบบทางวิศวกรรมย้อนกลับแล้ว
Project Asahi ได้รับการสนับสนุนเบื้องต้นสำหรับส่วนประกอบที่ไม่ใช่ GPU ของ M1 SoC ในเคอร์เนล Linux หลัก ในสภาพแวดล้อม Linux ที่สาธิต นอกเหนือจากความสามารถของเคอร์เนลมาตรฐานแล้ว ยังมีการใช้แพตช์เพิ่มเติมหลายรายการที่เกี่ยวข้องกับ PCIe, ไดรเวอร์ pinctrl สำหรับบัสภายใน และไดรเวอร์จอแสดงผล การเพิ่มเติมเหล่านี้ทำให้สามารถแสดงผลหน้าจอและใช้งานฟังก์ชัน USB และอีเทอร์เน็ตได้ ยังไม่ได้ใช้การเร่งความเร็วกราฟิก
สิ่งที่น่าสนใจคือการย้อนกลับวิศวกรรม M1 SoC โครงการ Asahi แทนที่จะพยายามแยกส่วนประกอบไดรเวอร์ macOS กลับใช้ไฮเปอร์ไวเซอร์ที่ทำงานที่ระดับระหว่าง macOS และชิป M1 และดักจับและบันทึกการทำงานทั้งหมดบนชิปอย่างโปร่งใส หนึ่งในคุณสมบัติของ SoC M1 ที่ทำให้ยากต่อการรองรับชิปในระบบปฏิบัติการของบุคคลที่สามคือการเพิ่มโปรเซสเซอร์ร่วมให้กับตัวควบคุมการแสดงผล (DCP) ฟังก์ชันการทำงานครึ่งหนึ่งของไดรเวอร์จอแสดงผล macOS จะถูกถ่ายโอนไปยังด้านข้างของตัวประมวลผลร่วมที่ระบุ ซึ่งจะเรียกใช้ฟังก์ชันสำเร็จรูปของตัวประมวลผลร่วมผ่านอินเทอร์เฟซ RPC พิเศษ
ผู้ที่ชื่นชอบได้แยกวิเคราะห์การเรียกอินเทอร์เฟซ RPC นี้เพียงพอแล้วเพื่อใช้โปรเซสเซอร์ร่วมสำหรับเอาต์พุตหน้าจอ รวมถึงควบคุมเคอร์เซอร์ฮาร์ดแวร์ และดำเนินการประกอบและปรับขนาด ปัญหาคืออินเทอร์เฟซ RPC ขึ้นอยู่กับเฟิร์มแวร์และเปลี่ยนแปลงไปตาม macOS แต่ละเวอร์ชัน ดังนั้น Asahi Linux จึงวางแผนที่จะรองรับเฟิร์มแวร์บางเวอร์ชันเท่านั้น ก่อนอื่น จะมีการให้การสนับสนุนสำหรับเฟิร์มแวร์ที่มาพร้อมกับ macOS 12 “Monterey” ไม่สามารถดาวน์โหลดเวอร์ชันเฟิร์มแวร์ที่ต้องการได้ เนื่องจากเฟิร์มแวร์ได้รับการติดตั้งโดย iBoot ในขั้นตอนก่อนที่จะถ่ายโอนการควบคุมไปยังระบบปฏิบัติการ และด้วยการตรวจสอบโดยใช้ลายเซ็นดิจิทัล
ที่มา: opennet.ru