רוזטה 2

במעברי חומרה משמעותיים, אחד האתגרים הגדולים ביותר הוא תמיכה באפליקציות. אפליקציות שפותחו כדי לרוץ על מעבד ספציפי לא יפעלו על מעבד אחר ללא קידוד מחדש והידור מחדש. אפל פתרה את הבעיה הזו עם Rosetta 2 inmacOS Big Sur.

עם האפל סיליקוןהמעבר הושלם פחות או יותר בסוף 2022, אפל מצפה מהמפתחים לבנות תוכנה שפועלת הלאהסדרת Mמעבדים באופן מקורי. Rosetta 2 עדיין עובד, אבל המשתמשים צריכים לצפות שאפל תסיר אותוmacOSבשלב מסוים.

מה זה רוזטה 2

זוהי תכונה מאחורי הקלעים ב-macOS Big Sur כחלק מהמעבר של אפל מעיצובי Mac מבוססי אינטל. הוא משמש לתרגום יישומי Mac מבוססי אינטל כך שיוכלו לפעול על מחשבי Apple Silicon Mac מבלי לשנות את קוד המקור.

טים קוק מסביר את המעבר של אפל ממחשבי Mac מבוססי אינטל

ליתר דיוק, הוא מתרגם הוראות מעבד x86_64 (המכונה אינטל 64 סיביות) עבור Apple Silicon מבוסס ARM, שהופיע לראשונה במחשבי Mac עם שבב M1. זה לא נועד להחליף אפליקציות מקוריות אלא לתת למפתחים זמן ליצור "בינארי אוניברסלי" לאפליקציות שכבר מוצעות ב-Mac.

Rosetta 2 עובד עם אפליקציות מבוססות אינטל המופצות דרך ה-MacApp Storeויישומי שולחן עבודה שהורדו והותקנו ממקורות חיצוניים.

איך עובדת רוזטה 2

ההבדל הגדול עם Rosetta 2 בהשוואה לגרסה המקורית הוא שהיא מתרגמת אוטומטית אפליקציות שאינן מקוריות כשהן מותקנות, לא בזמן ריצה. זה מגדיל את הביצועים הכוללים של האפליקציה מכיוון שאין הוצאות עיבוד נוספות. עם זאת, הוא מתרגם קוד תוך כדי תנועה לפי הצורך, כמו מהדרים של JavaScript עבור דפדפני אינטרנט בדיוק בזמן (JIT).

Maya עבור Mac באמצעות Rosetta 2

במהלך המעבר ל-PowerPC, כאשר המשתמש השיק אפליקציה, ליבת מערכת ההפעלה (הליבה) חיפשה אם לאפליקציה יש קובץ בינארי מקורי. אם לא, הקרנל ביצע את הבינארי באמצעות Rosetta. גם Rosetta וגם האפליקציה רצו באותו שרשור עיבוד, מה שאפשר לראשון לתרגם במהירות בלוק של קוד אפליקציה ולהפעיל את הבלוק הספציפי הזה. שיטה זו מכונה קומפילציה בדיוק בזמן (JIT).

בתיעוד של אפל נכתב כי כאשר נתקלה רוזטה בקריאה לשגרה שעדיין לא תרגמה, היא תרגמה את השגרה הדרושה והמשיכה בביצוע. תהליך זה הבטיח "מעבר חלק ומתמשך בין תרגום לביצוע". Rosetta גם עשתה אופטימיזציה של הקוד המתורגם כדי לספק חוויה כמעט מקורית בחומרה שאינה מקורית.

אם המפתח בחר להדר אפליקציה באמצעות הפורמט הבינארי האוניברסלי, למשתמשים הייתה אפשרות להפעיל את קובץ ההפעלה הלא מקורי באמצעות Rosetta. זה איפשר להם להשתמש בתוספים ישנים יותר מבוססי PowerPC שלא תמכו באופן מקורי בארכיטקטורת המעבד של אינטל.

Rosetta 2 ב-macOS Big Sur תומך ב"אפליקציות Pro המורכבות ביותר והתוספים שלהן."

המעבר של אפל סיליקון

אפל ביצעה מעבר חומרה משמעותי ב-2006 כאשר עברה ממעבדי PowerPC לאינטל. זה בולט מכיוון שאפל לא רק החליפה מעבדים והמשיכה הלאה. PowerPC ואינטל משתמשות בשני עיצובי מעבד שונים, ומבצעות הוראות עיבוד בצורה שונה.

