گنوم وابستگی به systemd را افزایش می‌دهد

آدریان ووک، خالق توزیع carbonOS که به صورت اتمی به‌روزرسانی شده و نصب‌کننده‌ی GNOME OS است، و همچنین یکی از توسعه‌دهندگان systemd-homed و systemd-sysupdate، از تغییراتی در GNOME خبر داد که وابستگی پروژه به systemd را افزایش می‌دهد. در نسخه‌های آینده‌ی GNOME 49 و 50، برخی از اجزای بومی برای راه‌اندازی صفحه‌ی ورود با قابلیت‌های استاندارد systemd جایگزین خواهند شد که مستلزم ایجاد لایه‌های جدید برای ارائه‌ی GNOME در توزیع‌ها و سیستم‌عامل‌هایی است که از systemd استفاده نمی‌کنند. لازم به ذکر است که حذف کد قدیمی به نفع قابلیت‌های استاندارد systemd، نگهداری را ساده‌تر می‌کند، پروژه را از شر راه‌حل‌های جایگزین خلاص می‌کند و امکان پیاده‌سازی قابلیت‌های اضافی مانند ذخیره و بازیابی جلسات را فراهم می‌کند.

از سال ۲۰۱۵، گنوم از مدیر جلسه systemd-logind استفاده کرده است که جایگزین ConsoleKit شده است. توزیع‌هایی که از systemd پشتیبانی نمی‌کنند، از elogind، نسخه‌ای ساده‌شده از logind مستقل از systemd، یا وصله‌هایی که پشتیبانی از ConsoleKit را برمی‌گردانند، استفاده می‌کنند. چنین راه‌حل‌هایی برای کار بدون systemd در طول توسعه گنوم در نظر گرفته یا آزمایش نمی‌شوند، بنابراین عملکرد آنها به علاقه‌مندان شخص ثالث بستگی دارد.

در نسخه‌های آینده‌ی گنوم، مدیر نمایش GDM علاوه بر این، از زیرساخت userdb ارائه شده توسط systemd نیز استفاده خواهد کرد و جایگزین AccountsService خود می‌شود. خود گنوم و systemd از اجرای بیش از یک جلسه‌ی گرافیکی برای یک کاربر پشتیبانی نمی‌کنند. با این حال، GDM می‌تواند چندین صفحه‌ی ورود را به طور همزمان نمایش دهد تا چندین جلسه‌ی گرافیکی را اجرا کند، که برای دسترسی از راه دور به دسکتاپ و در سیستم‌های چند صندلی با چندین مانیتور و دستگاه ورودی مفید است. این قابلیت ۱۵ سال پیش در GDM به عنوان یک راه حل موقت پیاده‌سازی شد و با dbus-broker مدرن سازگار نیست، بنابراین تصمیم گرفته شد که به یک پیاده‌سازی جدید که از systemd-userdb برای تخصیص پویای حساب‌ها و اجرای هر نمونه صفحه‌ی ورود تحت یک کاربر منحصر به فرد استفاده می‌کند، منتقل شود.

علاوه بر این، تصمیم گرفته شد که پیاده‌سازی مدیر سرویس مخصوص به گنوم، که در gnome-session به عنوان یک کنترل‌کننده‌ی پشتیبان برای راه‌اندازی سرویس‌های گنوم در محیط‌های بدون systemd استفاده می‌شد، از گنوم حذف شود. مدیر سرویس داخلی در سطح راه‌اندازی فایل‌های دسکتاپ و نظارت بر کار سرویس‌های مرتبط با آنها عمل می‌کرد. این مدیر سرویس تقریباً در ۱۷ سال گذشته بدون تغییر باقی مانده است و تنها دلیل عدم حذف آن، استفاده از آن در GDM برای راه‌اندازی صفحه ورود به سیستم بود. پس از تغییر GDM به استفاده از systemd برای راه‌اندازی صفحه ورود به سیستم، این پروژه دلیلی برای پشتیبانی از مدیر جلسه‌ی اولیه‌ی خود نداشت، که در پیاده‌سازی قابلیت ذخیره و بازیابی جلسات اختلال ایجاد می‌کرد.

برای ساده‌سازی تطبیق توزیع‌هایی که از systmed برای تغییرات استفاده نمی‌کنند، گنوم ۴۹ به‌طور موقت قابلیت راه‌اندازی GDM بدون userdb را با استفاده از یک کاربر ثابت gdm-greeter برای اولین جلسه ورود، gdm-greeter-49 برای جلسه دوم و غیره اضافه خواهد کرد. در گنوم ۵۰، قرار است چنین قابلیتی، و همچنین مدیر سرویس داخلی، حذف شود، بنابراین توسعه‌دهندگان توزیع‌هایی که systemd ندارند، فوراً نیاز به توسعه لایه‌هایی برای جایگزینی systemd-userdb (io.systemd.Multiplexer، userdb Varlink API) و فرآیند رهبر جلسه که با مدیر سرویس مورد استفاده در توزیع تعامل دارد، دارند.

همچنین جایگزینی برای فایل اجرایی gnome-session-ctl که تعاملات بین فرآیند راه‌اندازی جلسه، سرویس D-Bus و systemd را هماهنگ می‌کند، مورد نیاز خواهد بود. جایگزینی برای gnome-session-ctl باید قبل از انتشار GNOME 49 توسعه داده شود.

منبع: opennet.ru

اضافه کردن نظر