dc766e1da7
kernel: Rework VFS access checking + add processes
...
Build and test / build (push) Has been cancelled
VFS functions now accept a single Process* pointer instead of credentials and groups.
There is now a distinction between processes and threads
Now to fix all the bugs... waitpid crashes the process with an NX error...
2024-12-06 21:35:59 +01:00
abbfd5825f
kernel: Make StorageCache have a reference to its parent BlockDevice
...
Build and test / build (push) Successful in 2m10s
This will make it easier to implement sync later on.
2024-08-09 18:52:56 +02:00
9b01b5a5db
kernel: Correctly register file times for more file systems and file types
2023-12-04 20:42:17 +01:00
3a5924be64
kernel: Set the initial foreground process group when acquiring a controlling terminal
2023-11-25 12:18:04 +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
c4d2847da1
kernel: Rework the entire time system to use modular clocks
continuous-integration/drone/push Build is passing
2023-11-15 23:50:04 +01:00
cea1b030ff
kernel: Add locking to BinaryFormat and DeviceRegistry
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
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
...
continuous-integration/drone/push Build is passing
Fixes #42 .
2023-10-14 20:41:34 +02:00
5f0830cd41
kernel: Add /dev/tty
continuous-integration/drone/push Build is passing
2023-10-14 19:00:10 +02:00
f5aed95b8b
kernel: Fix inode link counting in tmpfs
continuous-integration/drone/push Build is passing
2023-10-04 20:58:40 +02:00
7ff5096083
kernel: Avoid page faults when reading from a slave pseudoterminal after the master is destroyed
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
continuous-integration/drone/push Build is passing
2023-09-22 22:45:35 +02:00
36fad85396
kernel+init+preinit+wind: Remove the kernel TTY and support only userspace terminals
...
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
14f0c93175
kernel: Allow mapping the framebuffer even if its size is not page-aligned
continuous-integration/drone/push Build is passing
2023-09-20 22:41:48 +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
4af337e92d
kernel: Improve the mutex system
continuous-integration/drone/push Build is running
2023-09-20 07:05:33 +02:00
6065b63801
kernel/ext2: Add support for files larger than 4MB
continuous-integration/drone/push Build is passing
2023-09-06 09:56:24 +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
continuous-integration/drone/push Build is passing
2023-09-04 11:44:35 +02:00
a35ca0b367
libluna+kernel: Add Bitset and use it for signals
continuous-integration/drone/push Build is passing
2023-08-23 10:51:02 +02:00
746834e2d9
kernel: Silently ignore TTY writes in graphical mode
continuous-integration/drone/push Build is passing
2023-08-22 13:31:31 +02:00
4a654bf093
kernel: Handle OOMs better and without deadlocking
...
Use a separate task to do it.
Also fix a bug where the init thread would get no kernel stack ever since 5f698b477
.
2023-08-17 20:14:33 +02:00
d43590e68c
kernel: Improve Your Disk IO performance by 500% with this One Trick!
...
continuous-integration/drone/push Build is failing
The trick being caching lol.
2023-08-16 14:54:13 +02:00
7b88b9cea3
kernel/ext2: Replace a manually allocated buffer with Buffer
continuous-integration/drone/push Build is failing
2023-08-16 09:15:29 +02:00
b8f81502b8
kernel: Fix some debug messages that are not shown by default
2023-08-16 09:03:25 +02:00
e8e05159c1
libluna+kernel: Make CRC32 a class
2023-08-15 19:27:09 +02:00
706752d6b9
kernel: Return SIGPIPE/EPIPE when writing to a pipe with no more readers
2023-08-15 19:08:37 +02:00
e2a77bb3da
kernel+libc: Add pledge support
continuous-integration/drone/push Build is failing
2023-08-12 21:38:25 +02:00
bfb76b5625
kernel: Properly expose block device sizes with the new metadata API
2023-08-08 15:17:08 +02:00
1481a4736a
tmpfs: Update mtime on writes
continuous-integration/drone/push Build is passing
2023-08-08 13:36:25 +02:00
4195e7f206
kernel+libc+stat: Add support for file times
...
continuous-integration/drone/push Build is passing
The modification time is not updated though.
2023-08-08 13:33:40 +02:00
b63a8ff245
libluna: Move get_blocks_from_size to a new header and call it ceil_div instead
continuous-integration/drone/push Build is passing
2023-08-08 11:58:33 +02:00
f150425222
kernel: Create a new shared memory object if the old one was lost
2023-08-03 10:31:29 +02:00
b447c1a261
kernel: Set the shmem->inode field in query_shared_memory
2023-08-03 09:25:56 +02:00
f8e86b3b01
fix
2023-08-03 09:25:38 +02:00
d8f6af99b8
kernel: Let devices use shared memory
2023-08-03 09:25:23 +02:00
9443551d71
kernel: Add shared memory
2023-08-02 22:20:05 +02:00
4794d0dfef
kernel: Add a keyboard device for graphical session
2023-08-02 17:20:13 +02:00
9c1e275f34
kernel: Make /dev/mouse read-write only for root
2023-08-02 17:19:37 +02:00
f8cb6e03df
kernel: Allow turning off the TTY by setting it to graphical mode
continuous-integration/drone/push Build is passing
2023-08-02 15:16:10 +02:00
df77fc8de8
libluna: Remove make_array() and destroy_array()
...
Placement new on arrays is a bit unreliable and could cause out-of-bounds data accesses.
2023-08-02 14:47:58 +02:00
e8f3dd4cf9
kernel: Add a PS/2 mouse driver
2023-08-02 11:55:45 +02:00
dc35c42371
kernel/VFS: Rework the metadata system so that there is a single metadata struct
continuous-integration/drone/push Build is passing
2023-08-01 17:20:28 +02:00
187f0ff83e
kernel: Rename Inode::blocking() to Inode::will_block_if_read()
continuous-integration/drone/pr Build is passing
2023-07-30 11:41:53 +02:00
fb08594a18
kernel: Separate FileDescriptors and OpenFileDescription
...
Also, add a did_close() callback for OpenFileDescriptions losing all their references.
2023-07-30 11:33:06 +02:00
c4e30c3029
kernel: Add functionality to allow external inodes (such as sockets) to acquire an inode number from a file system
...
This is only implemented in tmpfs.
2023-07-30 11:33:06 +02:00
c1d08b904e
kernel+libluna: Add Buffer::dequeue_data()
2023-07-30 11:33:05 +02:00