c084ce8b01
Kernel/LibC: Implement readlink and readlinkat
2023-11-11 23:16:52 +02:00
7c6832cee4
LibC: implement and call __cxa_finalize() on exit()
...
This allows global destructors to be actually called
2023-10-30 11:10:08 +02:00
87ff38664a
Kernel/LibC: Add syscall and wrapper for unlink
2023-10-25 21:45:04 +03:00
6ee4d10651
Kernel/LibC/Userspace: Implement mkdir and creat
...
Touch now uses creat insteadd of open with O_CREAT flag
2023-10-25 21:07:26 +03:00
627b8cc140
Kernel/LibC: implement chmod syscall + libc wrapper
2023-10-25 02:35:37 +03:00
5ee3506474
Kernel: Add physical memory info to /proc/{pid}/meminfo
2023-09-30 22:11:45 +03:00
785de5f9b9
Kernel: /proc/{pid}/meminfo now reports per process memory usage
2023-09-30 21:20:18 +03:00
9f0797047f
Kernel/LibC: dirent now contains file type
2023-09-30 20:46:57 +03:00
6eda65eea6
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
1abf787596
LibC: Add errno for unknown error
2023-09-28 12:06:17 +03:00
cb76f1ea75
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
a69e5fb288
LibC: add syncsync() to unistd.h
...
This is my own WELL NAMED (:D) function that takes a paramemeter
to make the sync operation synchronous.
2023-09-27 00:35:36 +03:00
3ba15b41a3
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
6bb2c80bdd
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
af4af1cae9
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
63dc2b6aa6
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
921d95d18f
All: Clear lines with only whitspace in them
2023-09-10 00:31:42 +03:00
39a5c52088
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
9901f95d78
Kernel: Add basic nanosleep, only millisecond percision
2023-09-04 12:59:50 +03:00
6f002c926a
Kernel: add basic fcntl() with couple of commands and no validation
2023-09-04 12:57:09 +03:00
7aaea786c2
LibC: Don't undef needed values in inttypes.h
2023-08-24 15:48:14 +03:00
60a2185ee6
Kernel/LibC: implement proper getpgid and setpgid
2023-08-22 14:53:12 +03:00
c9243f0d1e
Kernel/LibC: Add {get,set}pgrp()
2023-08-22 11:36:33 +03:00
79f3aa5419
Kernel/LibC: add dup() syscall and function
2023-08-17 12:03:29 +03:00
3a36c30e80
LibC: math.h defines is*() macros and uses builtins for values
2023-08-16 10:41:55 +03:00
9cb50cba33
LibC: Fix S_IF* macros and add macros for access/type masks
2023-08-11 10:30:50 +03:00
e715d52f80
LibC: fix typo
2023-08-02 22:10:12 +03:00
b4eddf04c4
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
f6ee4b3496
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
2dce0a0415
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
d560137ae6
Kernel/LibC: add SYS_SIGNAL/signal()
2023-07-21 20:08:13 +03:00
c12f4fb40f
Kernel: Make signals more POSIX
2023-07-21 20:01:12 +03:00
10169d773d
Kernel/LibC: Add SYS_KILL/kill()
2023-07-21 19:27:38 +03:00
c2cf98e32f
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
51e4b11890
LibC: add NAME_MAX to limits.h
...
This is defined to 255 which is _XOPEN_NAME_MAX, smallest value
for XOPEN compliance
2023-07-10 11:48:11 +03:00
a337f414fc
LibC: limits.h now defined OPEN_MAX
2023-07-07 23:08:49 +03:00
07fec6e211
Kernel/LibC: add basic dup2
2023-07-06 23:17:54 +03:00
4cd72992c8
Kernel/LibC: Add basic pipe() syscall and command
...
You can now create pipes :)
2023-07-06 22:16:26 +03:00
1fb305fa45
Kernel/LibC: add clock_gettime() for CLOCK_MONOTONIC
...
This gets the number of milliseconds since boot
2023-07-06 00:38:29 +03:00
f09b82c4b5
Kernel/LibC: add SYS_{SET,GET}_PWD and chdir, getpwd
2023-06-12 02:02:52 +03:00
11b68f6a53
Kernel: Add SYS_GET_{,E}{UID,GID}
2023-06-11 22:37:00 +03:00
3fe67e4882
Kernel: Add syscalls for set{,e,re}{uid,gid}
2023-06-11 22:37:00 +03:00
9288537949
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
297141f321
LibC: add strchrnul()
...
this is a gnu libc extension
2023-06-11 20:18:03 +03:00
64890bb640
Kernel: Add SYS_OPENAT
2023-06-11 03:29:22 +03:00
aa86125f2b
Kernel: Implement SYS_FSTAT
2023-06-11 03:29:22 +03:00
c423164066
LibC: Implement basic dirent functionality
...
We don't currently support seeking
2023-06-11 03:29:22 +03:00
eae6119039
Kernel: Add syscall for reading directory entries
2023-06-11 00:18:08 +03:00
30f81e1696
LibC: add missing O_EXEC and O_SEARCH
2023-06-11 00:17:18 +03:00
24993f6020
LibC: implement setenv, unsetenv, putenv
2023-06-05 22:51:02 +03:00