Commit Graph

3295 Commits

Author SHA1 Message Date
Bananymous c72b351bba LibC: Implement glob{,free} 2025-11-23 05:33:44 +02:00
Bananymous 1f9b296ae7 cp: Add -r/--recursive flag 2025-11-23 02:25:05 +02:00
Bananymous e3e2e7b4df userspace: Implement mv utility 2025-11-23 02:24:52 +02:00
Bananymous 4ec8f4a4bf Kernel/LibC: Implement rename{,at} 2025-11-22 23:55:10 +02:00
Bananymous 05d59a05df Kernel: Remove obsolete kprint
This hasn't been in use in 3 years :)
2025-11-22 06:21:50 +02:00
Bananymous 11ccbe6506 ports/SDL2: Add clipboard support 2025-11-22 01:24:06 +02:00
Bananymous 673711a246 ports/mesa: Require llvm
I dont't really even want to suppot softpipe as that is so slow
2025-11-22 00:40:14 +02:00
Bananymous fff5139d80 Kernel: Add /proc/<n>/cwd
Also update /proc/<n>/* permissions to match what linux does :D
2025-11-18 05:40:36 +02:00
Bananymous 812e70c626 ports: Add zsh port 2025-11-18 05:40:36 +02:00
Bananymous db7ffcf9d5 Kernel/Terminal: Add support for bracketed paste mode
This gets rid of annoying warnings when running some programs like bash
2025-11-18 05:40:36 +02:00
Bananymous 8f6cb9c057 Terminal: Add selection and clipboard support
text can now be copied with ctrl+shift+c and pasted with ctrl+shift+v
2025-11-18 05:40:36 +02:00
Bananymous 291f298d19 userspace: Implement LibClipboard and ClipboardServer
programs can now connect to the clipboard server using libclipboard and
get and set the clipboard of the current user
2025-11-18 05:40:36 +02:00
Bananymous d60f12d3b8 Kernel: Add support for SCM_CREDENTIALS and fix recvmsg
recvmsg was broken when receiving into more than a single iovec
2025-11-18 05:40:36 +02:00
Bananymous b8a2573bb4 userspace: Implement ImageViewer utility
This supports viewing images and doing basic zooming and panning
2025-11-17 20:58:12 +02:00
Bananymous 7ce8e610f5 stat: Fix handling of symlinks 2025-11-17 05:26:07 +02:00
Bananymous 839b9c8f07 Kernel: Check parent's sticky bit in unlink 2025-11-17 05:26:07 +02:00
Bananymous db20801521 Shell: Add exec builtin 2025-11-17 05:26:07 +02:00
Bananymous 160a9278c9 LibC: Fix RTLD_* definitions 2025-11-17 05:26:07 +02:00
Bananymous ee507de154 LibC: Implement posix regex
This is an almost complete implementation, it does not support
alternations or collating elements and it is restricted to the ASCII
character set
2025-11-17 05:26:07 +02:00
Bananymous dc0fa49de2 ports/tuxracer: Add sound support and fix compiling 2025-11-17 05:26:07 +02:00
Bananymous b678541427 ports: Add SDL_mixer port 2025-11-17 05:26:07 +02:00
Bananymous 6c4cd0d8cb ports: Add libmikmod port 2025-11-17 05:26:07 +02:00
Bananymous c096d3cd42 ports/sdl12-compat: Define that banan-os has alloca.h 2025-11-17 05:26:07 +02:00
Bananymous dcdab4df21 ports/sdl12-compat: Remove unnecessary patch
This is not needed as our SDL2 library is in the expected form
2025-11-17 05:26:07 +02:00
Bananymous 9803209ba1 WindowServer: Make clients nonblock
Also dont allow freezed windows to "steal" focus and lock up the window
server :D
2025-11-17 05:26:07 +02:00
Bananymous f166cb09ec Kernel: Fail xHCI initialization if page size != 4096
Also zero out scratchapd buffers as the spec says
2025-11-17 05:26:07 +02:00
Bananymous 2dd8b76289 BuildSystem: Automatically delete libtool files
Half of the ports had a manual post_install step to delete libtool files
this is now done automatically and there is no need for it!

Libtool files have to be deleted as libtool doesn't work while
cross-compiling (at least out of the box)
2025-11-17 05:26:07 +02:00
Bananymous 2bf7c67767 LibC: Add backtrace signal handlers for SIG{FPE,ILL,BUS,SEGV}
This allows programs to dump better backtraces on crashes compared to
what kernel can as libc can resolve symbols and libraries' dynamic bases
2025-11-17 05:26:07 +02:00
Bananymous dd636ffcb2 Kernel: Add support for SA_SIGINFO 2025-11-17 05:26:07 +02:00
Bananymous a44c45ff9e LibC: Cleanup signal.h
Make sa_handler and sa_sigaction be part of an union

Add definitions of SIGIO TRAP_BRKPT TRAP_TRACE
2025-11-17 05:26:07 +02:00
Bananymous dc2a455395 Kernel: Optimize processes' memory management
Memory regions are now stored in a sorted array. This allows O(nlogn)
lookup for address validation instead of the old linear lookup.

Now inserting new regions is also O(nlogn) instead of the old constant
time, but lookups are **much** more frequent
2025-11-17 05:26:07 +02:00
Bananymous c700d9f714 Kernel: Implement connect for UDP socket 2025-11-17 05:26:07 +02:00
Bananymous 59cfc339b0 Kernel: Ignore MSG_NOSIGNAL and invalid flags 2025-11-17 05:26:07 +02:00
Bananymous e06c07ca89 ports: Update binutils 2.44->2.45
Now we don't have to keep patches for both versions around :D
2025-11-17 05:26:07 +02:00
Bananymous 6facd54a7e LibC: Add ru_maxrss to struct rusage
This is not required by posix but some ports use it
2025-11-17 05:26:07 +02:00
Bananymous 6f8d850726 BuildSystem: Cleanup port building script
All dependencies are now installed only ones. If a port depends on for
examle zlib and one of its other dependencies depends on zlib, zlib will
now get installe only once.

Accept .tgz archives as the main download file
2025-11-17 05:26:07 +02:00
Bananymous f3beee9874 Kernel: Cleanup userspace pointer validation 2025-11-17 02:33:00 +02:00
Bananymous 35e063bdaf Kernel: Dump r8-r15 on x86_64 exceptions 2025-11-17 02:33:00 +02:00
Bananymous 09175d1799 Kernel: Fix 32 bit target
Rewrite some assembly and add some required casts
2025-11-17 02:33:00 +02:00
Bananymous 46f9a9053f DynamicLoader: Use canonical path for the main executable 2025-11-13 04:20:53 +02:00
Bananymous bb86520094 Kernel: Set message flags in UDP and TCP recvmsg 2025-11-13 04:20:53 +02:00
Bananymous c1e2c660bf LibC: Define caddr_t
This is used by some ports
2025-11-13 04:20:53 +02:00
Bananymous 89c0ff1a9d Kernel/LibC: Replace SYS_{GET,SET}_TLS with SYS_{SET,GET}_{FS,GS}BASE
This allows userspace to use both registers
2025-11-13 04:20:53 +02:00
Bananymous 7a68ce7e94 DynamicLoader: Fix testing for possible base address
Replace MAP_FIXED with MAP_FIXED_NOREPLACE and only attempt to map
program headers with PT_LOAD
2025-11-13 04:20:53 +02:00
Bananymous 9537922acc Kernel: Implement proper memory region splitting
Memory regions are now splitted when they get munmapped, mprotected, or
mmapped with MAP_FIXED. This is used by couple of ports, and without
this we were just leaking up memory or straight up crashing programs.
2025-11-13 04:20:53 +02:00
Bananymous a39aa73e21 Kernel: Allow munmap on non-page aligned address 2025-11-12 00:06:36 +02:00
Bananymous f1d12c330e Kernel/LibC: Implement MMAP_FIXED_NOREPLACE
This is a handy thing from linux

Also fix MMAP_FIXED validation and error reporting
2025-11-12 00:06:36 +02:00
Bananymous 82c8eeb4be ports/openssh: Update to 10.2p1 and enable fd passing 2025-11-12 00:06:36 +02:00
Bananymous 3a951f4830 LibC: Define IN_LOOPBACKNET
some ports expect this to exist
2025-11-12 00:06:36 +02:00
Bananymous 998ea25fb9 LibC: Add netinet/in_systm.h compatibility header 2025-11-12 00:06:36 +02:00