8066e8f1d8
kernel+libc: Implement sigprocmask() and friends
continuous-integration/drone/pr Build is failing
2023-07-10 21:01:59 +02:00
cde467ee46
kernel: Support returning termination signals from waitpid
continuous-integration/drone/pr Build is passing
2023-07-10 20:16:06 +02:00
15d6aae701
kernel+libc: Implement basic signals
2023-07-10 19:46:57 +02:00
e3552d9df0
kernel: Log hostname changes
2023-07-10 13:04:40 +02:00
c599251d2a
kernel: Rename UserVM to AddressSpace
...
continuous-integration/drone/push Build is passing
This is a more appropriate name now that it does more stuff than allocate virtual memory.
To be fair, the name was a bit awkward anyway. Should have been UserVMAllocator I guess.
2023-07-09 20:38:04 +02:00
5e564e9ae3
kernel: Move Thread::self_directory to UserVM
...
Since this is only used by user threads, UserVM is a convenient/related place to store the PageDirectory in a RAII manner.
2023-07-09 20:32:42 +02:00
e9e7b22323
kernel: Separate a thread's page directory into two
...
continuous-integration/drone/pr Build is passing
The self directory, and the active directory. The active directory is the one the thread is currently using,
and the self directory is the one the thread owns.
This lets us keep track of both, which fixes ext2 executables crashing the system.
2023-06-25 20:35:40 +02:00
77686b26f8
kernel/Ext2: Read the root inode metadata from the disk
2023-06-25 20:35:36 +02:00
a9460469d9
kernel+libc+apps: Add a source parameter to the mount() system call
2023-06-25 20:35:35 +02:00
54a1998d42
kernel: Also move children's parent to PID 1 in the common thread exit function
continuous-integration/drone/push Build is passing
2023-06-19 12:35:31 +02:00
e60b2a3d2f
kernel: Move thread exit code into a separate common function
continuous-integration/drone/push Build is passing
2023-06-19 12:33:25 +02:00
b4a6e4d56d
libluna/PathParser: Make dirname() and basename() static functions
...
continuous-integration/drone/push Build is passing
This avoids creating a PathParser to use them, which allocates memory that won't be used.
2023-06-19 11:21:58 +02:00
36e6787415
kernel: Make sure addresses allocated by mmap() are ALWAYS page-aligned
...
continuous-integration/drone/push Build is passing
Fixes a kernel crash. Thanks a lot, sysfuzz!
2023-06-18 20:29:32 +02:00
b7bdec9ece
kernel: Add a bunch more config definitions and hide debug messages behind them
2023-06-18 20:18:00 +02:00
67ed18629d
kernel: Update the VM allocator for userspace to use a linked list
...
continuous-integration/drone/push Build is passing
This can cover the entire address space at once in a more memory-efficient way.
Stress-tested using 'base64 /bin/ls' which allocates enough contiguous
virtual memory to store the entirety of /bin/ls :)
A couple of bugs and fixes later, here we are!
2023-06-18 01:48:48 +02:00
e79d4297ea
kernel: Make the root inode be a mountpoint as well + add pivot_root()
continuous-integration/drone/push Build is passing
2023-06-17 17:27:22 +02:00
b7a82fd895
kernel: Do not error out on zero-length reads/writes to bad addresses
2023-06-17 12:04:34 +02:00
d0b65674e6
kernel: Fix 0-delay sleeps blocking the thread forever
2023-06-08 19:57:38 +02:00
8bcec00a9d
kernel: Change the timer subsystem to use timespecs natively
continuous-integration/drone/push Build is passing
2023-06-03 13:15:10 +02:00
1090815c8d
kernel: Honor the sticky bit
2023-06-03 11:55:10 +02:00
ff952cfe16
kernel+init: Let userspace control devfs mountpoints
continuous-integration/drone/push Build is passing
2023-06-02 21:45:31 +02:00
88d1da59e8
kernel+libc: Add access()
continuous-integration/drone/push Build is passing
2023-05-27 12:04:27 +02:00
bd8aaa917f
kernel+libc+ln: Add support for userspace hard link creation
continuous-integration/drone/push Build is passing
2023-05-27 11:32:40 +02:00
b0506bf88f
kernel: Add umask
continuous-integration/drone/push Build is passing
2023-05-26 22:27:49 +02:00
d89a823924
kernel: Return EACCES when trying to chdir to an unaccessible directory
2023-05-26 20:49:13 +02:00
7cdb967730
kernel: compilation fix
continuous-integration/drone/push Build is passing
2023-05-26 20:30:39 +02:00
62e14e7580
kernel+libos+apps: Support block devices and disallow seeking character devices or pipes
continuous-integration/drone/push Build is failing
2023-05-26 20:27:47 +02:00
3a51807fa6
kernel+stat: Handle pipes correctly in stat()
continuous-integration/drone/push Build is passing
2023-05-23 20:54:25 +02:00
9cdfdbc6f9
kernel: Handle unnamed pipes in stat()
continuous-integration/drone/push Build is failing
2023-05-23 20:49:26 +02:00
1094042a7d
kernel: Implement st_dev and st_rdev
continuous-integration/drone/push Build is failing
2023-05-23 20:45:24 +02:00
1a6ad11462
kernel+libc+libos+ls: Add readlink()
continuous-integration/drone/push Build is passing
2023-05-23 15:42:38 +02:00
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
1506331872
kernel+libc: Add the pstat() system call
...
Luna-specific, but I like it.
2023-05-18 21:48:47 +02:00
84bed3ceb3
kernel+libc: Remove mknod()
...
continuous-integration/drone/push Build is passing
Now that we automatically create files in /dev, mknod() is not needed anymore.
2023-05-18 19:42:14 +02:00
8f6bd29da3
kernel: Make file system reference counting work for current directories
...
continuous-integration/drone/push Build is passing
Also, make pipes usable again.
2023-05-17 20:37:01 +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
64d0f30bd9
kernel: Disallow write-related flags when opening a directory, not only when the directory flag is set
...
continuous-integration/drone/push Build is passing
Also return EISDIR instead of EINVAL as that is what Dr. POSIX mandates.
2023-05-11 21:29:49 +02:00
411c6c40cd
kernel: Add the fchmodat() and fchownat() system calls
continuous-integration/drone/push Build is passing
2023-05-11 19:49:03 +02:00
efc6d03f23
kernel+libc: Add support for unnamed pipes
continuous-integration/drone/push Build is passing
2023-05-10 22:48:31 +02:00
1a2fce5316
kernel+libc: Add the O_TMPFILE open flag and the tmpfile() function
continuous-integration/drone/push Build is passing
2023-05-09 22:04:34 +02:00
9184bbfef6
kernel: Disallow passing O_WRONLY and O_DIRECTORY at the same time
continuous-integration/drone/push Build is passing
2023-05-05 18:53:50 +02:00
4a7f68b989
kernel: Add a convenience wake_up() function
2023-05-04 23:35:54 +02:00
96f3d29d37
kernel: Tell the reap thread to run when it's needed, instead of checking every 200 ms
2023-05-04 23:06:00 +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
44e4ca804a
kernel: Make sure argument vectors passed to execve() are not too big
2023-05-04 16:36:24 +02:00
abaf24d0da
kernel/CPU: Move some stuff to StringView
2023-05-03 17:35:46 +02:00
3e277b5d6f
libos: Introduce os::Directory
2023-04-28 21:16:43 +02:00
0c1d33f2ec
kernel: Move some files into subdirectories
continuous-integration/drone/push Build is passing
2023-04-28 15:55:06 +02:00