67a9d130e2
kernel: Add initial support for symbolic links :D
2023-05-20 21:49:24 +02:00
01111442d3
kernel: Add the getrusage() system call
2023-05-20 12:48:07 +02:00
1f4c4928cc
kernel+libc+apps: Add mount and umount syscalls, libc wrappers, and utilities
continuous-integration/drone/push Build is passing
2023-05-17 20:30:15 +02:00
29174ca228
kernel/VFS: Add a way to unmount file systems
2023-05-17 19:52:26 +02:00
4a7f68b989
kernel: Add a convenience wake_up() function
2023-05-04 23:35:54 +02:00
42eb0a1d74
kernel: Freeze waitpid()'s calling thread until a child tells us it's done, instead of polling it every 10 ms
2023-05-04 23:03:31 +02:00
4616997f5b
kernel: Store a thread's parent directly instead of its parent's PID
2023-05-04 22:58:04 +02:00
77dcfab5ef
kernel: Run the initialization process in a thread
...
continuous-integration/drone/push Build is passing
This way we can give it more stack and also reclaim it later!
2023-04-28 13:23:07 +02:00
82e7b0e860
kernel: Introduce *at() syscall framework, add openat() and fstatat()
continuous-integration/drone/push Build is passing
2023-04-15 20:26:15 +02:00
2d30935fdb
kernel: Give each thread a working directory
2023-04-11 22:14:57 +02:00
f6f9254eb4
kernel: Add process and filesystem UIDs and GIDs
2023-04-08 13:12:49 +02:00
d48d0efb07
kernel: Add names to threads
continuous-integration/drone/push Build is passing
2023-03-24 21:05:38 +01:00
7efcc06090
kernel+init+sh: Implement parent processes and waitpid(-1, ...)
continuous-integration/drone/push Build is passing
2023-03-24 17:37:04 +01:00
41c7e3780d
kernel: Add support for exit codes and start preparing for waitpid()
2023-03-23 22:25:56 +01:00
51f0bdff0e
kernel+libc: Add O_NONBLOCK
continuous-integration/drone/push Build is passing
2023-03-19 11:25:14 +01:00
54f2d35416
kernel: Add the fork() system call
2023-03-18 23:45:48 +01:00
b54a7f3a80
kernel+libc: Add O_* flags and parse them in open()
...
continuous-integration/drone/push Build is passing
O_RDONLY, O_WRONLY, O_RDWR, O_TRUNC, O_CREAT and O_EXCL are fully implemented.
O_APPEND is partially implemented.
Other flags are not here yet.
2023-03-12 14:43:58 +01:00
bd572473ad
kernel: Remove FileDescriptorTable and add a helper to resolve fds to FileDescriptors
2023-03-12 13:57:38 +01:00
810c4bc257
kernel+libc: Start interfacing with the VFS from userspace (open & close)
...
This commit adds open and close syscalls to the kernel, and adds matching wrappers to libc.
No read/write support, so file descriptors are kind of useless for now.
2023-03-11 17:45:20 +01:00
ca85a69442
kernel: Save floating-point environment when switching in and out of userspace threads
2023-03-07 20:59:11 +01:00
3a84e4998c
kernel/Thread: Add FIXME
continuous-integration/drone/push Build is passing
2023-01-31 17:02:49 +01:00
139c0b5eb1
Kernel: Make a UserVM wrapper around Bitmap and use that to allocate user VM
...
This lets us allocate more than one page of memory from the user side.
2023-01-13 19:05:20 +01:00
586ca19b62
Add a VERY BASIC and hacky way of allocating memory from userspace
...
continuous-integration/drone/push Build is passing
Only supports one-page allocations and doesn't have libc wrappers, which means it has to be invoked using syscall().
2023-01-11 23:02:42 +01:00
ea89b92675
Store a bit more stuff in a thread :)
2023-01-05 21:50:53 +01:00
5854e5e530
Add newlines at end-of-file
2023-01-02 13:07:29 +01:00
a11a5dec1f
DoublyLinkedList -> LinkedList
continuous-integration/drone/push Build is passing
2022-12-19 12:43:23 +01:00
751377de0a
Scheduler: Make it possible for a thread to stop existing
continuous-integration/drone/push Build is passing
2022-12-18 18:43:34 +01:00
1b92fe36b4
Store the stack inside a thread
2022-12-18 18:43:17 +01:00
a89ae9bed7
Run include-what-you-use
continuous-integration/drone/push Build is passing
2022-12-17 15:51:19 +01:00
d5b9ff1569
Remove unused function definition
continuous-integration/drone/push Build is passing
2022-12-17 15:30:57 +01:00
6e5d2b5335
Thread: Make g_next_id atomic
2022-12-17 10:50:49 +01:00
d93d95f23c
Add sleeping mechanism
2022-12-07 16:11:59 +00:00
57517252d8
Add a state to Thread
2022-12-07 16:11:59 +00:00
12aa014a3d
Add a Thread class which can be part of a DoublyLinkedList
2022-12-07 16:11:59 +00:00