
یک کامپوننت تازه در مجموعه systemd با نام systemd-appd برای نخستین بار در قالب یک درخواست ادغام (Pull Request) اولیه منتشر شده و در دست بررسی قرار گرفته است. این بخش جدید با هدف متمرکزسازی ردیابی اپلیکیشنهای کاربران طراحی شده و قرار است بهعنوان یک سرویس مدیریت اپلیکیشن (App Management Service) در اکوسیستم لینوکس ایفای نقش کند.
systemd-appd دقیقاً چه کاری انجام میدهد؟
بر اساس توضیحات ارائهشده، systemd-appd به تمام سرویسهای نشست (Session Services) اجازه میدهد تا اپلیکیشنها را بهشکل قابلاعتماد شناسایی کرده و از مجوزهای جاری آنها آگاه شوند. این سرویسها شامل مواردی مانند دیباس (D-Bus)، پایپوایر (PipeWire)، پورتالها (Portals) و کامپوزیتورهای ویلند (Wayland Compositors) میشود.
این کامپوننت برای مدیریت نمونههای در حال اجرای اپلیکیشنها به یک رابط کاربری وارلینک (Varlink Interface) متکی است؛ رابطی که در systemd برای تبادل داده میان سرویسها به کار میرود.
پیوند با پروژه Flatpak و نسخه ۲.۰
توسعه systemd-appd با هدف پشتیبانی از کاربردهایی مانند فلتپک (Flatpak) و تلاشهای مربوط به Flatpak-Next یا Flatpak 2.0 در جریان است. این کامپوننت نخستین بار نزدیک به یک سال پیش در رسانه فورونیکس (Phoronix) معرفی شده بود؛ زمانی که از آن بهعنوان کامپوننت جدیدی در دست برنامهریزی توسط توسعهدهندگان Flatpak یاد شد.
سازوکار ثبت و شناسایی اپلیکیشنها
در توضیحات این وصله (Patch) آمده است که اپلیکیشنها — یا فرایندهایی که در نهایت با فراخوانی exec() به اپلیکیشن تبدیل میشوند — انتظار میرود هنگام راهاندازی خود را ثبت کنند تا appd ردیابی هویت آنها را آغاز کند. appd تضمین میکند که اپلیکیشن در یک واحد systemd (systemd Unit) اجرا میشود که از قرارداد نامگذاری اپلیکیشنهای XDG پیروی میکند؛ همان قراردادی که در فایل DESKTOP_ENVIRONMENTS.md تعریف شده است. بهدلیل تغییرات پیشین در همین مجموعه وصله، این سازوکار باعث میشود هویت اپلیکیشن روی گروه کنترل (cgroup) حاوی آن برچسبگذاری شود.
ذخیره و بازیابی فرادادهها و مجوزها
علاوه بر این سازوکار ثبت اولیه، appd امکان ذخیرهسازی و بازیابی فرادادههای (Metadata) بیشتر درباره اپلیکیشن را نیز فراهم میکند. در این کامیت (Commit)، این فرادادهها صرفاً شامل مجوزها و اختیارات زمان اجرای فعلی اپلیکیشن (Runtime Permissions and Entitlements) است. سرویسهای نشست میتوانند از این اطلاعات استفاده کنند تا تصمیم بگیرند که آیا یک اپلیکیشن مجاز به انجام یک اقدام دارای سطح دسترسی ویژه (Privileged Action) هست یا خیر.
وضعیت فعلی توسعه
این ویژگی هنوز در مرحله توسعه قرار دارد و بهصورت یک درخواست ادغام پیشنویس (Draft Pull Request) منتشر شده است تا علاقهمندان بتوانند در بحثهای فنی پیرامون آن مشارکت کنند. بنابراین، جزئیات پیادهسازی و زمانبندی نهایی آن ممکن است در ادامه روند بازبینی تغییر کند.