Apple Silicon עבור Mac יתבסס על ארכיטקטורת arm64

בזמנו, זה אומר שבעלי Mac לא יכלו להריץ תוכנה המיועדת למכונת PowerPC באופן מקורי על מחשב מבוסס אינטל (המכונה x86) ללא תרגום בזמן אמת או שכתוב הקוד כדי "לדבר" בשפה אחרת מבוססת אינטל. לשתי השיטות היו יתרונות וחסרונות.

אפל מתמודדת כעת עם אותה בעיה עם המעבר שלה ממעבדי אינטל לאלה המבוססים על ארכיטקטורת ה-CPU של ARM. שלא כמו המעבר הראשון, שבו אפל עיצבה מחדש את מחשבי ה-Mac סביב השבבים של אינטל, אפל יוצרת כעת מעבדים פנימיים תוך שימוש בעיצוב בסיסי שהיא נותנת רישיונות מ-Arm Holdings. החברה האחרונה לא מייצרת שבבים - היא מעצבת את טכנולוגיית הליבה ומעניקה לה רישיונות כדי שיצרני מעבדים יוכלו לכלול תכונות ייחודיות.

אפל משתמשת בעיצובים של ARM בכל המעבדים הפנימיים המותקנים עלאייפון, iPad, iPod Touch,Apple TV,Apple Watch, וה-HomePod. רובם הם מכשירים ניידים, ו-ARM לא צברה דריסת רגל חזקה בשוק המחשבים האישיים הרווי כיום ב-AMD ואינטל. לפני כניסתה של אפל, מחשבים מבוססי ARM היו איטיים יותר ממקביליהם מבוססי AMD ואינטל. עם זאת, שבב M1 של אפל מתגלה כמהיר יותר מכל מק מבוססי אינטל וממחשבים שולחניים רבים של מק.

הולך יוניברסל

אחת הדרכים להציע אפליקציות עבור שני עיצובי CPU נפרדים היא על ידי קומפילציה של אפליקציה המכילה מספר קובצי הפעלה באמצעות הפורמט הבינארי האוניברסלי. לדוגמה, האפליקציה יכולה להכיל קובצי הפעלה עבור מעבדי 32 סיביות ו-64 סיביות של אינטל. הכותרת של האפליקציה כוללת מידע על קובצי ההפעלה כך שמערכת ההפעלה האם תדע איזה מהם להפעיל.

פורמט הקובץ Universal 2 החדש של אפל

אפל אכפה שיטה זו במהלך המעבר שלה מ-PowerPC לשבבי אינטל, כך שאפליקציות חדשות - לא קיימות - עבדו באופן מקורי על שני העיצובים. אפליקציות המבוססות על פורמט הקובץ האוניברסלי הן גדולות יותר מאלה שהידור עבור ארכיטקטורת מעבד ספציפית אחת. הפורמט החדש לשילוב של קובצי הפעלה x86_64 ו-arm64 נקרא Universal 2.

שני הפורמטים האלה לא פותרים את הבעיה של הפעלת אפליקציות שכבר פורסמו על מק עם עיצוב CPU שונה לחלוטין. לדוגמה, אפליקציה המיועדת למחשבי Mac עם מעבדי אינטל לא יכולה לפעול באופן טבעיmacOSשונה עבור שבב מבוסס ARM. משהו מאחורי הקלעים חייב "לתרגם" את האפליקציה. היכנסו לווירטואליזציה בין פלטפורמות.

טכנולוגיה זו "מתרגמת" קבצים בינאריים המיועדים לארכיטקטורת CPU אחת כך שהם יכולים לפעול על מערכת הפעלה או מעבד אחר. הוא ממפה מחדש את כל הקריאות למערכת ההפעלה בהתחשב בהבדלי הקוד בין עיצוב מעבד אחד לאחר. הטכנולוגיה מאחורי Rosetta 2, QuickTransit של Transitive Corporation, משתמשת בשיטה זו.

ערכת המעבר למפתחים של אפל

ה-DTK הוא חלק מתוכנית ההתחלה המהירה של האפליקציה האוניברסלית של אפל עבור מפתחים להביא את האפליקציות הנוכחיות שלהם למחשבי Apple Silicon Mac ו-macOS Big Sur. תוכנית זו כוללת גרסאות בטא שלXcodeו-macOS, גישה למעבדות מפתחים ולפורומי חומרה, תמיכה טכנית ייעודית, משאבים וערכת חומרה - ה-DTK - לבדיקת האפליקציות שלהם בזמן אמת.

