Linux 6.1 עושה היסטוריה על ידי הצגת Rust כשפת התכנות השנייה בקרנל

Tux, הקמע של ליבת לינוקס

ליבת לינוקס היא עמוד השדרה של מערכות ההפעלה לינוקס (OS), והיא הממשק הבסיסי בין החומרה של המחשב לתהליכים שלו.

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

ככזה Rust מקבלת רק API רשמי כדי לאפשר פיתוח מודולים נפרדים או פיילוטים עבור לינוקס. המשמעות היא שהפתיחה של ליבת לינוקס לשפה זו נמשכת וכתוצאה מכך ביטול שפת ה-C לא מתוכנן למחר. עם זאת, מדובר בשינוי שמקורו בזמינות וביכולות של הצדדים השלישיים המעורבים בפיתוח הקרנל.

התכונות החדשות העיקריות של לינוקס 6.1

החידוש הגדול ביותר של לינוקס 6.1 הוא הגעתה של חלודה, כמו במשך כמה שנים, העבודה נמשכת מאחורי הקלעים כדי להפוך את הליבה להתאים לשפת התכנות המתפתחת. בעתיד, זה אמור להיות אפשרי לא רק לתכנת מודולים ב-C, אלא גם ב-Rust.

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

חידוש נוסף שיושם על ידי גרסה חדשה זו של לינוקס 6.1 הוא תמיכת AMD Platform Management Framework, המבטיח שיפורי ביצועים עם מעבדי AMD שונים (יחידות עיבוד מרכזיות).

מסגרת ניהול פלטפורמת AMD גם תמיכה מלאה עבור AMT (מעבר מצב אוטומטי) ול-CnQF (מסגרת קרירה ושקטה). החל מעדכון זה, למשתמשי ההפצה תהיה בעצם גישה לניהול הספק וטמפרטורה עמוק ומקיף יותר.

בנוסף לזה, אנחנו יכולים גם למצוא את זה מנגנון MGLRU כלול (LRU רב דורי), אשר החליף את יישום ה-LRU הישן (Last Recently Used) מבוסס על שני תורים עם מבנה רב-שלבי שקובע טוב יותר באילו דפי זיכרון נעשה שימוש בפועל ואילו ניתן לאלץ את ההחלפה.

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

זה בולט גם בלינוקס 6.1 אשר הוסיפה קריאה מיוחדת להקצאת זיכרון בתוכניות BPF (מקצה זיכרון), המספק הקצאת זיכרון בטוחה יותר בהקשר BPF מאשר kmalloc() רגיל. החלק הראשון של השינויים שולב, ומספק את היכולת ליצור דרייברים להתקני קלט עם ממשק HID (Human Interface Device), המיושם בצורה של תוכניות BPF. הקוד הוסר לחלוטין מהקרנל כדי לתמוך בפורמט קובץ ההפעלה a.out, שהוצא משימוש בגרסה 5.1, ונכון לגרסאות 5.18 ו-5.19, הושבת עבור כל הארכיטקטורות העיקריות.

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

החליף את יישום מנגנון הגנת CFI (Control Flow Integrity), הוספת בדיקות לפני כל קריאת פונקציה עקיפה כדי לזהות צורות מסוימות של התנהגות לא מוגדרת שעלולה להוביל להפרה של סדר הביצוע הרגיל (זרימת בקרה) כתוצאה משימוש בניצולים שמשנים את מצביעי הפונקציה המאוחסנים בזיכרון.

הטמעת ה-CFI הרגילה של פרויקט LLVM הוחלפה על ידי גרסה, המבוססת גם היא על השימוש ב-Clang, אך מותאמת במיוחד להגנה על תת-מערכות ברמה נמוכה ועל ליבות מערכות הפעלה. ב-LLVM יוצע יישום חדש בגרסת Clang 16 והוא יתאפשר עם האפשרות "-fsanitize=kcfi".

ההבדל העיקרי ביישום החדש הוא שהוא אינו קשור למיטובי זמן קישור (LTO) ואינו גורם להחלפת מצביעי פונקציות בקישורים בטבלת הקפיצה.

משאר השינויים שמתבלטים

  • עבור מודולי Linux Security Module (LSM), מסופקת היכולת ליצור בקרים שיירטו פעולות ליצירת מרחבי שמות.
  • סיפק כלים לאימות חתימות דיגיטליות PKCS#7 בתוכניות BPF.
  • /dev/random החזיר את היכולת להיפתח במצב לא חסימה (O_NONBLOCK), אשר הוסרה בטעות בליבת 5.6.
  • נוספה אזהרה במערכות x86 כאשר תת-מערכות ליבה מקצות דפי זיכרון שניתנים להפעלה וגם לכתיבה. בעתיד נשקלת האפשרות לאסור לחלוטין מיפוי זיכרון כזה.

סוף סוף אם אתה מעוניין לדעת יותר על זה, אתה יכול לבדוק את הפרטים בקישור הבא.


השאירו את התגובה שלכם

כתובת הדוא"ל שלך לא תפורסם. שדות חובה מסומנים *

*

*

  1. אחראי לנתונים: מיגל אנחל גטון
  2. מטרת הנתונים: בקרת ספאם, ניהול תגובות.
  3. לגיטימציה: הסכמתך
  4. מסירת הנתונים: הנתונים לא יועברו לצדדים שלישיים אלא בהתחייבות חוקית.
  5. אחסון נתונים: מסד נתונים המתארח על ידי Occentus Networks (EU)
  6. זכויות: בכל עת תוכל להגביל, לשחזר ולמחוק את המידע שלך.