เมื่อฉันรัน$ls
ในไดเรกทอรีรากของฉัน/mach_kernel
พบไฟล์ ฉันสมมติว่านี่เป็นเคอร์เนล OSX ฉันมักจะคิดว่า OSX ใช้เคอร์เนลไฮบริดของ XNU แล้วทำไมไฟล์นี้ถึงเรียกว่า "MACH" ฉันกำลังวิ่ง Lion
เมื่อฉันรัน$ls
ในไดเรกทอรีรากของฉัน/mach_kernel
พบไฟล์ ฉันสมมติว่านี่เป็นเคอร์เนล OSX ฉันมักจะคิดว่า OSX ใช้เคอร์เนลไฮบริดของ XNU แล้วทำไมไฟล์นี้ถึงเรียกว่า "MACH" ฉันกำลังวิ่ง Lion
คำตอบ:
จากสิ่งที่หน้า Wikipedia ของ XNUพูดว่า XNU นั้นอิงจาก Mach ตั้งแต่ OS X เริ่มต้นใช้เคอร์เนล Mach และตอนนี้ใช้อนุพันธ์ของมันพวกเขาอาจแค่เก็บชื่อไฟล์ของเคอร์เนลเหมือนกันดังนั้นพวกเขาจึงไม่ต้องปรับแต่งเฟิร์มแวร์ในระหว่างการอัพเกรดหรือด้วยการเปิดตัวเครื่องใหม่
ไฟล์นี้เรียกว่า / mach_kernel ด้วยเหตุผลทางประวัติศาสตร์ XNU นั้นแท้จริงแล้วเป็นลูกผสมของมัคและเลเยอร์ BSD (ลืม Wikipeida มีhttp://www.amazon.com/Mac-OS-iOS-Internals-Apples/dp/1118057651ซึ่งดูเหมือนชัดเจนยิ่งขึ้น)
ในความเป็นจริงเคอร์เนลนี้ไม่ได้เป็นภาพที่แน่นอนซึ่งได้รับการโหลด - มีแคชเคอร์เนลเชื่อมโยงล่วงหน้า (พร้อม kexts ที่จำเป็นทั้งหมด) ใน /System/Library/Caches/com.apple.kext.caches/Startup