อ่าน 4 นาที
ไบนารีสากล
รูป แบบ ไบนารีสากล (Universal Binary Format หรือ UFL) เป็นรูปแบบ ไฟล์ปฏิบัติการ ที่สามารถทำงานได้โดยตรงบน เครื่อง Mac ที่ใช้ สถาปัตยกรรม PowerPC และ x86 หรือบน เครื่อง Mac...
ไบนารีสากล

| การเปลี่ยนผ่านของ Mac ไปใช้โปรเซสเซอร์ Intel |
|---|
รูป แบบ ไบนารีสากล (Universal Binary Format หรือ UFL) เป็นรูปแบบไฟล์ปฏิบัติการที่สามารถทำงานได้โดยตรงบนเครื่อง Mac ที่ใช้ สถาปัตยกรรมPowerPCและx86หรือบน เครื่อง Mac ที่ใช้สถาปัตยกรรม Intel 64และARM64รูปแบบนี้มีต้นกำเนิดมาจากNeXTStepในชื่อ " Multi-Architecture Binaries " และโดยทั่วไปแล้วแนวคิดนี้รู้จักกันในชื่อ " Fat Binary"ดังที่เห็นได้ในPower Macintosh
ด้วยการเปิดตัวMac OS X Snow Leopardและก่อนหน้านั้น นับตั้งแต่การเปลี่ยนไปใช้ สถาปัตยกรรม 64 บิตโดยทั่วไป ผู้เผยแพร่ซอฟต์แวร์บางราย เช่นMozilla [ 1 ]ได้ใช้คำว่า "universal" เพื่ออ้างถึงไบนารีขนาดใหญ่ที่มีการสร้างสำหรับทั้งระบบ i386 (Intel 32 บิต) และ x86_64 กลไกเดียวกันที่ใช้ในการเลือกระหว่างการสร้างแอปพลิเคชัน PowerPC หรือ Intel ก็ใช้ในการเลือกระหว่างการสร้าง 32 บิตหรือ 64 บิตของสถาปัตยกรรม PowerPC หรือ Intel เช่นกัน
อย่างไรก็ตาม Apple ยังคงต้องการความเข้ากันได้กับทั้ง PowerPC และ Intel เพื่ออนุญาตให้ผู้เผยแพร่ซอฟต์แวร์บุคคลที่สามใช้เครื่องหมายการค้าของ Apple ที่เกี่ยวข้องกับไบนารีสากล[ 2 ] Apple ไม่ได้ระบุว่าผู้เผยแพร่ซอฟต์แวร์บุคคลที่สามดังกล่าวจะต้อง (หรือควร) รวมบิลด์แยกต่างหากสำหรับสถาปัตยกรรมทั้งหมดหรือไม่
ไฟล์ไบนารีแบบสากล (Universal Binary) ถูกนำมาใช้ในระบบปฏิบัติการ Mac OS ในงานApple Worldwide Developers Conference ปี 2005 เพื่อช่วยให้การเปลี่ยนผ่านจากสถาปัตยกรรม PowerPC เดิมไปสู่ระบบที่ใช้โปรเซสเซอร์ Intel ซึ่งเริ่มวางจำหน่ายในปี 2006 เป็นไปอย่างราบรื่น ไฟล์ไบนารีแบบสากลโดยทั่วไปจะประกอบด้วยแอปพลิเคชันที่คอมไพล์แล้วทั้งเวอร์ชัน PowerPC และ x86 ระบบปฏิบัติการจะตรวจจับไฟล์ไบนารีแบบสากลจากส่วนหัว และจะเรียกใช้ส่วนที่เหมาะสมสำหรับสถาปัตยกรรมที่ใช้งานอยู่ これにより แอปพลิเคชันจึงสามารถทำงานได้บนสถาปัตยกรรมใด ๆ ที่รองรับ โดยไม่มีผลกระทบต่อประสิทธิภาพการทำงาน นอกจากการเพิ่มพื้นที่จัดเก็บข้อมูลเนื่องจากไฟล์ไบนารีมีขนาดใหญ่ขึ้น
ตั้งแต่ Mac OS X Snow Leopard เป็นต้นไป จะรองรับเฉพาะ Mac ที่ใช้โปรเซสเซอร์ Intel เท่านั้น ดังนั้นซอฟต์แวร์ที่ขึ้นอยู่กับความสามารถที่มีอยู่ใน Mac OS X 10.6 หรือใหม่กว่า จะทำงานบน Mac ที่ใช้โปรเซสเซอร์ Intel เท่านั้น และจึงไม่จำเป็นต้องใช้ไบนารีแบบ Fat สำหรับ Intel/PPC นอกจากนี้ ตั้งแต่OS X Lion เป็นต้น ไป จะรองรับเฉพาะ Mac ที่ใช้โปรเซสเซอร์ Intel 64 บิตเท่านั้น ดังนั้นซอฟต์แวร์ที่ขึ้นอยู่กับคุณสมบัติใหม่ใน OS X 10.7 หรือใหม่กว่า จะทำงานบนโปรเซสเซอร์ 64 บิตเท่านั้น และจึงไม่จำเป็นต้องใช้ไบนารีแบบ Fat 32 บิต/64 บิต[ 3 ] [ 4 ]ไบนารีแบบ Fat จะจำเป็นเฉพาะสำหรับซอฟต์แวร์ที่ออกแบบมาเพื่อให้เข้ากันได้กับMac OS X เวอร์ชันเก่า ที่ทำงานบนฮาร์ดแวร์รุ่นเก่าเท่านั้น
รูปแบบไบนารี Universal 2ใหม่ได้รับการแนะนำในงาน Worldwide Developers Conference ปี 2020 [ 5 ] Universal 2 ช่วยให้แอปพลิเคชันสามารถทำงานได้ทั้งบน คอมพิวเตอร์ Macintosh ที่ ใช้Intel x86-64และARM64เพื่อให้สามารถเปลี่ยนไปใช้ Apple Siliconได้
แรงจูงใจ
มีทางเลือกสองทางโดยทั่วไป ทางแรกคือการจัดเตรียมไฟล์ไบนารีสองไฟล์แยกกัน ไฟล์หนึ่งคอมไพล์สำหรับสถาปัตยกรรม x86 และอีกไฟล์หนึ่งสำหรับสถาปัตยกรรม PowerPC อย่างไรก็ตาม วิธีนี้อาจทำให้ผู้ใช้ซอฟต์แวร์ที่ไม่คุ้นเคยกับความแตกต่างระหว่างสองสถาปัตยกรรมนี้สับสนได้ แม้ว่าความสับสนจะสามารถแก้ไขได้ด้วยการปรับปรุงเอกสารประกอบ หรือการใช้ซีดีแบบไฮบริดทางเลือกอีกทางหนึ่งคือการจำลองสถาปัตยกรรม หนึ่งโดยระบบที่ทำงานบนสถาปัตยกรรมอีกแบบหนึ่ง วิธีนี้ส่งผลให้ประสิทธิภาพต่ำลง และโดยทั่วไปถือเป็นวิธีแก้ปัญหาชั่วคราวที่จะใช้จนกว่าจะมีไฟล์ไบนารีแบบสากลหรือไฟล์ไบนารีที่คอมไพ ล์ เฉพาะออกมา เช่นเดียวกับRosetta
ไฟล์ไบนารีแบบยูนิเวอร์แซลมีขนาดใหญ่กว่าไฟล์ไบนารีแบบแพลตฟอร์มเดียว เนื่องจากต้องจัดเก็บสำเนาโค้ดที่คอมไพล์แล้วหลายชุด อย่างไรก็ตาม เนื่องจากทรัพยากรที่ไม่สามารถเรียกใช้งานได้บางส่วนถูกใช้ร่วมกันโดยสถาปัตยกรรมทั้งสอง ขนาดของไฟล์ไบนารีแบบยูนิเวอร์แซลที่ได้จึงสามารถเล็กกว่าขนาดรวมของไฟล์ไบนารีแต่ละไฟล์ได้ และโดยปกติแล้วจะเล็กกว่า นอกจากนี้ยังไม่ต้องการRAM เพิ่มเติม เนื่องจากจะโหลดเพียงสำเนาเดียวจากสองสำเนานั้นเพื่อเรียกใช้งาน
ประวัติศาสตร์
แนวคิดของไบนารีสากลมีต้นกำเนิดมาจาก " ไบนารีแบบหลายสถาปัตยกรรม " ในNeXTSTEPซึ่งเป็นรากฐานทางสถาปัตยกรรมหลักของMac OS X NeXTSTEP รองรับไบนารีสากลเพื่อให้ไฟล์ปฏิบัติการหนึ่งไฟล์สามารถทำงานได้บนสถาปัตยกรรมหลายแบบ รวมถึงm68kของMotorola , x86ของIntel , SPARCของSun MicrosystemsและPA-RISCของHewlett-Packard NeXTSTEP และ macOS ใช้ ไฟล์เก็บถาวร Mach-Oเป็นรูปแบบไบนารีที่อยู่เบื้องหลังไบนารีสากล
ก่อนหน้านี้ Apple เคยใช้เทคนิคที่คล้ายกันนี้ในช่วงเปลี่ยนผ่านจาก โปรเซสเซอร์ 68kไปเป็น PowerPC ในช่วงกลางทศวรรษ 1990 ไฟล์ปฏิบัติการแบบสองแพลตฟอร์มเหล่านี้เรียกว่า "ไบนารีขนาดใหญ่ " (fat binaries ) ซึ่งหมายถึงขนาดไฟล์ที่ใหญ่กว่าปกติ
Xcode 2.1 ของ Apple รองรับการสร้างไฟล์เหล่านี้ ซึ่งเป็นคุณสมบัติใหม่ในเวอร์ชันนั้น แอปพลิเคชันง่ายๆ ที่พัฒนาโดย คำนึงถึง ความเป็นอิสระจากโปรเซสเซอร์อาจต้องการการเปลี่ยนแปลงเพียงเล็กน้อยในการคอมไพล์เป็นไบนารีสากล แต่แอปพลิเคชันที่ซับซ้อนซึ่งออกแบบมาเพื่อใช้ประโยชน์จากคุณสมบัติเฉพาะสถาปัตยกรรมอาจต้องการการแก้ไขอย่างมาก แอปพลิเคชันที่สร้างขึ้นโดยใช้เครื่องมือพัฒนาอื่นๆ อาจต้องการการแก้ไขเพิ่มเติม นี่คือเหตุผลต่างๆ ที่ทำให้เกิดความล่าช้าระหว่างการเปิดตัวคอมพิวเตอร์ Macintosh ที่ใช้ Intel และการวางจำหน่ายแอปพลิเคชันของบุคคลที่สามในรูปแบบไบนารีสากล การที่ Apple ส่งมอบคอมพิวเตอร์ที่ใช้ Intel เร็วกว่ากำหนดการที่ประกาศไว้หลายเดือนก็เป็นอีกปัจจัยหนึ่งที่ทำให้เกิดช่องว่างนี้
Xcode 2.4 ของ Apple พัฒนาแนวคิดของไบนารีแบบสากลไปอีกขั้น โดยอนุญาตให้สร้างไบนารีสำหรับสถาปัตยกรรมสี่แบบ (32 บิตและ 64 บิตสำหรับทั้ง Intel และ PowerPC) จึงทำให้ไฟล์ปฏิบัติการเพียงไฟล์เดียวสามารถใช้ประโยชน์จากความสามารถของ CPU ในเครื่อง Mac OS X ได้อย่างเต็มที่
การใช้งานทั่วไป
นักพัฒนาซอฟต์แวร์จำนวนมากได้จัดเตรียมการอัปเดตไบนารีสากลสำหรับผลิตภัณฑ์ของตนตั้งแต่ WWDC ปี 2005 ณ เดือนธันวาคม 2008 เว็บไซต์ของ Apple แสดงรายการแอปพลิเคชันสากลมากกว่า 7,500 รายการ[ 6 ]
เมื่อวันที่ 16 เมษายน พ.ศ. 2550 Adobe Systemsได้ประกาศเปิดตัวAdobe Creative Suite 3ซึ่งเป็นเวอร์ชันแรกของชุดแอปพลิเคชันในรูปแบบ Universal Binary [ 7 ]
ตั้งแต่ปี 2006 ถึง 2010 แอปพลิเคชัน Mac OS X จำนวนมากถูกแปลงเป็นรูปแบบ Universal Binary (UB) รวมถึงQuarkXPress , Final Cut Studioของ Apple เอง, Adobe Creative Suite , Microsoft Office 2008และShockwave Playerเวอร์ชัน 11 หลังจากนั้นส่วนใหญ่กลายเป็นแอปพลิเคชันสำหรับ Intel เท่านั้น โปรแกรม PowerPC 32 บิตที่ไม่ใช่ Universal Binary จะสามารถทำงานบน Mac ที่ใช้ Intel และ Mac OS X 10.4, 10.5 และ 10.6 (ในกรณีส่วนใหญ่) แต่ประสิทธิภาพจะไม่ดีเท่าที่ควร เนื่องจากต้องมีการแปลงแบบเรียลไทม์โดยRosettaและจะไม่สามารถทำงานบน Mac OS X 10.7 Lion และเวอร์ชันที่ใหม่กว่าได้ เนื่องจาก Rosetta ไม่ได้เป็นส่วนหนึ่งของระบบปฏิบัติการอีกต่อไป
แอป iOS
Apple ใช้รูปแบบไบนารีแบบเดียวกันกับ Universal Binaries สำหรับ แอปพลิเคชัน iOSโดยค่าเริ่มต้นในหลายโอกาสของการทำงานร่วมกันทางสถาปัตยกรรม: ประมาณปี 2010 ในช่วงการเปลี่ยนผ่าน armv6-armv7-armv7s และประมาณปี 2016 ในช่วงการเปลี่ยนผ่าน armv7-arm64 App Storeจะลดขนาดไบนารีโดยอัตโนมัติ ไม่มีการกำหนดชื่อทางการค้าสำหรับแนวปฏิบัตินี้ เนื่องจากเป็นเพียงความกังวลของนักพัฒนา[ 8 ]
ยูนิเวอร์แซล 2
| การเปลี่ยนผ่านของ Mac ไปสู่Apple Silicon |
|---|
เมื่อวันที่ 22 มิถุนายน 2020 Apple ประกาศการเปลี่ยนผ่านถาวรเป็นเวลาสองปีจากโปรเซสเซอร์Intel x86-64 ไปเป็น Apple Siliconที่ใช้สถาปัตยกรรมARM64โดยเริ่มจากmacOS Big Surในช่วงปลายปี 2020 [ 9 ]เพื่อช่วยในการเปลี่ยนผ่านนี้ ได้มีการแนะนำไบนารี Universal 2 ใหม่ ซึ่งมีทั้ง โค้ด x86-64และ ARM64 บรรจุอยู่ในรูปแบบไบนารีแบบหลายสถาปัตยกรรม เพื่อให้สามารถเรียกใช้แอปพลิเคชันบนโปรเซสเซอร์ x86-64 หรือโปรเซสเซอร์ ARM64 ได้[ 5 ]
เครื่องมือ
เครื่องมือหลักสำหรับการจัดการ (การสร้างหรือการแยก) ไบนารีสากลคือlipoคำสั่งที่พบในXcodeคำ สั่งบน macOS และระบบ ที่คล้าย Unixfileอื่นๆสามารถระบุไบนารีสากล Mach-O และรายงานการสนับสนุนสถาปัตยกรรมได้[ 10 ] System ProfilerของSnow Leopardให้ข้อมูลนี้ในแท็บ แอปพลิเคชัน
ดูเพิ่มเติม
- สถาปัตยกรรมแอปเปิล-อินเทล
- การเปลี่ยนผ่านของ Mac ไปใช้โปรเซสเซอร์ Intel
- การเปลี่ยนผ่านของ Mac ไปสู่ Apple Silicon
- ไบนารีอ้วน
- โรเซตตา (ซอฟต์แวร์)
- เอ็กซ์สลิมเมอร์
ลิงก์ภายนอก
- ศูนย์ทรัพยากรการเปลี่ยนผ่านสำหรับนักพัฒนาของ Apple
- หลักเกณฑ์การเขียนโปรแกรมไบนารีสากลของแอปเปิล
- บทนำเกี่ยวกับระบบไบนารีสากลของแอปเปิล
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ ไบนารีสากล
รูป แบบ ไบนารีสากล (Universal Binary Format หรือ UFL) เป็นรูปแบบ ไฟล์ปฏิบัติการ ที่สามารถทำงานได้โดยตรงบน เครื่อง Mac ที่ใช้ สถาปัตยกรรม PowerPC และ x86 หรือบน เครื่อง Mac...
แรงจูงใจ
มีทางเลือกสองทางโดยทั่วไป ทางแรกคือการจัดเตรียมไฟล์ไบนารีสองไฟล์แยกกัน ไฟล์หนึ่งคอมไพล์สำหรับสถาปัตยกรรม x86 และอีกไฟล์หนึ่งสำหรับสถาปัตยกรรม PowerPC อย่างไรก็ตาม วิธีนี้อาจทำให้ผู้ใช้ซอฟต์แวร์ที่ไม่คุ้นเคยกับความแตกต่างระหว่างสองสถาปัตยกรรมนี้สับสนได้...
ประวัติศาสตร์
แนวคิดของไบนารีสากลมีต้นกำเนิดมาจาก " ไบนารีแบบหลายสถาปัตยกรรม " ใน NeXTSTEP ซึ่งเป็นรากฐานทางสถาปัตยกรรมหลักของ Mac OS X NeXTSTEP รองรับไบนารีสากลเพื่อให้ไฟล์ปฏิบัติการหนึ่งไฟล์สามารถทำงานได้บนสถาปัตยกรรมหลายแบบ รวมถึง m68k ของ Motorola , x86 ของ Intel ,...
การใช้งานทั่วไป
นักพัฒนาซอฟต์แวร์จำนวนมากได้จัดเตรียมการอัปเดตไบนารีสากลสำหรับผลิตภัณฑ์ของตนตั้งแต่ WWDC ปี 2005 ณ เดือนธันวาคม 2008 เว็บไซต์ของ Apple แสดงรายการแอปพลิเคชันสากลมากกว่า 7,500 รายการ [ 6 ]