موضوع مقاله: Systemd | مخاطب: عمومی | لحن: دانشنامه‌ای | ساختار: عنوان، مقدمه، 3 بخش، جمع‌بندی | مقاله: | # Systemd | مقدمه: یکی از هدف‌های systemd، متحد کردن تنظیمات پایه‌ای لینوکس و رفتار سرویس‌ها در میان همه توزیع‌ها است. | ## بخش 1: Systemd | از سال ۲۰۱۵، بسیاری توزیع‌های لینوکس سیستم‌دی را به عنوان سیستم init پیش‌فرض قرار دادند. منتقدان معتقد بودند که این نرم‌افزار، فلسفه یونیکس را با افزایش پیچیدگی و فشار بر سازگاری بسیاری نرم‌افزارها همچون گنوم۳ نقض کرده‌اند. لینارت پوترینگ و کای سیورز، مهندسان نرم‌افزاری که برای ردهت کار می‌کردند، و پدیدآورندگان سیستم‌دی، به دنبال بهتر کردن کارایی init در حالت‌های مختلف بودند. آن‌ها می‌خواستند چارچوب نرم‌افزاری را به‌گونه‌ای به‌سازی کنند که پیش‌نیازها در آن ارائه شود تا بتوان پردازش‌های بیشتری را به‌طور هم‌زمان به صورت موازی در زمان بوت اجرا کرد، و همچنین سربار محاسباتی پوسته (شل) کاهش یابد. پوترینگ توسعه سیستم‌دی را این‌گونه توضیح می‌دهد: «هرگز تمام نشده، هیچ‌گاه کامل نشده، اما سیر پیشرفت تکنولوژی را می‌پیماید». در می ۲۰۱۴، پوترینگ همچنین سیستم‌دی را به عنوان سعی در متحدسازی «تفاوت بیهوده میان توزیع‌ها»، با ارائه این قابلیت‌های عمومی تعریف کرد: یک سیستم و مدیر سرویس (مدیریت سیستم، با استفاده از اعمال تنظیمات متعدد، و سرویس‌های آن) یک پلتفرم نرم‌افزاری (ارائه به عنوان یک پایه برای توسعه نرم‌افزار دیگر) چسبی میان برنامه‌ها و کرنل (ارائه رابط‌های متعدد که عمل‌کردهای ارائه‌شده توسط کرنل را به نمایش می‌گذارد) سیستم‌دی تنها نام دایمن init نیست، بلکه اشاره به تمام نرم‌افزاری که پیرامون آن متصل شده نیز می‌کند که علاوه بر دایمن systemd init، شامل دایمنهای journald, logind و networkd و بسیاری بخش‌های سطح پایین دیگری نیز می‌شود. در ژانویه ۲۰۱۳، پوترینگ سیستم‌دی را به عنوان نه‌فقط یک برنامه، بلکه به جای آن، یک مجموعه نرم‌افزاری بزرگ شامل ۶۹ باینری منحصربه‌فرد توضیح داد. به عنوان یک مجموعه نرم‌افزاری پیچیده، سیستم‌دی جایگزین فرایند راه‌اندازی لینوکس و سطوح اجرایی می‌شود که با دایمن متداول init و با استفاده از اسکریپت‌های شل کنترل می‌شد. همچون دایمن init، سیستم‌دی نیز یک دایمن است که دایمنهای دیگر را مدیریت می‌کند، که خود سیستم‌دی نیز یکی از آن‌هاست. سیستم‌دی اولین دایمنی است که در طول بوت (راه‌اندازی) آغاز می‌شود و آخرین دایمنی است که در طول خاموش شدن از کار می‌افتد. پروسه اول (pid 1) نقش خاصی در سیستم‌های یونیکس دارد، چراکه هنگامی که یک پروسه دایمن بسته می‌شود، سیگنال SIGCHILD دریافت می‌کند؛ بنابراین، اولین پروسه مخصوصاً بهترین جایگاه را برای مانیتور کردن دایمن‌ها دارد. سیستم‌دی، بخش‌های راه‌اندازی را به صورت موازی اجرا می‌کند، که سریع‌تر از راه‌اندازی سنتی است. فایل‌های Unit سیستم‌دی دستورالعمل‌های راه‌اندازی برای هریک از دایمن‌ها را در یک فایل تنظیمات (که فایل Unit خوانده می‌شود) ذخیره می‌کند که از یک زبان declarative استفاده می‌کند، و جایگزین اسکریپت‌های شل که برای راه‌اندازی هر کدام از دایمن‌ها استفاده می‌شد می‌شود. اجزای هسته سیستم‌دی، شامل این‌ها می‌شود: systemd یک مدیر سیستم و سرویس برای سیستم‌عامل‌ها لینوکس است. قطعات جانبی در کنار هدف اولیه آن، برای ارائه جایگزین سیستم init، مجموعه سیستم‌دی عملکردهای اضافه‌ای هم ارائه می‌دهد. | ## بخش 2: Systemd | می‌تواند یک مدیر ورود پیچیده باشد که چندنشست‌های پیشرفته‌تری را ارائه می‌کند؛ و جایگزین ConsoleKit، که دیگر پشتیبانی ندارد شود. در نسخه ۲۰۹، هنگامی که برای اولین بار اضافه شد، پشتیبانی آن به آدرس‌های استاتیک و پشتیبانی پایه‌ای برای تنظیمات پل‌زنی محدود بود. یک رابط کاربری ساده برای مدیریت سرویس‌ها و یک مأمور گرافیکی برای درخواست پسورد از کاربر. این در پنجره تنظیمات سیستم ادغام می‌شود و اجازه نظارت و کنترل بخش‌های سیستم‌دی و نشست‌های ورود، و همچنین ویرایش گرافیکی فایل‌های تنظیمات را می‌دهد. تصویب و پذیرش در حالی که بیشتر توزیع‌ها سیستم‌دی را به صورت پیش‌فرض بارگیری می‌کنند، برخی، به سیستم‌های init دیگری اجازه استفاده می‌دهند. + تصویب سیستم‌دی برای توزیع‌های بزرگ لینوکس توزیع لینوکس تاریخ اضافه شدن به مخزن نرم‌افزاری فعال به‌طور پیش‌فرض؟ تاریخ انتشار با حالت پیش‌فرض آرچ لینوکس کور او-اس (v94.0٫0) دبیان (v8) فدورا (v14) (v15) جنتو لینوکس مجیا (v1.0) (v2.0) اوپن سوزه (v11.4) (v12.2) ردهت (v7.0) (v7.0) اسلکور سوزه لینوکس انترپرایز سرور (v12) (v12) اوبونتو (v13.04) (v15.04) یکپارچگی با نرم‌افزار دیگر با توجه به علاقه به ارتقای قابلیت همکاری میان سیستم‌دی و دسکتاپ گنوم، نویسنده مشترک سیستم‌دی، لینارت پوترینگ از پروژه گنوم درخواست کرد که سیستم‌دی را به عنوان پیش‌نیاز خارجی برای گنوم ۳٫۲ قرار دهد. در نوامبر ۲۰۱۲، پروژه گنوم به این نتیجه رسید که عمل‌کردهای پایه‌ای گنوم نباید به سیستم‌دی وابسته باشد. اوبونتو یک باینری جدا برای logind ارائه کرد، اما سیستم‌دی یک پیش‌نیاز برای گنوم برای بیشتر توزیع‌های لینوکس است. توسعه‌دهندگان لینوکس جنتو همچنین تلاش دارند این تغییرات را در OpenRC سازگار کنند، اما پیاده‌سازی آن شامل تعداد زیادی باگ شد، که موجب شد این توزیع سیستم‌دی را به عنوان پیش‌نیاز گنوم قرار دهد. از آنجایی که سیستم‌دی فقط لینوکس را پشتیبانی می‌کند و با خاطر استفاده زیاد آن از APIهای کرنل لینوکس نمی‌تواند به سادگی به سیستم‌عامل‌های دیگر منتقل شود، لازم است که APIهای سازگار با سیستم‌عامل‌های دیگر همچون اوپن‌بی‌اس‌دی ارائه شوند. در مصاحبه ZDNet در سپتامبر ۲۰۱۴، توسعه‌دهنده برجسته کرنل لینوکس، تئودور تسو، نظر خود را راجع به نزاع دربارهٔ فلسفه طراحی متمرکز سیستم‌دی ارائه کرد، بیش از نگرانی‌های تکنیکی، پیش‌بینی کرد رشد عمومی خطرناکی به سمت یکسان‌سازی اکوسیستم لینوکس حاصل شود، و بخشی از اجتماع متن‌باز به حاشیه رانده و فضای کمی برای پروژه‌های جایگزین به وجود آید. وی در این پروژه، تشابهاتی با نگرشی که در پروژه گنوم به سمت تنظیمات غیر استاندارد پیدا کرد. در رسانه‌های اجتماعی، تسو همچنین مقایسه‌هایی میان نگرش دو توسعه‌دهنده کلیدی سیستم‌دی با توسعه‌دهنده‌های گنوم انجام داد. منتقدان گفتند که سیستم‌دی شدیداً پیچیده است و پیشرفت ویژگی‌های آن به کندی پیش خواهد رفت و معماری آن در تضاد با اصول طراحی سیستم‌عامل‌های شبه‌یونیکس است. | ## بخش 3: Systemd | همچنین این نگرانی وجود خواهد داشت که سیستمی ساخته شود که وابستگی‌های قفل شده به وجود آورد، به گونه‌ای که به نگهداران توزیع‌ها انتخاب‌های کمی داده می‌شود اما سیستم‌دی را سازگارتر می‌سازد تا نرم‌افزار فضای کاربر بیشتر به بخش‌های سیستم‌دی وابسته شود. یادداشت‌ها در می ۲۰۱۱، فدورا اولین توزیعی شد که سیستم‌دی را به صورت پیش‌فرض فعال نمود. در یک مصاحبه در ۲۰۱۲، رهبر اسلکور، پتریک ولکردینگ، توضیح داد که معتقد است طراحی آن با فلسفه یونیکس که ابزارها را با توابع تعریف‌شده کم، متفاوت است. از اوت ۲۰۱۴، اسلکور از سیستم‌دی استفاده نمی‌کند و آن را پشتیبانی نمی‌کند، اما ولکردینگ احتمال تغییر حالت به آن را رد نکرد. در بین اکتبر ۲۰۱۳ و فوریه ۲۰۱۴، و تبادل نظر طولانی در کمیته تکنیکی دبین در فهرست ایمیل دبین، در بحث دربارهٔ انتخاب سیستم init پیش‌فرض برای دبین ۸ «جسی» و تصمیم‌گیری نهایی دربارهٔ وضعیت سیستم‌دی انجام گرفت. این تبادل نظر به‌طور وسیعی عمومی شد و در همان آغاز این تبادل نظر در فهرست ایمیل دبین ادامه پیدا کرد. در ژانویه ۲۰۱۳، لینارت پوترینگ، تصمیم گرفت که نگرانی‌های راجع به سیستم‌دی را در یک پست وبلاگ به نام «بزرگترین راز» قرار داد. پس از پایان مناظرات دربارهٔ سیستم‌دی در اکتبر ۲۰۱۴، پوترینگ اعلام کرد که «اجتماع متن‌باز» پر از احمق است و من احتمالاً یکی از مورد علاقه‌ترین هدف‌های آن‌ها هستم. پوترینگ سپس لینوس توروالدز و دیگر توسعه‌دهندگان کرنل را به خاطر وضعیت اجتماع مورد ملامت قرار داد. در فوریه ۲۰۱۴، پس از تصمیم دبین، مارک شاتلورث در وبلاگ خود اعلام کرد که اوبونتو نیز در اجرای سیستم‌دی آن‌ها را دنبال خواهد کرد. در آوریل ۲۰۱۴ یک کمپین برای تحریم سیستم‌دی در یک وبسایت شکل گرفت و دلایل مختلف را در برابر انتخاب سیستم‌دی ارائه کرد. در یک مقاله در اوت ۲۰۱۴ در نشریه InfoWorld، پاول ونزیا دربارهٔ مجادله سیستم‌دی نوشت، و این مجادله را به تضاد سیستم‌دی با فلسفه یونیکس و «غرور عظیمی که شدیداً معتقد هستند خطا نمی‌کنند» نسبت داد. در نوامبر ۲۰۱۴، مراقبان دبین و اعضای کمیته تکنیکی، جوی هس، روس البری، یان جکسن، و مراقب بسته سیستم‌دی، تولف فوگ هین، از منصب خود استعفا دادند. هر چهار نفر تصمیم خود را در فهرست ایمیل اعلام عمومی‌کردند و در بلاگ شخصیشان با نگرانی و قرار گرفتن در معرض استرس شدید مربوط به ادغام سیستم‌دی با دبین و اجتماع متن‌باز، اعلام کردند که تعمیر و نگهداری منظم، کاری غیرممکن می‌شود. در دسامبر ۲۰۱۴، یک شاخه از دبین، به نام دو-وان، توسط گروهی که خود را «مدیران کهنه دبین» نامیدند معرفی شد. | ## جمع‌بندی | در اکتبر ۲۰۱۵، یک مقاله به نام «کمبود ساختاری و معنایی در معماری سیستم‌دی برای مدیریت سرویس در دنیای واقعی» منتشر شد، که سیستم‌دی را در بسیاری زمینه‌ها مورد انتقاد قرار داد، از جمله طراحی آن به عنوان یک سیستم شیئی با لایه‌های بسیار از تغییرمسیر، که آن را مستعد ایجاد خطاهای مربوط به ترتیب می‌کند، یک مدل با پیش‌بینی اجرای دشوار، ترتیب راه‌اندازی غیرقطعی، حالت غیرقطعی در فایل تنظیمات و نارسا بودن کلی آن در ارائه یک چکیده از انواع یونیت‌ها.