הגרסה השלישית של התיקונים לתמיכה במנהלי התקן Rust בלינוקס כבר שוחררה

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

תמיכת חלודה נחשבת נסיונית, אך הכללתה בענף ה-linux-next כבר סוכמה. הפיתוח ממומן על ידי גוגל וארגון ISRG (Internet Security Research Group), המייסד של פרויקט Let's Encrypt ותורם לקידום HTTPS ופיתוח טכנולוגיות לשיפור אבטחת האינטרנט.

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

מנהלי התקנים של חלודה בלינוקס
Artaculo relacionado:
הגרסה השנייה של התיקונים לתמיכה במנהלי התקנים של חלודה בלינוקס נשלחה

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

הגרסה החדשה של התיקונים ממשיכה לבטל את ההערות שהועלו במהלך הדיון על הגרסה הראשונה והשנייה של התיקונים ואת השינויים הבולטים ביותר שאנו יכולים למצוא:

הועבר לגרסה יציבה של Rust 1.57 כמהדר עזר ומחייב למהדורה המיוצבת של שפת Rust 2021 הוחלט. המעבר למפרט Rust 2021 pמותר להתחיל לעבוד כדי להימנע משימוש בתכונות לא יציבות כאלה בתיקונים כמו const_fn_transmute, const_panic, const_unreachable_unchecked ו-core_panic ו-try_reserve.

זה גם בולט ש הפיתוח של גרסת alloc נמשך מספריית Rust, בגרסה החדשה, האפשרויות "no_rc" ו-"no_sync" מיושמות כדי להשבית את הפונקציונליות שאינו בשימוש בקוד Rust עבור הקרנל, מה שהופך את הספרייה למודולרית יותר. אנו ממשיכים לעבוד עם מפתחי alloc הראשיים כדי להביא את השינויים הדרושים בקרנל לספרייה הראשית. האפשרות "no_fp_fmt_parse", שנדרשת כדי שהספרייה תפעל ברמת הליבה, הועברה לספריית הבסיס של Rust (קרנל).

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

הם הציעו הפשטות לשימוש ב-seqlocks (נעילות רצף), קריאות התקשרות לאחור לניהול צריכת חשמל, זיכרון I/O (readX / writeX), מטפלי פסיקות ופתילים, GPIO, גישה למכשיר, מנהלי התקנים ואישורים בקוד חלודה.

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

העבודה עם קישורים שופרה באמצעות סוג Ref מפושט, בהתבסס על ה-backend refcount_t, המשתמש ב-API המרכזי באותו שם כדי לספור הפניות. התמיכה בסוגי Arc ו-Rc הניתנים בספריית המיפוי הסטנדרטית הוסרה ואינה זמינה בקוד המופעל ברמת הקרנל (עבור הספרייה עצמה הוכנו אפשרויות להשבית סוגים אלו).

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

בסיס הקוד הראשי של Rust מאמץ rustc_codegen_gcc, rustc backend עבור GCC שמיישם הידור AOT באמצעות ספריית libgccjit. עם פיתוח נכון של ה-backend, זה יאפשר לך לאסוף את קוד ה-Rust המעורב בליבה באמצעות GCC.
בנוסף ל-ARM, גוגל ומיקרוסופט, Red Hat הביעה עניין בשימוש ב- Rust בליבת לינוקס.

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


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

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

*

*

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