AerynOS, ההפצה החדשה שמציגה את עצמה כתשתית עם חזון פלטפורמה

איירון OS

במאמר טכני ארוך, אייקי דוהרטי (ידוע בהובלת פרויקטים כמו Solus ובתרומה ל-Clear Linux) מתאר את הפילוסופיה והארכיטקטורה של AerynOS, פרויקט חדש זה שמבקש לחשוב מחדש כיצד מערכת הפעלה צריכה להתנהג בעידן התשתית כקוד.

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

מהפצה לתשתיות

איירון OS נולד מתוך שאלה פּרוֹבוֹקָטִיבִי: "מה היה קורה אם מערכת ההפעלה הייתה מתנהגת כמו תשתית מודרנית?". התשובה היא פלטפורמה שנבנתה מהיסוד, מבלי לגרור את המוסכמות הישנות של הפצות מסורתיות, ובמקום לשנות מערכות קיימות, AerynOS מתחילה מיסודות נקיים, תוך מינוף ניסיון קודם וקבלת החלטות ארכיטקטוניות רדיקליות כדי להבטיח עקביות, הפיכות ופשטות מבנית.

אייקי דוהרטי מזכיר במאמרו כי אחת ההחלטות הבולטות ביותר היא אימוץ שרשרת הכלים של LLVM. במקום GNU המסורתי, תוך שימוש ב-libc++ ו-compiler-rt כברירת מחדל. בחירה זו אינה נובעת רק מהעדפות סגנוניות, אלא גם מאסטרטגיה. לאבחון מעולה וניידות רבה יותר. למרות שדרוג זה, AerynOS נותרה מחויבת להשתמש ב-glibc כספריית הסטנדרט שלה, ובוחרת בה על פני musl בזכות הביצועים המעולים שלה תחת עומסים מרובי הליכי משנה ויישומים תובעניים.

בנוסף לכך, מוזכר כי אחד אחת מהמושגים המרכזיים של AerynOS היא "חוסר מדינה": אף חבילה לא יכולה להתקין קבצים מחוץ ל-/usr. תיחום קפדני זה מפריד בין מרחב המשתמש (/etc, /var) למרחב המערכת, ובכך מבטל ניגודי מיזוג ומקל על שדרוגים נקיים. רעיון זה, שראשיתו ב-Clear Linux, מבקש לאכוף ברירות מחדל הגיוניות ולהימנע מהמורכבות המיותרת שמערכות גמישות יותר מציגות לעתים קרובות.

עדכונים אטומיים והפיכים

איירון OS משתמש במערכת ניהול חבילות חדשה לגמרי, הנקראת Moss, שמבצע עסקאות אטומיות. כל עדכון יוצר עץ /usr חדש באמצעות קישורים קשיחים ממאגר נטול כפילויות, ומוחלף עם העץ הנוכחי באופן אטומי באמצעות renameat2(). מנגנון זה מבטיח שהעדכונים יושלמו במלואם או לא יוחלו כלל, תוך הימנעות ממצבי ביניים.

ניהול אתחול גם שובר את המסורת. הודות לכלים כמו blsforme ו-disks-rs, AerynOS מייצר באופן דינמי את שורת הפקודה של הליבה על ידי קריאה ישירה של בלוקי-על של מערכת הקבצים, ובכך מבטל את הצורך ב-root=. בנוסף, כל ליבה קשורה לעסקה הספציפית שלה, מה שמקל על החזרות המערכת מתפריט האתחול ומאפשר בנייה מחדש של סביבת האתחול מאפס במקרה של אובדן ESP.

פורמט .stone: דרך חדשה לאריזת תוכנה

מרכיב מרכזי נוסף הוא פורמט .stone, חבילה בינארית מודרנית מתוכנן עם אי-תלות בגרסה ויעילות גבוהה. כל קובץ .stone מכיל:

  • תוכן נטול כפילויות של קבצי חבילה
  • אינדקס גיבוב (XXH128, עם תוכניות לעבור ל-Blake3)
  • מפה של מערכת הקבצים היעד
  • מטא-נתונים שהוקלדו כגון שם, גרסה, יכולות וכו'.

במקום להתקין קבצים ישירות, .stone מאוחסנים בחנות Content Addressable (CAS) וממורכבים כחלק מעסקה. גישה זו לא רק משפרת את הביצועים, אלא גם מאפשרת לבטל בקלות כל שינוי.

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

האם AerynOS בלתי ניתן לשינוי?

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

למרות היותה בשלב אלפא, ל-AerynOS כבר יש קבצי ISO זמינים, תמיכה ב-GNOME, תאימות עם Steam, NVIDIA, Flatpak ומשתמשים אמיתיים שמשבחים את היציבות והביצועים שלה. המערכת כבר עובדת מספיק טוב כדי להיבדק בתרחישים אמיתיים, אם כי היא עדיין בפיתוח.

מקור: https://aerynos.com