| UDISKS(8) | مدیریت سیستم | UDISKS(8) |
نام (NAME)
udisks - مدیریت دیسکها
توضیحات (DESCRIPTION)
سرویس udisks رابطهایی را برای شمارش و انجام عملیات روی دیسکها و دستگاههای ذخیرهسازی فراهم میکند. هر برنامهای (از جمله برنامههای بدون دسترسی ریشه) میتواند به دیمن udisksd(8) از طریق نام org.freedesktop.UDisks2 روی گذرگاه پیام سیستم (system message bus)[1] دسترسی داشته باشد. علاوه بر API مبتنی بر D-Bus، کتابخانهای به نام libudisks2 نیز ارائه شده است. این کتابخانه میتواند در C/C++ و هر زبان سطح بالایی با پشتیبانی از GObjectIntrospection[2] مانند جاوااسکریپت و پایتون استفاده شود. سرویس udisks تنها به طور غیرمستقیم در اینکه کدام دستگاهها و شیءها در رابط کاربری نمایش داده شوند دخیل است.
کنترل دسترسی (ACCESS CONTROL)
به طور پیشفرض، کاربران واردشده به سیستم در نشستهای فعال مجاز به انجام عملیات (برای مثال سوار کردن، باز کردن قفل رمزگذاریشده یا تغییر) بر روی دستگاههای متصل به جایگاه (seat) نشست خود هستند. کنترل دسترسی دقیق و ریزدانهای بوده و بر پایه polkit(8) است، برای اطلاعات بیشتر به بخش «بررسیهای مجوز» (Authorization Checks) در مستندات udisks مراجعه کنید. توجه داشته باشید که گزینه x-udisks-auth میتواند در فایلهای /etc/fstab و /etc/crypttab برای تعیین نیاز به مجوز اضافی جهت سوار کردن یا باز کردن قفل دستگاه (معمولاً مستلزم احراز هویت به عنوان مدیر سیستم) استفاده شود.
پیکربندی درایو (DRIVE CONFIGURATION)
هنگام راهاندازی و در زمان اتصال یک درایو، udisksd(8) پیکربندی ذخیرهشده در فایل /etc/udisks2/IDENTIFIER.conf را اعمال خواهد کرد که در آن IDENTIFIER مقدار ویژگی Drive:Id برای درایو مربوطه است. اگر فایل روی دیسک تغییر کند، محتوای جدید آن نیز بر روی درایو اعمال خواهد شد. معمولاً کاربران یا مدیران سیستم نیازی به ویرایش دستی فایلهای پیکربندی درایو ندارند، زیرا آنها به طور مؤثر از طریق برنامههای گرافیکی مانند gnome-disks(1) مدیریت میشوند. با این وجود، ویرایش دستی فایلهای پیکربندی نیز پشتیبانی میشود — قالب فایل یک قالب ساده شبیه به ini. است (برای ساختار نحوی دقیق به مشخصات Desktop Entry[3] مراجعه کنید). در آینده ممکن است گروهها و کلیدهای جدیدی اضافه شوند.
گروه ATA
گروه ATA برای تنظیماتی است که بر روی درایوهای دارای مجموعه دستورات ATA اعمال میشوند. کلیدهای زیر پشتیبانی میشوند:
StandbyTimeout
APMLevel
AAMLevel
WriteCacheEnabled
ReadLookaheadEnabled
اطلاعات دستگاه (DEVICE INFORMATION)
سرویس udisks به نسخههای جدید udev(7) و هسته لینوکس متکی است. ویژگیهای تأثیرگذار دستگاه در پایگاه داده udev عبارتند از:
UDISKS_SYSTEM
UDISKS_IGNORE
UDISKS_AUTO
UDISKS_CAN_POWER_OFF
UDISKS_NAME
UDISKS_ICON_NAME
UDISKS_SYMBOLIC_ICON_NAME
UDISKS_FILESYSTEM_SHARED
ID_SEAT
ID_ATA_SMART_ACCESS
پایداری رابط برنامهنویسی (API STABILITY)
سرویس udisks پایداری D-Bus API را در همان نسخه اصلی تضمین میکند و این ضمانت شامل کتابخانه سمت کاربر libudisks2 نیز میشود. علاوه بر این، چندین نسخه اصلی از udisks میتوانند به صورت همزمان نصب و اجرا شوند، هرچند ممکن است سازگاری متقابل محدود باشد - به عنوان مثال، دستگاهی که با استفاده از API نسخه N.x مربوط به udisks سوار شده است، ممکن است برای پیادهسازی (unmount) از طریق API نسخه (N-1).x نیاز به مجوزهای اضافی داشته باشد.
توسعهدهندگان udisks شکستن API را پیشبینی نمیکنند، اما حق انجام آن را برای خود محفوظ میدانند و در صورت وقوع، قول میدهند که شماره نسخه اصلی را ارتقا داده و اطمینان حاصل کنند که نسخه جدید udisks به صورت موازی با نسخههای قدیمیتر قابل نصب است. با این حال، توجه داشته باشید که برنامهها، صفحات راهنما و سایر اجزا ممکن است تغییر نام دهند (مثلاً پسوند “2” بگیرند) تا جا برای نسخه اصلی بعدی باز شود. بنابراین، برنامهها نمیتوانند به در دسترس بودن ابزارهایی مانند udisksctl(1) متکی باشند. علاوه بر این، هیچ تضمینی وجود ندارد که گزینهها، سوئیچهای خط فرمان و موارد مشابه در ابزارهای خط فرمان پایدار بمانند.
در عوض، برنامهها برای تعامل با udisksd(8) باید فقط از D-Bus API، کتابخانه libudisks2 یا ابزارهایی مانند dbus-send(1) یا gdbus(1) استفاده کنند.
مخاطبان هدف (AUDIENCE)
مخاطبان هدف udisks شامل توسعهدهندگان سیستمعامل هستند که بر روی بخشهای سطح بالاتر سیستمعامل کار میکنند، به عنوان مثال پوسته میزکار (مانند GNOME[5]) و برنامههای مدیریت دیسک (مانند برنامه Disks[6] در گنوم). نرمافزارها در این سطح معمولاً به نسخه (اصلی) خاصی از udisks وابستهاند و حتی ممکن است از نسخههای قبلی udisks یا رابطهای جایگزینی که همان نقش را ایفا میکنند، پشتیبانی کنند.
اگرچه udisks یک API پایدار و مسیر ارتقای روشنی ارائه میدهد، ممکن است وابستگی مناسبی برای برنامههای متفرقه (Third-party) نباشد. برای مثال، اگر سیستمعامل به نسخه N.x سوییچ کند و برنامهای همچنان از API نسخه (N-1).x استفاده نماید، برنامه کار نخواهد کرد مگر اینکه نسخه (N-1).x نصب باشد. در حالی که این وضعیت همچنان قابل مدیریت است (زیرا هر دو نسخه میتوانند همزمان نصب شوند)، ممکن است درخواست از کاربر برای نصب نسخه قدیمی مطلوب نباشد - در واقع، توزیعکننده سیستمعامل حتی ممکن است بستهای از نسخه قدیمی ارائه ندهد. از این رو، اگر برنامهای نمیخواهد به نسخه خاصی از سیستمعامل وابسته شود، نباید از udisks استفاده کند.
جایگزینهای مناسب برای udisks، رابطهای برنامهنویسی هستند که پایداری آنها در بازههای زمانی طولانیتر تضمین شده است، از جمله:
به ویژه، برای برنامههای میزکار استفاده از گزینهای مانند GVolumeMonitor ایده بسیار بهتری است، زیرا باعث میشود برنامه همان دستگاههایی را نشان دهد که پوسته میزکار (مانند مدیر فایل، انتخابگر فایل و غیره) نمایش میدهد.
نویسنده (AUTHOR)
این صفحه راهنما در اصل برای UDisks2 توسط David Zeuthen <zeuthen@gmail.com> با کمکهای بسیار از سوی افراد دیگر نوشته شده است.
گزارش اشکال (BUGS)
لطفاً گزارشهای اشکال را به سیستم ردیابی باگ توزیع یا سامانه ردیابی باگ بالادست در نشانی زیر ارسال کنید: https://github.com/storaged-project/udisks/issues.
همچنین ببینید (SEE ALSO)
udev(7), polkit(8), udisksd(8), udisksctl(1), umount.udisks2(8), gnome-disks(1)
نکات (NOTES)
- 1.
- گذرگاه پیام سیستم (system message bus)
- 2.
- GObjectIntrospection
- 3.
- مشخصات Desktop Entry
- 4.
- مشخصات تم آیکون freedesktop.org
- 5.
- GNOME
- 6.
- Disks
- 7.
- sysfs
- 8.
- libudev
- 9.
- /proc/self/mountinfo
- 10.
- util-linux
- 11.
- GVolumeMonitor
| آگوست 2018 | udisks 2.11.2 |