Bananymous
c706829a91
WindowServer: Make corner-radius a variable in config file!
2024-09-12 20:07:30 +03:00
Bananymous
6cd246a38e
WindowServer: Add support for rounded corners and transparency
2024-09-12 19:35:44 +03:00
Bananymous
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
Bananymous
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
Bananymous
98c011e6a6
WindowServer: Open all fds as CLOEXEC
...
This will allow forking the window server cleanly :D
2024-09-11 22:17:31 +03:00
Bananymous
86dcb5c471
init: Don't leak pwent fd to child processes
2024-09-11 22:11:05 +03:00
Bananymous
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
Bananymous
c77ad5fb34
Kernel: Implement copy-on-write memory for file backed mmaps
2024-09-11 19:33:50 +03:00
Bananymous
4006a04817
DynamicLoader: Don't do file backed mapping over file bounds
2024-09-11 19:30:35 +03:00
Bananymous
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
Bananymous
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
Bananymous
64a3893f6f
Kernel: Add command line option to disable AML parsing
...
This can be handy if my broken AML parser crashes or hangs while parsing
AML :D
2024-09-10 16:20:24 +03:00
Bananymous
eabe759ebf
Kernel: Don't require APs that are not started to start :D
2024-09-10 16:19:43 +03:00
Bananymous
a4838386e6
Kernel: Remove unnecessary branch from uncanonicalizing addresses
2024-09-10 16:19:16 +03:00
Bananymous
c65613901f
Kernel: Fix AML aliases and package elements
2024-09-10 16:18:42 +03:00
Bananymous
19d16620a6
DynamicLoader: Don't do file backed mapping for filesz == 0
2024-09-05 14:50:05 +03:00
Bananymous
4e15b9cdfa
Ports: Add explicit -libgcc-shared for ports on 32 bit
2024-09-05 14:49:23 +03:00
Bananymous
de35cec2e1
Kernel: Allow private file mappings past file end
...
This is just to make memory mapping ELF files easier :D
2024-09-05 14:48:42 +03:00
Bananymous
e8bcebfb8e
DynamicLoader: Use file backed mmap when possible
2024-09-05 13:59:39 +03:00
Bananymous
2f241e1b61
Kernel: Implement FileBackedRegion::clone
2024-09-05 13:59:09 +03:00
Bananymous
6affef76b1
test-shared: Add more shared tests
2024-09-05 12:59:48 +03:00
Bananymous
32ba4d07e2
Userspace: Remove unnecessary mov instruction from crt0
2024-09-05 12:59:05 +03:00
Bananymous
ddaaf89c87
BuildSystem: Make default libc a shared library
2024-09-05 12:58:35 +03:00
Bananymous
9aed8dbe6b
Toolchain: Build crtbeginS.o crtendS.o and shared libgcc
2024-09-05 12:58:21 +03:00
Bananymous
aa7e92b275
Userspace: Write a dynamic loader
...
This allows running executing dynamically linked executables!
2024-09-05 12:58:21 +03:00
Bananymous
f30947336a
BuildSystem: Cleanup cmake files
2024-09-05 12:52:25 +03:00
Bananymous
0bb44d7b75
LibC: Fix errno to work with shared libraries
2024-09-04 21:16:04 +03:00
Bananymous
1138ec77ca
Kernel: Fix MemoryBackedRegion cloning for non page aligned size
2024-09-04 21:14:26 +03:00
Bananymous
c4dadd27ac
BAN: Fix refenrece -> reference typo
2024-09-03 16:39:21 +03:00
Bananymous
04c715d314
BuildSystem: Build all libraries in root build directory
...
I could not figure out how to use cmake's rpath to build libraries with
DT_NEEDED only containing the library name, not a relative path.
2024-09-02 21:31:08 +03:00
Bananymous
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
Bananymous
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
Bananymous
700c3444f5
LibELF: Add more values and macros for interpreting fields
2024-09-02 20:40:38 +03:00
Bananymous
ddf1babfe1
Kernel: Cleanup constructor calls
2024-08-31 02:23:08 +03:00
Bananymous
2ae2ede0b2
LibELF: Add value definitions for DT_
2024-08-30 15:35:01 +03:00
Bananymous
ef5af384e7
Kernel: Print userspace invalid pointer access address
2024-08-30 15:34:37 +03:00
Bananymous
a134d16070
Kernel: Fix MemoryRegion test for contains_fully
2024-08-30 15:33:58 +03:00
Bananymous
827eec6af0
Kernel: Make .rodata read-only and add -orphan-handling=error
...
I don't really know why .rodata was marked writable :D
2024-08-30 15:33:02 +03:00
Bananymous
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
Bananymous
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
Bananymous
991647bc8f
Userspace: Add shared library test
...
I will use this while testing my dynamic loader
2024-08-28 17:08:37 +03:00
Bananymous
57300687ff
LibC: Cleanup and fix missing LibC headers
2024-08-28 17:07:58 +03:00
Bananymous
d559339f5f
LibC: Compile shared libc as well as static
2024-08-28 17:07:15 +03:00
Bananymous
2bf65ef512
Kernel: Invoke ELF interpreter instead if it is specified
2024-08-28 17:06:32 +03:00
Bananymous
d20752c318
Kernel: Make OpenFileDescritorSet::open take rvalue
...
This gets rid of some implicit allocations from copy constructors
2024-08-28 16:36:10 +03:00
Bananymous
5f66ef34dd
Kernel: map userspace arguments after the entry point
...
This allows cleaner memory layout for processes that are not loaded to
default location
2024-08-27 22:46:08 +03:00
Bananymous
da0b4cd40e
Kernel: Allow MAP_FIXED in mmap
2024-08-27 22:45:49 +03:00
Bananymous
68f9dc1f8a
Toolchain: Add support for building shared libraries
2024-08-27 17:36:09 +03:00
Bananymous
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
Bananymous
2c520391eb
Kernel/LibC: Add support for init_array and fini_array
2024-08-27 00:47:03 +03:00
Bananymous
7c4b9218f2
Kernel: VirtualTTY now resets ansi state before printing anything
2024-08-25 17:56:06 +03:00
Bananymous
72f8138ca1
Kernel: Disable scheduler load balancing until I get it fixed
...
Scheduler keeps crashing all the time when running on multiple cores.
This patch disabled the load balancer, which seems to get rid of most
scheduler crashes.
2024-08-25 15:37:17 +03:00
Bananymous
991ae4383a
Kernel/LibC: Implement fchmod
2024-08-25 15:07:42 +03:00
Bananymous
2ce7205c80
Kernel: Add command line option to disable debug printing
...
The whole system can crash when debug output and tty output are done at
the same time. This patch is just a hack to prevent the crash :D
2024-08-25 15:02:15 +03:00
Bananymous
bec3e8654f
Shell: Implement escaping quotes in quoted strings
2024-08-24 17:13:50 +03:00
Bananymous
14fdcb892d
Ports: Make curl port use openssl
...
Curl now works with https!
2024-08-22 15:10:41 +03:00
Bananymous
d6d062841d
Ports: Add openssl port
2024-08-22 15:10:41 +03:00
Bananymous
06d0985bba
Ports: Add zlib port
2024-08-22 15:10:41 +03:00
Bananymous
9ea969be1f
Ports: Add port that downloads and install cacert to system
2024-08-22 15:10:41 +03:00
Bananymous
500f774b7f
LibC: Add a lot of stub implementations for different libc functions
...
some ports want to link against these, but they are not ever called
based on simple testing
This patch adds stubs for
- openlog
- syslog
- getrusage
- mlock
- mprotect
- getpeername
- shutdown
- tzset
- mktime
2024-08-22 15:10:41 +03:00
Bananymous
ca8832c0e1
LibC: Implement getaddrinfo and freeaddrinfo, add stub for getnameinfo
2024-08-22 15:10:41 +03:00
Bananymous
1cbba113fd
LibC: Add and cleanup some networking structures and definitions
2024-08-22 15:10:41 +03:00
Bananymous
45b4b33a3d
LibC: Add definitions for some integer sizes to limits.h
2024-08-22 15:10:41 +03:00
Bananymous
c453a8e2dc
LibC: Implement poll() using select
2024-08-22 15:10:41 +03:00
Bananymous
e59772a58d
General: Cleanup build scripts
2024-08-22 15:10:41 +03:00
Bananymous
fb35f06cf5
Kernel: Add better support for bootloaders loading the kernel
...
Before I assumed that bootloaders loaded the kernel at physical address
0, but this patch kinda allows loading to different addresses. This
still doesn't fully work as kernel bootstrap paging relies on kernel
being loaded at 0
2024-08-22 14:48:21 +03:00
Bananymous
abc788c756
Kernel: Improve output message when dumping all syscalls
2024-08-22 14:48:21 +03:00
Bananymous
63b616dc2e
Kernel: Hack non-blocking support for sockets
...
This is not thread safe and can still block if two programs refering to
the same socket try to read data at the same time
2024-08-22 14:48:14 +03:00
Bananymous
72f3fe0b12
LibC: Add empty files sys/param.h and sys/file.h
...
For some reason some ports include these files even when they detect
that they are not available
2024-08-22 14:47:59 +03:00
Bananymous
cba12efeb1
Kernel: Ignore optional_actions in SYS_TCSETATTR
...
Currently all terminals are syncronous, so the actions don't do anything
2024-08-22 14:47:54 +03:00
Bananymous
37cd4ed504
Kernel: Add support for CSI @, b, d to VirtualTerminal
2024-08-22 14:04:45 +03:00
Bananymous
869bba4dad
Kernel: Add check for panic in timer interrupt handler
...
Previously processors would not get notified about kernel panic if they
were idling
2024-08-22 14:03:03 +03:00
Bananymous
23194d1f53
Kernel: Implement basic random device to /dev/random
2024-08-22 14:02:26 +03:00
Bananymous
969563c06a
Kernel: Don't load AP init code to 0xF000, but relocate it later
...
This cleans up the kernel executable as bootloaders don't have to
load AP init code straight to 0xF000, but it will be moved there once
kernel is doing the AP initialization.
2024-08-21 13:37:50 +03:00
Bananymous
066e8e1cc2
Kernel: Remove unnecessary debug logging from VFS initialization
2024-08-18 20:51:10 +03:00
Bananymous
5cd7b40165
Kernel: Make BananBootloader info struct header compatible with C
2024-08-18 20:51:10 +03:00
Bananymous
c7b134ba4b
Kernel: Fix NVMe controller namespace numbering
...
namespace numbers were incrementing globally instead of per controller.
This led to two single namespace controllers creating nvme0n1 and
nvme1n2
2024-08-18 20:51:10 +03:00
Bananymous
ff62c262fe
Kernel: Fix PS/2 scancode set 2 keycodes for the bottom row keys
2024-08-18 20:51:10 +03:00
Bananymous
42e2c15e0c
Kernel: Add ps2=<scancode set> command line argument
...
This allows forcing specific scancode set on broken PS/2 emulations
2024-08-18 20:51:10 +03:00
Bananymous
40c6989374
Kernel: Implement AML ObjectTypeOp
2024-08-18 20:51:10 +03:00
Bananymous
71dc373610
Kernel: "Fix" AML _OSI string to return true for windows strings
...
This is the way its supposed to be done as other code paths are
untested...
2024-08-18 20:51:10 +03:00
Bananymous
0fa16cf982
Kernel: Fix and add some AML to_underlying functions
2024-08-18 20:44:51 +03:00
Bananymous
8902032b42
BuildSystem: Cleanup kernel cmake file
2024-08-18 20:44:12 +03:00
Bananymous
368f5e9799
Kernel: Add command lineoption nousb that will disable usb controller
2024-08-16 22:09:24 +03:00
Bananymous
46b34817d2
snake: Remove random goto statements when regenerating apple's position
2024-08-16 17:36:37 +03:00
Bananymous
b1fe24bb57
Kernel: Hack AML integers to work better
...
Something is trying to store into a constant integers. Just by copying
not returning any integers as constants fixes it xD
2024-08-16 13:04:52 +03:00
Bananymous
490a28ee7a
Kernel/AML: General cleanup and compliance improvements
2024-08-15 23:14:13 +03:00
Bananymous
75884ca6b8
Kernel/AML: Allow calling method through named objects
2024-08-15 23:13:32 +03:00
Bananymous
d729d7f570
Kernel: Implement AML storing to Buffer
2024-08-15 23:12:52 +03:00
Bananymous
6408bb2efa
Kernel: Add AML API for getting underlying value of nodes
2024-08-15 23:11:59 +03:00
Bananymous
d8dabab4fb
Kernel: Implement AML CopyObjectOp
2024-08-15 20:55:55 +03:00
Bananymous
4dc107f77a
Kernel: Fix AML Register/Reference accesses
2024-08-15 20:55:18 +03:00
Bananymous
eaf06d239c
Kernel: Cleanup and fix AML Method calls
2024-08-15 20:54:55 +03:00
Bananymous
d9b3a4bf77
Kernel: Add more conversions for AML Integer, Register, String
2024-08-15 20:51:04 +03:00
Bananymous
cf970d5914
Kernel: Add better conversion for AML Alias, Name and Reference
2024-08-15 20:48:35 +03:00
Bananymous
1cfe3dd4da
Kernel: Implement AML BreakOp and ContinueOp
2024-08-15 19:08:00 +03:00
Bananymous
51d1e47bfe
Kernel: Fix AML CreateFieldOp to take bit index instead of byte index
2024-08-15 19:05:58 +03:00
Bananymous
e0a447bfaf
Kernel: Add _GL to ACPI root namespace
2024-08-15 02:28:22 +03:00
Bananymous
3f5ee6f414
Kernel: Rewrite the AML conversion API
...
This doesn't currently make the interpreter any better, but it will make
further implementation easier to be spec (or hardware...) compliant
2024-08-15 02:25:45 +03:00
Bananymous
44d5c8c4b4
Kernel: Implement AML To{Buffer,Integer,String}Op
2024-08-14 20:28:32 +03:00