70 Commits

Author SHA1 Message Date
Mark e0f0087ccc mman: rewrite physical memory manager
Better protection of reserved memory regions,
merged "pool" allocation functions into main
memory manager
2020-08-23 22:59:29 +03:00
Mark 8ced5eb98d Simplify headers a bit 2020-08-11 17:00:14 +03:00
Mark 4ae2adb6df (Proof-of-concept) module support 2020-08-10 23:56:45 +03:00
Mark 83b1d9a281 Add setsid(2) syscall 2020-07-31 15:27:18 +03:00
Mark 7a26c595e4 Add exception signals, fix stack misalignment on userspace entry 2020-07-26 21:00:36 +03:00
Mark f79fc98967 Add procfs 2020-07-12 17:10:51 +03:00
Mark 25537eeab8 Fix: prevent double queueing of the same thread 2020-07-11 17:50:16 +03:00
Mark f08fcd77da Use struct list_head to link thread in a process 2020-07-10 17:01:24 +03:00
Mark 6ae176d516 Add sigaltstack() syscall 2020-07-10 13:41:15 +03:00
Mark c60ddf21c9 Add (buggy) SIGSTOP/SIGCONT for processes 2020-07-07 21:25:48 +03:00
Mark ecf4262646 Separate notions of "thread" and "process" 2020-07-05 23:16:10 +03:00
Mark 26bf9f60c0 Integrate new io_notify with waitpid() 2020-03-31 13:04:27 +03:00
Mark 55d2efda8e Reworked how waiting/select()ing FDs works 2020-03-30 18:08:23 +03:00
Mark 7005c446f8 PoC shared memory implementation 2020-03-27 14:33:15 +02:00
Mark f44505b05c Rework list functions 2020-03-26 22:05:06 +02:00
Mark 1ef3a5d248 Add sockets and UDP sendto() 2020-03-20 16:37:52 +02:00
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