a5b4cee298
Kernel: Load USTAR from a boot module if loading root partition fails
...
This allows banan-os to boot on hardware where we don't have working
storage driver or the storage driver fails (pretty common with my usb
mass storage drivers...)
2025-07-02 00:17:42 +03:00
17f1ac10e3
Kernel: Don't ignore modules passed with multiboot2
2025-07-02 00:17:42 +03:00
c67198032f
Kernel: Rewrite TmpFS block and inode allocation
...
This makes creating files and appending to then A LOT faster. Some code
I tested took 40 seconds in the previous implementation and less than a
second on the new one!
This code is really sketcy, I hope I'll never have to touch it again :)
2025-07-02 00:17:42 +03:00
107b092982
Kernel: Allow arbitrary sized tmpfs files
...
The 2 block limit started to get annoying :D
2025-07-02 00:17:42 +03:00
bac06e45a4
Kernel: Fix TmpSymlinkInode target getting/setting
2025-07-02 00:17:42 +03:00
0e8a68831c
Kernel: Fix TmpInode chmod not preserving file type
2025-07-02 00:17:42 +03:00
5912abd541
Kernel: Add error reporting for readonly mounted filesystems
2025-07-02 00:17:42 +03:00
13d33995cb
Kernel: Make sure PageTable::fast_page gets passed page aligned addr
2025-06-30 01:48:47 +03:00
c8c05f62b4
Kernel: Remove unused FileSystem::dev
2025-06-29 00:29:03 +03:00
944b045885
Toolchain: Set CMAKE_STAGING_PREFIX in toolchain file
2025-06-28 23:34:11 +03:00
19897ffa26
userspace: Compile test utility :D
2025-06-28 22:40:00 +03:00
42a10b21c7
userspace: Implement true and false utilities
2025-06-28 22:39:19 +03:00
5df0e25c1f
userspace: Implement chown utility
2025-06-28 21:32:59 +03:00
ebf2b16d09
Kernel: Implement chown to ext2 and tmpfs
2025-06-28 21:28:54 +03:00
f2eaab6e43
ports: Add tuxracer port
...
THIS IS SUPER SLOW
2025-06-28 20:54:45 +03:00
a847823411
ports: Add tcl port
2025-06-28 20:54:45 +03:00
fe9a8b542a
ports: Add bochs port
...
THIS IS SUPER SLOW
2025-06-28 20:54:45 +03:00
cd101b6844
ports: Add sdl12-compat port
2025-06-28 20:54:45 +03:00
69229102c4
ports: Add SDL2 port
2025-06-28 20:52:33 +03:00
4bc3630d19
ports: Add glu port
2025-06-28 20:52:20 +03:00
ab00686ac9
ports: Add mesa port
2025-06-28 20:51:29 +03:00
c3004a038f
ports: Add bash port
2025-06-28 20:48:13 +03:00
9cf9d8847b
ports: Add lua port
2025-06-28 20:48:13 +03:00
0a3c10566b
ports: vim update to 9.1
2025-06-28 20:48:13 +03:00
c94243e107
ports: Update some ports to new syntax
2025-06-28 20:48:13 +03:00
505388b9fa
ports: Add pre_install and post_install to install.sh
2025-06-28 20:25:35 +03:00
7314cf708c
Kernel: Only restart certain syscalls with SA_RESTART
...
SA_RESTART is not supposted to restart every function.
2025-06-28 20:25:35 +03:00
3e6a4f2b16
LibC: Add getgroups stub
2025-06-28 20:25:35 +03:00
c7c3dd7662
init/ports: Fix environment variables in init/ncurses
...
init no longer sets NCURSES_NO_UTF8_ACS
ncurses no longer sets TERM
2025-06-28 20:25:35 +03:00
e4f025edd6
LibC: Implement deprecated bcmp, bcopy, bzero
2025-06-28 20:25:35 +03:00
96f3efbf86
LibC: Fix enviroment variable allocation
2025-06-28 20:25:35 +03:00
2b2130ff42
toolchain/ports: Use strip install targets
...
I just found that these exist. This is much cleaner than manually
stripping the executables!
2025-06-28 20:25:35 +03:00
463ce05da0
ports: Allow specifying custom make targets
2025-06-28 20:25:35 +03:00
fa4095ba95
ports: Add pre_configure to build system
...
We have post_configure, so why not this :)
2025-06-28 20:25:35 +03:00
db571b4859
Kernel: Allow relockign mutex even when holding a spinlock
...
Only reason mutex locking is now allowed with spinlocks is to prevent
yield.
Also try_lock can be now safely used while holding a spinlock
2025-06-28 19:40:54 +03:00
e8491b34b8
Kernel/LibC: Rework TIOC{G,S}WINSZ more linux like
...
Userspace can freely set terminal size, kernel just updates it when for
example new font is loaded. Also SIGWINCH is now sent by kernel instead
of userspace.
2025-06-28 19:40:54 +03:00
521457eb92
DynamicLoader: Add support for calling destructors
...
After all libraries are initialized, their destructors are registered
using atexit
2025-06-28 16:55:13 +03:00
f26a445ce6
LibC: Make malloc actually allign to s_malloc_default_align boundary
2025-06-28 16:55:13 +03:00
f73bb242f3
Kernel: Save fpu state and flags in signal handler
...
This was causing some weird crashes :D
2025-06-28 16:55:13 +03:00
9e895e5286
Kernel: Use fxsave64 and fxrstor64 on 64 bit target
2025-06-28 16:55:13 +03:00
5b0e5512a8
Kernel: Don't block in send until full message is sent
...
Only block until some data was sent. This allows select + send to be
actually non blocking if used correctly.
Also fixes a bug with non blocking sockets that could not send the full
message is one try.
2025-06-28 16:55:13 +03:00
850b3284ac
Terminal: Fix screen clearing when scrolling
2025-06-28 16:55:13 +03:00
05a727979a
Kernel: Make sse initialization thread safe
2025-06-28 16:55:13 +03:00
d68c88c3f9
LibC: Implement rewinddir
2025-06-28 16:55:13 +03:00
5f07d53034
WindowServer: Send mod key to clients
...
Also roll back accidental mod key update from super->alt
2025-06-28 16:55:13 +03:00
fe62ce4bae
Kernel: Fix spurious wakeup from SYS_SLEEP
2025-06-28 16:55:13 +03:00
fb09aa4d06
LibInput: Correctly resize keyboard layout maps 0xFF->0x100
2025-06-28 16:55:13 +03:00
4d080b30ab
LibInput: Pass raw scancode in KeyEvent
2025-06-28 16:55:13 +03:00
2d314e72fe
LibGUI: Implement basic message box
2025-06-28 16:55:13 +03:00
cf07b747fe
LibGUI/WindowServer: Implement per-window custom cursors
2025-06-28 16:55:13 +03:00