Andries filmer

Feel free with Open Source Software

Andries Filmer - Internet professional sinds 1996.
Ik ben groot voorstander van Free- en Opensource Software (FOSS) en laat deze site jouw overtuigen waarom dit goed is.
Home Over deze website Kennisbank Ezelsoren Freelancer Online gereedschap

Hoe zit dat met Linux desktop omgevingen.

Inhoud
  1. Linux distributies
  2. Microsoft Windows en Apple OS X
  3. Display Managers
  4. Desktop omgeving
    1. Gnome
    2. KDE
    3. Unity
    4. Android
  5. Soorten window managers
    1. Gestapelde window managers
    2. Compositing window managers (3D)
    3. Tilde window managers
    4. Overige window managers en desktop omgevingen
  6. X Windows systeem
  7. Bronnen
  8. Commentaren

Linux distributies

Ik ben al jaren bezig met het Linux besturingssysteem. In de loop der jaren krijg je te maken met verschillende distributies waarbij gewisseld kan worden tussen Window managers, Display managers, Sessionmanagers, etc. Als je dat niet weet in welke categorie deze componenten (gnome, gdm, unity, lightDM, kde, metacity, nautilus, compiz, kwin, gtk, qt, desktop themes, etc) horen is het lastig deze te beoordelen en met elkaar uit te wisselen.

Bij Linux is het mogelijk om je favoriete managers/componenten te kiezen. Op de servers die ik onderhoud gebruik ik bijvoorbeeld helemaal geen desktop omgeving en onderhoud de server alleen met de 'shell'. Omdat er bij Linux distributies zo veel keuze is heb ik een overzicht gemaakt.

Microsoft Windows en Apple OS X

Bij Microsoft Windows en Apple OS X heb je in principe geen keuze tussen verschillende componenten. Zij praten meestal over één 'windows systeem' waar deze in zijn ondergebracht. De 'normale' computer gebruiker houdt zich ook niet bezig met deze materie. Hij/zij kan dan ook hoogstens kiezen uit verschillende thema's.

Linux desktops vs Microsoft windows & Apple OS X

Display Managers

Display managers ook wel login managers genoemd zoals (gdm, kdm, xdm en LightDM) zorgen ervoor dat je een mooie grafische interface krijgt voor het inloggen. Dit wordt niet geregeld door een window manager omdat er nog geen 'sessie' is. Het is o.a. nog niet bekend welke rechten de gebruiker heeft en welke window manager hij/zij wil gebruiken. Vandaar dat dit los van de desktop omgeving staat.

Desktop omgeving

Gnome en KDE zijn de meest bekende Desktop omgevingen (X-desktops).

Ik heb lang gedacht een desktop omgeving alleen een window manager was, maar in feite is het een set van programma's (componenten) die met elkaar samenwerken. In hoofdzaak is er een display manager, window manager en een sessie nodig om de verschillende componenten met elkaar te laten samenwerken.

Desktop sessies
De login manager start de sessie voor de desktop omgeving op. Het maakt een nieuwe sessie met je systeem variabelen of het start een bewaarde sessie op. In deze variabelen staan o.a. welke rechten je hebt en welke window manager je gebruikt.

Window managers
Een Window manager zorgt er vooral voor dat de vensters (windows) op het scherm verschijnen (getekend worden) en dat je ze kan verplaatsen. Elke window manager heeft zijn eigenschappen. XWinman geeft een goed overzicht van de bestaande window managers. Als de window managers aan de ICCCM standaard voldoen kunnen de verschillende window mangers met elkaar uitgewisseld worden.

Window managers kunnen op hun beurt weer met verschillende thema's werken die de kleur, lettertype, achtergrond, scrollbars, knoppen bepalen waardoor een desktop er weer heel anders uit kan zien.

