| Zeile 88: | Zeile 88: | ||
Nachdem die IRQs auf sinnvolle Nummern gelegt sind und Handler in der IDT installiert sind, kannst Du Hardware-Interrupts aktivieren: | Nachdem die IRQs auf sinnvolle Nummern gelegt sind und Handler in der IDT installiert sind, kannst Du Hardware-Interrupts aktivieren: | ||
<c>asm volatile("sti");</c> | <c>asm volatile("sti");</c> | ||
| − | Achtung: Der Timer | + | '''Achtung''': Der Kernel kann von der ''sti''-Instruktion an an jeder beliebigen Stelle unterbrochen werden, auch wenn die Initialisierung an dieser Stelle noch nicht vollständig abgeschlossen ist. Es ist daher in der Regel eine gute Idee, Interrupts erst als allerletztes in der Kernelinitialisierung zu aktivieren. |
| + | |||
| + | Beispielsweise liegt der Timer auf IRQ 0 und löst in regelmäßigen Abständen mehrmals pro Sekunde einen IRQ aus. Zumindest IRQ 0 muss also auf jeden Fall sinnvoll behandelt werden, ansonsten währt die Freude nicht lang. Je nachdem, welche Hardware vorhanden ist und was der Benutzer mit ihr macht, können aber natürlich auch andere IRQs, wie etwa Tastatur und Maus, jederzeit auftreten. | ||
==Nützliche Interrupthandler== | ==Nützliche Interrupthandler== | ||