חזרה

Systemd מוסיף תמיכה ב-Rust
SiTech AI Team2 דק׳ קריאה

Systemd מוסיף תמיכה ב-Rust

פיתוח Systemd 263 כולל כעת תמיכה ב-Rust עבור רכיבי leaf חדשים, שנבנים עם Meson ובלי ספריית התקן, בעוד שקוד C קיים נשאר במקומו. השינוי מאפשר לכתוב רכיבים חדשים ב-Rust, אך אינו מעביר קוד קיים ואינו כותב ב-Rust דבר שרכיבים אחרים תלויים בו.

Systemd 263 מקבל תמיכה ב-Rust לאחר שהמפתח Christian Brauner הודיע ב-Mastodon שהתכונה החדשה שלו מוזגה. השינוי מאפשר לכתוב רכיבי leaf חדשים ב-Rust, בעוד שקוד C קיים נשאר במקומו, ושום דבר שרכיבים אחרים תלויים בו אינו נכתב ב-Rust.

מה השתנה

המאמץ הקודם פוצל כעת לחמישה חלקים נפרדים. חלק 1 מכיל את keyring-util ו-voa-util, המתוארים כעוזרים לרישום אישורים ב-keyrings של הליבה. חלק 2 מוסיף תוכניות תמיכה שנכתבו ב-Rust. החלקים הנותרים יוצרים כריכות רק ל-headers שקוד Rust משתמש בהם, עוטפים את עוזרי libsystemd-shared ש-systemd-keyring-setup זקוק להם, ומוסיפים את systemd-keyring-setup.

כללי בנייה

Rust משמש רק עבור רכיבי leaf חדשים. קוד C קיים אינו מועבר, ושום דבר שרכיבים אחרים תלויים בו אינו נכתב ב-Rust. אין Cargo; הכול נבנה עם Meson, שבו systemd כבר משתמש. Meson משמש בהרחבה גם בפרויקט GNOME ובספריית הגרפיקה Mesa 3D, נכתב ב-Python, ומשתמש ב-Ninja. Ninja תוכנן לבנות את Chrome מהר יותר ומשמש גם עבור Android. אסור לקוד Rust להשתמש בספריית התקן, דרישה המתוארת כרגילה בתכנות Rust משובץ.

דרישות ומגבלות

הפרויקט דורש Rust גרסה 1.85 ומעלה, bindgen גרסה 0.71.1 ומעלה, ו-Meson 1.4.0 ומעלה. Rust 1.85 שוחרר בפברואר 2025, Rust 1.99.1 הופיע מוקדם יותר החודש, bindgen 0.71.1 הגיע מדצמבר 2024, ו-Meson 1.4.0 הגיע ממרץ 2024. אלה גרסאות יחסית ישנות, וגרסת Meson היא זו שנכללת ב-Debian 13. Brauner אמר שהצוות היה רוצה תמיכה ב-Rust בליבת systemd, אך התמיכה של Rust בספריות דינמיות עדיין לא ממש שם. כתיבת מודולים של systemd ב-Rust נפרדת מקריאה ל-systemd מתוך קוד Rust, וכלים כמו ה-crate של systemd קיימים מאז 2015.

מקורות: The Register

SiTech

SiTech — פיתוח אתרים בכוח ה-AI

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