File managers
Een file manager of bestanden manager is meestal diep geïntegreerd in een desktop omgeving. De zorgt o.a. voor het aanmaken, copieren, verwijderen van bestanden. Je kan bestanden hernoemen of er de rechten van aanpassen. Enkele bekende file managers zijn Nautilus, Dolphin en Konqueror.

Ontwikkel omgevingen
Gnome en KDE bieden ook een ontwikkelomgeving met bibliotheken aan om gemakkelijker nieuwe applicaties te maken. GTK+ en respectievelijk Qt worden vaak gebruikt om de verschillende applicaties of componenten te bouwen.

Gnome

Gnome is dus niet alleen een window manager maar een set van programma's (componenten) die met elkaar samenwerken. De display manager is GDM. Gnome-shell geeft de basis functionaliteit zoals wisselen van vensters en de interface voor het starten van applicaties. Het gebruikt sinds versie 3 Mutter als (3D) window manager. De bestandenmanager is Nautilus. Deze componenten werken samen met een sessie gnome-session.

KDE

KDE is ook z'n volledige desktop omgeving. Met o.a. Plasma voor het starten van applicaties, KWin als window manager, Dolphin als bestandsmanager en ksmserver als de sessie manager.

Unity

Ubuntu heeft als basis altijd Gnome als desktop omgeving gehad. Sinds versie 11.04 heeft Ubuntu de window manager vervangen door Compiz en sinds versie 11.10 is de display manager vervangen door LightDM.

De meeste window managers hebben een ingebouwde 'decorator' welke voor de opmaak zorgt. Compiz is een modulaire window manager en gebruikt unity-window-decorator die voor de opmaak zorgt (Standaard gebruikt Compiz gtk-window-decorator of kde-window-decorator).

Ubuntu gebruikt unity-panel-service voor het globale menu en de indicators bovenaan het scherm. Deze service wordt gestart door Unity shell (welke door compiz wordt gestart). De Launcher (Startbalk) met bovenin de Dash wordt geregeld door een Compiz plugin. Verder gebruikt Ubuntu gnome-session als intermediair voor de verschillende componenten.

Android

Waar past Android in dit rijtje? Android is niet een traditionele desktop voor meedere gebruikers. Het is gemaakt voor één gebruiker. Daarom is er bijvoorbeeld geen 'Display manager' (login manager) nodig. Android heeft o.a. wel een Window manager een Sessie manager (Activity manager). De Android Architectuur is anders opgebouwd dan bovenstaande distributies. Android bestaat uit hoofdzakelijk de volgende architectuur:

  1. Linux Kernel (Native Drivers, Power management, etc)
  2. Libraries (Surface Manger SGL, OpenGL/ES, Media Framework, SQLite, etc)
  3. Runtime (Core Libraries, Dalvik Virtual Machine)
  4. Application Framework (Activity Manager (session mananager) & Window Manager, etc)
  5. System Apps (Contacts, Phone Dialer, E-Mail, Web Browser, etc)

Android heeft ook een ontwikkel omgeving (SDK) waarmee alle applicaties in Java worden geschreven.

Soorten window managers

Nog even terugkomend op de window managers en themes. Het is verwarrend wat het verschil tussen Metacity en GTK 'themes' is. Een GTK theme heeft controle over de knoppen, kleuren, text, achtergrond, menubar en de scrollbars, en een Metacity 'theme' controleerd alleen de style van de venster randen. Voor KDE regeld Qt de knoppen, kleuren, text, achtergrond, menubar en de scrollbars. En Kwin heeft zijn eigen themes voor de venster randen.

Ook leuk om te melden is dat er in grote lijnen drie soorten window managers bestaan.

Gestapelde window managers

De meeste window managers zijn 'Stacking window managers' zij kunnen de vensters over en achter elkaar plaatsen, zoals Gnome, KDE en Xfce. Veel van deze stacking window managers kunnen ook 'Compositing managers' zijn.

Compositing window managers (3D)

