อย่างที่เรานำเสนอไปว่า เมื่อ Apple เปลี่ยนมาใช้ชิป M1 บนคอมพิวเตอร์ตระกูล Mac ซึ่งเป็นชิปของตัวเอง (ที่ความจริงก็มาจากสถาปัตยกรรม ARM นั่นแหละ) โดยเราเคยบอกไปว่า Rosetta 2 คือกระบวนการการแปลโค้ดไบนารีของแอปต่าง ๆ ของแอป x86-64 เดิมมาทำงานบนชิปใหม่ที่เป็น ARM ได้ คลิกอ่านเพิ่มเติม
และชื่อนี้มีที่มาอย่างไร ?
Rosetta มาจาก “Rosetta Stone” นั้นเป็นชื่อของศิลาจารึก ที่ทำจากหินแกรนด์โอไดโอไรต์ มีการบันทึกกฤษฏีกา ซึ่งตราขึ้นในพระนามาภิไธยพระเจ้าทอเลมีที่ 5 (Ptolemy V) ณ เมืองเมมฟิส ประเทศอียิปต์ เมื่อ 196 ปีก่อนคริสตกาล
ศิลานี้จึงเป็นเครื่องไขความหมายของอักขระไฮเออโรกลีฟอียิปต์ และเปิดช่องให้เข้าถึงประวัติศาสตร์อียิปต์โบราณนั่นเอง ก็คือการแปลภาษานี่แหละ ทำให้โลกรู้อารยธรรมของอียิปต์เมื่อ 2,000 ปีก่อน และชื่อของวัตถุนี้มาจาก็มาจากเมืองที่มีการกล่าวว่าค้นพบ ชื่อเมือง Roshid ซึ่งมีอีกชื่อเรียกว่า Rosetta
และทำไม Apple ใช้ชื่อนี้ ?
ยังไม่มีข้อมูลแน่ชัด แต่จากข้อมูลที่มาของวัตถุ Rosetta ก็เข้าใจได้ว่าทาง Apple สื่อถึงการแปลภาษาทางคอมพิวเตอร์แบบเก่าให้เป็นแบบใหม่นั่นเอง
Rosetta ครั้งแรกของ Apple
ย้อนกลับไปในปี 2005 ที่ทาง Apple ประกาศตัดสินใจย้ายมาใช้ CPU Intel และเริ่มออกขายสู่ตลาดจริงในปี 2006 ทาง Apple เข้าใจดีกว่า CPU ของเดิม (PowerPC) มันคนละสถาปัตยกรรมกับ Intel ส่งผลให้มีปัญหากับการรันโปรแกรมเก่า ๆ เมื่อเปลี่ยนมาใช้ Intel เนื่องจากปัญหาทางด้านการเขียนโค้ดที่คนละรูปแบบ แม้ว่าจะมีการสามารถพอร์ตแอปไปยัง Intel Mac OS X ได้ (ที่ Apple เรียกว่า “Universal App”)
แต่ระยะแรก ๆ ต้องให้เวลานักพัฒนากว่าหลาย ๆ แอปจะพอร์ตเสร็จ หรือแปลงโค้ดภาษาออกมาสำเร็จรูปในตัวเอง นอกจากนี้ยังมีผู้ใช้ที่จำเป็นต้องใช้โปรแกรมเก่า ๆ ที่เลิกพัฒนาไปแล้วอยู่พอสมควรในยุคนั้น
จึงได้พัฒนาให้ระบบปฏิบัติการ Mac OS X Tiger 10.4.4 มีเครื่องมือ “Rosetta” เพื่อแปลภาษาที่เขียนโปรแกรม ให้สามารถรันโปรแกรมเก่าจาก PowerPC บน Intel ได้ แต่ก็ไม่ได้รองรับทุกโปรแกรม ดูรายชื่อโปรแกรมที่ไม่รองรับ Rosetta ตัวแรกได้ คลิกที่นี่
ทั้งนี้ Rosetta ตัวแรกทาง Apple ก็พูดอยู่เหมือนกับ Rosetta 2 ว่า “อาจทำให้ประสิทธิภาพการทำงานของโปรแกรมลดลง” เช่นกัน
ทั้งนี้ระยะที่ Apple ใส่ Rosetta ไว้กับระบบปฏิบัติการของตัวเองใส่มาจนถึงเวอร์ชั่น Snow Leopard 10.6 และถอดออกใน Lion 10.7 ที่เปิดตัวในปี 2011 มีระยะเวลาประมาณ 6 ปีที่ใส่มาให้ เนื่องจากเข้าถึงหลังช่วงเปลี่ยนผ่านอย่างสมบูรณ์ นักพัฒนาได้ทำแอปส่วนใหญ่ให้รองรับ Intel แล้ว
Rosetta 2 เปลี่ยนผ่านจาก Intel มา Apple Silicon
เมื่อล่าสุดประกาศอย่างเป็นทางการเรื่องชิป Apple M1 (Apple Silicon) ที่เป็น ARM based ชื่อของ Rosetta ถูกนำกลับมาใช้อีกครั้งเป็น Rosetta 2 เพื่อเข้ามาแก้ปัญหาในลักษณะเดียวกัน หลักการของ Rosetta น้ันไม่ใช่ Emulator ด้วย เป็นการแปลภาษาจริง ๆ เลย ต่างจากการรันแอป x86 ฝั่ง Windows บน Windows 10 เวอร์ชั่น ARM อันนั้นเป็นการ Emulator หรือจำลองความเข้ากันได้กับชุดคำสั่ง x86 ขึ้นมาอีกที
แต่ก็ยอมรับว่ามีข้อจำกัดอยู่เช่นกันที่แอปประเภท Kernel Extensions และ Virtual Machine ไม่รองรับการแปลภาษา ทำให้จุดนี้ไม่สามารถลง Windows ผ่านทาง Virtual Machine ได้ในขณะนี้ คลิกอ่านเพิ่มเติม
ก่อนยุค Rosetta ตัวแรก ทาง Apple ก็เคยใช้ Emulator
ในยุคที่ Apple ยังคงใช้ CPU PowerPC ก็มีช่วงนึงที่ Apple เปลี่ยนสถาปัตยกรรม แต่เปลี่ยนที่ตัว OS โดย Mac OS เดิมนั้น Apple เขียนเองทั้งหมด แต่พอ Mac OS X ออกมาที่เป็นรากฐานของ macOS ในปัจจุบัน พัฒนาจาก Unix ที่มีที่มาจาก Next Step OS เดิมที่ Apple ไปซื้อบริษัท Next Computer ที่ Steve Jobs แยกตัวไปเปิดก่อนหน้านี้กลับมา นั้นไม่มีความเข้ากันได้เลยกับ Mac OS เดิม ในยุคที่โปรแกรมยังไม่ค่อยพัฒนามาสู่ Mac OS X ทาง Apple ก็ได้แก้ปัญหาโดยการทำให้เครื่อง Mac ทำ Dual Boot 2 OS ที่ว่าได้ แต่ไป ๆ มา ๆ ก็ตัดออกในรุ่นหลัง แต่ด้วยความยังใช้ชิป PowerPC จึงสามารถทำ Emulator ได้ง่าย ๆ
ทาง Apple จึงออก Emulator ชื่อ “Classic Environment” เพื่อจำลองการทำงานของ “Mac OS ตัวเก่า” แต่ด้วยความเป็นที่ทั้งสอง OS ใช้ CPU PowerPC เหมือนกัน การจำลองจึงไม่มีการแปลภาษาโปรแกรมจริง ๆ เพราะเอา Mac OS ตัวเดิมมารันเลย แต่รันภายใต้ Mac OS X อีกที โดยมีการจำลอง Hardware บางส่วน (คล้าย ๆ กับ Android Emulator หรือ Emulator เครื่องเกมเก่า) แต่ว่าไม่มีการจำลอง CPU หรือแปลภาษาโปรแกรมแต่อย่างใด
อ้างอิง: Wikipedia, mgronline, Apple, The Register, Microsoft, Apple, enacademic