Commit Graph

1149 Commits

Author SHA1 Message Date
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
6a35cad8d5
kernel: Add POLLHUP and store it when a polled socket's peer disconnects 2023-09-20 07:05:52 +02:00
15192837c0
kernel: Support listening sockets in poll() 2023-09-20 07:05:48 +02:00
4af337e92d
kernel: Improve the mutex system
Some checks are pending
continuous-integration/drone/push Build is running
2023-09-20 07:05:33 +02:00
3e896b0f62
kernel:Remove unused legacy variable from sys_mmap()
All checks were successful
continuous-integration/drone/push Build is passing
2023-09-12 22:07:17 +02:00
66e3d71dbc
kernel/ATA: Fix sector number calculation for ATA drives
All checks were successful
continuous-integration/drone/push Build is passing
2023-09-07 11:28:46 +02:00
6065b63801
kernel/ext2: Add support for files larger than 4MB
All checks were successful
continuous-integration/drone/push Build is passing
2023-09-06 09:56:24 +02:00
e029679fba
kernel: Fix negative movement in the PS/2 mouse driver
All checks were successful
continuous-integration/drone/push Build is passing
2023-09-05 10:46:05 +02:00
0002c2314c
kernel: Handle tab properly in the terminal 2023-09-04 13:12:08 +02:00
27eacac19c
kernel: Add a blinking cursor to the terminal
All checks were successful
continuous-integration/drone/push Build is passing
2023-09-04 11:44:35 +02:00