מהנדס של מיקרוסופט הציג תיקונים לשיפור היישום של Rust ב-Linux

RustLinux

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

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

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

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

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

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

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

שינויים בגרסה 2:
– תיאור מעודכן של תיבת `הקצא`.
– שינה את שמות המודולים vecext ו-boxext ל-vec_ext ו-box_ext.
- נוספה הנחיית עוקף ל-"AllocError".
- הערת אבטחה מעודכנת ב-'BoxExt::new'.
– 'VecExt::push' ו-'VecExt::extend_from_slice' עודכנו לשימוש
'קיבולת_חילוף'
– הוסף הנחיה כדי לא להדר את `destruct` ו`בנה מחדש` במהלך `בדיקה` או
`testlib` מוגדרים. אחרת יש לנו אזהרה כי 'דחיפה' ו
`extend_from_slice` אל תשתמש בהם יותר.
– הזחה מעודכנת ב-'Arc::new_uninit'
- הסרת השחקנים 'TryReserveError' הועברה ל'שגיאה' בתיקון 7, שבו
השימוש ב-'TryReserveError' מוסר למעשה.

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

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

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

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

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


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

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

*

*

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