Graphical User Interface — Änderungen 5276 → 7343

Zeile 5: Zeile 5:
  
 
== Entwickeln einer GUI für das eigene OS ==
 
== Entwickeln einer GUI für das eigene OS ==
−
Die meisten OS-Developer wollen eine GUI für ihr OS haben. Doch besonders viele Anfänger wollen quasi sofort eine GUI mit allem Drum und Dran haben. Dabei sollte jedem klar sein, dass eine GUI ein hochkomplexes Programm ist, vergleichbar mit einem aufwändigen 3D-Spiel. Und wo es gerade erwähnt wurde: Eine GUI ist ein '''Programm''', soll also vom Kernel '''geladen und ausgeführt''' werden. Eine GUI ist '''kein''' Bestandteil des [[Kernel|Kernels]]! Auch die GUI von [[Windows]] gehört nicht zum Kernel, wie oft angenommen wird (allerdings sind GUI und Kernel über die WinAPI und verschiedenste [[Syscall|Syscalls]] eng miteinander verzahnt). Wer eine GUI für sein OS entwickeln möchte, benötigt folgendes in seinem Kernel:
+
Die meisten OS-Developer wollen eine GUI für ihr OS haben. Doch besonders viele Anfänger wollen quasi sofort eine GUI mit allem Drum und Dran haben. Dabei sollte jedem klar sein, dass eine GUI ein hochkomplexes Programm ist, vergleichbar mit einem aufwändigen 3D-Spiel. Und wo es gerade erwähnt wurde: Eine GUI ist ein '''Programm''', soll also vom Kernel '''geladen und ausgeführt''' werden. Eine GUI ist '''kein''' Bestandteil des [[Kernel|Kernels]]! Auch die GUI von [[Windows]] gehört nicht zum Kernel, wie oft angenommen wird (allerdings sind GUI und Kernel über die WinAPI und verschiedenste [[Syscall|Syscalls]] eng miteinander verzahnt).
  
 +
Wer eine GUI für sein OS entwickeln möchte, benötigt mindestens folgendes in seinem Kernel:
 
<ul>
 
<ul>
 
   <li>Vollständige [[Speicherverwaltung]]</li>
 
   <li>Vollständige [[Speicherverwaltung]]</li>
−
   <li>[[Multitasking]]</li>
+
   <li>[[Multitasking]] (am besten für User-Space-Programme)</li>
 
</ul>
 
</ul>
  
−
Dazu werden noch  
+
Dazu braucht man dann wahrscheinlich noch:
−
 
 
 
<ul>
 
<ul>
 
   <li>Grafiktreiber</li>
 
   <li>Grafiktreiber</li>
Zeile 20: Zeile 20:
 
</ul>
 
</ul>
  
−
benötigt. Multitasking vor allem, weil die GUI, wenn sie als einziger Prozess ausgeführt werden würde, sich nicht mehr bedienen lassen würde, wenn ein anderes Programm gestartet wird (und auch dieses im Grunde nicht ausgeführt werden kann, weil es sich der Elemente der GUI bedient).
+
Multitasking vor allem, weil die GUI, wenn sie als einziger Prozess ausgeführt werden würde, sich nicht mehr bedienen lassen würde, wenn ein anderes Programm gestartet wird (und auch dieses im Grunde nicht ausgeführt werden kann, weil es sich der Elemente der GUI bedient).
  
 
=== Portieren oder selbst schreiben? ===
 
=== Portieren oder selbst schreiben? ===