- OS เวอร์ชันล่าสุดที่ Apple ออกวางจำหน่ายเป็นเวอร์ชันที่เข้ากันได้กับ UNIX™ ล่าสุดที่ผ่านการตรวจสอบอย่างเป็นทางการในรายการของ Open Group แต่สิ่งนี้อาจไม่ตรงกับสิ่งที่หลายคนเข้าใจ
- macOS ไม่ได้ใช้ซอร์สโค้ดของ AT&T และคำว่า "Unix" ก็ไม่ได้มีความหมายเช่นนั้นอีกต่อไป นับตั้งแต่ Novell เข้าซื้อ UNIX จาก Bell Labs ในปี 1993
- เกร็ดเพิ่มเติม: OS X ได้รับการรับรองเป็น UNIX มาตั้งแต่ 16 ปีก่อนแล้ว
ความหมายของการรับรอง UNIX™
- ไม่เกี่ยวข้องกับโค้ด และเป็นเช่นนี้มานานกว่า 30 ปีแล้ว
- ปัจจุบันการรับรอง UNIX™ หมายถึง "เข้ากันได้กับ POSIX"
- POSIX คือข้อกำหนดด้านความเข้ากันได้และชุดการทดสอบ ซึ่งกำหนดให้เครื่องมือที่ถูกต้องต้องอยู่ในตำแหน่งที่ถูกต้อง
- ระบบปฏิบัติการเมนเฟรม z/OS ของ IBM ก็อยู่ในรายการนี้เช่นกัน
นิยามของระบบปฏิบัติการที่คล้าย Unix
- ต้องดูเหมือน Unix ทำงานเหมือน Unix และสามารถย้ายโปรแกรมที่เขียนสำหรับ Unix มารันได้โดยแทบไม่ต้องแก้ไข
- แกนหลักของ macOS ตรงตามเงื่อนไขนี้ได้อย่างเพียงพอ โดยใช้เคอร์เนล XNU และ user space ที่ส่วนใหญ่สืบทอดมาจากโค้ด BSD
- XNU มีพื้นฐานจากเคอร์เนล Mach และยังมี "Unix server" ขนาดใหญ่ภายในเคอร์เนลที่สืบทอดจากโค้ด BSD
- user space ส่วนใหญ่เป็นโอเพนซอร์สและมาจาก BSD
- ชั้น GUI และส่วนที่มองเห็นได้ซึ่งทำให้มันดูสวยงามนั้นเป็นซอฟต์แวร์กรรมสิทธิ์
โครงการ Darwin ของ Apple
- ในอดีต Apple เคยเปิดให้ส่วนล่างของระบบปฏิบัติการใช้งานแยกต่างหากในรูปแบบโครงการชื่อ Darwin
- เคยมีหลายดิสทริบิวชันที่พยายามทำให้มันสมบูรณ์โดยใช้ชิ้นส่วนจาก FOSS OS อื่น ๆ เช่น OpenDarwin และ PureDarwin
- โครงการ NextBSD เดินในทิศทางตรงกันข้าม โดยคงเคอร์เนล FreeBSD ไว้ แต่ปรับให้สามารถใช้โค้ดระดับสูงของ Apple เช่น launchd ได้
วิวัฒนาการของ macOS
- ปลายปี 1996 Apple ประกาศเข้าซื้อ NeXT Computer และในเดือนตุลาคม 1997 ก็เปิดตัวพรีวิวของ Rhapsody ซึ่งเป็น OS รุ่นถัดไป
- Rhapsody แทบจะเหมือนกับ NeXTstep 5 ทุกประการ
- ในปี 1999 มันกลายเป็น Mac OS X Server 1.0 และต่อมาในปี 2000 ก็พัฒนาเป็น Mac OS X 1.0
- ตั้งแต่ 10.8 Mountain Lion ชื่อถูกย่อเป็น OS X และตั้งแต่ 10.12 Sierra ก็เปลี่ยนเป็น macOS
- แต่ถึงอย่างนั้น มันก็ยังคงคล้ายกับ NeXTstep 0.8 ที่ Steve Jobs สาธิตไว้ในปี 1988 มากพอที่จะจดจำได้
ความเห็นของ GN⁺
- การที่ macOS ได้รับการรับรอง UNIX ดูจะไม่ได้มีความหมายมากนัก และสำหรับคนส่วนใหญ่ก็คงไม่ส่งผลในทางปฏิบัติ
- แต่สิ่งที่น่าสนใจคือ Darwin ซึ่งเป็นพื้นฐานของ macOS นั้นเป็นโอเพนซอร์ส ทำให้นักพัฒนาสามารถเข้าใจการทำงานภายในของ macOS ได้ดีขึ้น
- ความเข้ากันได้กับ POSIX ยังมีบทบาทสำคัญต่อการทำให้ซอฟต์แวร์พกพาข้ามระบบปฏิบัติการได้ แต่การยึดตามมาตรฐานล่าสุดดูจะไม่ใช่สิ่งสำคัญอันดับต้น ๆ อีกต่อไป
- หากมองเส้นทางวิวัฒนาการจาก NeXTSTEP มาสู่ macOS จะเห็นได้ว่า นวัตกรรมด้านส่วนติดต่อผู้ใช้และประสบการณ์นักพัฒนามีความสำคัญต่อความสำเร็จของระบบปฏิบัติการมากเพียงใด
- ท้ายที่สุดแล้ว สิ่งที่สำคัญกว่าการรับรอง UNIX คือ macOS เป็นระบบที่เป็นมิตรกับนักพัฒนา ใช้งานง่าย และมีระบบนิเวศที่แข็งแกร่ง แต่การรับรอง UNIX ก็ยังมีความหมายเชิงสัญลักษณ์ว่า macOS มีรากฐานที่มั่นคง
1 ความคิดเห็น
ความเห็นจาก Hacker News
poll()บนอุปกรณ์เทอร์มินัลได้หรือไม่select()และpoll()เสมอselect()ส่วนบนระบบอื่นใช้poll()poll()ได้ก็น่าจะดีpoll()ของ macOS ไม่รองรับอุปกรณ์poll()และppoll()ต้องรองรับอุปกรณ์หลากหลายประเภทxdg-openกับopen,systemdกับlaunchd, และsed -iกับsed -i ''pipe2