Rust for Linux כולל מספר שיפורים לתמיכה

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

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

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

כשנשאל על ההצעה להשתמש ב-Rust, הוא ציין ש"הפתרון כאן הוא פשוט: פשוט השתמש ב-C++ במקום ב-Rust."

אחרי זה במרץ הושקה התמיכה הראשונהe שאיפשר למקם את מנהלי ההתקן של Rust בעץ Linux-Next לבדיקות נוספות לפני הכללתם בסופו של דבר בליבה הראשית.

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

מיגל אוג'דהמפתח ליבת לינוקס התחיל הצעה לבקשת הערות (RFC) ברשימת התפוצה של ליבת לינוקס.

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

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

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

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

בעת עדכון המהדר, הצוות הצליח להסיר כמה תכונות לא יציבות מהרשימה: const_fn_transmute, const_panic, const_unreachable_unchecked, core_panic, ו-try_reserve.

בנוסף לכך, מודגש כי נוספו כמה אפשרויות מודולריזציה עוד להקצות כדי להשבית כמה פונקציות מיותרות: no_rc ו-no_sync.

Upstream, על מנת שהמקרה לשימוש של הליבה יתמוך היטב, או ליתר דיוק, "תמהיל" האפשרויות שהקרנל צריך, Upstream core הוסיפה גם no_fp_fmt_parse.

מצד שני, Rust אפשרה סדרה של אבחון נוסף עבור מהדר Rust ו-Clippy. הבדל אחד מ-C הוא שקצת קל יותר להשבית את אבחון החלודה בקוד, שהוא מחמיר יותר במקרה הכללי.

גם הפשטות ועדכוני מנהלי התקנים יושמו. הצוות הוסיף הפשטות עבור נעילות זרמים, התקשרויות לניהול צריכת חשמל, זיכרון io (readX / writeX), שבבי irq ומנהלי זרמים ברמה גבוהה, שבבי gpio (כולל שבבי irq), ציוד היקפי, ציוד היקפי amba ודרייברים.

התמיכה של ה הבקר משופר עם תשתית עצמאית באפיק, אובייקטים הניתנים לביטול, מוטקסים הניתנים לביטול, איטרטורי סיביות יעילים, אבחון פאניקה טוב יותר, ועטיפות מצביעים פשוטות. בנוסף, הוא שיפר ופישט אובייקטי Ref (תואם ל-refcount_t) והחליף את כל מופעי Rust.

ומנהל התקן חדש עבור התקני gpio PL061 יושם ונשלח כתיקון RFC.

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

מקור: https://lkml.org/lkml


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

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

*

*

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