99 Commits

Author SHA1 Message Date
909d0ed289
libos+wind+apps: Make IPC code object-oriented and add functionality for properly receiving messages
This functionality previously had to be repeated across all server programs using the IPC API.
2024-02-03 19:16:39 +01:00
75d0d12b71
apps: Add a background launcher service
This service is used only by taskbar, for now, to launch apps with regular privileges instead of inheriting the special group 'wsys'.
2024-02-01 21:58:44 +01:00
1cd355a8e8
libos: Add Function<Args...> and use that to make EventLoop callbacks more versatile 2024-01-18 20:52:36 +01:00
d4d748e153
terminal: Remove m_cursor_timer->restart() from tick_cursor()
Since the timer was created as a repeating timer, it is already restarted after the function.
2024-01-13 16:26:37 +01:00
6bf8225f63
libos: Add Timer::reset, restart and stop 2024-01-08 19:01:59 +01:00
1223c6c20b
libos: Add FIXME to EventLoop 2024-01-08 19:01:39 +01:00
a9c339939a
libos: Move timer handling to a separate class and use POSIX timers 2024-01-05 22:16:50 +01:00
73a7d4f2a1
wind+libui: Run wind as a separate user 2023-11-22 21:31:08 +01:00
8a57d8a9b7
libos: Use setitimer() for millisecond precision 2023-11-16 21:58:45 +01:00
4d5feb0f3b
libos: Add File::seek() and File::tell() 2023-10-24 20:02:09 +02:00
e18ca9bfe0
libos: Document Action.h 2023-10-10 22:11:12 +02:00
0824ba7e23
libos: Add timers to event loops
Only second precision for now, as alarm() is used to control the timers. Hopefully setitimer() or timer_create() can be added to the kernel soon to benefit from more precision.
2023-10-09 22:00:15 +02:00
0b2a835336
libui+libos: Move Action to libos 2023-10-07 15:31:50 +02:00
945cfab3eb
libos: Add signal handling to event loops 2023-10-07 14:26:35 +02:00
5892a6bf09
libos+libui: Add event loops 2023-10-06 22:06:34 +02:00
5db1c3722c
libui+wind+libos: Move shared memory handling code to os::SharedMemory 2023-09-20 07:05:57 +02:00
7e7f0a96f5
wind+libos+libui: Handle interrupted reads properly 2023-09-20 07:05:55 +02:00
2328987d81
libos+libui+wind: Use uppercase for static struct IDs to avoid confusion with fields 2023-09-20 07:05:54 +02:00
9125561cab
libos: Add basic IPC message framework 2023-09-20 07:05:53 +02:00
02b9dc579b
libos: Add copyright/author comments to LocalServer and LocalClient 2023-09-20 07:05:52 +02:00
1c50d5133f
libos: Remove some shared pointers and change them to owned/live on the stack 2023-09-20 07:05:52 +02:00
03096680ae
libos: Add os::LocalClient 2023-09-20 07:05:51 +02:00
b6fe96e364
libos: Add a new LocalServer class for local domain sockets 2023-09-20 07:05:49 +02:00
cb0d5cb6a1
rm: Add the -v flag 2023-09-02 14:46:14 +02:00
06aa7725a1
libos: Stop using syscalls directly and proxy to libc 2023-09-02 14:27:04 +02:00
cbea66c533
libos+libluna: Fix misspellings of "succeeded" 2023-08-26 20:49:57 +02:00
2abb43d709
kernel+libos: Call Vector::try_reserve where it is appropriate 2023-08-22 11:54:00 +02:00
30ff704342
libluna+libos: Install built libraries into the system root
This is less important for libluna, as it is built into libc, but is needed to link programs compiled inside Luna with libos.
2023-08-21 14:06:32 +02:00
9954fc1658
libos: Add a pledge wrapper 2023-08-14 10:45:00 +02:00
2e63b93e48
libos: Remove debug statements from Process::spawn() 2023-08-07 22:53:37 +02:00
77ebdda2e0
libos: Add Process::spawn() 2023-08-07 22:49:12 +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
aac8280e8a
libc+libos: Properly propagate errors through fgetc() and File::getchar()
This restores proper ^C behavior in the shell.
2023-08-02 14:46:47 +02:00
7983d63b8e
libos: Add documentation for os::File::BufferingMode 2023-08-02 13:15:51 +02:00
b17793134e
libos: Let users change the buffering mode of a File 2023-08-02 11:54:47 +02:00
200bb6c240
kernel+libc+libos: Add inode type for sockets 2023-07-30 11:33:05 +02:00
4ed7ec5e93
libluna: Store SharedPtr's ref count in the object itself 2023-07-30 11:32:46 +02:00
eeb9e16a74
libos: Make os::File a wrapper around stdio's FILE
This way, os::File benefits from the same buffering as stdio.h does.
2023-07-22 12:40:02 +02:00
5458286309
libos: Add Process::exit() 2023-07-21 21:21:08 +02:00
4439ef8ec6
sh: Add a system to easily add flexible shell builtins 2023-07-21 20:44:01 +02:00
82411789e8
libos+apps: Add kill 2023-07-10 22:17:05 +02:00
5c9503ac71
libos+cp: Add prompt functionality 2023-07-08 18:30:39 +02:00
6d9ba8deb4
libos+apps: Make the vector argument more flexible 2023-07-08 16:44:02 +02:00
bd757d204e
kernel+libos+libluna: Avoid copying and reallocation when creating Strings
This is done by reusing the existing buffers in Vector and Buffer instances.
2023-07-02 19:30:25 +02:00
f052d8630d
libos: Use Vector::shallow_copy() in ArgumentParser 2023-06-19 12:23:56 +02:00
2f08e0f5b0
libos: Make long value arguments use '=' and make value arguments' values always required 2023-06-17 20:58:54 +02:00
da1439126a
libos: Correct wrong manpage section for execve() 2023-06-09 23:35:23 +02:00
e4e501ecfe
libos: Add Process::wait() 2023-06-09 23:12:31 +02:00
bc07cc94cb
libos: Document it entirely using Doxygen comments =D
Also, add copyright information to individual files. This is going to be a hassle to do for EVERY file.
2023-06-09 22:45:06 +02:00
85896214ba
libos: Make File::read_all() read chunked blocks instead of one character at a time
This results in a speedup of 0.23s -> 0.13s for Base64 encoding of /bin/ls.
2023-06-04 00:23:06 +02:00