Een compositing window manager kan grafische meer daarom worden ze ook wel 3D window managers genoemd. De meest bekende Compiz kan o.a. een ronddraaiende kubus van de bureaubladen laten zien. Tegenwoordig zijn de meeste window managers ook compositing window mangers. Door het GLX protocol kan de window manager direct de GPU (videochip) aanspreken.

Tilde window managers

Er bestaan ook enkele tilde window managers. Deze plaatsen de vensters naast en boven elkaar. Deze zijn niet zo populair omdat het om een heel andere gebruikers ervaring gaat.

Overige window managers en desktop omgevingen

Bij Xwinman is een overzicht van de Desktop omgevingen waarvan de meeste alleen 'window managers' zijn.

X Windows systeem

Desktop omgevingen (X-desktops) 'praten' niet direct met de hardware (muis, toetsenbord en de videokaart), daar is de het X Windows systeem (ook wel X-server genoemd) voor nodig. De window managers worden ook vaak de X-clients van het 'X-Server' genoemd. De meeste desktops omgevingen (cq window managers) zijn gemaakt voor het X Windows systeem. Echter 'praten' de composite (3D) window managers al wel direct met de GPU (videochip).

Er valt nog veel meer te vertellen over linux desktops. Bijvoorbeeld waar pas 'Android' in dit overzicht. Wellicht zal ik deze pagina later nog aanvullen. Ik ben benieuwd naar de reacties.

Bronnen

Deze pagina is gemaakt op 2012-03-24 en aangepast op 2012-08-20

Ik zou heel leuk vinden als je laat weten wat je van deze pagina vindt. Plaats gerust commentaar.
Je e-mailadres wordt niet gepubliceerd het is alleen om eventueel contact met je op te nemen.

 
Jouw naam
Jouw e-mailadres
Om te voorkomen dat robots dit formulier gebruiken vraag ik vriendelijk of je de volgende karakters wilt over typen.
 
Jouw Gravatar Commentaar van pablokal geplaatst op 2012-04-01
Je verhaal is uitgebreid en leerzaam en klopt in grote lijnen wel, maar toch in details ook weer niet omdat je belangrijke details weglaat..
Ik gebruikt openbox als window manager en kan via een xinit script ervoor kiezen de login manager te omzeilen en in te loggen via de terminal of zelfs direct automatisch in te loggen.
Ik vind verder dat je twee belangrijke variabelen niet genoeg naar voren haalt:
de mate van configurabileit van de window manager en de mate waarin je via zeer eenvoudige instellingen de desktop via het toetsenbord bedient.
In een xml bestand kun je in feite het hele venster gebeuren manipuleren. Zie mijn blog
http://stillstup.blogspot.com/2010/06/keybindings-to-manipulate-windows.html
Juist de laatste twee factoren zorgen ervoor dat window managers als openbox en lxde (een meer complete desktop omgeving gebaseerd op openbox) onder wat meer gevorderde Linux gebruikers zeer populair zijn.
Jouw Gravatar Commentaar van Andries geplaatst op 2012-04-03
Hallo Pablokal,

Bedankt voor je reactie. Ik heb inderdaad gedetailleerde gegevens weggelaten omdat het artikel anders te complex en te ingewikkeld wordt.

Je kan bijna elke distributie zo instellen dat je automatisch inlogt. Dan sla je het proces van de 'login manager' over. Echter worden de meeste desktop omgevingen gebruikt met meerdere gebruikers. Als je dan een x-desktop wilt heb je een 'login manager' nodig.

Keybindings kunnen ook in bijna elke distributie gebruikt worden. Ik ben in mijn artikel hier niet op ingegaan. Dat is mijn inziens te gedetailleerd.

Met vriendelijke groet,
Andries Filmer

 


Mijn Curriculum vitae | De content op deze website heeft de Creativecommons 3.0 licentie | © 2013
Andries Filmer | http://andries.filmer.nl | andries@filmer.nl | © 2011
Deze website wordt gerealiseerd met Free- en Open Source Software: | | | | | |