git.cappig.dev / apheleiaOS.git master

b099a1daf3d71b98054c4045b42f300169bfe571 master
cappig <[email protected]> ยท 1 year ago
Add signals and improve the scheduler

* Begin implementing unix signals
* Catch userspace exceptions (still some work left to be done on page
  faults)
* Add the vdso. For now it only has the signal trampoline
* When mapping virtual memory as not present intermediate page levels
  will be marked as present
* A whole bunch of work on the scheduler in general (see diff)
* Some smaller stuff here and there
31 files changed, 894 insertions, 185 deletions
build/toolchain.mk +3 -3
kernel/arch/idt.c +78 -4
kernel/arch/idt.h +1 -1
kernel/arch/irq.c +1 -2
kernel/drivers/initrd.c +2 -3
kernel/mem/virtual.c +2 -2
kernel/sched/process.c +193 -47
kernel/sched/process.h +22 -4
kernel/sched/scheduler.c +49 -20
kernel/sched/scheduler.h +4 -4
kernel/sched/signal.c created
kernel/sched/signal.h created
kernel/sched/syscall.c +78 -36
kernel/sys/clock.c +1 -1
kernel/sys/clock.h +1 -1
kernel/sys/console.c +3 -3
kernel/sys/tty.c +2 -4
libs/aos/signals.h +16 -11
libs/aos/syscalls.h +10 -5
libs/gfx/color.c +21 -19
libs/gfx/color.h +2 -2
libs/parse/elf.c +39 -0
libs/parse/elf.h +4 -1
libs/term/palette.c +3 -3
libs/term/palette.h +1 -1
libs/term/term.c +3 -7
libs/x86/serial.c +5 -1
libs/x86/serial.h +1 -0
user/init/main.c +15 -0
user/vdso/build.mk created
user/vdso/main.asm created