ניתן ליישם מסגרת בחלודה כדי לשפר את הנהגים

ליבת לינוקס חלודה

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

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

מהיכולות הדומות שכבר פותחו עבור חלודה, תמיכה במבנים ללא שם, איגודים (איחוד), הוספות אסמבלר (המאקרו "asm!"), ופורמט מספר הנקודה הצפה BFLOAT16.

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

במהלך הדיון בנאומו של ג'וש, הרעיון התבטא:

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

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

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

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

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

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

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

לא כל הפונקציונליות המתוכננת יושמה עדיין, אך המסגרת כבר מתאימה למדי לעבודה ומשמשת לכתיבת מנהל התקן עובד עבור בקר ה- LAN9512 USB Ethernet המסופק על לוח Raspberry Pi 3.

מנהל התקן smsc95xx קיים נכתב כמימוש התייחסות כשכותבים את נהג החלודה בשפה C.

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

מקור: https://hub.packtpub.com


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

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

*

*

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

  1.   L1ch דיג'ו

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