اطلاعیه

بستن
No announcement yet.

Wayland فراتر از X

بستن
X
 
  • فیلتر کردن
  • زمان
  • نمایش
Clear All
پست های جدید

    Wayland فراتر از X

    هر چند این روز ها تمرکز اصلی بحث های پیرامون میز کارهای لینوکس معطوف به میز کار یونیتی و گنوم شل است، اما انقلاب واقعی دیگری که در حال شکل گیری است سرور نمایش Wayland است که جایگزینی برای X سرور به شمار می رود. نسخه یک این سرور در آینده ای نزدیک منتشر می شود. به اعتقاد بسیاری، سرور نمایش Wayland جایگزینی مناسب برای سیستم پنجره X در دراز مدت خواهد بود که از هم اکنون پتانسیل کافی برای بهبود کارآیی و تغییر دسکتاپ کاربران لینوکس را در اختیار دارد.

    برای بزرگتر شدن عکس روی آن کلیک کنید  نام:	266px-Wayland_Logo.svg_.png نمایش ها:	1 اندازه:	12.6 KB شناسه:	18207

    اهمیت Wayland در این است که هدف آن، ایجاد یک روش جدید و ساده برای سیستم های گرافیکی لینوکس است. خارج کردن X از مسیر بین سخت افزار و برنامه متقاضی (Client) از مزایای Wayland است. Wayland شامل یک پروتکل و یک کتابخانه است. کتابخانه ی Wayland آن پروتکل را بر روی لینوکس پیاده سازی می کند.

    برای بزرگتر شدن عکس روی آن کلیک کنید  نام:	Wayland_kicker2-ace3a27948a9a6a7.png نمایش ها:	1 اندازه:	40.1 KB شناسه:	18208

    X برای به اشتراک گذاشتن منابع گرافیکی، متکی به یک سرور است که به X Server معروف است، اما با گذشت سال ها، بسیاری از زیرساخت ها از سرور X به هسته لینوکس (کرنل) منتقل شده اند… و تنها بخش کوچکی باقیمانده که در سرور مرکزی اجرا می شود. در عین حال، ثبات و کارآیی سیستم کاهش یافته است، چنانکه کیت پاکارد عنوان کرده، سیستم پنجره ای به چند قسمت تقسیم شده (سرور X، مدیر پنجره، مدیر ترکیب) که با پروتکل های پیچیده ی غیرهمزمان با هم ارتباط دارند. به طوری که برای مثال وقتی یک کلید را بر روی صفحه کلید فشار می دهید، این رویداد از حداقل سه پروسه عبور می کند: برنامه کاربردی، سرور X و مدیر ترکیب.

    برای بزرگتر شدن عکس روی آن کلیک کنید  نام:	x-architecture-4b1b9a4926aafa27-300x285.png نمایش ها:	1 اندازه:	34.8 KB شناسه:	18209

    Wayland این پیچیدگی ها را حذف می کند. در Wayland، ترکیبگر (compositor) (در حال حاضر با عنوان وستون (Weston) شناخته می شود) سرور نمایش است. وستون کنترل صفحه نمایش و رویدادهای ورودی را به دست می گیرد و پروتکل Wayland به ترکیبگر اجازه می دهد تا این وقایع ورودی را به برنامه های متقاضی (clients) ارسال کند.

    در عوض به متقاضیان، بافر حافظه ای داده می شود تا با هر تکنولوژی رندری که می خواهند در آن داده های خود را ذخیره کنند و سپس با استفاده از پروتکل Wayland به ترکیبگر اطلاع دهند که تغییری در آن بافر داده شده است. ترکیبگر آن «رویدادهای تخریبی» را می گیرد و، از بافر برنامه های مختلف چیزی می سازد که کاربر بر روی صفحه آن را به صورت پنجره های چند برنامه که با هم همپوشانی دارند می بیند. این روش چند لایه از پیچیدگی پردازش گرافیکی می کاهد و در عوض، کنترل و کارآیی را به دست برنامه های متقاضی می سپارد.

    هر فریم بی نقص است :
    ایده ی اولیه ی Wayland اولین بار در سال 2008 میلادی به ذهن کریستین هوگسبرگ (Kristian Høgsberg) رسید. به گفته ی وی «این ایده یک بازی یا مدل بود که برای سرگرمی مشغول بررسی آن بودم». Høgsberg یکی از کارمندان ردهت بود که برای کار روی پشته ی گرافیکی لینوکس، «شامل drm،‏ mesa‏، X،‏ Cario و چند مورد دیگر» استخدام شده بود. وی در پیاده سازی «AIGLX» مشارکت داشته است که اجازه می دهد کامپیز (compiz) و دیگر برنامه های مدیریت ترکیبگر بر روی X قابل اجرا باشد. همچنین وی بر روی DRI2 نیز کار کرده است، DRI2، ‏ OpenGL سریع تر شده را با افزونه ی COMPOSITE تلفیق می کند.

    شاید برایتان جالب باشد که بدانید ایده ی اولیه Wayland اولین بار موقع رانندگی به ذهن هوگسبرگ رسید. در آن هنگام وی در حال گذر از شهر Wayland ایالت ماساچوست بود. به همین دلیل او اسم آن شهر را به سرور نمایش اختصاص داد. همچنین Weston که ترکیبگر Wayland است، نام یکی از شهرهای همجوار Wayland در همان ایالت است.

    ایده ی اصلی ساخت Wayland از این حقیقت سرچشمه می گیرد که بسیاری از عناصر پشته گرافیکی لینوکس «در کتابخانه های اشتراکی، درایورهای کرنل و دیگر کمپوننت ها تقسیم و بازسازی شده اند» و این حقیقت که «سرور X در حال حاضر فقط به عنوان یک واسط عمل نموده و گام اضافه ای را بین برنامه ها و ترکیبگر از یک طرف و ترکیبگر و سخت افزار از طرف دیگر ایجاد کرده است»

    Wayland می تواند از کمپوننت های بازسازی شده جهت ساختن دسکتاپ ترکیبی (composited desktop) سریع تر و منعطف تر استفاده کند و سرور X هم می تواند با تاثیر کم و غیر محسوس در کاهش سرعت و بازدهی، عملکرد سنتی خود را به عنوان یکی از برنامه های متقاضی Wayland داشته باشد.

    در گذشته عملیات رندر توسط خود سرور X انجام می شد، اما در Wayland از DRI2 برای رندرینگ مستقیم استفاده می شود. «در رندرینگ مستقیم (Direct rendering)، متقاضی و سرور، یک حافظه بافر ویدیویی را به اشتراک می گذارند. متقاضی به یک کتابخانه ی رندرینگ مثل OpenGL متصل می شود که می داند چطور سخت افزار را برنامه ریزی کرده و رندر را مستقیما در بافر انجام دهد. از سوی دیگر ترکیبگر، بافر را می گیرد و موقع ترسیم میزکار، از محتویات آن به عنوان بافت (Texture) استفاده می کند. پس از پیکربندی اولیه، فقط کافی است برنامه متقاضی به ترکیبگر بگوید از کدام بافر استفاده کند و چه موقع و کجا محتویات جدید رندر شده در آن قرار داده شده است.

    برای بزرگتر شدن عکس روی آن کلیک کنید  نام:	wayland-architecture-5bef5f8ed54454de-191x300.png نمایش ها:	1 اندازه:	24.2 KB شناسه:	18210


    همانطور که آقای هوگسبرگ در ابتدای ایجاد پروژه اظهار داشت :
    «ایده اصلی در ابتدا این بوده است که ما می توانیم تمام عملیات رندر در سمت کلاینت را برای تمام پنجره هایی که مجددا هدایت شده اند انجام دهیم، و آدرس بافر را به سرور انتقال داده و ترکیبگر نیز در سرور نمایش اجرا شود.»

    اهمیت این تغییرات دست آخر برای کاربر نهایی این است که هر فریم کامل و بی نقص خواهد بود و بنا به سخنان هوگسبرگ، «برنامه ها به حدی قادر به کنترل فرآیند رندرینگ خود خواهند بود که دیگر شاهد شکستگی تصویر، اسلوموشن شدن (lag) و یا پرش تصویر (flicker) نخواهیم بود.»

    هیچ یک از امکانات گذشته از دست نخواهد رفت. برنامه هایی که با کتابخانه های GTK یا Qt کار می کنند می توانند از Wayland به عنوان کتابخانه استفاده کنند و از پشتیبانی Wayland بهره مند شوند و برنامه های قدیمی نیز می توانند بر روی X سروری که به عنوان یک برنامه متقاضی Wayland اجرا شده است، به خوبی اجرا شوند. آنچه Wayland وعده می دهد انعطاف پذیری بسیار بیشتر و کارآیی بهتر نسبت به X است.

    Wayland را می توان یک گام مثبت در لینوکس به شمار آورد و به همین دلیل است که شرکت هایی مثل رد هت، کنونیکال و اینتل (که هوگسبرگ را استخدام کرده است) به شدت دنبال توسعه ی Wayland هستند. زیرا که Wayland تمام مشکلات موجود در X را حل کرده و کارایی بهتری نسبت به X که تقریبا به پایان عمر مفیدش نزدیک شده، ارائه می کند!

    X چیست و چه ویژگی هایی دارد؟
    سیستم پنجره ای X پروژه ی شخصی Robert Scheifler بود که در سال 1984 در دانشگاه MIT شروع شد. حرف X به این دلیل که از پروژه ای با نام W الهام گرفته شده و بر مبنای آن نوشته شده بود، انتخاب شد. پروژه ی W بر روی سیستم عامل میکروکرنل V که در دانشگاه استنفورد نوشته شده بود عمل می کرد. اعلان آغاز پروژه ۱۹ ژوئن سال ۱۹۸۴ (معادل ۲۹ خرداد ۱۳۶۳ خورشیدی) بوده است با این یادداشت که «من مقدار زیادی از کدهای W را کش رفتم و آن را به جای رابط همسان، بین یک رابط ناهمسان قرار دادم و آن را X نامیدم. بازدهی کلی حدودا دو برابر W بود».

    برای بزرگتر شدن عکس روی آن کلیک کنید  نام:	X-Window-System-7ac2e48ea0330f9d-300x250.png نمایش ها:	1 اندازه:	20.2 KB شناسه:	18211

    X به سرور اجازه می داد که با استفاده از یک پروتکل امکان تولید و نمایش پنجره ها بر روی چند ماشین متقاضی (client) را فراهم سازد. در یک برهه پیچیده تاریخی، سرور X بر روی کلاینت هایی که صفحه نمایش، صفحه کلید و ماوس داشتند اجرا می شد، در حالیکه برنامه های متقاضی X بر روی یک پایانه راه دور (ماشین دیگری) اجرا می شدند. X مستقل از سخت افزار بود و مخفی بودن شبکه از دید کاربر بزرگترین امتیاز X بود. یک ماشین متقاضی X می توانست پنجره های هر تعداد پایانه راه دور را نمایش دهد.

    سازگاری و افزونه پذیری :
    در Wayland بسیاری از زیرساخت ها در سطح سیستم ارتقاء داده شده اند و قابلیتهای بسیاری به آن ها افزوده شده است. همچنین در Wayland دیگر رسم اشکال هندسی در سطح سرور انجام نمی گیرد، این موضوع اجازه می دهد کتابخانه ها قادر باشند API های مناسبی برای رندر کردن مهیا سازند.

    توسعه دهندگان Wayland افزونه هایی مثل XRandR، XRender و COMPOSITE را به سرور X اضافه کرده اند. همچنین توسعه دهندگان، برخی از API های موجود در X را که در کامپیوترهای مدرن امروزی استفاده نمی شدند، حذف کرده اند بدون این که مشکلی برای X پیش بیاید. در Wayland بسیاری از پیچیدگی های موجود در ارتباط بین لایه ها در X برداشته شده و کتابخانه ها، هسته و GPU را از هم جدا کرده اند.

    زندگی در Wayland!
    بسیاری از قابلیتهایی که X در ابتدا به آنان می بالید مثل استفاده از X در پایانه های راه دور و نمایش پنجره ها از راه دور دیگر در بین کاربران آنچنان استفاده ای ندارند. امروزه بستر پردازشی نسبت به بیست سال پیش، به کلی تغییر کرده است، جایی که پردازنده های قدرتمند در سیستم های دسکتاپ بروی همان قطعه ی سخت افزاری قرار دارند که کارت گرافیک نیز وجود دارد و قابلیت های شبکه، ویژگی کاملا زایدی بوده و عملا مانعی بر سر کارآیی سیستم به حساب می آید. برنامه های شبکه می توانند با ابزارهای مدیریت از راه دور همچون RDP یا VNC جایگزین شده یا حتی به شکل بهتری در یک مرورگر وب عمل کنند.

    لینوکس به اینکه بر روی ابزارهای مختلف قابل اجراست مشهور است، که این سخن کاملا درستی است اما Keith Packard به نکات جالبی اشاره کرده است: « چه تعداد از این ابزارهای مختلف به مخفی بودن شبکه -که ویژگی سرآمد X بود- اهمیت می دهند؟ چه تعداد از آن ها به سازگاری با ICCCM اهمیت می دهند؟ چه تعداد از آن ها واقعا به X اهمیت می دهند؟ جواب همه ی این سوال ها چیزی نخواهد بود جز “تعداد کمی”. » در عوض برنامه نویسانی که برای این ابزارها برنامه می نویسند از پیچیدگی، مصرف بالای پردازنده و حافظه، طولانی بودن پروسه روشن شدن سیستم شکایت می کنند. آن ها می خواهند این محدودیت ها را از بین ببرند و اغلب نیز چنین می کنند. همانطور که برنامه نویسان اندرویید از محیط ترکیبگر (compositing environment) خاص اندرویید به جای X استفاده کردند.

    Wayland برای قابل حمل بودن، ویژگی مشهود X، طراحی نشده است ولی کارآیی و قابل حمل بودن لینوکس و برنامه های گرافیکی لینوکس را افزایش خواهد داد. شاید به همین دلیل است که اینتل در جایگزینی Wayland به جای X نقش فعالی دارد، و به نظر می رسد Tizen اولین پلتفرمی باشد که این سرور نمایش جدید را به کار می گیرد. برای پیاده سازی مخفی بودن شبکه در Wayland علاقه ای وجود ندارد ولی در آینده می توان آن را پیاده سازی کرد. تا آن زمان، همانطور که قبلا اشاره شد می توان از X به عنوان متقاضی Wayland استفاده کرد و سازگاری نرم افزارهای شبکه ای X را با Wayland تامین نمود. چون X به عنوان یک متقاضی در Wayland اجرا می شود، این برنامه ها می توانند از امکانات شبکه ای X استفاده کنند. برنامه هایی که مختص به Wayland هستند چنین ویژگی ای ندارند اما همانطور که گفته شد برای این ويژگی ها تقاضای بالایی وجود ندارد.

    به ناچار بازسازی کل پشته گرافیکی لینوکس فرآیندی دشوار و طولانی است و مواردی وجود دارد که غلبه بر آنان مشکل است. در Wayland از OpenGL ES استفاده می شود و نه OpenGL ، چرا که libgl، کتابخانه ی GLX و همه ی وابسته های X را فراخوانی می کند. کتابخانه ها باید از این وابسته ها پیرایش شده و عملکرد مناسبشان را ارائه کنند. همچنین شرکتهای تولید کننده کارت گرافیک باید از Wayland پشتیبانی کنند. در حال حاضر Wayland تنها از درایورهای متن باز (open source) شرکت های Intel‏، AMD و NVIDIA پشتیبانی می کند. Wayland تنها به اندازه ی برنامه ها و کتابخانه هایی که از آن پشتیبانی می کنند مفید خواهد بود. برنامه هایی که با استفاده از GTK+‎ برای Xfce‏، GNOME‏، LXDE نوشته شده اند، پس از پورت شدن کتابخانه GTK+‎ به Wayland با آن سازگار خواهند شد. در ظاهر برنامه از همان اجزای گرافیکی رایج استفاده می شود ولی در پشته ی گرافیکی، این اقلام با کتابخانه مناسب رندر شده و به بافر Wayland منتقل می شوند. همچنین کتابخانه های Qt نیز در حال حرکت به سوی Wayland و پشتیبانی از آن بوده و توسعه دهندگان Kwin در KDE در حال فعالیت بروی آن هستند. توزیع های مطرحی همچون فدورا و اوبونتو نیز برای استفاده از Wayland آماده می شوند. چنانکه هوگسبرگ اعلام کرده است، نسخه ی ۱.۰ Wayland تا پایان سال جاری میلادی (اوایل دی ماه ۱۳۹۱) منتشر خواهد شد. با این حال هنوز در حال گذر از X به سمت Wayland هستیم و هنوز جا برای توسعه Wayland وجود دارد. با کمی شانس احتمالا ظرف یکی دو سال آینده شاهد انتشار توزیع های پیشرو بر مبنای آن، بهبود سرعت و کیفیت گرافیک لینوکس و کم شدن دردسر برنامه نویسان در حوزه گرافیک لینوکس خواهیم بود.
    آخرین ویرایش توسط Habili; در تاریخ/ساعت 01-13-2020, 02:32 AM.

درباره انجمن منطقه لینوکسی ها

انجمن منطقه لینوکسی ها با هدف ارتقاء سطح علمی کاربران در سطح جهانی و همچنین کمک به بالا بردن سطح علمی عمومی در زمینه های تخصصی فوق پایه گذاری شده است. انجمن منطقه لینوکسی ها از طریق کارشناسان و متخصصان پاسخگوی سوالات گوناگون کاربران مبتدی یا پیشرفته میباشد تا حد امکان تلاش شده که محیطی متنوع و کاربر پسند و به دور از هرگونه حاشیه جهت فعالیت کاربران در این انجمن ایجاد شود. لذا ما به صورت مستمر برای پیشرفت کمی و کیفی محتوی و اطلاعات انجمنمان میکوشیم که این برای ما ارزشمند و حائز اهمیت است. کلیه حقوق،اطلاعات و مقالات در این انجمن متعلق به سایت منطقه لینوکسی ها میباشد، و هرگونه نسخه برداری بدون ذکر منبع مورد پیگرد قانونی خواهد شد.

شبکه های اجتماعی

ایمیل مدیریت

Habili@linux-zone.org

در حال انجام ...
X