ProHoster > Blog > башкаруу > Linux'та графика кантип иштейт: ар кандай рабочий чөйрөлөргө сереп салуу
Linux'та графика кантип иштейт: ар кандай рабочий чөйрөлөргө сереп салуу
Бул макалада графика Linux-та кандай иштээри жана ал кандай компоненттерден турганы жөнүндө. Ал рабочий чөйрөлөрдүн ар кандай ишке ашырууларынын көптөгөн скриншотторун камтыйт.
Эгер сиз чындап эле KDE менен GNOMEди айырмалабасаңыз, же башка альтернативалар бар экенин билгиңиз келсе, анда бул макала сиз үчүн. Бул сереп болуп саналат жана анда көптөгөн аттар жана бир нече терминдер камтылганына карабастан, материал үйрөнчүктөр жана Linuxту жөн эле издегендер үчүн пайдалуу болот.
Тема алыскы кирүү мүмкүнчүлүгүн орнотууда жана жука кардарды ишке ашырууда алдыңкы колдонуучуларды да кызыктырышы мүмкүн. Мен Linuxтун тажрыйбалуу колдонуучуларын көп жолуктурам: "Серверде буйрук сабы гана бар, мен графиканы майда-чүйдөсүнө чейин изилдөөнү пландаган жокмун, анткени мунун баары жөнөкөй колдонуучулар үчүн керек." Бирок Linux адистери да ssh буйругунун “-X” вариантын тапканына абдан таң калышат (жана бул үчүн X серверинин иштешин жана функцияларын түшүнүү пайдалуу).
булак
Мен дээрлик 15 жылдан бери Linux курстарын окутуп келем "Network Academy LANIT«Мен окуткан беш миңден ашык адамдын көбү Хабр жөнүндө макалаларды окуп, жазышаарына мен ишенем. Курстар ар дайым абдан интенсивдүү (курстун орточо узактыгы беш күн); толук түшүнүү үчүн, жок эле дегенде, он күн талап кылынган темаларды камтышы керек. Курстун жүрүшүндө ар дайым аудиторияга (жаңы келгендер же тажрыйбалуу администраторлор) жараша, ошондой эле “аудиториянын суроолоруна” жараша, мен эмнени кененирээк, эмнени үстүртөн берүү керектигин тандайм. буйрук сабынын утилиталарына жана аларды практикалык колдонууга убакыт. Бир аз курмандыкты талап кылган ушул сыяктуу темалар жетиштүү. Булар "Linux тарыхы", "Linux дистрибуцияларындагы айырмачылыктар", "Лицензиялар жөнүндө: GPL, BSD, ...", "Графика жана рабочий чөйрөлөр жөнүндө" (бул макаланын темасы) жана башкалар. Алар эмес. маанилүү, бирок, адатта, "бул жерде жана азыр" деген дагы көптөгөн актуалдуу суроолор бар жана болжол менен беш күн... Бирок, Linux OS негиздерин жалпы түшүнүү үчүн, жеткиликтүү көп түрдүүлүктү түшүнүү (ошондуктан бир конкреттүү Linux дистрибуциясы, сиз дагы эле "Linux" деп аталган бул чоң жана кенен дүйнөнү кененирээк көрөсүз, бул темаларды изилдөө пайдалуу жана зарыл.
Макаланын жүрүшү менен, мен темага тереңирээк сүңгүүнү каалагандар үчүн ар бир компонентке шилтемелерди берем, мисалы, Wikipedia макалаларына (англисче жана орусча макалалар бар болсо, толук/пайдалуу версиясын көрсөтөм).
Негизги мисалдар жана скриншоттор үчүн мен openSUSE бөлүштүрүүнү колдондум. Репозиторийде көп сандагы пакеттер болгондо, коомчулук тарабынан иштелип чыккан башка бөлүштүрүүнү колдонсо болот. Коммерциялык дистрибуцияда рабочий дизайндардын ар түрдүүлүгүн көрсөтүү кыйын, бирок мүмкүн эмес, анткени алар көбүнчө эң белгилүү иш столунун бир же эки чөйрөсүн гана колдонушат. Ошентип, иштеп чыгуучулар туруктуу, мүчүлүштүктөрү оңдолгон ОСти чыгаруу милдетин кыскартат. Ушул эле системада мен репозиторийден тапкан бардык DM/DE/WM орноттум (төмөндө бул терминдердин түшүндүрмөсү).
"Көк алкактар" менен скриншоттор openSUSEде тартылган.
Мен башка дистрибуцияларда "ак жээкчелер" менен скриншотторду алдым, алар скриншотто көрсөтүлгөн.
"Боз жээкчелери" бар скриншоттор өткөн жылдардагы иш столунун үлгүлөрүнүн мисалы катары Интернеттен алынган.
Ошентип, баштайлы.
Графиканы түзгөн негизги компоненттер
Мен үч негизги компонентти бөлүп көрсөтөм жана аларды системаны ишке киргизүүдө ишке киргизүү тартиби боюнча тизмелейм:
DM (дисплей менеджери);
Дисплей сервери;
DE (иш столунун чөйрөсү).
Кошумча, иш тактасынын чөйрөсүнүн маанилүү пунктчалары катары:
Белгилей кетчү нерсе, төмөнкү скриншоттор бир эле LightDM дисплей менеджерин колдонушат, бирок ар кандай бөлүштүрүүдө (таратуу аттары кашаада көрсөтүлгөн). Бул DM ар кандай дистрибьюторлордун дизайнерлеринин эмгегинин аркасында канчалык башкача көрүнөөрүн көрүңүз.
Бул көп түрдүүлүктүн негизгиси - графиканы ишке киргизүү үчүн жооптуу тиркеме бар экендигин жана колдонуучуга бул графикага кирүү мүмкүнчүлүгүн берүү жана бул тиркеменин тышкы көрүнүшү жана функционалдуулугу боюнча бир аз айырмаланган ар кандай ишке ашыруулар бар экендигин ачык-айкын көрсөтүү. дизайн чөйрөлөрү, колдонуучуларды тандоо, начар көргөн колдонуучулар үчүн версия, протокол аркылуу алыстан кирүү мүмкүнчүлүгү XDMCP).
Серверди көрсөтүү
Дисплей сервери графикалык негиздин бир түрү, анын негизги милдети видеокарта, монитор жана ар кандай киргизүү түзүлүштөрү (клавиатура, чычкан, сенсордук панелдер) менен иштөө. Башкача айтканда, "графикте" берилген тиркеме (мисалы, браузер же текст редактору) түзмөктөр менен түз иштөөнү билүүнүн, ошондой эле драйверлер жөнүндө билүүнүн кереги жок. X Window мунун бардыгына кам көрөт.
Дисплей сервери жөнүндө сөз болгондо, көп жылдар бою Linux, жада калса Unixте тиркеме айтылган X терезе тутуму же жалпы тилде X (X).
Азыр көптөгөн дистрибуциялар X ордуна келет Уэйлэнд.
X Windows OS астында (графикалык тиркемелерди алыстан ишке киргизүү үчүн керек, мисалы, PuTTY аркылуу).
Биринчиден, X жана алардагы бир нече графикалык тиркемелерди ишке киргизели.
Семинар "иштеп жаткан X жана андагы тиркемелер"
Мен жаңы түзүлгөн вебинарузер колдонуучусунун баарын жасайм (баарын root катары жасоо оңой, бирок коопсуз эмес).
X түзмөктөргө кирүүгө муктаж болгондуктан, мен уруксат берем: Түзмөктөрдүн тизмеси журналда X баштаганда каталарды карап аныкталган (/home/webinaruser/.local/share/xorg/Xorg.77.log)
Параметрлер: * -ретро - демейки катары кара менен эмес, "боз" классикалык фон менен ишке киргизүү; * :77 - Мен экрандын номерин койдум (акылга сыярлык диапазондо каалагандай болушу мүмкүн, :0 гана мурунтан эле иштеп жаткан графика менен ээлеген) экрандын номерин, чынында кандайдыр бир уникалдуу идентификатордун түрү, анын жардамы менен бир нече иштеп жаткан Xs айырмалоого болот; * vt8 - терминалды көрсөтөт, бул жерде /dev/tty8, анда X көрсөтүлөт).
Графикалык тиркемени ишке киргизиңиз:
Бул үчүн, биз адегенде өзгөргүчтү орнотобуз, анын жардамы менен колдонмо Xтин кайсынысын чийүү керек экенин жөнөтүү үчүн иштеп жатканымды түшүнөт:
% export DISPLAY=":77"
Иштеп жаткан Xтердин тизмесин төмөнкүдөй көрө аласыз:
ps -fwwC X
Биз өзгөрмө орноткондон кийин, биз Xsдеги тиркемелерди ишке киргизе алабыз - мисалы, мен саатты ишке киргизем:
% xclock -update 1 &
% xcalc &
% xeyes -g 200x150-300+50 &
Бул фрагменттин негизги идеялары жана корутундулары:
X түзмөктөргө кирүү керек: терминал, видео карта, киргизүү түзмөктөрү,
Xs өзү эч кандай интерфейс элементтерин көрсөтпөйт - анда графикалык тиркемелерди иштетүү үчүн бул боз (эгерде "--ретро" опциясы болсо) же белгилүү өлчөмдөгү кара холст (мисалы, 1920x1080 же 1024x768).
"Кресттин" кыймылы Xs чычкандын абалына көз салып, бул маалыматты анда иштеген тиркемелерге өткөрүп берерин көрсөтүп турат.
X ошондой эле клавиатурадагы баскычтарды басып, бул маалыматты тиркемелерге өткөрүп берет.
DISPLAY өзгөрмөсү графикалык тиркемелерди кайсы экрандагы (ар бир X иштетилгенде уникалдуу экран номери менен ишке киргизилет) жана ошондуктан менин машинамда иштегендердин кайсысында X'тер тартылышы керектигин айтып берет. (Ошондой эле бул өзгөрмөдө алыскы машинаны көрсөтүүгө жана тармактагы башка машинада иштеген Xтерге чыгарууну жөнөтүүгө болот.) Xs -auth опциясы жок ишке киргизилгендиктен, XAUTHORITY өзгөрмө же xhost менен иштөөнүн кереги жок. буйрук.
Графикалык тиркемелер (же X кардарлары аларды чакыргандай) X'де көрсөтүлөт - аларды жылдыруу/жабуу/өзгөртүү мүмкүнчүлүгү жок "-g (Width)x(Height)+(OffsetFromLeftEdge)+(OffsetFromTopEdge)". Минус белгиси менен, тиешелүүлүгүнө жараша, оң жана төмөнкү четинен.
Белгилей кетчү эки термин: X-сервери (X деген ушундай деп аталат) жана X-кардарлар (X-де иштеген графикалык тиркеме ушундай деп аталат). Бул терминологияны түшүнүүдө бир аз башаламандык бар; көптөр мунун тескерисин түшүнүшөт. Менин мониторумдагы серверден графикалык тиркемени көрсөтүү үчүн мен "кардарлык машинадан" (алыштан кирүү терминологиясында) "серверге" (алыстан жетүү терминологиясында) кошулган учурда, X сервери иштей баштайт. монитор (б.а. "серверде" эмес, "кардарлык машинада") жана X кардарлары "кардар машинасынын" мониторунда көрсөтүлгөнүнө карабастан, "серверде" иштей турган машина.
DE компоненттери
Андан кийин, адатта, иш тактасын түзгөн компоненттерди карап көрөлү.
DE компоненттери: Баштоо баскычы жана тапшырмалар панели
"Старт" деп аталган баскыч менен баштайлы. Көбүнчө бул "Тапшырма панелинде" колдонулган өзүнчө апплет. Адатта иштеп жаткан тиркемелерди алмаштыруу үчүн апплет бар.
Ар кандай рабочий чөйрөлөрдү карап чыгып, мен мындай тиркемелерди “Колдонмолор менеджери (ишке киргизгич/которуу)” деген жалпы ат менен кыскача айтып бермекмин, башкача айтканда, тиркемелерди башкаруу куралы (ишке киргизүү жана иштеп жаткандардын ортосунда которуштуруу), ошондой эле утилиталарды көрсөтөт элем. колдонмонун бул түрүнүн мисалы.
Ал классикалык (экрандын четтеринин биринин бүт узундугу) "Тапшырма панелиндеги" "Старт" баскычы түрүндө келет:
Ошондой эле сизде өзүнчө "MacOS түрүндөгү тапшырмалар панели" болушу мүмкүн (экрандын четинин толук узундугу эмес), бирок көптөгөн тапшырмалар тилкелери эки стилде тең пайда болушу мүмкүн. Бул жерде, тескерисинче, негизги айырмасы таза визуалдык болуп саналат - "көбөйткөндө пиктограмманы чоңойтуу эффектинин" болушу.
○ доки,
○ латте-док,
○ Каир док,
○ тактай.
Жана/Же ысык баскычтарды басканда тиркемелерди ишке киргизген кызмат (көптөгөн рабочий чөйрөлөрдө ушуга окшош компонент талап кылынат жана өзүңүздүн ысык баскычтарыңызды конфигурациялоого мүмкүндүк берет):
○ sxhkd.
Ошондой эле ар кандай менюга окшош "ишке киргизгичтер" бар (англисче Launch (ишке киргизүү)):
WM (Терезе менеджери) - терезелерди башкаруу үчүн жооптуу тиркеме, төмөнкү мүмкүнчүлүктөрдү кошот:
терезелерди иш үстөлдүн айланасында жылдыруу (анын ичинде аталыш тилкесинде эле эмес, терезенин каалаган жеринде Alt баскычын басып туруу менен стандарттуу);
терезелердин өлчөмүн өзгөртүү, мисалы, "терезе алкагын" сүйрөө;
терезе интерфейсине тиркемени кичирейтүү/максимизациялоо/жабуу үчүн "наам" жана баскычтарды кошот;
"фокуста" кайсы колдонмонун түшүнүгү.
Мен эң белгилүүлөрүн тизмелейм (каша ичинде демейки боюнча кайсы DE колдонуларын көрсөтөм):
Мен ошондой эле "DE элементтери менен эски WM" тизмелейм. Ошол. терезе менеджеринен тышкары, аларда толук кандуу DE үчүн мүнөздүү болгон "Старт" баскычы жана "Тапшырма панели" сыяктуу элементтер бар. Бирок, эгер IceWM жана WindowMaker экөө тең 2020-жылы жаңыланган версияларын чыгарышкан болсо, алар канчалык "эски". Көрсө, «эски» эмес, «эскилер» туурараак экен:
"Классикалык" ("стек терезе менеджерлери") тышкары, өзгөчө белгилей кетүү керек плиткалуу WM, бул сизге терезелерди бүт экранга "плиткалуу" коюуга, ошондой эле кээ бир тиркемелер үчүн бүт экранда ар бир ишке киргизилген тиркеме үчүн өзүнчө иш тактасын коюуга мүмкүндүк берет. Бул мурун колдонбогон адамдар үчүн бир аз адаттан тыш көрүнүш, бирок мен өзүм мындай интерфейсти көптөн бери колдонуп жүргөндүктөн, бул абдан ыңгайлуу деп айта алам жана сиз мындай интерфейске тез көнүп каласыз, андан кийин "Классикалык" терезе менеджерлери мындан ары ыңгайлуу көрүнбөйт.
Долбоорду да өзүнчө сөз кылууга арзыйт Compiz жана айкындуулукту, көлөкөлөрдү жана ар кандай үч өлчөмдүү эффекттерди көрсөтүү үчүн аппараттык тездетүү мүмкүнчүлүктөрүн колдонгон “Композиттик терезе менеджери” сыяктуу түшүнүк. Болжол менен 10 жыл мурун Linux иш такталарында 3D эффекттеринин бум болгон. Бүгүнкү күндө, DE орнотулган терезе менеджерлеринин көбү композиттик мүмкүнчүлүктөрдү жарым-жартылай колдонушат. Жакында эле пайда болду Wayfire - Wayland үчүн Compizге окшош функционалдуу продукт.
Ар кандай терезе менеджерлеринин деталдуу тизмесин дагы табууга болот салыштыруу макаласы.
DE компоненттери: эс алуу
Ошондой эле төмөнкү рабочий компоненттерди белгилей кетүү керек (бул жерде мен тиркеменин түрүн сүрөттөө үчүн англисче терминдерди колдоном - бул тиркемелердин аталыштары эмес):
Апплеттер:
Программалык камсыздоо (Виджет куралы) - көбүнчө программалык камсыздоонун белгилүү бир “минималдуу топтому” чөйрө менен камсыздалат:
Жогорудагы компоненттерден "Иш столунун дизайн чөйрөсү" деп аталган нерсе алынат. Көбүнчө анын бардык компоненттери бир эле графикалык китепканаларды жана ошол эле дизайн принциптерин колдонуу менен иштелип чыккан. Ошентип, эң аз дегенде, тиркемелердин көрүнүшүнүн жалпы стили сакталат.
Бул жерде биз төмөнкү учурдагы рабочий чөйрөлөрдү бөлүп көрсөтө алабыз:
Тарыхта мындай кызыктуу мисалдар да бар: 2003-2007-жылдары Linux үчүн Күндөн "Project Looking Glass" деген аталыштагы "3D десктоп дизайны" жасалган. Мен өзүм бул рабочий столду колдондум, тагыраак айтканда, аны менен "ойндум", анткени аны колдонуу кыйын болчу. Бул "3D дизайн" Java тилинде 3D колдоосу менен видеокарталар жок болгон учурда жазылган. Ошондуктан, бардык эффекттер процессор тарабынан кайра эсептелген жана компьютер абдан күчтүү болушу керек болчу, антпесе баары жай иштечү. Бирок ал сонун болуп чыкты. Үч өлчөмдүү колдонмо плиткалар айлантылышы/кеңейтилиши мүмкүн. Иш тактасынын цилиндринде 360 градустук панораманын обои менен айланууга мүмкүн болду. Бир нече кооз тиркемелер бар эле: мисалы, "дисктерди алмаштыруу" түрүндөгү музыка угуу ж.б. Сиз аны YouTubeдан көрө аласыз. видео Бул долбоор жөнүндө, бул видеолордун сапаты гана начар болушу мүмкүн, анткени ал жылдары жогорку сапаттагы видеолорду жүктөө мүмкүн эмес болчу.
Жеңил иш тактасы. Долбоор 1996-жылдан бери бир топ убакыт бою бар. Акыркы жылдары, ал оор KDE жана GNOMEден айырмаланып, жеңил жана "классикалык" рабочий интерфейсин талап кылган көптөгөн дистрибуцияларда абдан популярдуу болуп калды. Анын көптөгөн жөндөөлөрү жана өзүнүн көптөгөн программалары бар: терминал (xfce4-терминал), файл менеджери (thunar), сүрөт көрүүчү (ristretto), тексттик редактор (чычкан).
Башталгыч OS бөлүштүрүүдө колдонулат. Бул жерде биз бир өзүнчө дистрибуцияда иштелип чыккан жана колдонулган жана башка дистрибьюцияларда көп колдонулбаган (эгерде “такыр колдонулбаса”) “иш такталары” бар деп айта алабыз. Жок дегенде алар популярдуулукка ээ боло элек жана аудиториянын көпчүлүгүн алардын мамилесинин артыкчылыктарына ынандыра элек. Pantheon macOSко окшош интерфейсти курууну максат кылат.
Графикалык эффекттерге жана виджеттерге катуу көңүл бурулган (башка рабочий чөйрөлөрдө календар/саат сыяктуу иш столунун виджеттери жок болгон күндөрдөн). Өзүнүн китепканаларын колдонот. Өзүнүн "сулуу" тиркемелеринин чоң топтому бар: терминал (Терминология), видео ойноткуч (Rage), сүрөт көрүүчү (Эфото).
Башында, QT китепканасында жазылган KDEден айырмаланып түзүлгөн “классикалык” рабочий интерфейси ошол учурда коммерциялык бөлүштүрүү үчүн анча ыңгайсыз болгон лицензиянын негизинде таратылган.
Үчүнчү версиядан баштап GNOME GNOME Shell менен келе баштады, ал “классикалык эмес көрүнүшү” бар, аны бардык колдонуучулар жактыра бербейт (интерфейстердин күтүлбөгөн өзгөрүүлөрүн колдонуучулар кабыл алуу кыйынга турат). Натыйжада, "классикалык" стилде бул иш тактасын өнүктүрүүнү уланткан айры долбоорлордун пайда болушу: MATE жана Cinnamon. Көптөгөн коммерциялык бөлүштүрүүлөрдө демейки боюнча колдонулат. Анын көптөгөн орнотуулары жана өзүнүн тиркемелери бар.
Ал GNOME2ден пайда болгон жана бул дизайн чөйрөсүн өнүктүрүүнү улантууда. Анын GNOME2 үчүн жаңы версиясы менен айрыларды чаташтырбоо үчүн GNOME3де кайра колдонулган көптөгөн орнотуулар жана тиркеме айрылары бар (жаңы аталыштар колдонулат).
Solus дистрибьюторунун бир бөлүгү катары иштелип чыккан GNOMEдин "классикалык" стилиндеги айры, бирок азыр ар кандай башка дистрибьюцияларда өз алдынча иш тактасы катары келет.
KDE долбоору тарабынан иштелип чыккан рабочий чөйрө.
Ал жөнөкөй колдонуучуга графикалык интерфейстен жана ушул иш тактасынын алкагында иштелип чыккан көптөгөн графикалык тиркемелерден көптөгөн орнотууларга ээ.
2008-жылы KDE өзүнүн жаңы KDE Plasma ишке ашыруусун чыгарды (иш столунун кыймылдаткычы катуу кайра жазылган). Ошондой эле, GNOME/MATE сыяктуу эле, аны бардык KDE күйөрмандары жактырган жок. Натыйжада, TDE (Trinity Desktop Environment) деп аталган мурунку версияны иштеп чыгууну уланткан долбоордун айрысы пайда болду.
Qt аркылуу жазылган жаңы рабочий чөйрөлөрдүн бири (бул KDEде жазылган). Анын көптөгөн орнотуулары бар жана абдан кооз (бул субъективдүү түшүнүк болсо да) жана жакшы өнүккөн интерфейс. Deepin Linux бөлүштүрүүнүн бир бөлүгү катары иштелип чыккан. Башка бөлүштүрүү үчүн пакеттер да бар
учуу
Qt аркылуу жазылган рабочий чөйрөнүн мисалы. Astra Linux бөлүштүрүүнүн бир бөлүгү катары иштелип чыккан.
Жеңил рабочий чөйрө. Бир нече мурунку мисалдар сыяктуу, Qt колдонуу менен жазылган. Чынында, бул LXDE долбоорунун уландысы жана Razor-qt долбоору менен биригүүнүн натыйжасы.
Көрүнүп тургандай, Linux'тагы иш тактасы такыр башкача көрүнүшү мүмкүн жана ар бир адамдын табитине ылайыктуу интерфейс бар: абдан кооз жана 3D эффекттери менен минимализмге, "классикалык" дан адаттан тышкаркыга, система ресурстарын активдүү колдонуудан жеңил салмакка чейин, чоң экрандарды планшеттерге/смартфондорго.
Ооба, мен Linux OSдеги графиканын жана иш тактасынын негизги компоненттери кандай экендиги жөнүндө түшүнүк бере алдым деп үмүттөнгүм келет.
Бул макаланын материалы 2020-жылдын июль айында вебинарда сыналган. Сиз аны көрө аласыз бул жерде.
Баары болду. Бул пайдалуу болду деп үмүттөнөбүз. Суроолоруңуз же комментарийлериңиз болсо жазыңыз. Мен жооп берүүгө кубанычта болом. Макул, келип оку "LANIT Network Academy"!