Commit Graph

1158 Commits

Author SHA1 Message Date
907049c405
kernel: Signal the reap thread when a kernel thread exits via exit_and_signal_parent()
All checks were successful
Build and test / build (push) Successful in 1m54s
This shouldn't happen, but just in case.
2024-05-02 10:58:34 +02:00
fb52c67f16
kernel/x86_64: Map kernel-side pages as global to avoid TLB flushes
Some checks are pending
Build and test / build (push) Waiting to run
Fixes #34.
2024-05-01 18:14:43 +02:00
ab70a72434
kernel: Fix extra qualification in Thread.h
Some checks failed
Build and test / build (push) Failing after 12m15s
Forgot to build after writing the previous commit, but CI caught it anyway.
2024-05-01 10:54:59 +02:00
1d0f18cab9
kernel: Move stack checking and expansion into an architecture-independent file
Some checks failed
Build and test / build (push) Failing after 1m45s
2024-05-01 10:52:08 +02:00
de6f5c38d8
kernel: Try to grow the stack on stack overflows, up to a maximum of 8MB
All checks were successful
Build and test / build (push) Successful in 1m49s
This helps keep GCC happy when compiling slightly complex programs :)
2024-04-28 16:27:18 +02:00
b59a787b9e
kernel: Properly initialize the shebang read buffer with zeros
Some checks failed
Build and test / build (push) Failing after 11m23s
Before this patch, a shebang line that was too long could have left the buffer without a null terminator, allowing some other stack contents to pass into the m_interpreter_cmdline.
2024-04-18 21:55:16 +02:00
59713279a0
kernel: Add a hexdump() method to log binary data for debugging
All checks were successful
Build and test / build (push) Successful in 1m33s
2024-03-29 12:12:56 +01:00
6443ec77f8
kernel/ATA: Add support for regular ATA drives (non-ATAPI)
Don't know why this took so long to figure out, I just had to pass the right value to select().
2024-03-29 12:11:39 +01:00
fc37634a18
kernel: Add much-needed support for extended keyboard scancodes 2024-03-06 20:33:54 +01:00
6bdf3169d2
kernel: Handle aborted connections instead of crashing 2024-02-03 19:15:19 +01:00
fd402083d7
kernel: Fix kernel panic when adding a timer before another one
This was caused because add_to_timer_queue() did not set active_clock when inserting a timer before the end, making disarm() a no-op.
Therefore, the clock would continue to use the timer after it had been freed.
2024-01-06 18:12:25 +01:00
4019cf90cf
kernel: Unify panic messages 2024-01-06 17:44:56 +01:00
17b44a8ce6
kernel: Reenable stack tracing in kernel-mode exceptions
Stack tracing in user-mode exceptions was moved to when a signal kills the process, but this isn't done for kernel-mode exceptions so there was no stack trace anymore.
2024-01-05 22:14:31 +01:00
41c90aa436
kernel: Add POSIX timer support 2024-01-05 22:12:58 +01:00
2a85a7473a
kernel: Show stacktraces on all signal terminations 2024-01-04 21:04:24 +01:00
1208d94b37
kernel: Add stack diagnostics to userspace fault reporting 2024-01-04 11:14:19 +01:00
9b01b5a5db
kernel: Correctly register file times for more file systems and file types 2023-12-04 20:42:17 +01:00
b619f717c8
kernel+libc: Implement pause() and sigsuspend()
All checks were successful
continuous-integration/drone/push Build is passing
2023-12-04 20:26:01 +01:00
3a5924be64
kernel: Set the initial foreground process group when acquiring a controlling terminal 2023-11-25 12:18:04 +01:00
8a90db837b
kernel+libc: Add support for supplementary groups (2/2)
Adds system calls for setting and getting groups, along with libc wrappers.
2023-11-22 21:31:07 +01:00
3ad23eab21
kernel: Add support for supplementary groups (1/2)
Adds support for supplementary groups internally in the kernel.
No userspace support.
2023-11-22 18:49:40 +01:00
d1d53c6891
kernel: Remove signal debug messages 2023-11-16 22:02:17 +01:00
678121c3ed
kernel+libc: Add setitimer()
All checks were successful
continuous-integration/drone/push Build is passing
2023-11-16 21:48:18 +01:00
c4d2847da1
kernel: Rework the entire time system to use modular clocks
All checks were successful
continuous-integration/drone/push Build is passing
2023-11-15 23:50:04 +01:00
e28e1c682c
kernel: Tweak some timer code
All checks were successful
continuous-integration/drone/push Build is passing
2023-11-04 10:47:41 +01:00
dfebdce689
kernel: Add a timer queue with more versatility than simple alarm()
All checks were successful
continuous-integration/drone/push Build is passing
2023-11-03 19:53:34 +01:00
e1d5b7e7b4
kernel: Implement thread stopping and continuing
Some checks failed
continuous-integration/drone/push Build is failing
2023-10-28 15:15:32 +02:00
69771cbd85
kernel: Show symbols correctly when at the beginning of a function
All checks were successful
continuous-integration/drone/push Build is passing
2023-10-25 20:02:15 +02:00
cea1b030ff
kernel: Add locking to BinaryFormat and DeviceRegistry
All checks were successful
continuous-integration/drone/push Build is passing
2023-10-23 22:48:04 +02:00
9c65dba412
kernel: Add a registry for file system implementations 2023-10-23 22:47:49 +02:00
ba4e807f8e
kernel: Fix off-by-one error in symbol lookup and add locking
This resulted in very weird backtraces.
2023-10-23 22:47:20 +02:00
b3cbbea9d6
kernel: Move file descriptors into their own separate file 2023-10-23 20:13:11 +02:00
c323a812a5
kernel+libc+terminal+wind: Add support for POSIX sessions
All checks were successful
continuous-integration/drone/push Build is passing
Fixes #42.
2023-10-14 20:41:34 +02:00
5f0830cd41
kernel: Add /dev/tty
All checks were successful
continuous-integration/drone/push Build is passing
2023-10-14 19:00:10 +02:00
c75dbc0cbb
kernel: Lookup and print symbols for addresses in backtraces 2023-10-13 22:11:52 +02:00
f5aed95b8b
kernel: Fix inode link counting in tmpfs
All checks were successful
continuous-integration/drone/push Build is passing
2023-10-04 20:58:40 +02:00
eeb69c923c
kernel: Rename Scheduler::new_userspace_thread to clarify that it's only meant for init
All checks were successful
continuous-integration/drone/push Build is passing
2023-09-25 19:34:02 +02:00
7ff5096083
kernel: Avoid page faults when reading from a slave pseudoterminal after the master is destroyed
All checks were successful
continuous-integration/drone/push Build is passing
2023-09-23 12:57:03 +02:00
ffdcc843eb
kernel+terminal: Move pseudoterminal input processing to kernel-space
All checks were successful
continuous-integration/drone/push Build is passing
2023-09-22 22:45:35 +02:00
441e04076a
kernel: Do not allow sending signals to dying threads
This was causing a kernel panic when closing the terminal by directly exiting the shell (either EOF or the exit command)
2023-09-22 22:40:24 +02:00
36fad85396
kernel+init+preinit+wind: Remove the kernel TTY and support only userspace terminals
All checks were successful
continuous-integration/drone/push Build is passing
Still allow printing text to the console, but without text input or ANSI escape fancy stuff.
2023-09-21 19:31:54 +02:00
b52f96ab64
kernel: Schedule cache clears only on certain checkpoints
All checks were successful
continuous-integration/drone/push Build is passing
2023-09-21 19:14:13 +02:00
14f0c93175
kernel: Allow mapping the framebuffer even if its size is not page-aligned
All checks were successful
continuous-integration/drone/push Build is passing
2023-09-20 22:41:48 +02:00
52b04bd33b
kernel: Increase the OOM threshold to 4 MiB free
All checks were successful
continuous-integration/drone/pr Build is passing
2023-09-20 19:58:26 +02:00
b42497e05e
kernel: Start clearing caches when free memory is lower than 1MiB
All checks were successful
continuous-integration/drone/pr Build is passing
This is done to avoid returning ENOMEM errors when cache memory can still be reclaimed.
2023-09-20 19:49:13 +02:00
c5227d585c
kernel: Allow sending signals to process groups from userspace 2023-09-20 07:06:01 +02:00
d93e9f6b4b
kernel: Fix sending signals to threads that are in a long syscall 2023-09-20 07:06:00 +02:00
a93626fc41
kernel: Add pseudoterminals and a /dev/pts filesystem 2023-09-20 07:05:59 +02:00
a4b5e68e1b
kernel: Allow performing extra actions when opening an inode 2023-09-20 07:05:58 +02:00
3d90d7f98e
kernel: Fix poll syscall 2023-09-20 07:05:52 +02:00