ערכת החומרה של אפל להבאת אפליקציות מבוססות אינטל לאפל סיליקון

הערכה היא אמק מיניעם המפרטים האלה:

  • מעבד:A12Z Bionic
  • זיכרון: 16GB
  • אחסון: 512GB SSD
  • קלט/פלט: 2x USB-C (10Gbps), 2x USB-A (5Gbps), 1x HDMI 2.0
  • קישוריות: WiFi 5, Bluetooth 5.0, Ethernet (1 ג'יגה-בתים)

שבב A12Z Bionic של הערכה הוא אותו שבב שנמצא ב-iPad Pro 2020. מחשבי Apple Silicon Mac הראשונים מריצים את מעבד M1, שהוא מהיר יותר מה-A12Z.

ההרשמה לתוכנית ההתחלה המהירה של האפליקציה האוניברסלית של אפל עלתה 500 דולר ללא החזר. התוכנית תסתיים שנה לאחר שהמפתח יקבל את התנאים של אפל וישלם את העמלה. יש להחזיר את ה-DTK בתוך 30 יום לאחר תום התוכנית או לאחר סיום.

מדדים מוקדמים צצו, והראו ירידה אפשרית בביצועים באפליקציות המשתמשות ב-Rosetta 2. בהתבסס על ה-Geekbench 4 הלא מקורי, שבב A12Z Bionic של אפל ב-DTK הצליח בממוצע 828 במבחן הליבה הבודדת ו-2,931 בממוצע ב-multi- מבחן ליבה. בנצ'מרקים מופיעים רק ארבע הליבות ה"גדולות" בתת-שעון בתדר של 2.4GHz, כלומר ייתכן שהאפליקציה המתורגמת לא תזהה את החומרה בצורה נכונה.

לשם השוואה, שבב A12Z Bionic באייפד פרו האחרון של אפל זוכה לציון ממוצע של 1,123 במבחן הליבה הבודדת ו-4,701 בממוצע במבחן מרובת הליבות. כאן Geekbench פועל באופן מקורי על חומרה מבוססת ARM, ללא צורך בתרגום. האפליקציה מפרטת גם את כל שמונה הליבות.

מחזיר

בפברואר 2021, אפל עודדה מפתחים להחזיר את ערכות המעבר למפתחים שלהם. החברה הציעה בתחילה 200 דולר של אשראי אפל ותאריך החזרה עד 31 במאי 2021. עם זאת, לאחר שהמפתחים התלוננו על ההחזר הנמוך יחסית למעבר PowerPC לאינטל, אפל הגדילה את ההצעה ל-500 דולר אשראי בחנות.

בתחילת 2021, אפל הציעה אשראי לחנות כדי לתמרץ מפתחים להחזיר את ערכותיהם ולקנות מחשבי M1 Mac

הרעיון היה שמפתחים ישתמשו באשראי כדי לקנות M1 Mac חדש להמשך פיתוח. עם זאת, מי שכבר קנה מכונת M1 יכול להשתמש בקרדיט ברכישות אחרות של אפל.

באימייל המלא של אפל למפתחים נכתב:

שוב תודה על ההשתתפות בתוכנית ההתחלה המהירה של האפליקציה האוניברסלית.

שמענו את המשוב שלך בנוגע לזיכוי השבח בסך 200 דולר ארה"ב שהוזכר בדוא"ל האחרון שלנו. הכוונה שלנו הייתה להכיר במאמץ האדיר שהשקעת ביצירת אפליקציות אוניברסליות מדהימות. על ידי שיתוף הפעולה איתנו מוקדם, הראית את המחויבות שלך לפלטפורמה שלנו ואת הנכונות להיות פורצי דרך.

אז במקום האשראי בסך 200 דולר שיפוג במאי, אנו נותנים לך אשראי אפל בסך 500 דולר ומאריכים את הזמן שבו תוכל להשתמש בו כדי לקבל M1 Mac חדש עד סוף השנה. אם כבר רכשת M1 Mac חדש, הקרדיט של Apple מעניק לך את הגמישות לרכוש כל מוצר של Apple כדי לעזור בעבודת פיתוח האפליקציה שלך.

בקרוב נשתף פרטים על איך לשלוח את ערכת המעבר למפתחים (DTK) בחזרה לאפל. שים לב שה-DTK לא יקבל עוד עדכוני תוכנה זמינים לציבור לאחר macOS Big Sur 11.2. אנו ממליצים לך להחזיר אותו בהקדם האפשרי כדי שעבודת הפיתוח שלך לא תופרע. וברגע שתחזיר את ה-DTK, תקבל את האשראי שלך מ-Apple.

שוב תודה לך שהפכת את השקת ה-Mac עם M1 להצלחה כה גדולה.

בברכה,

קשרי מפתחים של אפל

הֲסָרָה

במרץ 2021, גילו מחרוזות קוד ב-macOS 11.3 בטא 3מוּצָעש-Rosette 2 "יוסר עם התקנת עדכון זה." שורת קוד נוספת אמרה ש"רוזטה אינה זמינה יותר באזור שלך. יישומים הדורשים Rosetta לא יפעלו עוד."

אפל לא הודיעה על שום דבר בנוגע להסרה של רוזטה, ולא ברור מדוע החברה תעשה זאת בזמן הקרוב. נכון לפברואר 2021, כמעט מחצית מכל אפליקציות ה-macOS הפופולריות עדיין נזקקו לשכבת התרגום. יתכן שהקוד רק תכנן להסרה בעתיד הרחוק, מכיוון שהסרה שלו בשלב זה תגרום לאיחור מחשבי M1 Mac מיותר.

רוזטה

רוזטה תוכננה בתחילה לתרגם אפליקציות "משלוחות כרגע" שנבנו עבור Mac OS X שפעלו על מעבדי G3 ו-G4 של PowerPC. הוא לא תמך באפליקציות שנבנו עבור מערכות הפעלה ישנות יותר, כמו Mac OS 9, Mac OS 8 וכן הלאה. זה גם לא תמך באפליקציות שנבנו עבור מעבד ה-G5 של PowerPC, אם כי מפתחים יכלו לשנות קוד אפליקציה ספציפי ל-G5 כך שיוכלו לפעול על מחשבי Mac מבוססי אינטל באמצעות Rosetta.

Rosetta הושק עם Mac OS X

הגרסה הראשונה הגיעה ב-2006 ב-Mac OS X 10.4.4 "Tiger" שהותקן על המק הראשון עם מעבד אינטל. Rosetta לא נכללה ב-Mac OS X 10.6 "Snow Leopard", אך ניתן היה להוריד ולהתקין אותה באופן ידני. זה לא נכלל או הוצע ב-Mac OS X 10.7 "אריה" ואילך.

לפי אפל, באותה תקופה, אפליקציות שדרשו "צרכי מחשוב אינטנסיביים" לא היו תואמות לרוזטה, כמו אפליקציות שעסקו במודלים תלת מימדיים ומעקב אחר קרניים. מעבדי תמלילים ואפליקציות שדרשו "כמות מתונה של אינטראקציה עם המשתמש" והיו בעלי "צרכים חישוביים גבוהים" או השתמשו ב-OpenGL היו תואמים לרוב.

באוגוסט 2006, מדדים הראו שיישומי Mac המותאמים ל-PowerMac G5 פועלים לאט יותר מאשר אפליקציות מבוססות אינטלMac Proבאמצעות Rosetta. ביצועי האפליקציה המקורית היו עד פי שניים טובים יותר מהפעלת אותה אפליקציה דרך Rosetta, בהתאם למכונות ההשוואה. רוזטה נועדה להיות "תיקון" זמני בזמן שמפתחים עבדו על קבצים בינאריים אוניברסליים שרצו באופן מקורי על שתי ארכיטקטורות ה-CPU.

לדוגמה, Photoshop CS2 פעל בצורה גרועה במחשבי Mac מבוססי אינטל דרך Rosetta. אדובי פתרה את הבעיה על ידי משלוח Photoshop CS3 בפורמט בינארי אוניברסלי, מתן קבצים בינאריים נפרדים מקוריים עבור שבבי PowerPC ואינטל.

קרייג פדריגי מדבר על רוזטה 2

סמנכ"ל הנדסת תוכנה של אפלקרייג פדריגיהתפאר במהלךWWDCבשנת 2020 ש-Rosette 2 תהיה אפילו מהירה יותר, חזקה יותר ותואמת יותר מהגרסה המקורית של PowerPC. אפליקציות כבדות כמו מאיה ומשחקים כמוShadow of the Tomb Raiderכביכול לא יחווה להיט ביצועים הפועל על מחשבי Apple Silicon Mac באמצעות Rosetta 2.