Graphical User Interface
Ein Graphical User Interface (GUI, dt.: grafische Benutzeroberfläche) zeichnet sich im Gegensatz zum CLI dadurch aus, dass der Benutzer seine Befehle nicht durch Texteingabe, sondern durch Aktionen mit grafischen Elementen gibt. Besonders im Desktop-Bereich haben sich GUIs durchgesetzt, und daher unterstützt auch fast jedes große Betriebssystem die Bedienung über ein GUI. Es ist also verständlich, wenn sich auch beim Hobby-OS-Entwickler der Wunsch entwickelt, eine GUI anzubieten.
Inhaltsverzeichnis
Merkmale
Prägende Merkmale eines modernen GUI sind die Nutzung der Maus als primäres Eingabegerät und die Nutzung von Fenstern, welche sich auf einer oder mehreren Arbeitsflächen befinden (Stichwort: Virtuelle Desktops). Weitere (beinah) allgegenwärtige Features von GUIs sind Drag'n'Drop und eine Zwischenablage, um zu vermeiden, dass jedes Fenster von den anderen abgeschottet ist.
Vorteile
- Auch vollkommen unerfahrene Benutzer können mithilfe eines GUI oftmals Funktionen "erraten", sei es durch das Design der Icons oder auch durch Tooltips. Die Lernkurve durch "Learning-by-doing" verläuft viel steiler als bei Einsteigern in die Konsole.
- Die Bedienung erfolgt durch konkrete, sichtbare Objekte intuitver, der Benutzer muss sich weniger Gedanken machen.
- Beispiel: Auf zwei virtuellen Konsolen laufen unterschiedliche Programme. Um zwischen diesen zu wechseln muss der Benutzer wissen, auf welchem tty das Programm läuft und dann per Tastenkombination wechseln. Bei einem GUI kann der Benutzer das zweite Programm in der Fensterleiste, oder direkt unter dem ersten, sehen, und muss es einfach nur anklicken.
Nachteile
- Das Hinzufügen neuer Programmfunktionen erhöht unweigerlich die Komplexität des GUI. Daher ist das Design eines komplexen GUI allein schon ein enormer Aufwand.
- Beispiel: In einem Dateimanager können alle Funktionen zu einer Datei in einem Kontextmenü untergebracht werden. Jedoch braucht jede Funktion auch einen eigenen Eintrag. Bei ausreichend vielen Einträgen wird das Menü vielleicht zu groß oder zu unübersichtlich. Bei einer Konsole ist es egal, wie viele Befehle verfügbar sind, da jeder Befehl direkt eingegeben werden kann.
- GUIs verbrauchen viele Ressourcen. Daher wird insbesondere auf Servern nur ein einfaches GUI eingesetzt oder oft auch ganz auf ein GUI verzichtet.
- Last but not least ist der Aufwand der Entwicklung oder Portierung eines GUI enorm. Desweiteren braucht eine GUI besonders viel Infrastruktur, wie z.B. Grafik- oder Maustreiber. Von der Entwicklung eines GUI ohne einen stabilen und relativ ausgereiften Kernel ist also abzuraten.