חלודה, משהו שמפתחי לינוקס נראים מסכימים איתו

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

בוועידה הווירטואלית של אינסטלטורים של לינוקס 2020, זרימת ועידות המיקרו מאת LLVM ארגן מושב על שאלות פתוחות ומחסומים לקבלת חלודה במעלה הזרם בליבת הלינוקס.

העניין בנושא זה נראה לעין, מכיוון שהפגישה הזו הייתה העמוסה ביותר באירוע 2020.

אז עלינו לשכתב את כל גרעין הלינוקס בשפת Rust? דיון זה אינו מתוארך מהיום והודגש מאז הופעת הגרסה היציבה הראשונה של חלודה בשנת 2015.

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

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

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

בכנס הם הציגו את עבודתם בנושא אבות טיפוס של מודולי גרעין חלודה ודגלו באימוץ של חלודה בגרעין.

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

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

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

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

אלה השימוש בממשקי API קיימים בליבה, תמיכה בארכיטקטורה ושאלה לגבי תאימות ABI בין Rust ו- C.

למעשה, בתחילה הם מאמינים בכך הכנסת חלודה למבנה העץ חייבת לכבד את ממשקי ה- API הקיימים. 

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

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

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

ליבת לינוקס תומכת במגוון רחב של ארכיטקטורות, לרבות מהן לא קיים backend LLVM.

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

במיוחד הוא היה משוכנע שכל ארכיטקטורה עם גיבוי LLVM תתאים במהירות לחלודה. הדיון התמקד גם ביישומי חלודה חלופיים כנתיב לתמיכה רחבה יותר בארכיטקטורה.

הפגישה הסתיימה ללא אבני דרך ספציפיות נוספות, אך נראה שיש התלהבות כוללת לתמוך ב- Rust Mods והסכמה הולכת וגוברת בדרישות הכלליות לתמיכה זו.


תוכן המאמר עומד בעקרונותינו של אתיקה עריכתית. כדי לדווח על שגיאה לחץ כאן.

תגובה, השאר את שלך

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

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

*

*

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

  1.   טייס אוטומטי דיג'ו

    נראה שתחילתו של עידן חדש, C הבלתי ניתנת לעלות.

    שלום חלודה, ביי לינוס טורוואלדס!