ProHoster > وبلاگ > اداره > نحوه کار گرافیک در لینوکس: مروری بر محیط های مختلف دسکتاپ
نحوه کار گرافیک در لینوکس: مروری بر محیط های مختلف دسکتاپ
این مقاله در مورد نحوه عملکرد گرافیک لینوکس و اجزای آن است. اسکرین شات های زیادی از پیاده سازی های مختلف محیط های دسکتاپ دارد.
اگر تفاوت زیادی بین KDE و GNOME ندارید، یا اگر دارید، اما میخواهید بدانید که چه جایگزینهای دیگری وجود دارد، پس این مقاله برای شما مناسب است. این یک نمای کلی است و اگرچه نام های زیادی دارد و اصطلاحات کمی دارد، اما برای مبتدیان و فقط به دنبال لینوکس مفید خواهد بود.
این موضوع همچنین ممکن است در هنگام تنظیم دسترسی از راه دور و هنگام اجرای تین کلاینت مورد توجه کاربران پیشرفته باشد. من اغلب با لینوکس های کاملاً چاشنی با این جمله ملاقات می کنم "در سرور فقط یک خط فرمان وجود دارد و من قصد ندارم گرافیک را با جزئیات بیشتر مطالعه کنم ، زیرا این همه برای کاربران عادی ضروری است." اما حتی کارشناسان لینوکس از کشف گزینه "-X" برای دستور ssh شگفت زده و خوشحال می شوند (و برای این منظور درک عملکرد و عملکرد سرور X مفید است).
منبع
من تقریباً 15 سال است که دوره های لینوکس را در "آکادمی شبکه LANITو من مطمئن هستم که بسیاری از آن بیش از پنج هزار نفری که من آموزش دادهام، مقالاتی در مورد هابر میخوانند و احتمالاً مینویسند. دوره ها همیشه بسیار شلوغ هستند (متوسط مدت دوره پنج روز است)، باید در مورد موضوعاتی صحبت کنید که حداقل به ده روز برای آشنایی کامل نیاز دارد. و همیشه در طول دوره، بسته به مخاطبان (مدیران تازه کار یا باتجربه)، و همچنین "سوالات مخاطبان"، انتخاب می کنم که چه چیزی را با جزئیات بیشتری منتقل کنم و چه چیزی سطحی تر است تا زمان بیشتری را اختصاص دهم. به ابزارهای خط فرمان و کاربرد عملی آنها. به اندازه کافی چنین موضوعاتی وجود دارد که باید کمی فدا شود. اینها عبارتند از "تاریخچه لینوکس"، "تفاوت در توزیع های لینوکس"، "درباره مجوزها: GPL، BSD، ..."، "درباره گرافیک و محیط های دسکتاپ" (موضوع این مقاله) و غیره. نه اینکه مهم نیستند، اما معمولاً سؤالات «اینجا و اکنون» بسیار مرتبطتری وجود دارد و فقط حدود پنج روز... با این حال، برای درک کلی از اصول سیستم عامل لینوکس، درک تنوع موجود (به طوری که حتی با استفاده از یک توزیع خاص لینوکس ، هنوز هم دید وسیع تری به این همه دنیای عظیم و پهناوری که «لینوکس» نامیده می شود داشته باشید) مطالعه این موضوعات مفید و ضروری است.
در سرتاسر مقاله، برای هر جزء، پیوندهایی را برای کسانی که می خواهند عمیق تر در موضوع غوطه ور شوند، به عنوان مثال به مقالات ویکی پدیا نشان می دهم (در حالی که در صورت وجود مقالات انگلیسی و روسی، به نسخه کاملتر / مفیدتر اشاره می کنم).
برای مثال های اولیه و اسکرین شات ها، از توزیع openSUSE استفاده کردم. امکان استفاده از هر توزیع توسعه یافته جامعه دیگری با تعداد زیادی بسته در مخزن وجود داشت. نشان دادن تنوع طرح های دسکتاپ در یک توزیع تجاری دشوار است، اما ممکن است، زیرا آنها اغلب از یک یا دو محیط دسکتاپ شناخته شده تر استفاده می کنند. بنابراین توسعه دهندگان وظیفه انتشار یک سیستم عامل پایدار و اشکال زدایی شده را محدود می کنند. در همان سیستم، من تمام DM / DE / WM را نصب کردم (توضیحاتی در مورد این اصطلاحات در زیر) که در مخزن پیدا کردم.
اسکرین شات هایی با "قاب های آبی" به تازگی در openSUSE گرفته می شوند.
اسکرین شات هایی با "قاب های سفید" در توزیع های دیگر ساخته شده است، آنها در تصویر نشان داده شده اند.
اسکرین شات هایی با "حاشیه خاکستری" از اینترنت گرفته شده است، به عنوان نمونه ای از طراحی دسکتاپ از سال گذشته.
بنابراین، بیایید شروع کنیم.
اجزای اصلی که گرافیک را تشکیل می دهند
من سه جزء اصلی را جدا میکنم و آنها را به ترتیب راهاندازی در هنگام راهاندازی سیستم فهرست میکنم:
DM (مدیر نمایش)؛
سرور نمایش؛
DE (محیط دسکتاپ).
علاوه بر این، به عنوان موارد فرعی مهم محیط دسکتاپ:
Apps Manager/Launcher/Switcher (دکمه شروع)؛
WM (مدیر پنجره)؛
نرم افزارهای مختلفی که با محیط دسکتاپ ارائه می شود.
جزئیات بیشتر در مورد هر مورد.
DM (مدیر نمایش)
اولین برنامه ای که با شروع "گرافیک" شروع می شود DM (مدیر نمایش) است که یک مدیر نمایش است. وظایف اصلی آن:
از کاربران بپرسید که به سیستم اجازه دهند، داده های احراز هویت (رمز عبور، اثر انگشت) را درخواست کنند.
انتخاب کنید که کدام محیط دسکتاپ اجرا شود.
در حال حاضر، توزیع های مختلف به طور گسترده استفاده می شود:
می توان به Fly-DM (مورد استفاده در AstraLinux) نیز اشاره کرد.
لیست DM های موجود در به روز نگه داشته می شود مقاله ویکی
شایان ذکر است که اسکرین شات های زیر از همان مدیر نمایش LightDM استفاده می کنند، اما در توزیع های مختلف (نام توزیع ها داخل پرانتز هستند). بررسی کنید که این DM به لطف کار طراحان توزیع های مختلف چقدر می تواند متفاوت به نظر برسد.
نکته اصلی در این تنوع این است که مشخص شود اپلیکیشنی وجود دارد که وظیفه راه اندازی گرافیک ها را بر عهده دارد و به کاربر امکان دسترسی به این گرافیک ها را می دهد و پیاده سازی های مختلفی از این برنامه وجود دارد که از نظر ظاهری و برخی کارکردها متفاوت هستند (انتخاب طراحی محیط ها، انتخاب کاربران، نسخه برای کاربران بد دید، امکان دسترسی از راه دور از طریق پروتکل XDMCP).
نمایش سرور
Display Server نوعی پایه گرافیکی است که وظیفه اصلی آن کار با کارت گرافیک، مانیتور و دستگاه های ورودی مختلف (صفحه کلید، ماوس، پد لمسی) است. یعنی یک برنامه (به عنوان مثال، یک مرورگر یا یک ویرایشگر متن) که در یک "گرافیک" ارائه می شود، نیازی به دانستن نحوه کار مستقیم با دستگاه ها ندارد، نیازی به دانستن درایورها ندارد. همه اینها توسط پنجره X مراقبت می شود.
وقتی صحبت از Display Server میشود، برای سالها در لینوکس و در یونیکس، به معنای یک برنامه کاربردی بود سیستم پنجره ایکس یا در مردم عادی X (X).
X تحت سیستم عامل ویندوز است (برای راه اندازی از راه دور برنامه های گرافیکی، به عنوان مثال با استفاده از PuTTY مورد نیاز است).
ابتدا اجازه دهید X و چند برنامه گرافیکی را در آنها اجرا کنیم.
تمرین "X را اجرا کنید و برنامه های کاربردی در آن"
من همه کارها را از کاربر webinaruser تازه ایجاد شده انجام خواهم داد (انجام همه کارها از ریشه آسان تر است، اما ایمن تر نیست).
از آنجایی که H'am نیاز به دسترسی به دستگاهها دارد، من این دسترسی را میدهم: من فهرست دستگاهها را با مشاهده خطاها هنگام شروع X در گزارش تعیین کردم (/home/webinaruser/.local/share/xorg/Xorg.77.log)
گزینه ها: * -retro - با پس زمینه کلاسیک "خاکستری" شروع کنید، نه سیاه به عنوان پیش فرض. * :77 - من تنظیم کردم (هر یک در محدوده معقول ممکن است، فقط :0 به احتمال زیاد قبلاً توسط گرافیک های در حال اجرا اشغال شده است) شماره صفحه نمایش، یک شناسه منحصر به فرد واقعی را تنظیم کردم که توسط آن می توان بین چندین X در حال اجرا تمایز قائل شد. * vt8 - ترمینال را مشخص می کند، در اینجا /dev/tty8، که X روی آن نمایش داده می شود.
راه اندازی برنامه گرافیکی:
برای انجام این کار، ابتدا یک متغیر تنظیم می کنیم که توسط آن برنامه متوجه می شود کدام یک از X ها را اجرا می کنم تا آنچه را که باید ترسیم شود ارسال کند:
% export DISPLAY=":77"
شما می توانید لیست X در حال اجرا را به این صورت مشاهده کنید:
ps -fwwC X
پس از تنظیم متغیر، میتوانیم برنامههای کاربردی را در X خود راهاندازی کنیم - برای مثال، ساعت را راهاندازی میکنم:
% xclock -update 1 &
% xcalc &
% xeyes -g 200x150-300+50 &
ایده ها و نتیجه گیری های اصلی از این بخش:
X باید به دستگاهها دسترسی داشته باشد: ترمینال، کارت ویدیو، دستگاههای ورودی،
X به خودی خود هیچ عنصر رابطی را نشان نمی دهد - برای اجرای برنامه های گرافیکی در آن یک بوم خاکستری (اگر گزینه "--retro" باشد) یا یک بوم سیاه با اندازه های خاص (مثلاً 1920 × 1080 یا 1024 × 768) است.
حرکت "صلیب" نشان می دهد که X موقعیت ماوس را ردیابی می کند و این اطلاعات را به برنامه های در حال اجرا در آن منتقل می کند.
همچنین X کلیدهای صفحه کلید را می گیرد و این اطلاعات را به برنامه ها منتقل می کند.
متغیر DISPLAY به برنامههای گرافیکی میگوید که روی چه صفحهای (هر X در هنگام راهاندازی با یک شماره صفحه نمایش منحصربهفرد راهاندازی میشوند)، و از این رو کدام یک از آنهایی که روی دستگاه من اجرا میشوند، X را ترسیم کنند. (همچنین می توان این متغیر را روی یک ماشین راه دور تنظیم کرد و خروجی را برای X هایی که روی ماشین دیگری در شبکه اجرا می شوند ارسال کرد.) از آنجایی که X ها بدون گزینه -aut راه اندازی شده اند، نیازی به پرداختن به متغیر XAUTHORITY یا xhost نیست. فرمان
برنامه های گرافیکی (یا همانطور که توسط مشتریان X نامیده می شوند) در X ترسیم می شوند - در حالی که بدون توانایی جابجایی / بستن / تغییر آنها "-g (Width)x(Height)+(ShiftFromLeftEdge)+(ShiftFromTopEdge)". با علامت منفی، به ترتیب، از سمت راست و از لبه پایین.
دو عبارت قابل ذکر عبارتند از سرور X (به عنوان X نامیده می شود) و X کلاینت (همانطور که هر برنامه گرافیکی که در X اجرا می شود نامیده می شود). در درک این اصطلاحات کمی سردرگمی وجود دارد، بسیاری آن را دقیقا برعکس می دانند. در شرایطی که من از "دستگاه مشتری" (در اصطلاحات دسترسی از راه دور) به "سرور" (در اصطلاح دسترسی از راه دور) وصل میشوم تا یک برنامه گرافیکی از سرور روی مانیتور خود نمایش دهم، سرور X بر روی ماشینی که در آن مانیتور (یعنی در "دستگاه مشتری"، نه روی "سرور")، و سرویس گیرندگان X در "سرور" شروع و اجرا می شوند، اگرچه آنها در مانیتور "ماشین مشتری" نمایش داده می شوند.
اجزای DE
در مرحله بعد، اجزایی که معمولا دسکتاپ را تشکیل می دهند را تجزیه و تحلیل خواهیم کرد.
اجزای DE: دکمه شروع و نوار وظیفه
بیایید با دکمه به اصطلاح "شروع" شروع کنیم. اغلب این یک اپلت جداگانه است که در "Taskbar" استفاده می شود. همچنین معمولاً یک اپلت برای جابجایی بین برنامه های در حال اجرا وجود دارد.
پس از بررسی محیطهای مختلف دسکتاپ، چنین برنامههایی را با نام کلی «Apps Manager (Launcher/Switcher)» خلاصه میکنم، یعنی ابزاری برای مدیریت برنامهها (راهاندازی و جابهجایی بین برنامههای در حال اجرا)، و همچنین ابزارهایی را نشان میدهم که یک نمونه ای از کاربرد از این نوع
این به شکل یک دکمه "شروع" در "نوار وظیفه" کلاسیک (طول کامل یکی از لبه های صفحه نمایش) اتفاق می افتد:
همچنین میتوانید «نوار وظیفههای MacOS-shaped» را بهطور جداگانه برجسته کنید (نه کل طول لبه صفحه)، اگرچه بسیاری از نوارهای وظیفه میتوانند در هر دو ظاهر شوند. در اینجا، بلکه، تفاوت اصلی صرفاً بصری است - وجود "اثر افزایش نمادها در شناور".
○ اسکله،
○ لاته داک،
○ اسکله قاهره،
○ تخته.
و / یا سرویسی که با فشار دادن کلیدهای میانبر برنامه ها را راه اندازی می کند (در بسیاری از محیط های دسکتاپ، یک مؤلفه مشابه لزوماً وجود دارد و به شما امکان می دهد کلیدهای میانبر خود را پیکربندی کنید):
○ sxhkd.
همچنین "لانچر"های مختلفی به شکل منو وجود دارد (از انگلیسی. Launch (run)):
من همچنین "WM قدیمی با عناصر DE" را لیست خواهم کرد. آن ها آنها علاوه بر مدیر پنجره، دارای عناصری مانند دکمه Start و Taskbar هستند که بیشتر در DE تمام عیار ذاتی هستند. اگرچه IceWM و WindowMaker قبلاً نسخه های به روز شده خود را در سال 2020 منتشر کرده اند، اگرچه چقدر "قدیمی" هستند. معلوم می شود که نه "قدیمی" بلکه "قدیمی" صحیح تر است:
علاوه بر "کلاسیک" ("مدیران پنجره پشته")، به طور جداگانه قابل ذکر است کاشی کاری شده WM، که به پنجره ها اجازه می دهد تا در کل صفحه کاشی شوند و برای برخی از برنامه ها، یک دسکتاپ جداگانه برای هر برنامه در حال اجرا به صورت تمام صفحه. این برای افرادی که قبلاً از آنها استفاده نکرده اند کمی غیر معمول است، اما از آنجایی که من خودم مدت زیادی است که از چنین رابط کاربری استفاده می کنم، می توانم بگویم که بسیار راحت است و شما به سرعت به چنین رابطی عادت می کنید، پس از آن مدیران پنجره "کلاسیک" راحت به نظر نمی رسند.
همچنین لازم به ذکر است که پروژه به طور جداگانه کامپیز و مفهومی مانند "Composite Window Manager" که از قابلیت های شتاب سخت افزاری برای نمایش شفافیت، سایه ها و جلوه های سه بعدی مختلف استفاده می کند. حدود 10 سال پیش رونق افکت های سه بعدی روی دسکتاپ های لینوکس وجود داشت. اکنون، بسیاری از مدیران پنجره ساخته شده در DE از برخی از ویژگی های ترکیبی استفاده می کنند. اخیرا ظاهر شد آتش - محصولی با قابلیت Compiz مشابه برای Wayland.
فهرست دقیقی از مدیران پنجره های مختلف را نیز می توانید در اینجا پیدا کنید مقاله مقایسه.
اجزای DE: بقیه
همچنین شایان ذکر است اجزای دسکتاپ زیر (در اینجا من از اصطلاحات انگلیسی برای توصیف نوع برنامه استفاده می کنم - اینها نام خود برنامه ها نیستند):
اپلت ها:
نرم افزار (مجموعه ابزار ابزارک) - اغلب یک "حداقل مجموعه" نرم افزار با محیط ارائه می شود:
از اجزای ذکر شده در بالا، به اصطلاح "محیط دسکتاپ" به دست می آید. اغلب تمام اجزای آن با استفاده از کتابخانه های گرافیکی یکسان و با استفاده از اصول طراحی یکسان توسعه می یابند. بنابراین، حداقل، یک سبک رایج برای ظاهر برنامه ها حفظ می شود.
در اینجا میتوانیم محیطهای دسکتاپ موجود زیر را برجسته کنیم:
حتی چنین نمونههای جالبی از تاریخ وجود دارد: در سالهای 2003-2007، یک "طراحی دسکتاپ سه بعدی" برای لینوکس با نام "Project Looking Glass" از Sun ساخته شد. من خودم از این دسکتاپ استفاده کردم، یا به عبارتی "بازی کردم"، زیرا استفاده از آن سخت بود. این "پوست سه بعدی" در زمانی به زبان جاوا نوشته شد که کارت گرافیک سه بعدی وجود نداشت. بنابراین، تمام اثرات توسط پردازنده دوباره محاسبه می شد و کامپیوتر باید بسیار قدرتمند بود، در غیر این صورت همه چیز به کندی کار می کرد. ولی قشنگ شد کاشی های کاربردی سه بعدی را می توان چرخاند/بسط داد. امکان چرخش در سیلندر رومیزی با کاغذ دیواری از یک پانورامای 3 درجه وجود داشت. چندین برنامه زیبا برای خود وجود داشت: به عنوان مثال گوش دادن به موسیقی به شکل "سی دی چنجر" و غیره. می توانید به یوتیوب نگاه کنید. تصویری در مورد این پروژه، تنها کیفیت این فیلم ها به احتمال زیاد ضعیف خواهد بود، زیرا در آن سال ها امکان آپلود ویدیوهای با کیفیت بالا وجود نداشت.
رومیزی سبک. یک پروژه برای مدت طولانی، از سال 1996 وجود دارد. در سالهای اخیر، برخلاف KDE و GNOME سنگینتر، در بسیاری از توزیعهایی که به یک رابط دسکتاپ سبک و «کلاسیک» نیاز دارند، بسیار محبوب است. دارای تنظیمات بسیاری و تعداد زیادی از برنامه های آن است: ترمینال (xfce4-terminal)، مدیر فایل (thunar)، نمایشگر تصویر (ristretto)، ویرایشگر متن (موس پد).
در توزیع سیستم عامل ابتدایی استفاده می شود. در اینجا می توان گفت که "دسکتاپ" وجود دارد که در یک توزیع واحد توسعه یافته و مورد استفاده قرار می گیرد و در توزیع های دیگر به شدت مورد استفاده قرار نمی گیرد (اگر "اصلا" استفاده نمی شود. حداقل آنها هنوز محبوبیتی کسب نکرده اند و بخش زیادی از مخاطبان را در مورد مزایای رویکرد خود متقاعد نکرده اند. هدف Pantheon ساخت یک رابط کاربری شبیه macOS است.
تمرکز قوی روی جلوههای گرافیکی و ابزارکها (از روزهایی که سایر محیطهای دسکتاپ ویجتهایی مانند تقویم/ساعت نداشتند). از کتابخانه های خود استفاده می کند. مجموعه بزرگی از برنامه های "زیبا" آن وجود دارد: ترمینال (اصطلاحات)، پخش کننده ویدئو (Rage)، نمایشگر تصویر (Ephoto).
در ابتدا یک رابط دسکتاپ "کلاسیک"، ایجاد شده در مخالفت با KDE، که در کتابخانه QT نوشته شده بود، در آن زمان تحت مجوزی توزیع شد که برای توزیع های تجاری چندان مناسب نبود.
از نسخه سوم گنوم، گنوم شروع به ارسال با پوسته گنوم کرد، که ظاهری غیر کلاسیک دارد، که همه کاربران آن را دوست نداشتند (پذیرش هر گونه تغییر ناگهانی در رابط ها برای کاربران دشوار است). در نتیجه - ظهور پروژه های چنگال که توسعه این دسکتاپ را به سبک "کلاسیک" ادامه می دهند: MATE و Cinnamon. به طور پیش فرض در بسیاری از توزیع های تجاری استفاده می شود. دارای تعداد زیادی تنظیمات و برنامه های کاربردی آن است.
بر اساس GNOME2 ظاهر شد و به توسعه این محیط ادامه می دهد. دارای تعداد زیادی ترفند و فورک برنامههایی است که در GNOME2 استفاده شدهاند (از نامهای جدید استفاده میشود تا فورکها با نسخه جدیدشان برای GNOME3 اشتباه گرفته نشوند).
یک فورک سبک "کلاسیک" گنوم که به عنوان بخشی از توزیع Solus توسعه یافته است، اما اکنون به عنوان یک دسکتاپ مستقل در توزیع های مختلف دیگر نیز ارائه می شود.
KDE_Plasma (یا همانطور که اغلب نامیده می شود، فقط KDE)
محیط دسکتاپ توسعه یافته توسط پروژه KDE.
تعداد زیادی تنظیمات از رابط گرافیکی و بسیاری از برنامه های گرافیکی توسعه یافته در این دسکتاپ در دسترس یک کاربر ساده است.
در سال 2008، KDE اجرای جدید خود از KDE Plasma را منتشر کرد (موتور دسکتاپ به شدت بازنویسی شده بود). همچنین، مانند GNOME/MATE، همه طرفداران KDE آن را دوست نداشتند. در نتیجه، یک چنگال از پروژه ظاهر شد که توسعه نسخه قبلی به نام TDE (محیط دسکتاپ ترینیتی) را ادامه داد.
یکی از محیط های دسکتاپ جدیدتر که با استفاده از Qt (که KDE روی آن نوشته شده است) نوشته شده است. تنظیمات زیادی دارد و رابط کاربری نسبتاً زیبا (اگرچه این یک مفهوم ذهنی است) و به خوبی توسعه یافته است. به عنوان بخشی از توزیع Deepin Linux توسعه یافته است. همچنین بسته هایی برای توزیع های دیگر وجود دارد.
پرواز
نمونه ای از محیط دسکتاپ که با استفاده از Qt نوشته شده است. به عنوان بخشی از توزیع Astra Linux توسعه یافته است.
محیط دسکتاپ سبک. مانند چندین مثال قبلی که با استفاده از Qt نوشته شده است. در واقع ادامه پروژه LXDE و نتیجه ادغام با پروژه Razor-qt است.
همانطور که می بینید، دسکتاپ لینوکس می تواند بسیار متفاوت به نظر برسد و یک رابط کاربری مناسب برای سلیقه همه وجود دارد: از بسیار زیبا و با جلوه های سه بعدی تا مینیمال، از "کلاسیک" تا غیر معمول، از سیستم سنگین تا سبک، از صفحه نمایش های بزرگ تا تبلت / گوشی های هوشمند
خوب، من می خواهم امیدوارم که بتوانم ایده ای در مورد اجزای اصلی گرافیک و دسکتاپ در سیستم عامل لینوکس ارائه دهم.
مطالب این مقاله در ژوئیه 2020 در یک وبینار آزمایش شد. قابل مشاهده است اینجا.
همین. امیدوارم مفید بوده باشه اگر سوال و نظری دارید بنویسید. خوشحال میشم جواب بدم خب بیا درس بخون آکادمی شبکه LANIT!