79 Commits

Author SHA1 Message Date
9752ab29d3
libos: Add basic IPC message framework 2023-08-28 12:51:14 +02:00
65aa931931
libos: Add copyright/author comments to LocalServer and LocalClient 2023-08-28 12:51:13 +02:00
baab157431
libos: Remove some shared pointers and change them to owned/live on the stack 2023-08-28 12:51:00 +02:00
48e97de59c
libos: Add os::LocalClient 2023-08-28 12:51:00 +02:00
2177828456
libos: Add a new LocalServer class for local domain sockets 2023-08-28 12:49:45 +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
89d7866abb
libos: Show the sticky bit on symbolic modes 2023-06-03 11:35:13 +02:00
d40654a00c
libos+ls: Allow calling ArgumentParser::short_usage() directly 2023-05-28 21:57:04 +02:00
e864ef2d36
libos: Add a way to also list entry sizes, modes and mtimes 2023-05-28 21:51:50 +02:00
62e14e7580
kernel+libos+apps: Support block devices and disallow seeking character devices or pipes 2023-05-26 20:27:47 +02:00
38fae0c97b
ls: Show file modes visually 2023-05-26 18:22:50 +02:00
1a6ad11462
kernel+libc+libos+ls: Add readlink() 2023-05-23 15:42:38 +02:00
7a8ef52408
libos: Support not following symlinks 2023-05-20 21:49:25 +02:00
1fa8aeecce
libos: Allow Process::exec to take a slice of StringViews instead of Strings as arguments 2023-05-20 12:47:10 +02:00
4d106b6b8c
libos: Add error handling to vector argument usage 2023-05-13 13:22:49 +02:00
65d3195caa
libos: Allow ArgumentParser users to specify they want leftover arguments 2023-05-13 13:22:10 +02:00
300d68088b
libos: Add FileSystem::stat() 2023-05-12 23:47:20 +02:00
b08ebdc3cb
libos: Show "Options:" label even if --help and --version are the only
options
2023-05-06 22:05:08 +02:00
3eb78aa5f3
libos+init: Add a new Path class to handle both file descriptors and file paths 2023-05-03 17:37:26 +02:00
0fad179485
apps+libc+libos: Remove _LUNA_SYSTEM_ERROR_EXTENSIONS and reorder headers
libluna/libos headers can now go after errno.h, so there's no reason to keep them separate.
2023-05-02 10:51:53 +02:00
48df90e636
libos+apps: Use os::*print* instead of (f)printf 2023-05-01 19:32:00 +02:00
a2303665fc
libos: Add os:: print(), println(), eprint(), and eprintln() 2023-05-01 19:31:15 +02:00
ac4bbd135b
libos: Add Directory::list() 2023-04-28 22:41:44 +02:00
6c5d6aaf00
libos: Make remove_tree_at use os::Directory 2023-04-28 21:16:44 +02:00
3e277b5d6f
libos: Introduce os::Directory 2023-04-28 21:16:43 +02:00
80914f0bb9
ArgumentParser: Add support for version information 2023-04-28 16:33:05 +02:00