Western Digital כבר עובדת על דרייבר NVMe שנכתב ב- Rust

RustLinux

השילוב של Rust בלינוקס קיבל רמה גבוהה של קבלה על ידי הקהילה והמפתחים

במהלך כנס "לינוקס אינסטלטורים 2022". זה נמשך בימים אלה, מהנדס Western Digital נתן מצגת על פיתוח בקר ניסיוני עבור SSD NVM-Express (NVMe) כתוב ב-Rust ופועל ברמת ליבת לינוקס.

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

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

לגבי הדו"ח שהוצג אומרים שמנהל ההתקן הנוכחי של NVMe C הוא משביע רצון לחלוטין למפתחים, אבל תת-המערכת NVMe היא פלטפורמה טובה לבחינת ההיתכנות של פיתוח דרייברים ב-Rust, שכן היא פשוטה למדי, בשימוש נרחב, בעלת דרישות ביצועים גבוהות, בעלת יישום התייחסות מוכח להשוואה ותומכת בממשקים שונים (dev, pci, dma, blk-mq, gendisk, sysfs).

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

תוכניות לעתיד כוללות היפטרות מהבלוקים הבלתי מאובטחים הקיימים, תמיכה להסרת המכשיר ולהורדת מנהל ההתקן, תמיכה בממשק sysfs, יישם אתחול עצלן, צור בקר עבור blk-mq, והתנסה במודל תכנות אסינכרוני עבור queue_rq.

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

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

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

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

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

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

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

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

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


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

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

*

*

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