c075aa77b9
init: Allow empty lines in service files
2023-04-22 15:19:37 +02:00
257c2ffd0a
init: Add a configurable service system instead of always starting /bin/sh
continuous-integration/drone/push Build is passing
2023-04-22 13:56:08 +02:00
841fc25137
kernel+init: Add a framebuffer special device file
continuous-integration/drone/push Build is passing
2023-04-21 18:18:15 +02:00
58dc23e4d9
apps: Add stat
continuous-integration/drone/push Build is passing
2023-04-21 18:04:17 +02:00
15b76f94f4
chown: Parse the owner and group properly
continuous-integration/drone/push Build is passing
2023-04-20 20:08:49 +02:00
eb58b4acc8
libos: Add support for --help to ArgumentParser
continuous-integration/drone/push Build is passing
2023-04-19 19:16:45 +02:00
d56e8baca5
libos+rm: Add recursive removal of directories
continuous-integration/drone/push Build is passing
2023-04-19 18:20:44 +02:00
67e9543675
os: Add FileSystem::change_directory
continuous-integration/drone/push Build is passing
2023-04-18 18:46:19 +02:00
b7a0ad8ffb
sh: Remove stray variable
continuous-integration/drone/push Build is passing
2023-04-18 18:43:50 +02:00
00832163d4
libos: Add Process::exec
continuous-integration/drone/push Build is passing
2023-04-18 18:39:37 +02:00
6ce125d286
libos: Add a Process class
continuous-integration/drone/push Build is passing
2023-04-18 18:16:24 +02:00
fbb7de7156
sh: Do not leak memory when using cd
continuous-integration/drone/push Build is passing
2023-04-18 16:49:05 +02:00
4baee3a91f
sh: Close script file on exec
2023-04-18 16:42:43 +02:00
407e81b107
cat: Read into buffers instead of lines
2023-04-18 16:41:58 +02:00
1733fc810d
mkdir: Use os::FileSystem and add -p flag
continuous-integration/drone/push Build is passing
2023-04-13 18:33:56 +02:00
fb3430c56a
apps: Use os::FileSystem
2023-04-13 18:33:43 +02:00
60c6e764a4
libos+apps: Add some missing functionality to File and eliminate any trace of C from cat and edit
continuous-integration/drone/push Build is passing
2023-04-13 17:31:21 +02:00
26ff964ec1
libos: Add a new main() function
2023-04-13 17:04:59 +02:00
d97bf991d1
libos: Add a very bare-bones C++ RAII File class
2023-04-12 21:46:10 +02:00
3618a41bcd
apps: Add rm
continuous-integration/drone/push Build is passing
2023-04-12 18:11:43 +02:00
1b4f48b92c
sh: Display the working directory as part of the prompt
continuous-integration/drone/push Build is passing
2023-04-11 22:45:33 +02:00
3a45f4af53
su: Change the current directory to the user's home on login
continuous-integration/drone/push Build is passing
2023-04-11 22:15:46 +02:00
dfce93c18f
ls: List the current directory by default instead of the root directory
2023-04-11 22:13:54 +02:00
66c2896652
su: Use termios ioctls to turn off echoing and read a password
continuous-integration/drone/push Build is passing
2023-04-09 11:24:34 +02:00
46be0bd458
apps: Install su as setuid
continuous-integration/drone/push Build is passing
2023-04-08 17:01:26 +02:00
8b45766aaa
su: Use user names and read from the password file instead of using raw user IDs
2023-04-08 16:31:33 +02:00
3867a29a10
apps: Add mkdir, chown and chmod
continuous-integration/drone/push Build is passing
2023-04-08 14:47:58 +02:00
46ee0eb937
sh: Show hashtag on root's prompt
2023-04-08 14:47:50 +02:00
3da1849c99
kernel+libc: Add set* and get* syscalls for UIDs and GIDs
2023-04-08 13:50:18 +02:00
95a93a7f66
sh: Parse arguments
2023-04-08 12:09:43 +02:00
0eab03848c
sh: Remove unused include
continuous-integration/drone/push Build is passing
2023-04-07 15:41:37 +02:00
9bb1720cca
libc: Add execvp() and execvpe()
continuous-integration/drone/push Build is passing
2023-04-07 15:39:10 +02:00
3a28771520
kernel+libc+apps: Add support for environment variables
2023-04-07 15:03:38 +02:00
4cac49038c
sh: Use StringBuilder instead of C-like manual joining
2023-04-07 12:11:28 +02:00
d07b00a892
all: Move all warning flags to a common CMake variable
2023-04-07 12:02:49 +02:00
8e8706be27
sh: Use try_move instead of try_set
...
Looks like Vector does not like being copied. I'll have to look into that later...
2023-04-07 11:52:59 +02:00
1f0e185904
kernel: Use try_set_value(_or_error) in various places
2023-04-07 10:55:04 +02:00
c752b2b343
libos: Put everything under the os namespace
2023-04-07 10:40:46 +02:00
e99ba4df36
date: Make the --date option require a value
continuous-integration/drone/push Build is passing
2023-03-30 21:39:42 +02:00
64bca780a7
kernel: Add /dev/zero
continuous-integration/drone/push Build is passing
2023-03-30 21:19:16 +02:00
61f969c60c
ls: Explicitly initialize booleans to false
2023-03-29 22:19:53 +02:00
43f90c4f88
cat: Use ArgumentParser
continuous-integration/drone/push Build is passing
2023-03-29 22:10:51 +02:00
e6645ed607
StringView+apps: Add a _sv literal suffix to not confuse function overloads
...
C++ was being naughty and implicitly casting our fallback const char* to a boolean.
2023-03-29 22:10:01 +02:00
75c48e996a
ArgumentParser+date: Add value arguments
continuous-integration/drone/push Build is passing
2023-03-29 21:46:07 +02:00
d68f6bd76b
ArgumentParser+ls: Add switch arguments
continuous-integration/drone/push Build is passing
2023-03-29 19:25:11 +02:00
a164dcc160
libos: Add libos + very basic ArgumentParser
...
continuous-integration/drone/push Build is passing
libluna but for stuff that interests only userspace, like an argument parser or files or stuff like that.
2023-03-29 18:27:02 +02:00
724dab636c
apps: Switch to C++
continuous-integration/drone/push Build is passing
2023-03-29 17:56:56 +02:00
7b0b3dabc4
apps: Add ls
continuous-integration/drone/push Build is passing
2023-03-29 01:07:58 +02:00
a43550fb9a
apps: Add date
continuous-integration/drone/push Build is passing
2023-03-24 21:48:43 +01:00
54a4ebe5bb
sh+edit: Miscellaneous fixes
continuous-integration/drone/push Build is passing
2023-03-24 20:53:53 +01:00
e76ccd6c4c
kernel+libc+init: Add getppid() and wait()
continuous-integration/drone/push Build is passing
2023-03-24 17:39:55 +01:00
7efcc06090
kernel+init+sh: Implement parent processes and waitpid(-1, ...)
continuous-integration/drone/push Build is passing
2023-03-24 17:37:04 +01:00
f084b57f39
kernel+sh: Allow using Ctrl+D to send EOF
continuous-integration/drone/push Build is failing
2023-03-24 17:21:21 +01:00
a18e50ff34
apps: Add cat and edit
continuous-integration/drone/push Build is passing
2023-03-24 00:52:26 +01:00
e2eb9a92cb
sh: Don't do anything if Enter is pressed with no command
2023-03-24 00:51:42 +01:00
b6fb5f3dfe
kernel+libc: Implement waitpid()
continuous-integration/drone/push Build is passing
2023-03-23 22:42:24 +01:00
355dd6c32b
apps: Add sh
continuous-integration/drone/push Build is passing
2023-03-23 22:19:54 +01:00
00672c4b22
apps/hello: Demo fgets
continuous-integration/drone/push Build is passing
2023-03-23 21:35:21 +01:00
31ef96ebfc
libc: Add stdin
2023-03-19 19:19:20 +01:00
40f01c825d
libc: Add fork()
continuous-integration/drone/push Build is passing
2023-03-18 23:58:56 +01:00
54f2d35416
kernel: Add the fork() system call
2023-03-18 23:45:48 +01:00
e664af4c2b
libc: Add execv()
continuous-integration/drone/push Build is passing
2023-03-18 22:31:16 +01:00
a4ac3c85ed
kernel+libc: Copy argv to userspace
continuous-integration/drone/push Build is passing
2023-03-18 22:25:19 +01:00
7f50893786
kernel/exec: Copy argv from userspace
continuous-integration/drone/push Build is passing
2023-03-18 21:55:16 +01:00
cb1ef3e404
libc: Add (v)fprintf and make (v)printf use that
...
continuous-integration/drone/push Build is passing
Let's free libc of console_write!
2023-03-18 20:11:19 +01:00
629ed9e43b
libc: Start switching to /dev/console for console IO and add a proper init
2023-03-18 19:23:18 +01:00
8c831a6906
libc: Add mknod()
continuous-integration/drone/push Build is passing
2023-03-18 09:13:31 +01:00
7173c05a22
kernel: Add support for special device files and add a mknod() syscall
2023-03-18 09:10:33 +01:00
8c72e9a49a
kernel: Add an exec() system call
...
continuous-integration/drone/push Build is passing
Doesn't support arguments or environment for now.
2023-03-16 22:44:58 +01:00
3cc2e4b2a4
app: Use C FILE instead of POSIX fd, and switch back to /etc/motd
continuous-integration/drone/push Build is passing
2023-03-12 17:36:56 +01:00
d66506256d
kernel/VFS+libc: Introduce modes
continuous-integration/drone/push Build is passing
2023-03-12 16:55:46 +01:00
682d3c753e
kernel+libc: Add mkdir()
continuous-integration/drone/push Build is passing
2023-03-12 15:32:09 +01:00
b54a7f3a80
kernel+libc: Add O_* flags and parse them in open()
...
continuous-integration/drone/push Build is passing
O_RDONLY, O_WRONLY, O_RDWR, O_TRUNC, O_CREAT and O_EXCL are fully implemented.
O_APPEND is partially implemented.
Other flags are not here yet.
2023-03-12 14:43:58 +01:00
c0a7f6776f
kernel+libc: Add getpid()
continuous-integration/drone/push Build is passing
2023-03-11 22:19:58 +01:00
8fa72f3cf0
kernel+libc: Implement read()
continuous-integration/drone/push Build is passing
2023-03-11 18:02:50 +01:00
810c4bc257
kernel+libc: Start interfacing with the VFS from userspace (open & close)
...
This commit adds open and close syscalls to the kernel, and adds matching wrappers to libc.
No read/write support, so file descriptors are kind of useless for now.
2023-03-11 17:45:20 +01:00
9afff7c544
kernel: Add a fun splash screen during boot :)
...
continuous-integration/drone/push Build is passing
Mostly for fun.
Has a lot of delay in order to see the actual splash screen.
2023-02-27 16:23:51 +01:00
e676fb8299
libc: Add a wide range of time manipulation functions, including reentrant variants
2023-01-13 21:06:27 +01:00
2d2db300b0
libc: Add malloc(), calloc(), realloc() and free()
continuous-integration/drone/push Build is passing
2023-01-13 20:00:20 +01:00
d864bda751
libc: Add (de)allocate_memory wrappers located in sys/mman.h
2023-01-13 19:08:02 +01:00
586ca19b62
Add a VERY BASIC and hacky way of allocating memory from userspace
...
continuous-integration/drone/push Build is passing
Only supports one-page allocations and doesn't have libc wrappers, which means it has to be invoked using syscall().
2023-01-11 23:02:42 +01:00
c82ed5df01
Enable -Os on all targets
2023-01-10 18:13:21 +01:00
7e377ef712
Implement printf()
continuous-integration/drone/push Build is passing
2023-01-07 01:49:26 +01:00
7fb2807d0c
libc: Implement time() using clock_gettime().
...
continuous-integration/drone/push Build is passing
The cool POSIX kids use clock_gettime() now because it has NANOSECONDS (and different clocks!),
but ANSI C prefers this function.
We can still implement it based on clock_gettime(), we just have to discard the NANOSECONDS.
2023-01-07 00:27:23 +01:00
a8a64863c8
kernel, libc: Add clock_gettime()
2023-01-07 00:21:08 +01:00
80f5c790f8
Implement string formatting into libc :)
...
continuous-integration/drone/push Build is passing
Of course, using <luna/Format.h> makes it so simple. No need for duplicate code!
2023-01-06 20:15:43 +01:00
c3653cd4e6
More stdlib.h implementation + commenting + atexit()
continuous-integration/drone/push Build is passing
2023-01-06 19:40:25 +01:00
30555f8e5a
Skip these because CI needed a toolchain rebuild
continuous-integration/drone/push Build is passing
2023-01-06 15:00:49 +01:00
71414c0653
Explicitly set the link path to make it build on CI
continuous-integration/drone/push Build is failing
2023-01-06 14:28:53 +01:00
db1941140c
Explicitly include system headers to make it build on CI
continuous-integration/drone/push Build is failing
2023-01-06 13:40:53 +01:00
129e3c434a
Switch to C for userspace, with a very bare-bones libc!!
continuous-integration/drone/push Build is failing
2023-01-06 13:31:14 +01:00
fd8a0175d9
Add a syscall infrastructure (our baby program can print to the console now!)
continuous-integration/drone/push Build is passing
2023-01-05 22:39:56 +01:00
0ea9974512
First user process!
...
continuous-integration/drone/push Build is passing
Putting it all together, we have a user process that successfully calls sys_exit() w/o crashing.
2023-01-05 21:55:21 +01:00
f2cc797599
Add a simple ELF loader
continuous-integration/drone/push Build is passing
2022-12-23 13:09:21 +01:00
cf758fdfdc
Initial commit :)
2022-11-13 10:09:09 +01:00
42efc21110
Start implementing read and write support in tmpfs
...
write seems to work fine, read just hangs there, waiting.
2022-11-12 20:11:26 +01:00
bde9a97db5
sh: Add a sleep command
2022-11-12 17:44:13 +01:00
16e6fba2d0
Add a bit more C++ stuff to the C++ app
2022-11-12 13:12:51 +01:00
bf1d3d3f05
mkdir: Print newline after usage
2022-11-12 12:53:33 +01:00
5a1d15d2b5
Show only short names of apps when installing
2022-11-10 17:55:41 +01:00