79851394b3
Kernel/LibC/Userspace: Add SYS_POWEROFF + cli tool
...
You can now shutdown/reboot banan-os with the poweroff cli tool.
Reboot doesn't seem to work on qemu.
2023-09-28 12:36:47 +03:00
0b11d76576
LibC: Add errno for unknown error
2023-09-28 12:06:17 +03:00
8d5369fafe
Kernel: Add some functionality to disable TTY input/output
...
Userspace programs can call tty_ctrl() to disable/enable tty from
handling input and displaying output.
This API is probably going to change in the future to ioctl calls
but I'm not sure how ioctl is used and what functionality should it
have. I decided to create whole new function and syscall for now.
Next I will expose framebuffer in /dev/fb0 and then I can start work
on graphical environment! :D
2023-09-27 15:44:05 +03:00
fc953df281
Kernel/LibC: remove PATH resoltion from kernel
...
I have no idea why I had made PATH environment variable parsing
to be part of the kernel. Now the shell does the parsing and
environment syscall is no longer needed.
2023-09-23 03:08:14 +03:00
f662aa6da2
Kernel/LibC: userspace malloc now uses mmap to get memory
...
We could remove syscalls to allocate more memory. This was not
something the kernel should have done.
2023-09-23 02:26:23 +03:00
fee3677fb9
Kernel/LibC: add mmap for private anonymous mappings
...
This will be used by the userspace to get more memory. Currently
kernel handles all allocations, which is not preferable.
2023-09-22 23:01:14 +03:00
5fae3cec2a
Kernel: Implement SYS_SYNC and add sync executable to userspace
...
You can (and have to) manually sync disk after writes to it.
2023-09-11 01:26:27 +03:00
720bc418a6
All: Clear lines with only whitspace in them
2023-09-10 00:31:42 +03:00
9e4a87021c
Kernel: Fix directory permissions
...
We did not care about X bit in directories and instead used only the
R bit for search/read.
2023-09-08 11:46:53 +03:00
044378cfa3
Kernel: Add basic nanosleep, only millisecond percision
2023-09-04 12:59:50 +03:00
19d0fb6fcd
Kernel: add basic fcntl() with couple of commands and no validation
2023-09-04 12:57:09 +03:00
97ea4986af
Kernel/LibC: implement proper getpgid and setpgid
2023-08-22 14:53:12 +03:00
42b90ae76c
Kernel/LibC: Add {get,set}pgrp()
2023-08-22 11:36:33 +03:00
8e4216215e
Kernel/LibC: add dup() syscall and function
2023-08-17 12:03:29 +03:00
165a379c73
LibC: Fix S_IF* macros and add macros for access/type masks
2023-08-11 10:30:50 +03:00
13852e865c
LibC: sys/wait.h now has proper exit status macros
...
We use the same format as basically every implementation
2023-08-01 10:32:04 +03:00
432c296b7b
Kernel: Implement SYS_GET_PID and SYS_TCSETPGID
...
we don't have consept of process groups yet
2023-07-24 22:29:59 +03:00
adb14ba373
Kernel: Userspace signal handlers are now called one at a time
...
I added a syscall for telling the kernel when signal execution has
finished. We should send a random hash or id to the signal trampoline
that we would include in the syscall, so validity of signal exit can
be confirmed.
2023-07-23 13:34:53 +03:00
7391d91317
Kernel/LibC: add SYS_SIGNAL/signal()
2023-07-21 20:08:13 +03:00
ad756c36fc
Kernel/LibC: Add SYS_KILL/kill()
2023-07-21 19:27:38 +03:00
dcd4d0daeb
Kernel/LibC: Add bareboness signals
...
You can now call raise() to raise a signal. Signal handlers are
not yet supported, but the handling works :)
2023-07-21 15:45:02 +03:00
a549336530
Kernel/LibC: add basic dup2
2023-07-06 23:17:54 +03:00
4eb95c963d
Kernel/LibC: Add basic pipe() syscall and command
...
You can now create pipes :)
2023-07-06 22:16:26 +03:00
3c068aa0ae
Kernel/LibC: add clock_gettime() for CLOCK_MONOTONIC
...
This gets the number of milliseconds since boot
2023-07-06 00:38:29 +03:00
0f63cfa43f
Kernel/LibC: add SYS_{SET,GET}_PWD and chdir, getpwd
2023-06-12 02:02:52 +03:00
b254ade69b
Kernel: Add SYS_GET_{,E}{UID,GID}
2023-06-11 22:37:00 +03:00
ef4ebaa969
Kernel: Add syscalls for set{,e,re}{uid,gid}
2023-06-11 22:37:00 +03:00
99f8133b91
LibC: gid_t and id_t are now signed types
...
I have no idea why I had made them unisigned
2023-06-11 22:37:00 +03:00
5aed186827
Kernel: Add SYS_OPENAT
2023-06-11 03:29:22 +03:00
52c4eebd77
Kernel: Implement SYS_FSTAT
2023-06-11 03:29:22 +03:00
7a5d5cabad
Kernel: Add syscall for reading directory entries
2023-06-11 00:18:08 +03:00
86f58f60cb
LibC: implement setenv, unsetenv, putenv
2023-06-05 22:51:02 +03:00
9d64dbd5c2
Kernel/LibC: add SYS_STAT and stat(), lstat()
2023-06-05 14:37:14 +03:00
cbb9f47ee5
LibC: add wait and waitpid
...
Note that wait() doesn't work since only waiting for specified
pid is supported. wait() will just return -1 and set errno to
ECHILD.
2023-06-04 18:00:52 +03:00
3c3c7826ef
LibC: Add simple definition for realloc
...
The syscall just crashes the kernel currently. I will implement
this when needed
2023-06-02 17:56:13 +03:00
3a69768eb0
LibC: remove select() declaration
...
This already comes from sys/select.h
2023-06-02 17:29:09 +03:00
ab61b49aca
Kernel: Add SYS_EXEC syscall
2023-05-31 20:57:33 +03:00
341f7e41e5
LibC: Fix some headers to make gcc build again
2023-05-30 01:17:45 +03:00
0c316ebfb2
Kernel: Add SYS_SLEEP
2023-05-28 22:34:48 +03:00
6fdbe6f9c2
Kernel: Add bareboness fork() function
2023-05-28 18:08:49 +03:00
f79250c4d4
LibC: Rewrite all the headers.
...
We now have more or less posix issue 2018 conforming libc headers.
This was a really time consuming and boring operation but it had to
be done.
Now we get to actually start implementing libc :)
2023-05-26 22:31:21 +03:00
53f4b5a9da
LibC: add function declarations to sys/stat.h
2023-05-11 15:11:33 +03:00
441999ba9f
LibC: add more types to sys/types.h
2023-05-11 00:33:53 +03:00
fe87c08a02
LibC: add needed stubs to build executables with our compiler
2023-04-12 17:53:02 +03:00
12351d5cb6
LibC: sys/types uses 'typedef' instead of 'using'
2023-04-05 15:03:24 +03:00
914f718767
LibC: add device macros in sys/sysmacros.h
2023-04-03 10:59:15 +03:00
0d356c5bbc
LibC: Add stat structure
2023-03-24 18:08:22 +02:00
8ac1ae1574
LibC: add more typedefs to sys/types
2023-03-23 19:24:12 +02:00
1b7625581d
Kernel: Add basic concept of Processes
...
We now create Shell as a process that has its own threads
2023-03-16 12:17:04 +02:00
f4b614aa61
LibC: Add some new functions
2022-12-13 00:51:57 +02:00