Kerla: קרנל חדש שנכתב ב-Rust ותואם ל-Linux ABI

לאחרונה פורסם מידע על פרויקט Kerla, שמפותח כגרעין של מערכת הפעלה הכתוב בשפת Rust. הקוד מופץ תחת רישיונות Apache 2.0 ו-MIT. הפרויקט מפותח על ידי המפתחת היפנית Seiya Nuta, הידועה ביצירת מערכת ההפעלה המיקרו-קרנל Resea, הכתובה בשפת C.

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

על קראל

Kerla היא ליבת מערכת הפעלה מונוליטית נוצר מאפס ב- Rust. בשלב הפיתוח הנוכחי, קרלה ניתן להפעיל רק במערכות עם ארכיטקטורת x86_64 ומיישמת קריאות מערכת בסיסיות כמו כתיבה, stat, mmap, pipe ו-pol, תומך באותות, צינורות ללא שם ומתגי הקשר. שיחות כמו fork, wait4 ו-Execve מספקות כדי לשלוט בתהליכים. יש תמיכה ב-tty ובפסאודו-טרמינלים (pty). בין מערכות הקבצים initramfs (המשמשות לטעינת הבסיס FS), tmpfs ו-devfs עדיין נתמכים.

ערימת רשת עם תמיכה עבור שקעי TCP ו-UDP מסופקת גם, מבוסס על ספריית smoltcp. המפתח הכין סביבת אתחול שעובדת ב-QEMU או Firecracker VM עם הדרייבר virtio-net, אליה כבר ניתן להתחבר דרך SSH. Musl משמש כספריית מערכת ו-BusyBox משמש ככלי עזר למשתמש. בהתבסס על Docker, הוכנה מערכת בנייה המאפשרת לך ליצור אתחול initramfs משלך עם ליבת Kerla.

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

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

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

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

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

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

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


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

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

*

*

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