4 คะแนน โดย GN⁺ 2024-10-16 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • 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 ความคิดเห็น

 
GN⁺ 2024-10-16
ความเห็นจาก Hacker News
  • การรับรองของ Sequoia ไม่ใช่เรื่องใหม่ OS X ได้รับการรับรองจาก Open Group มานานแล้ว
  • มีข้อสงสัยว่าการรับรองแบบนี้สำคัญอย่างไร
  • macOS ได้รับการรับรองว่าเป็น 'Unix' แต่ BSD ยุคใหม่กลับไม่ได้ ทั้งที่มาจากโค้ดเบสเดียวกัน จึงน่าสงสัยว่าทำไมถึงเป็นเช่นนั้น
  • ประเด็นสำคัญคือสามารถเรียก poll() บนอุปกรณ์เทอร์มินัลได้หรือไม่
    • ฟีเจอร์นี้ขาดหายไปตั้งแต่ยุคแรกของ Mac OS X
    • ซอฟต์แวร์ข้ามแพลตฟอร์มจำเป็นต้องรองรับทั้ง select() และ poll() เสมอ
    • บน Mac OS X ต้องใช้ select() ส่วนบนระบบอื่นใช้ poll()
    • ถ้าทำให้มาตรฐานเป็น poll() ได้ก็น่าจะดี
  • เปรียบเทียบหน้าแมนนวลของ macOS กับข้อกำหนดการรับรอง
    • system call poll() ของ macOS ไม่รองรับอุปกรณ์
    • ข้อกำหนดการรับรองระบุว่าฟังก์ชัน poll() และ ppoll() ต้องรองรับอุปกรณ์หลากหลายประเภท
  • จึงสงสัยว่าใน macOS 15 บั๊กนี้ถูกแก้แล้ว หรือการรับรองนี้ไม่มีความหมายกันแน่
  • ต่อให้ไม่นับเรื่องการรับรอง Linux กับ macOS ก็คล้ายกันมาก
    • มีความต่างอย่าง xdg-open กับ open, systemd กับ launchd, และ sed -i กับ sed -i ''
  • ไม่เข้าใจว่าทำไมยังได้รับการรับรองต่อเนื่อง ทั้งที่ POSIX semaphore ใช้งานบน macOS ไม่ได้
  • สงสัยว่า Apple ต้องการการรับรองนี้ไปเพื่ออะไร
    • ดูไม่น่าใช่ความตั้งใจที่จะทำให้มีการใช้ macOS server มากขึ้น
  • สงสัยว่า Apple มีแผนเกี่ยวกับเซิร์ฟเวอร์ใหม่หรือไม่
  • หวังว่า Apple จะผลักดันให้แก้ช่องว่างใหญ่ด้านความเข้ากันได้กับ Unix โดยเฉพาะการรองรับ pipe2