زبان Rust بالاخره وارد systemd شد؛ اما قلب تپندهاش فعلاً دست C میماند!

خبر کوتاه اما بمب خبری دنیای لینوکس اینه که systemd، همون مدیر سرویس و سیستم راهاندازی معروف که توی اکثر توزیعهای محبوب لینوکسی مثل قلب تپنده کار میکنه، بالاخره پشتیبانی از زبان محبوب Rust رو به کدهای خودش اضافه کرد! این یعنی برنامهنویسها حالا میتونن برنامههای جانبی systemd رو با این زبان مدرن و امن بنویسند.
البته قرار نیست همهچیز یکشبه تغییر کنه. فعلاً اولین برنامهای که از این قابلیت استفاده کرده، ابزار systemd-keyring-setup هست که گواهیهای امنیتی رو در زمان بوت سیستم به بخش مدیریت کلیدهای Kernel اضافه میکنه. با این حال، اگر فکر کردید قرارv تمام کدهای systemd بازنویسی بشن، سخت در اشتباهید؛ داستان کلیتر از این حرفهاست و Rust فعلاً با شرایط خاصی وارد بازی شده.
زبان Rust، اما با قوانین سختگیرانه systemd!
توسعهدهندگان systemd تصمیم گرفتن که خیلی محتاطانه جلو برن. به همین خاطر، استفاده از Rust کاملاً اختیاری باقی مونده و همچنان میتونید systemd رو بدون نیاز به اون Build کنید. کدهای نوشته شده با این زبان فقط به برنامههای مستقل و جداگانهای محدود میشن که هیچ بخش دیگهای بهشون وابسته نیست.
نکته جالب اینجاست که ابزار meson همچنان همهچیز رو مدیریت میکنه و ابزار cargo نقشی در این میان نداره. حتی از کتابخانههای استاندارد زبان Rust خبری نیست و برنامهنویسها فقط مجاز به استفاده از کریتهای core و libc هستند. ابزارهای سیستمی باید از نوع Box و Vec اختصاصی خود systemd استفاده کنند تا اگر خطایی در تخصیص حافظه رخ داد، برنامه کرش نکند و سیستم پابرجا بماند.
چرا قلب systemd هنوز با C میتپد؟
بزرگترین چالش سر راه ورود کامل Rust به systemd، کتابخانه مشترک libsystemd-shared است که همچنان به زبان C نوشته شده. دلیلش هم اینه که زبان Rust هنوز یک stable ABI واقعی و استاندارد برای کتابخانههای مشترک ارائه نده, و اگر قرار بود این بخش تغییر کند، کدهای تکراری زیادی تولید میشد.
مسئله بعدی دسترسی به فایلها و سیستم فایل است. بخشهای حساس systemd برای امنیت بیشتر، مسیرها را از طریق Terminal و فایلدسکریپتورها بررسی میکنند و روش پیشفرض Rust را برای مدیریت مسیرها قبول ندارند. با این وجود، تیم توسعهدهنده systemd رسماً اعلام کرده که کاملاً آماده است تا با جامعه کاربری و توسعهدهندگان Rust همکاری کند تا این موانع به مرور برطرف شوند.
سیل خروشان ورود Rust به دنیای لینوکس
این فقط systemd نیست که در آغوش Rust آرام گرفته؛ بلکه کل اکوسیستم لینوکس داره به این سمت حرکت میکنه. زبان یاد شده مدتهاست که به صورت آزمایشی وارد Kernel لینوکس شده و اخیراً توسعهدهندگان هسته اعلام کردند که این آزمایش موفقیتآمیز بوده است.
توزیعهای بزرگی مثل اوبونتو هم همین مسیر را در پیش گرفتهاند و ابزارهایی مثل sudo-rs را به صورت پیشفرض در اختیار کاربران قرار میدهند. همهچیز نشان میدهد که دنیای متنباز با سرعت به سمت استفاده از زبانهای امنتر پیش میرود و سالهای شلوغ و جذابی را در پیش داریم.




