Commit Graph

54 Commits

Author SHA1 Message Date
Mark 4878a0b06e Proper FPU init, fxsave/fxrstor for threads 2020-02-07 15:02:06 +02:00
Mark 533bc8567a Add linked list structure 2020-02-05 11:38:13 +02:00
Mark 3542b73f1a SMP kinda works, fixed malloc race condition
Damn, I totally need to review SMP safety
2020-02-04 14:16:16 +02:00
Mark d9595c7f62 Change project structure 2020-02-04 12:45:15 +02:00
Mark e342c62882 Thread cleanup stub 2020-02-03 13:24:52 +02:00
Mark 818e3d8825 Thread names 2020-02-03 12:47:28 +02:00
Mark 086447914b brk() and readdir() system calls 2020-02-03 12:16:25 +02:00
Mark 5e23fc4f5c SIGINT from tty, process groups and waitpid() 2020-02-02 13:41:40 +02:00
Mark d6ffd57afa Interruptible nanosleep() 2020-02-01 22:08:05 +02:00
Mark 6089df1556 Global thread list, proper kill() implementation, proper signal entry in
sched
2020-01-31 23:35:46 +02:00
Mark cb24171e79 Signal entry/exit works (crude) 2020-01-31 16:34:17 +02:00
Mark cf9c511ff3 Added I/O syscalls (read/write) and ring reading 2020-01-31 11:44:47 +02:00
Mark 6c9949c2af Thread hierarchy, debugging cycles 2020-01-31 10:42:37 +02:00
Mark 5e7dd1f4ed Add sleep, fix NX bit appearing in addresses 2020-01-30 18:10:54 +02:00
Mark cbb39f9d77 Add basic userspace binary execution (ported from older kernel) 2020-01-30 17:29:40 +02:00
Mark e718112e72 Move files a bit, add sys_exit 2020-01-30 15:43:41 +02:00
Mark 8f7d5071e6 Userspace fork seems to work 2020-01-30 14:32:08 +02:00
Mark 1e631fc03a Well, seems to work 2020-01-30 13:24:00 +02:00
Mark fd374087b0 Thread queueing/unqueuing 2020-01-30 12:40:58 +02:00
Mark 6e9de43a17 Testing sched 2020-01-30 12:00:25 +02:00
Mark 41ac897360 Nuke it all 2020-01-29 14:07:09 +02:00
Mark a221a2a561 Nuke old scheduling code, begin all threads anew 2020-01-28 15:41:33 +02:00
Mark 6309d77901 Add support for MSIs 2020-01-27 21:42:49 +02:00
Mark 78e07114b5 Make IDTs per-CPU in SMP, fix SMP problem with APs starting scheduling
too early
2020-01-27 11:40:23 +02:00
Mark 89b7b86fbb Add options to configure kernel cmdline 2020-01-22 13:35:50 +02:00
Mark f6c8c2b941 Add ^D (broken a bit, but kind of works) and TIOCGWINSZ 2020-01-20 16:57:05 +02:00
Mark 5d3e884b66 Basic job control with process groups. setuid bit support 2020-01-20 15:39:57 +02:00
Mark f2ad1e69eb Fixed broken signal handling 2020-01-15 22:07:11 +02:00
Mark 8b0fe62240 Add read/write syscalls again 2020-01-12 22:59:13 +02:00
Mark 7ddb53c7a0 Don't run init task longer than needed, remove ethq handler for now 2020-01-12 17:42:48 +02:00
Mark 2aeca31778 Kernel tasks have negative pids 2020-01-12 17:32:12 +02:00
Mark bada9ed786 Rework thread init function a bit 2020-01-12 14:57:06 +02:00
Mark a44012cb08 Store FPU context properly with FXSAVE/FXRSTOR 2020-01-09 19:38:20 +02:00
Mark bc1ab6776c Add waitpid syscall 2020-01-05 14:44:07 +02:00
Mark 2495d2e705 Process hierarchy + fixed a retarded bug with whole queue reset when
removing a thread
2020-01-05 01:46:29 +02:00
Mark b50781ed2a Changed signal queue to bitmap 2020-01-02 15:20:06 +02:00
Mark 6a03d92882 Added global timer (PIT-backed now) and nanosleep() syscall 2019-12-31 13:01:47 +02:00
Mark 8380cd3155 Crude argument passing, added hex dump as demo program 2019-12-30 17:26:33 +02:00
Mark 2cbd3e65c4 Signals kinda work! 2019-12-29 16:29:16 +02:00
Mark ccc13ef0d5 Add thread cleanup after termination 2019-12-29 14:15:09 +02:00
Mark d17c1ba115 Added execve() system call 2019-11-05 16:49:18 +02:00
Mark 45ad5614a7 Add brk() system call 2019-10-30 12:33:14 +02:00
Mark b846ee2ad4 Add sys_exit() and fix problem with %rax getting clobbered 2019-10-29 11:29:08 +02:00
Mark 84464623ff Keyboard input and write syscalls (VFS) 2019-10-25 16:26:44 +03:00
Mark a420918e65 Move thread init to thread.c 2019-10-14 14:05:27 +03:00
Mark bfcc6d7bdf Add phys init 2019-10-12 13:57:32 +03:00
Mark 3e63a77c9f Add testing sched with idle tasks 2019-10-11 19:32:41 +03:00
Mark 0e287e59bd Add %gs/cpu offsets to asm headers 2019-10-11 16:20:49 +03:00
Mark 71eeb5d282 Remove everything 2019-10-04 16:23:18 +03:00
Mark d0c709f772 Testing tty0 2019-10-02 19:19:20 +03:00