Andreas Kling
a9ca75c98b
Add IRQHandler class that can be subclasses to handle an IRQ.
...
Also move Keyboard to a class implementation using this pattern.
2018-10-22 12:58:29 +02:00
Andreas Kling
46ff281695
Turn the syscall interrupt into a trap (by switching the gate type.)
...
This leaves interrupts enabled while we're in the kernel, which is
precisely what we want.
This uncovered a horrendous problem with kernel tasks silently
overflowing their stacks. For now I've simply increased the stack size
but I need a more MMU-y solution for this eventually.
2018-10-19 11:31:18 +02:00
Andreas Kling
3649638259
Add Regions concept to Task.
2018-10-18 14:55:20 +02:00
Andreas Kling
f67d695254
More paging stuff.
...
The test userspace process now runs at linear address 0x300000 which is
mapped to a dynamically allocated page from the MemoryManager. Cool!
2018-10-18 13:05:00 +02:00
Andreas Kling
9d5de91cf3
Actually destroy tasks after they crash.
2018-10-18 00:26:30 +02:00
Andreas Kling
1a801e5737
Hang if we GPF in ring 0.
2018-10-18 00:13:06 +02:00
Andreas Kling
56c1f9db8e
A userspace process can now GPF and the OS goes on!
...
This is really rickety, but it kinda sorta works for my test GPF!
2018-10-17 23:49:32 +02:00
Andreas Kling
9396108034
Import the "gerbert" kernel I worked on earlier this year.
...
It's a lot crappier than I remembered it. It's gonna need a lot of work.
2018-10-16 11:02:00 +02:00