|
9bab4c62a1
|
kernel: Compilation fixes
continuous-integration/drone/push Build is passing
|
2023-05-07 21:42:03 +02:00 |
|
|
72dadc6706
|
kernel: Define a constant to check for default memory access
continuous-integration/drone/push Build is failing
|
2023-05-07 21:38:38 +02:00 |
|
|
b25e212880
|
kernel: Make a generic function for checking memory flags
continuous-integration/drone/push Build is failing
|
2023-05-07 21:37:01 +02:00 |
|
|
77560bbc3e
|
kernel+tools: Allow loading files with different owners + add a more dynamic install script
continuous-integration/drone/push Build is passing
|
2023-05-06 12:11:35 +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 |
|
|
d9d8f7cdc7
|
kernel: Remove unused headers from main.cpp
continuous-integration/drone/push Build is passing
|
2023-05-04 23:59:46 +02:00 |
|
|
293a992133
|
kernel: Add a kernel_wait_for_event() function to avoid weird calls to kernel_wait in kthreads
continuous-integration/drone/push Build is passing
|
2023-05-04 23:43:00 +02:00 |
|
|
4a7f68b989
|
kernel: Add a convenience wake_up() function
|
2023-05-04 23:35:54 +02:00 |
|
|
3a1c22bb93
|
kernel: Add keyboard combinations for debug information dumps
Ctrl+Alt+E: Dump threads
Ctrl+Alt+M: Dump memory usage
Ctrl+Alt+H: Dump heap state
|
2023-05-04 23:32:48 +02:00 |
|
|
3ed9e578c7
|
kernel/x86_64: Wake the IO thread up only when there is an IO event, instead of polling every 10 ms
|
2023-05-04 23:07:09 +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 |
|
|
7058ec945a
|
libluna: Use a String for name and handle prefix correctly in TarStream
|
2023-05-02 10:51:53 +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 |
|
|
52ce4b28aa
|
Scheduler: Remove redundant check in for_each_child
continuous-integration/drone/push Build is passing
|
2023-04-28 15:22:16 +02:00 |
|
|
7b4cfd52cd
|
Scheduler: Don't search threads spawned before the current thread to find children
continuous-integration/drone/push Build is passing
Children will always be spawned later (and thus have a higher PID) than their parent.
|
2023-04-28 15:19:01 +02:00 |
|
|
bcdec62f51
|
kernel: Allow returning early from Scheduler::for_each_child
|
2023-04-28 15:13:53 +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 |
|
|
24f4ce9669
|
kernel: Only allow Ctrl+D on an empty line
|
2023-04-26 20:42:26 +02:00 |
|
|
099f6131d1
|
kernel: Avoid printing control characters that we don't have a special meaning for
|
2023-04-26 20:42:08 +02:00 |
|
|
97e9fceaa4
|
kernel+libc: Add dup2()
continuous-integration/drone/push Build is passing
|
2023-04-25 20:37:30 +02:00 |
|
|
403b0f6b94
|
kernel+libc+init: Add a way to modify the system hostname
continuous-integration/drone/push Build is passing
|
2023-04-24 21:20:44 +02:00 |
|
|
9eab0886b6
|
kernel+libc: Add uname()
continuous-integration/drone/push Build is passing
|
2023-04-24 20:34:44 +02:00 |
|
|
5d56638851
|
kernel: Ignore all non-bootstrap processors
continuous-integration/drone/push Build is passing
|
2023-04-22 12:25:43 +02:00 |
|
|
60694f651f
|
kernel/ELF: Remove unused include
continuous-integration/drone/push Build is passing
|
2023-04-22 12:20:30 +02:00 |
|
|
2acd2ed75d
|
kernel/ELF: Avoid zeroing out memory twice
continuous-integration/drone/push Build is passing
|
2023-04-22 12:19:22 +02:00 |
|
|
4f6e020196
|
kernel+libc: Add framebuffer ioctls
continuous-integration/drone/push Build is passing
|
2023-04-21 18:25:53 +02:00 |
|
|
841fc25137
|
kernel+init: Add a framebuffer special device file
continuous-integration/drone/push Build is passing
|
2023-04-21 18:18:15 +02:00 |
|
|
02f8a50b9d
|
kernel: Replace unlink() with unlinkat()
continuous-integration/drone/push Build is passing
|
2023-04-18 19:36:29 +02:00 |
|
|
e466c51e9f
|
kernel: Also zero out mmap-ed pages
continuous-integration/drone/push Build is passing
|
2023-04-17 22:16:27 +02:00 |
|
|
95659639e5
|
kernel: Zero out allocated memory for userspace to avoid leaking sensitive data
continuous-integration/drone/push Build is passing
|
2023-04-17 20:11:07 +02:00 |
|
|
949321932f
|
kernel: Do not forbid filenames starting with a hyphen
continuous-integration/drone/push Build is passing
Some programs on Linux seem to use those, better be careful.
|
2023-04-16 11:33:35 +02:00 |
|
|
e6954d2e49
|
kernel: Disallow problematic characters, control characters and invalid UTF-8 in filenames
|
2023-04-16 11:25:32 +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 |
|
|
df95126ccd
|
kernel: Remove unneeded debug logs & random cleanups
continuous-integration/drone/push Build is passing
|
2023-04-14 21:10:38 +02:00 |
|
|
bd60c65e17
|
kernel: Make chown() search in the process's current directory
|
2023-04-13 18:20:07 +02:00 |
|
|
417e505750
|
kernel+libc: Add unlink(), rmdir(), remove()
|
2023-04-12 18:11:36 +02:00 |
|
|
427662d5f1
|
kernel+libc: Add getcwd()
|
2023-04-11 22:45:13 +02:00 |
|
|
7db215819e
|
exec: Respect the program's working directory
|
2023-04-11 22:44:25 +02:00 |
|
|
2a967f4b8b
|
kernel+libc: Add chdir()
|
2023-04-11 22:15:21 +02:00 |
|
|
2d30935fdb
|
kernel: Give each thread a working directory
|
2023-04-11 22:14:57 +02:00 |
|
|
79a96bf5af
|
kernel/ELF: Remove old FIXME
continuous-integration/drone/push Build is passing
|
2023-04-11 21:24:11 +02:00 |
|
|
13c9caa856
|
kernel+libc: Add stat() + fstat()
continuous-integration/drone/push Build is passing
|
2023-04-10 19:56:03 +02:00 |
|
|
fee33e7a14
|
kernel: Add ioctls() for termios stuff to ConsoleDevice
Only handles echoing for now.
|
2023-04-09 11:23:57 +02:00 |
|
|
76eb8cd129
|
kernel: Add an ioctl() system call
|
2023-04-09 11:22:57 +02:00 |
|
|
3887b98a7d
|
kernel: Support setuid binaries
continuous-integration/drone/push Build is passing
You still have to run "chmod 4755 /bin/su" as root inside Luna for now, as this is not done by the install scripts.
|
2023-04-08 16:32:56 +02:00 |
|
|
059c2bfa3f
|
kernel+libc: Add chown and chmod
|
2023-04-08 14:47:34 +02:00 |
|
|
3da1849c99
|
kernel+libc: Add set* and get* syscalls for UIDs and GIDs
|
2023-04-08 13:50:18 +02:00 |
|
|
f6f9254eb4
|
kernel: Add process and filesystem UIDs and GIDs
|
2023-04-08 13:12:49 +02:00 |
|
|
3a28771520
|
kernel+libc+apps: Add support for environment variables
|
2023-04-07 15:03:38 +02:00 |
|
|
3ef484b3f3
|
kernel: Add missing include
|
2023-04-07 14:37:06 +02:00 |
|
|
3a70accdeb
|
kernel: Move copy_string_vector_to_userspace to ThreadImage
|
2023-04-07 14:36:24 +02:00 |
|
|
b22bea84ec
|
kernel: Copy process name on fork()
continuous-integration/drone/push Build is passing
|
2023-04-07 14:02:36 +02:00 |
|
|
7b8260f3f6
|
all: Enable/disable debug symbols/optimization in COMMON_FLAGS
|
2023-04-07 12:07:08 +02:00 |
|
|
d07b00a892
|
all: Move all warning flags to a common CMake variable
|
2023-04-07 12:02:49 +02:00 |
|
|
1f0e185904
|
kernel: Use try_set_value(_or_error) in various places
|
2023-04-07 10:55:04 +02:00 |
|
|
ed0727332b
|
x86_64/CPU: Assign a proper IRQ number to the keyboard interrupt
continuous-integration/drone/push Build is passing
Ah, the dangers of copy-and-paste...
|
2023-04-04 12:13:34 +00:00 |
|
|
64bca780a7
|
kernel: Add /dev/zero
continuous-integration/drone/push Build is passing
|
2023-03-30 21:19:16 +02:00 |
|
|
2fbc6105d7
|
kernel+libc: Add O_DIRECTORY and use it in opendir()
continuous-integration/drone/push Build is passing
|
2023-03-29 22:23:52 +02:00 |
|
|
01813ff0dd
|
String: Rename from_string_literal to from_cstring
|
2023-03-29 17:34:30 +02:00 |
|
|
b6c35124d6
|
libluna: OwnedStringView -> String
Also with inline storage!
|
2023-03-29 17:28:22 +02:00 |
|
|
5623f3c699
|
tmpfs: Set the mode of the root directory on creation
|
2023-03-29 01:06:26 +02:00 |
|
|
0847cfcb65
|
kernel: Add a getdents() syscall
continuous-integration/drone/push Build is passing
|
2023-03-28 21:28:56 +02:00 |
|
|
8eb4d693ac
|
VFS: Add virtual method get() for getdents() and make existence checking occur in add_entry()
|
2023-03-28 21:15:26 +02:00 |
|
|
6239ed83c7
|
kernel+libc: Add F_GETFD, F_SETFD, F_GETFL and F_SETFL to fcntl
|
2023-03-28 20:55:38 +02:00 |
|
|
1635eaf992
|
kernel: Eliminate the splash screen
Userspace is free to show a splash if it wants, but the kernel shouldn't force it upon us.
|
2023-03-24 21:48:32 +01:00 |
|
|
770286a19d
|
kernel+libc: Implement fcntl() for F_DUPFD and F_DUPFD_CLOEXEC
continuous-integration/drone/push Build is passing
|
2023-03-24 21:33:20 +01:00 |
|
|
0de41410c6
|
kernel: Use path as the new process name instead of argv[0]
|
2023-03-24 21:26:45 +01:00 |
|
|
8b712b04c2
|
kernel: Build with optimizations only in debug mode
|
2023-03-24 21:25:26 +01:00 |
|
|
36e48b2ad2
|
kernel: Do not attempt to close non-existent FDs on exec()
|
2023-03-24 21:21:13 +01:00 |
|
|
374a9ff7b8
|
kernel+libc: Implement O_CLOEXEC
|
2023-03-24 21:19:24 +01:00 |
|
|
d48d0efb07
|
kernel: Add names to threads
continuous-integration/drone/push Build is passing
|
2023-03-24 21:05:38 +01:00 |
|
|
4d3050eaab
|
kernel: Retrieve all thread information before marking it as dead in waitpid()
continuous-integration/drone/push Build is passing
In case we get interrupted by the reaper thread.
|
2023-03-24 20:59:07 +01:00 |
|
|
e76ccd6c4c
|
kernel+libc+init: Add getppid() and wait()
continuous-integration/drone/push Build is passing
|
2023-03-24 17:39:55 +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 |
|
|
f084b57f39
|
kernel+sh: Allow using Ctrl+D to send EOF
continuous-integration/drone/push Build is failing
|
2023-03-24 17:21:21 +01:00 |
|
|
d63c8abbfd
|
kernel/x86_64: Terminate page faults in a waitpid-friendly way
|
2023-03-24 00:52:17 +01:00 |
|
|
b6fb5f3dfe
|
kernel+libc: Implement waitpid()
continuous-integration/drone/push Build is passing
|
2023-03-23 22:42:24 +01:00 |
|
|
41c7e3780d
|
kernel: Add support for exit codes and start preparing for waitpid()
|
2023-03-23 22:25:56 +01:00 |
|
|
937802964c
|
kernel: Invert O_NONBLOCK to check whether a thread should block
|
2023-03-23 21:34:38 +01:00 |
|
|
95e884db97
|
kernel: Fix compilation
|
2023-03-23 21:34:09 +01:00 |
|
|
03adaa356c
|
kernel: Avoid printing keypresses twice
|
2023-03-23 21:33:50 +01:00 |
|
|
cda036ce70
|
ConsoleDevice: Use a temporary buffer for backspace handling
continuous-integration/drone/push Build is failing
|
2023-03-23 21:22:12 +01:00 |
|
|
d33fccc66f
|
kernel: Implement reading from /dev/console
|
2023-03-19 19:15:19 +01:00 |
|
|
51f0bdff0e
|
kernel+libc: Add O_NONBLOCK
continuous-integration/drone/push Build is passing
|
2023-03-19 11:25:14 +01:00 |
|
|
41514d9ad2
|
kernel: Add support for blocking reads
|
2023-03-19 11:21:50 +01:00 |
|
|
cd00e41f59
|
arch/x86_64: Decode keyboard scancodes
continuous-integration/drone/push Build is passing
|
2023-03-19 11:17:43 +01:00 |
|
|
54f2d35416
|
kernel: Add the fork() system call
|
2023-03-18 23:45:48 +01:00 |
|
|
a4ac3c85ed
|
kernel+libc: Copy argv to userspace
continuous-integration/drone/push Build is passing
|
2023-03-18 22:25:19 +01:00 |
|
|
0b00dc3fe4
|
kernel/exec: Rename item to string_addr
continuous-integration/drone/push Build is passing
|
2023-03-18 21:56:34 +01:00 |
|
|
7f50893786
|
kernel/exec: Copy argv from userspace
continuous-integration/drone/push Build is passing
|
2023-03-18 21:55:16 +01:00 |
|
|
49952320d6
|
kernel+libluna: Remove console_write entirely
continuous-integration/drone/push Build is passing
|
2023-03-18 20:12:59 +01:00 |
|
|
6a6a56a8b4
|
kernel: Make /dev/console actually respect the length parameter instead of trusting userspace's null terminators
|
2023-03-18 20:10:00 +01:00 |
|
|
d01ba20749
|
kernel/TextConsole: Add a write() function that accepts a fixed-size buffer instead of relying on null terminators
|
2023-03-18 20:09:10 +01:00 |
|
|
629ed9e43b
|
libc: Start switching to /dev/console for console IO and add a proper init
|
2023-03-18 19:23:18 +01:00 |
|
|
7173c05a22
|
kernel: Add support for special device files and add a mknod() syscall
|
2023-03-18 09:10:33 +01:00 |
|