ProHoster > Блог > Administrado > Kiel grafikaĵoj funkcias en Linukso: superrigardo de la diversaj labortablaj medioj
Kiel grafikaĵoj funkcias en Linukso: superrigardo de la diversaj labortablaj medioj
Ĉi tiu artikolo temas pri kiel funkcias Linuksaj grafikoj kaj el kiuj komponantoj ĝi konsistas. Ĝi havas multajn ekrankopiojn de diversaj efektivigoj de labortablaj medioj.
Se vi ne scias multon pri KDE kaj GNOME, aŭ se vi scias, sed ŝatus scii, kiuj estas aliaj alternativoj, tiam ĉi tiu artikolo estas por vi. Ĝi estas superrigardo, kaj kvankam ĝi havas multajn nomojn kaj malmultajn terminojn, la materialo ankaŭ estos utila por komencantoj kaj nur rigardantaj al Linukso.
La temo ankaŭ povas interesi progresintajn uzantojn dum agordado de malproksima aliro kaj dum efektivigo de maldika kliento. Mi ofte renkontas sufiĉe spertajn Linuksoidojn kun la deklaroj "sur la servilo estas nur komandlinio, kaj mi ne planas studi la grafikojn pli detale, ĉar ĉi tio estas ĉio necesa por ordinaraj uzantoj." Sed eĉ Linuksemuloj estas surprizitaj kaj feliĉaj malkovri la opcion "-X" por la komando ssh (kaj por tio utilas kompreni la funkciadon kaj funkciojn de la X-servilo).
Fonto
Mi instruas Linuksajn kursojn dum preskaŭ 15 jaroj ĉe "Reta Akademio LANIT”Kaj mi certas, ke multaj el tiuj pli ol kvin mil homoj, kiujn mi trejnis, legas kaj verŝajne verkas artikolojn pri Habr. La kursoj estas ĉiam tre okupataj (la averaĝa daŭro de la kurso estas kvin tagoj), oni devas paroli pri temoj, kiuj postulas almenaŭ dek tagojn por plena konato. Kaj ĉiam dum la kurso, depende de la publiko (novuloj kunvenitaj aŭ spertaj administrantoj), kaj ankaŭ de "demandoj de la publiko", mi elektas kion transdoni pli detale kaj kio estas pli supraĵa por dediĉi pli da tempo al komandliniaj utilecoj kaj ilia praktika aplikado. Estas sufiĉe da tiaj temoj, kiujn oni devas iomete oferi. Ĉi tiuj estas "Historio de Linukso", "Diferencoj en Linukso-distribuoj", "Pri licencoj: GPL, BSD, ...", "Pri grafikaĵoj kaj labortablaj medioj" (la temo de ĉi tiu artikolo), ktp. Ne ke ili ne estas gravaj, sed kutime estas multaj pli gravaj "ĉi tie kaj nun" demandoj kaj nur proksimume kvin tagoj ... Tamen, por ĝenerala kompreno de la bazaĵoj de Linukso, ankoraŭ havas komprenon pri Linukso, eĉ pli diverseco, kiu uzas la distribuon. el ĉio ĉi grandega kaj necesa la mondo kiu nomiĝas "Linukso") estas utile kaj necese studi ĉi tiujn temojn.
Laŭlonge de la artikolo, por ĉiu komponanto, mi indikas ligilojn por tiuj, kiuj volas pliprofundiĝi en la temon, ekzemple al Vikipedio-artikoloj (dum indikas pli kompletan/utilan version, se ekzistas anglaj kaj rusaj artikoloj).
Por bazaj ekzemploj kaj ekrankopioj, mi uzis la openSUSE-distribuon. Eblis uzi ajnan alian komunuman evoluitan distribuon kun granda nombro da pakaĵoj en la deponejo. Estas malfacile, sed eble, pruvi la varion de labortablaj dezajnoj sur komerca distribuo, ĉar ili ofte uzas nur unu aŭ du el la pli konataj labortablaj medioj. Do programistoj malvastigas la taskon liberigi stabilan, sencimigitan OS. Sur la sama sistemo, mi instalis ĉiujn DM / DE / WM (klarigon de ĉi tiuj terminoj sube), kiujn mi trovis en la deponejo.
Ekrankopioj kun "bluaj kadroj" estas ĵus faritaj sur openSUSE.
Ekrankopioj kun "blankaj kadroj" estis faritaj sur aliaj distribuoj, ili estas indikitaj en la ekrankopio.
Ekrankopioj kun "grizaj randoj" estis prenitaj de la Interreto, kiel ekzemploj de labortablaj dezajnoj de antaŭe.
Do, ni komencu.
La ĉefaj komponantoj, kiuj konsistigas grafikojn
Mi elstarigos tri ĉefajn komponantojn kaj listigos ilin en la ordo en kiu ili estas lanĉitaj ĉe la starto de la sistemo:
DM (Ekrano-Manaĝero);
montra servilo;
DE (Tabla Medio).
Aldone, kiel gravaj subaĵoj de la Labortabla Medio:
Aplikmanaĝero/Lanĉilo/Ŝaltilo (Startu butonon);
WM (Fenestra Administranto);
diversaj programoj, kiuj venas kun la labortabla medio.
Pli da detaloj pri ĉiu objekto.
DM (ekranmanaĝero)
La unua aplikaĵo kiu komenciĝas kiam "grafikaĵoj" komenciĝas estas DM (Display Manager), ekranmanaĝero. Ĝiaj ĉefaj taskoj:
demandi, kiujn uzantojn enlasi en la sistemon, petu aŭtentigajn datumojn (pasvorton, fingrospuron);
Fly-DM (uzata en AstraLinux) ankaŭ povas esti menciita.
La listo de ekzistantaj DM-oj estas ĝisdatigita en Vikio artikolo.
Indas noti, ke la sekvaj ekrankopioj uzas la saman LightDM-montran administranton, sed en malsamaj distribuoj (distribunomoj estas en krampoj). Rigardu kiom malsama ĉi tiu DM povas aspekti danke al la laboro de la projektistoj de malsamaj distribuoj.
La ĉefa afero en ĉi tiu diverseco estas klarigi, ke ekzistas aplikaĵo, kiu respondecas pri lanĉo de grafikaĵoj kaj permesi al la uzanto aliri ĉi tiun grafikaĵon, kaj ekzistas malsamaj efektivigoj de ĉi tiu aplikaĵo, kiuj diferencas laŭ aspekto kaj iom da funkcieco (elekto de dezajnaj medioj, elekto de uzantoj, versio por viddifektitaj uzantoj, la ebleco de fora aliro per protokolo. XDMCP).
Vidiga Servilo
Vidira Servilo estas speco de grafika fundamento, kies ĉefa tasko estas labori per vidkarto, monitoro kaj per diversaj enigaparatoj (klavaro, muso, tuŝpadoj). Tio estas, aplikaĵo (ekzemple retumilo aŭ tekstredaktilo) kiu estas prezentita en "grafiko" ne bezonas scii kiel labori kun aparatoj rekte, ĝi ne bezonas scii pri ŝoforoj. Ĉio prizorgas la X-Fenestro.
Kiam oni parolis pri Display Server, dum multaj jaroj en Linukso, kaj en Unikso, ĝi signifis aplikaĵon X Fenestra Sistemo aŭ ĉe la pleboj X (X).
X estas sub Windows OS (bezonata por fora lanĉo de grafikaj aplikoj, ekzemple uzante PuTTY).
Unue, ni rulu X-ojn kaj kelkajn grafikajn aplikaĵojn en ili.
Practicum "kuru X kaj aplikojn en ĝi"
Mi faros ĉion de la nove kreita retuza uzanto (estus pli facile, sed ne pli sekure, fari ĉion de radiko).
Ĉar H'am bezonas aliron al aparatoj, mi donas aliron: Mi determinis la liston de aparatoj rigardante erarojn dum lanĉado de X-oj en la protokolo (/home/webinaruser/.local/share/xorg/Xorg.77.log)
Opcioj: * -retro - komencu kun "griza" klasika fono, ne nigra kiel defaŭlta; * :77 - Mi starigis (iu ajn ene de racia intervalo eblas, nur :0 estas plej verŝajne jam okupata de la jam ruliĝantaj grafikaĵoj) ekrannumeron, iun efektivan unikan identigilon, per kiu eblos distingi inter pluraj kurantaj X-oj; * vt8 - specifas la terminalon, ĉi tie /dev/tty8, sur kiu X estos montritaj).
Lanĉante la grafikan aplikaĵon:
Por fari tion, ni unue fiksas variablon, per kiu la aplikaĵo komprenos, kiun el la X-oj mi funkcias por sendi tion, kion oni devas desegni:
% export DISPLAY=":77"
Vi povas vidi la liston de kurantaj X-oj tiel:
ps -fwwC X
Post kiam la variablo estas agordita, ni povas lanĉi aplikaĵojn en niaj X-oj - ekzemple, mi lanĉas la horloĝon:
% xclock -update 1 &
% xcalc &
% xeyes -g 200x150-300+50 &
La ĉefaj ideoj kaj konkludoj de ĉi tiu fragmento:
X-oj bezonas aliron al aparatoj: terminalo, vidkarto, enigaparatoj,
X-oj mem ne montras iujn ajn interfacelementojn - ĝi estas griza (se kun la opcio "--retro") aŭ nigra kanvaso de certaj grandecoj (ekzemple, 1920 × 1080 aŭ 1024 × 768) por ruli grafikajn aplikaĵojn en ĝi.
La movo de la "kruco" montras, ke X-oj spuras la pozicion de la muso kaj transdonas ĉi tiun informon al aplikaĵoj kurantaj en ĝi.
Ankaŭ, la klavopremoj de X kaptas sur la klavaro kaj transdonas ĉi tiujn informojn al aplikaĵoj.
La variablo DISPLAY diras al grafikaj aplikaĵoj sur kiu ekrano (ĉiu X-oj estas lanĉitaj kun unika ekrannombro ĉe ekfunkciigo), kaj do kiuj el tiuj, kiuj funkcias sur mia maŝino, desegni X-ojn. (Ankaŭ eblas agordi ĉi tiun variablon al fora maŝino kaj sendi produktaĵon al X-oj kurantaj sur alia maŝino en la reto.) Ĉar X-oj estis komencitaj sen la opcio -auth, ne necesas trakti la variablon XAUTHORITY aŭ la komandon xhost.
Grafikaj aplikaĵoj (aŭ kiel ili estas nomataj de X-klientoj) estas desegnitaj en X-oj - dum sen la kapablo movi/fermi/ŝanĝi ilin "-g (Larĝo)x(Alteco)+(ShiftFromLeftEdge)+(ShiftFromTopEdge)". Kun minus-signo, respektive, de dekstre kaj de la malsupra rando.
Du terminoj menciindaj estas X-servilo (kiel X estas nomata) kaj X-klientoj (kiel iu grafika aplikaĵo, kiu funkcias en X, estas nomata). Estas iom da konfuzo en la kompreno de tiu ĉi terminologio, multaj komprenas ĝin ĝuste male. En la kazo, kiam mi konektas de la "klienta maŝino" (en fora alira terminologio) al la "servilo" (en fora alira terminologio) por montri grafikan aplikaĵon de la servilo sur mia monitoro, tiam la X-servilo startas sur la maŝino kie la monitoro ( tio estas, sur la "klienta maŝino", ne sur la "servilo"), kaj X-klientoj komenciĝas kaj funkcias sur la "servilo", kvankam ili estas montrataj sur la ekrano de la "klienta maŝino".
DE-komponantoj
Poste ni analizos la komponantojn, kiuj kutime konsistigas la labortablo.
DE-Elementoj: Komenca Butono kaj Taskbaro
Ni komencu per la tiel nomata butono "Komenco". Ofte ĉi tio estas aparta apleto uzata en la "Taskbaro". Estas ankaŭ kutime apleto por ŝanĝi inter kurantaj aplikaĵoj.
Post rigardo de malsamaj labortablaj medioj, mi resumus tiajn aplikaĵojn sub la ĝenerala nomo "Apps Manager (Launcher / Switcher)", tio estas, ilo por administri aplikaĵojn (lanĉi kaj ŝanĝi inter kurantaj), kaj ankaŭ indikus utilecojn kiuj estas ekzemplo de ĉi tiu tipo de apliko.
Ĝi okazas en la formo de butono "Komenco" sur la klasika (plenlongo de unu el la randoj de la ekrano) "Taskbaro":
Vi ankaŭ povas reliefigi "MacOS-formajn taskobretojn" aparte (ne la tutan longon de la rando de la ekrano), kvankam multaj taskobretoj povas aperi en ambaŭ. Ĉi tie, prefere, la ĉefa diferenco estas pure vida - la ĉeesto de la "efiko de kreskantaj ikonoj sur ŝvebado."
○ doko,
○ laktodoko,
○ kaira doko,
○ tabulo.
Kaj / Aŭ servo, kiu lanĉas aplikojn kiam klavoj estas premataj (en multaj labortablaj medioj, simila komponanto nepre ĉeestas kaj permesas al vi agordi viajn proprajn klavojn):
○ sxhkd.
Ekzistas ankaŭ diversaj menuformaj "lanĉiloj" (el la angla. Launch (run)):
Mi listigos ankaŭ "malnovan WM kun DE-elementoj". Tiuj. krom la fenestromanaĝero, ili havas elementojn kiel la Startbutono kaj la Taskbaro, kiuj estas pli enecaj en plenrajta DE. Kvankam kiom "aĝaj" ili estas, se kaj IceWM kaj WindowMaker jam publikigis siajn ĝisdatigitajn versiojn en 2020. Montriĝas, ke ĝi estas pli ĝusta ne "malnova", sed "malnovuloj":
Krom la "klasika" ("stakaj fenestraj administrantoj"), indas aparte noti kahelita WM, kiu permesas fenestrojn esti kahelitaj tra la tuta ekrano, kaj por kelkaj aplikoj, aparta labortablo por ĉiu funkcianta aplikaĵo en plena ekrano. Ĉi tio estas iom nekutima por homoj, kiuj antaŭe ne uzis ilin, sed ĉar mi mem uzas tian interfacon dum sufiĉe longa tempo, mi povas diri, ke ĝi estas sufiĉe oportuna kaj vi rapide alkutimiĝas al tia interfaco, post kio la "klasikaj" fenestraj administrantoj ne ŝajnas oportunaj.
Menciindas ankaŭ aparte la projekto Komponaĵo kaj tia koncepto kiel la "Composite Window Manager", kiu uzas la kapablojn de hardvarakcelado por montri travideblecon, ombrojn, kaj diversajn tridimensiajn efikojn. Antaŭ proksimume 10 jaroj estis eksplodo en 3D-efektoj sur Linuksaj labortabloj. Nun, multaj el la fenestraj administrantoj enkonstruitaj en la DE uzas kelkajn el la komponaj funkcioj. Lastatempe aperis Voja fajro - produkto kun simila funkcieco de Compiz por Wayland.
Detala listo de diversaj fenestraj administrantoj ankaŭ troveblas ĉe kompara artikolo.
DE-komponantoj: la ceteraj
Indas ankaŭ rimarki la jenajn labortablaj komponantoj (ĉi tie mi uzas anglajn establitajn terminojn por priskribi la specon de aplikaĵo - ĉi tiuj ne estas la nomoj de la aplikaĵoj mem):
Apletoj:
Programaro (Widget toolkit) - ofte certa "minimuma aro" de programaro venas kun la medio:
El la komponantoj listigitaj supre, la tiel nomata "Tabla Medio" estas akirita. Ofte ĉiuj ĝiaj komponentoj estas evoluigitaj uzante la samajn grafikbibliotekojn kaj uzante la samajn dezajnoprincipojn. Tiel, almenaŭ, la ĝenerala stilo por la aspekto de aplikoj estas konservita.
Ĉi tie ni povas reliefigi la jenajn nuntempe ekzistantajn labortablaj medioj:
Estas eĉ tiaj interesaj ekzemploj jam el la historio: en 2003-2007, "3D labortabla dezajno" estis farita por Linukso kun la nomo "Projekto Spegulo" de Sun. Mi mem uzis ĉi tiun labortablon, aŭ pli ĝuste "ludis", ĉar ĝi estis malfacile uzebla. Ĉi tiu "3D haŭto" estis skribita en Java en tempo kiam ekzistis neniuj 3D grafikkartoj. Tial ĉiuj efikoj estis rekalkulitaj de la procesoro, kaj la komputilo devis esti tre potenca, alie ĉio funkciis malrapide. Sed ĝi montriĝis bela. 360D aplikaj kaheloj povus esti turnitaj/vastigitaj. Eblis turni en la labortabla cilindro kun tapeto el XNUMX-grada panoramo. Estis pluraj belaj aplikoj propraj: ekzemple, aŭskulti muzikon en formo de "KD-ŝanĝilo", ktp. Vi povas rigardi youtuben. видео pri ĉi tiu projekto, nur la kvalito de ĉi tiuj videoj plej verŝajne estos malbona, ĉar en tiuj jaroj ne eblis alŝuti altkvalitajn videojn.
Malpeza labortablo. Estas projekto de longa tempo, ekde 1996. En la lastaj jaroj, sufiĉe populara, kontraste al la pli pezaj KDE kaj GNOME, en multaj distribuoj kiuj postulas malpezan kaj "klasikan" labortablan interfacon. Ĝi havas multajn agordojn kaj grandan nombron da ĝiaj programoj: terminalo (xfce4-terminalo), dosieradministranto (thunar), bildrigardilo (ristretto), tekstredaktilo (muspad).
Uzite en la Elementa OS-distribuo. Ĉi tie ni povas diri, ke ekzistas "skribotabloj" kiuj estas evoluigitaj kaj uzataj ene de unu aparta distribuo kaj ne multe uzataj (se ne "tute ne uzataj") en aliaj distribuoj. Almenaŭ ili ankoraŭ ne akiris popularecon kaj ne konvinkis grandan parton de la publiko pri la avantaĝoj de ilia aliro. Panteono celas konstrui macOS-similan interfacon.
Forta fokuso pri grafikaj efikoj kaj fenestraĵoj (ekde la tagoj kiam aliaj labortablaj medioj ne havis fenestraĵojn sur la labortablo, kiel la kalendaro/horloĝo). Uzas siajn proprajn bibliotekojn. Estas granda aro de ĝiaj "belaj" aplikaĵoj: terminalo (Terminologio), videoludilo (Rage), bildspektilo (Ephoto).
Komence "klasika" labortabla interfaco, kreita kontraŭe al KDE, kiu estis skribita sur la biblioteko QT, tiutempe distribuita sub permesilo kiu ne estis tre oportuna por komercaj distribuoj.
De la tria versio de GNOME, GNOME komencis liveri kun la GNOME Ŝelo, kiu havas "ne-klasikan aspekton", kiun ne ĉiuj uzantoj ŝatis (iuj subitaj ŝanĝoj en interfacoj estas malfacile akcepteblaj por uzantoj). Kiel rezulto - la apero de forkprojektoj, kiuj daŭrigas la disvolviĝon de ĉi tiu labortablo en la "klasika" stilo: MATE kaj Cinnamon. Uzita defaŭlte en multaj komercaj distribuoj. Ĝi havas grandan nombron da agordoj kaj ĝiaj aplikoj.
Aperis surbaze de GNOME2 kaj daŭre disvolvas ĉi tiun medion. Ĝi havas grandan nombron da agordoj kaj forkoj de aplikoj, kiuj estis uzataj reen en GNOME2 (novaj nomoj estas uzataj por ne konfuzi la forkojn kun sia nova versio por GNOME3).
"Klasika" stila forko de GNOME, kiu disvolviĝis kiel parto de la distribuo Solus, sed nun ankaŭ venas kiel memstara labortablo sur diversaj aliaj distribuoj.
KDE_Plasma (aŭ, kiel ĝi estas ofte nomata, nur KDE)
Labortabla medio evoluigita de la KDE-projekto.
Ĝi havas grandegan nombron da agordoj disponeblaj por simpla uzanto de la grafika interfaco kaj multaj grafikaj aplikoj evoluigitaj ene de ĉi tiu labortablo.
En 2008, KDE publikigis ilian novan efektivigon de KDE Plasma (la labortabla motoro estis peze reverkita). Ankaŭ, kiel ĉe GNOME/MATE, ne ĉiuj KDE-adorantoj ŝatis ĝin. Rezulte aperis forko de la projekto, daŭrigante la evoluon de la antaŭa versio, nomata TDE (Trinity Desktop Environment).
Unu el la pli novaj labortablaj medioj verkitaj per Qt (sur kio KDE estas skribita). Ĝi havas multajn agordojn kaj sufiĉe belan (kvankam ĉi tio estas subjektiva koncepto) kaj bone evoluinta interfaco. Disvolvita kiel parto de la distribuo Deepin Linukso. Estas ankaŭ pakoj por aliaj distribuoj.
muŝo
Ekzemplo de labortabla medio skribita uzante Qt. Evoluigite kiel parto de la Astra Linukso-distribuo.
Malpeza labortabla medio. Kiel pluraj antaŭaj ekzemploj, skribitaj uzante Qt. Fakte, ĝi estas daŭrigo de la projekto LXDE kaj rezulto de kunfandiĝo kun la projekto Razor-qt.
Kiel vi povas vidi, la Linuksa labortablo povas aspekti tre malsame kaj ekzistas taŭga interfaco por ĉiuj gustoj: de tre bela kaj kun 3D-efektoj ĝis minimalista, de "klasika" ĝis nekutima, de sistem-peza ĝis malpeza, de grandaj ekranoj ĝis tabultelefonoj / inteligentaj telefonoj.
Nu, mi ŝatus esperi, ke mi sukcesis doni ideon pri kio estas la ĉefaj komponantoj de la grafikaĵoj kaj labortablo en Linukso OS.
La materialo por ĉi tiu artikolo estis provita en julio 2020 ĉe retseminario. Ĝi povas esti rigardata tie.
Tio estas ĉio. Mi esperas, ke ĝi estis helpema. Se vi havas demandojn kaj komentojn, skribu. Mi volonte respondos. Nu, venu studi Reta Akademio LANIT!