e431e90b20
Kernel/LibC: Implement all chown family function with fchownat
2024-09-17 18:35:01 +03:00
4aa466b948
Kernel/LibC: Implement all chmod family functions using fchmodat
2024-09-17 17:19:26 +03:00
04ae53b6df
Shell: Add back accidentally deleted cd and time builtins
2024-09-17 16:38:45 +03:00
3666525d24
Kernel/LibC: Implement readlink in terms of readlinkat
2024-09-17 16:38:15 +03:00
f1a4bbce53
Kernel/LibC: Implement all stat family functions with fstatat
...
This patch gets rid of 2 unnecessary syscalls!
2024-09-17 16:38:01 +03:00
708a720d9d
Kernel: Remove SYS_OPEN
...
This can be done with SYS_OPENAT with fd set to AT_FDCWD
2024-09-17 16:16:47 +03:00
7177da7d62
LibC: Implement dummy get_rusage
...
One port seems to use this function. This dummy just reports no used CPU
time for current process nor children
2024-09-17 15:59:22 +03:00
d88ee5c9ee
Kernel/LibC: Implement creat with open
...
This allows getting rid of unnecessary SYS_CREATE. Directory creation
still has its own syscall, but I could combine it with SYS_OPEN also.
2024-09-17 15:55:53 +03:00
a084f83f4c
Kernel: Rework kernel-side ELF loading
...
ELFs are now loaded as MemoryRegions so they don't need special handling
anywhere. This also allows file backed COW optimizations to work. This
was not the case before.
This patch removes now obsolete LoadableELF and unused ELF files from
LibElf.
2024-09-15 23:57:34 +03:00
1a24d1839f
LibInput: KeyEvent to ansi string now handles delete key
...
This allows Terminal emulator to also handle delete key.
The value of `\0x7F` may be wrong as qemu's serial console seems to be
sending `\e[3~`
2024-09-15 03:13:21 +03:00
c3040a04a3
Terminal: Optimize printing a lot
...
Terminal used to run `yes` at around 400 lines per second
This patch pumps that to over 100'000 lines per second!
There are 2 optimizations done:
1. only invalidate window once after rendering is done
2. if printing more than `rows()` newlines skip prior data
2024-09-15 03:12:26 +03:00
d68ad893f0
Kernel/Shell: Add support for delete key
2024-09-14 22:45:48 +03:00
4ca147699d
Shell: use printf and putchar instead of fprintf and fputc
2024-09-14 22:37:09 +03:00
abed41b8fa
Shell: Remove builtin tests
...
Test should be programs in /bin instead
2024-09-14 22:28:33 +03:00
2604a55f80
Shell: Make ctrl+c start a new command
2024-09-14 22:27:32 +03:00
7f25ddc229
userspace: Add missing alpha channels
2024-09-12 20:53:45 +03:00
97da386ed6
WindowServer: Make focused window bounce by pressing F2
...
This was an awesome idea by [@Dcraftbg](https://github.com/Dcraftbg )
2024-09-12 20:09:23 +03:00
c706829a91
WindowServer: Make corner-radius a variable in config file!
2024-09-12 20:07:30 +03:00
6cd246a38e
WindowServer: Add support for rounded corners and transparency
2024-09-12 19:35:44 +03:00
43e88c0ae0
Terminal: Add alpha channel to colors
...
This doesn't do anything yet, but will when I add transparency support
for WindowServer
2024-09-12 19:34:25 +03:00
bf01b935bd
WindowServer: Start Terminal with Super+Enter
...
this allows doing something in GUI after Terminal is closed
also WindowServer is now stopped with Super+Shift+E
2024-09-11 22:18:08 +03:00
98c011e6a6
WindowServer: Open all fds as CLOEXEC
...
This will allow forking the window server cleanly :D
2024-09-11 22:17:31 +03:00
86dcb5c471
init: Don't leak pwent fd to child processes
2024-09-11 22:11:05 +03:00
467ac6c365
Kernel/LibC: Implement SOCK_CLOEXEC and SOCK_NONBLOCK
...
This removes the need for fcntl after creating a socket :)
2024-09-11 21:59:11 +03:00
4006a04817
DynamicLoader: Don't do file backed mapping over file bounds
2024-09-11 19:30:35 +03:00
4189a1c729
LibC: Make _init and _fini weak symbols
...
These seem to be missing sometimes when making shared executables
2024-09-11 14:39:07 +03:00
a07cbabcb3
LibC: Define function sizes for setjmp and longjmp
...
dynamic linking was complaining about these not existing
2024-09-10 16:21:20 +03:00
19d16620a6
DynamicLoader: Don't do file backed mapping for filesz == 0
2024-09-05 14:50:05 +03:00
e8bcebfb8e
DynamicLoader: Use file backed mmap when possible
2024-09-05 13:59:39 +03:00
6affef76b1
test-shared: Add more shared tests
2024-09-05 12:59:48 +03:00
32ba4d07e2
Userspace: Remove unnecessary mov instruction from crt0
2024-09-05 12:59:05 +03:00
ddaaf89c87
BuildSystem: Make default libc a shared library
2024-09-05 12:58:35 +03:00
9aed8dbe6b
Toolchain: Build crtbeginS.o crtendS.o and shared libgcc
2024-09-05 12:58:21 +03:00
aa7e92b275
Userspace: Write a dynamic loader
...
This allows running executing dynamically linked executables!
2024-09-05 12:58:21 +03:00
f30947336a
BuildSystem: Cleanup cmake files
2024-09-05 12:52:25 +03:00
0bb44d7b75
LibC: Fix errno to work with shared libraries
2024-09-04 21:16:04 +03:00
35743cc8e6
LibC: Compile both static and shared version of LibC
...
libc target is now set as an alias for libc-static
2024-09-02 21:28:02 +03:00
5f92807fdd
userspace: Allow building without SSE
...
I had added changes that had broken compilation without sse support
2024-09-02 21:25:00 +03:00
700c3444f5
LibELF: Add more values and macros for interpreting fields
2024-09-02 20:40:38 +03:00
2ae2ede0b2
LibELF: Add value definitions for DT_
2024-08-30 15:35:01 +03:00
8da2f12ba6
Kernel: Only load program headers of interpreter if its present
...
I was loading program headers of both executable and interpreter but
that is incorrect. The interpreter will itself load the program headers
of the executable.
2024-08-28 21:19:37 +03:00
50ab391133
test-globals: print something when calling main
...
This shows that constructors and destructors are called in correct order
2024-08-28 17:09:07 +03:00
991647bc8f
Userspace: Add shared library test
...
I will use this while testing my dynamic loader
2024-08-28 17:08:37 +03:00
57300687ff
LibC: Cleanup and fix missing LibC headers
2024-08-28 17:07:58 +03:00
d559339f5f
LibC: Compile shared libc as well as static
2024-08-28 17:07:15 +03:00
2bf65ef512
Kernel: Invoke ELF interpreter instead if it is specified
2024-08-28 17:06:32 +03:00
5121d0d934
Kernel: Allow loading PIEs
...
This is initial work towards implementing dynamic loader and shared
library support.
2024-08-27 17:32:22 +03:00
2c520391eb
Kernel/LibC: Add support for init_array and fini_array
2024-08-27 00:47:03 +03:00
991ae4383a
Kernel/LibC: Implement fchmod
2024-08-25 15:07:42 +03:00
bec3e8654f
Shell: Implement escaping quotes in quoted strings
2024-08-24 17:13:50 +03:00