נראה שהשנה הזו לא תהיה השנה של לינוקס, שכן למרות שהרבעון האחרון של השנה שעברה הכל נראה כאילו לינוקס ומחשבים שולחניים ימריאו ב-2025, הדברים לא תמיד כפי שהם נראים.
ורק לפני מספר ימים, כריסטוף הלוויג, דמות בולטת בתחזוקת תת-מערכות קריטיות כמו DMA, KVM, Slab Allocator ו-PowerPC בליבת לינוקס , הבהיר את דחייתו לתמיכה בתיקונים המאפשרים פיתוח דרייברים ב-Rust.
כריסטוף הלוויג מזכיר כי התיקונים המדוברים הציעו לכלול עטיפות סביב פונקציות של תת-מערכת ה-DMA כדי לאפשר לדרייברים שנכתבו ב-Rust להשתמש בה. עם זאת, הוא טוען כי אסטרטגיה זו מסבכת את תחזוקת הקוד וכי יש לשמור על בהירות ממשקי C , תוך הימנעות מהרחבת אבסטרקציות שעלולות להפריע לאינטגרציה עם שאר הליבה.
הבעיות של ערבוב שפות בפרויקט
לדברי הלוויג, הבעיה העיקרית טמונה בעובדה ששילוב קוד Rust יוצר תלויות שמאלצות מפתחי תת-מערכת C לשקול את השפעת השינויים שלהם על קוד הקישור של Rust. משמעות הדבר היא שכל התאמה למבנים או פונקציות פנימיות של C עלולה לדרוש שינויים מקבילים בקוד Rust, וליצור תרחיש שקשה לתחזק בטווח הארוך.
כדי להימנע ממצב זה, הלוויג המליץ למנהלי התקנים ב-Rust לגשת ישירות ל-API של ה-DMA המקורי ב-C, במקום להשתמש במעטפות נוספות שלדעתו יפגעו בתחזוקת הליבה.
המפתחים שהציעו את התיקונים טענו כי הם ישמרו על קוד Rust, ולשם כך ארגנו את הקישורים בתת-ספרייה ספציפית (rust/kernel/dma.rs). עם זאת, הלוויג הטיל וטו על הצעות אלו, והזהיר כי אין לו צורך לקחת על עצמו את האחריות לשילוב קוד משפות אחרות בתת-המערכות המרכזיות.
בנוסף, הוא העיר בתוקף שאם אתה רוצה להפוך את הליבה לפסיפס של מספר שפות, עליך להתחיל עם הדרייברים של Rust במקום להטיל את המורכבות הזו בתחומים בסיסיים.
המחלוקת התעצמה כאשר דמויות כמו ג'ייסון גנת'ורפ, מתחזק TPM, VFIO ו-Infiniband ב-NVIDIA, שיתפו דוגמאות כיצד שינויים בתת-מערכות זיכרון, למרות היותם נכונים מנקודת מבט של קוד C, גרמו לבעיות בעת ניסיון לקמפל את הליבה עם תמיכה ב-Rust. אירועים אלה הדגימו כי הקשרים בין C ל-Rust יכולים להכניס תלויות נוספות המעכבות פיתוח מתואם.
ראוי לציין שהדיון לא הוגבל להיבטים טכניים. הקטור מרטין הציע שהפתרון יכול להיות לאמץ את הקישור ישירות דרך לינוס טורבאלדס, תוך עקיפת מתחזק תת-מערכת ה-DMA. עם זאת, גישה זו עלולה לשבש את המבנה ההיררכי המסורתי של פיתוח ליבה.
הקטור הצביע גם על התנהגויות שהוא ראה כרעילות, ואף הזכיר כי ביקורתו של הלוויג, בה השווה את ראסט ל"גידול סרטני", תרמה לתסכולו ובסופו של דבר להחלטתו לפרוש מתפקידו כמנהל פלטפורמת ARM/אפל בליבת המעבד הראשית. למרות התפטרותו, הפלטפורמה תמשיך להיות נתמכת על ידי סוון פיטר, שהתחייב להמשיך את תחזוקתה.
לינוס טורבאלדס הצטרף לשיחה והדגיש שתהליך פיתוח הליבה , למרות שאינו מושלם, עובד וכי דיונים טכניים צריכים להתמקד בתיקונים , מבלי להיות מושפעים מלחצים חיצוניים או הטרדות ברשתות החברתיות. עבור טורבאלדס , המיקוד צריך להיות טכני בלבד, תוך התעלמות ממחלוקות אישיות.
סירובו של כריסטוף הלוויג לשלב עטיפות Rust בתת-מערכת ה-DMA מדגיש את המתחים בין מפתחי ליבת לינוקס. בעוד שחלק רואים ב-Rust כלי רב עוצמה ליצירת פרויקטים חדשים, אחרים חוששים ששילוב שפות מרובות עלול להפריע לתחזוקה ולעקביות של בסיס הקוד.
המצב נותר נושא לוויכוח וייתכן שיהיו לו השלכות משמעותיות על עתיד התמיכה ב-Rust בליבת המערכת. בכל מקרה, מה שברור הוא שקהילת הפיתוח של לינוקס ממשיכה להתמודד עם אתגרים מורכבים, שבהם יש לשקול בקפידה החלטות טכניות כדי להבטיח את קיימות הפרויקט לטווח ארוך.