Bananymous 
							
						 
						
							
								e16fb6a8e9 
								
							 
						 
						
							
							
								
								Kernel: Don't validate allowed null pointers on syscalls  
							
							
							
						 
						
							2025-07-17 22:14:04 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								d941e6d70b 
								
							 
						 
						
							
							
								
								General: Update README features and environment variables  
							
							
							
						 
						
							2025-07-17 21:45:48 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								b65068dc7d 
								
							 
						 
						
							
							
								
								BuildSystem: Add support for building initrd image  
							
							... 
							
							
							
							This is nice for testing when there isn't xhci controller available or
my usb stack fails :) 
							
						 
						
							2025-07-17 21:45:48 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								d5301508ec 
								
							 
						 
						
							
							
								
								Kernel: Increase kernel thread stack size  
							
							... 
							
							
							
							HACK HACK HACK
This is just to make banan-os boot on one razer laptop where AML
triggers a stack overflow :) 
							
						 
						
							2025-07-17 21:21:14 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								793cca423b 
								
							 
						 
						
							
							
								
								Kernel: Fix system timer disabling  
							
							... 
							
							
							
							I was actually not disabling system timer (HPET, PIT) when using lapic
timers for scheduling. This made BSB get too many timer interrupts :D 
							
						 
						
							2025-07-16 20:02:04 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								3960687f9d 
								
							 
						 
						
							
							
								
								Kernel: Parse PCIConfig opregion address on read/write  
							
							... 
							
							
							
							I was testing on some hardware and _ADR does not have to exist in the
namespace when opregion is parsed :) 
							
						 
						
							2025-07-16 15:34:36 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								3ec7aad432 
								
							 
						 
						
							
							
								
								Kernel: Increase PS/2 timeout and detect more keyboards  
							
							... 
							
							
							
							I was testing on a old T61 
							
						 
						
							2025-07-16 15:29:27 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								84f1ad4f26 
								
							 
						 
						
							
							
								
								ports: Fix doom compilation with the new toolchain  
							
							
							
						 
						
							2025-07-15 16:12:03 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								6b9dbf625d 
								
							 
						 
						
							
							
								
								userspace: Add `audio` utility to play audio files  
							
							
							
						 
						
							2025-07-15 16:12:03 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								3aea2c007d 
								
							 
						 
						
							
							
								
								Userspace: Add simple AudioServer and LibAudio  
							
							
							
						 
						
							2025-07-15 16:12:03 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								85d195212a 
								
							 
						 
						
							
							
								
								BuildSystem: Update qemu script and add ac97  
							
							
							
						 
						
							2025-07-15 14:17:49 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								8a663cb94f 
								
							 
						 
						
							
							
								
								Kernel: Implement basic AC97 driver  
							
							
							
						 
						
							2025-07-15 14:17:49 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								674e194a91 
								
							 
						 
						
							
							
								
								Kernel: Don't fail PCI interrupt allocation with PCIe and no PCI  
							
							
							
						 
						
							2025-07-15 14:17:49 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								c57f0abb56 
								
							 
						 
						
							
							
								
								BuildSystem: Order source list alphabetically  
							
							
							
						 
						
							2025-07-15 14:17:49 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								163fdcd582 
								
							 
						 
						
							
							
								
								LibC: Fix exec family function path resolution  
							
							
							
						 
						
							2025-07-15 14:17:49 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								3be17c6117 
								
							 
						 
						
							
							
								
								BAN: Add clear and access by index to CircularQueue  
							
							
							
						 
						
							2025-07-10 17:24:40 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								995dfa1455 
								
							 
						 
						
							
							
								
								Kernel: Fix AML PCIConfig OpRegion accesses  
							
							... 
							
							
							
							Apparently I'm not supposted to calculate device/function from the
offset, but parse them from the acpi namespace :)
This allows PCI PIN interrupt routing actually work 
							
						 
						
							2025-07-04 13:21:02 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								544c8dbc13 
								
							 
						 
						
							
							
								
								Kernel: Optimize AML interpreter stack usage  
							
							... 
							
							
							
							There is a very hacky no-inline hack that I am not proud of but it drops
the stack usage of few functions A LOT.
Previously Virtual Box could not boot with our 8 page stack, but these
changes allow it to boot on 5! 
							
						 
						
							2025-07-03 00:49:23 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								8da4f80453 
								
							 
						 
						
							
							
								
								Kernel: Add custom stack to double fault handler  
							
							... 
							
							
							
							This prevents triple faults! 
							
						 
						
							2025-07-02 23:14:52 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								6084aae603 
								
							 
						 
						
							
							
								
								Kernel: Add guard pages to kernel and userspace stacks  
							
							
							
						 
						
							2025-07-02 23:12:36 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								e1319a06f2 
								
							 
						 
						
							
							
								
								Kernel: Remove accidentally commited debug prints  
							
							
							
						 
						
							2025-07-02 23:09:57 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								51fd7a607d 
								
							 
						 
						
							
							
								
								Kernel: Fix IDE controller waiting  
							
							... 
							
							
							
							We did not correctly wait until controller is ready to receive data on
write command. Also remove possible kernel panic if controller sends
unexpected interrupts 
							
						 
						
							2025-07-02 22:04:41 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								8aff315c7b 
								
							 
						 
						
							
							
								
								LibC: fflush file in setvbuf before updating the buffer  
							
							
							
						 
						
							2025-07-02 01:54:03 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								8e0d79f301 
								
							 
						 
						
							
							
								
								ports: Fix `make` compilation with new toolchain  
							
							
							
						 
						
							2025-07-02 01:54:03 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								8a0269d29e 
								
							 
						 
						
							
							
								
								Kernel: Remove kernel processes  
							
							... 
							
							
							
							Kernel can just use raw threads, pretty muchs the only thing that
process provides is syscalls which kernel threads of course don't
need.
Also this makes init process have pid 1 :D 
							
						 
						
							2025-07-02 01:54:03 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								892e16dfb1 
								
							 
						 
						
							
							
								
								Kernel: Increase PS2 timeout to 300 ms, load PS2 in separate thread  
							
							... 
							
							
							
							PS/2 seems to hit command timeout sometimes on slow emulation so
increase the timeouts.
Also move PS/2 device initialization to a different thread because
device indentification waits for timeouts. 
							
						 
						
							2025-07-02 00:17:42 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								92e4078287 
								
							 
						 
						
							
							
								
								Kernel: Rewrite ThreadBlocker  
							
							... 
							
							
							
							This gets rid of a very old bug where kernel panics when thread is being
woken up and unblocked at the same time on different cores. This
required adding a new lock to SchedulerQueue::Node and adding a cap to
how many threads a threadblocker can simultaneously block. I don't think
I ever block more than five threads on the same ThreadBlocker so this
should be fine. 
							
						 
						
							2025-07-02 00:17:42 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								41e1819072 
								
							 
						 
						
							
							
								
								Kernel: Align argv and envp to pointer boundary  
							
							... 
							
							
							
							This bug was found with ubsan 
							
						 
						
							2025-07-02 00:17:42 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								fb7e9719a1 
								
							 
						 
						
							
							
								
								Kernel: Add fast fill method to framebuffer device  
							
							... 
							
							
							
							This makes `clear` much faster when running without kvm! 
							
						 
						
							2025-07-02 00:17:42 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								c2d09b64ca 
								
							 
						 
						
							
							
								
								Kernel: Drop 24 bpp support from double buffer  
							
							... 
							
							
							
							I don't even know why this was supported, I am not planning on making
the fb anything other than 32 bpp 
							
						 
						
							2025-07-02 00:17:42 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								1b2aa6c2da 
								
							 
						 
						
							
							
								
								Kernel: Fix unaligned access in AML  
							
							... 
							
							
							
							Found with ubsan 
							
						 
						
							2025-07-02 00:17:42 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								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  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								17f1ac10e3 
								
							 
						 
						
							
							
								
								Kernel: Don't ignore modules passed with multiboot2  
							
							
							
						 
						
							2025-07-02 00:17:42 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								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  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								107b092982 
								
							 
						 
						
							
							
								
								Kernel: Allow arbitrary sized tmpfs files  
							
							... 
							
							
							
							The 2 block limit started to get annoying :D 
							
						 
						
							2025-07-02 00:17:42 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								bac06e45a4 
								
							 
						 
						
							
							
								
								Kernel: Fix TmpSymlinkInode target getting/setting  
							
							
							
						 
						
							2025-07-02 00:17:42 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								0e8a68831c 
								
							 
						 
						
							
							
								
								Kernel: Fix TmpInode chmod not preserving file type  
							
							
							
						 
						
							2025-07-02 00:17:42 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								5912abd541 
								
							 
						 
						
							
							
								
								Kernel: Add error reporting for readonly mounted filesystems  
							
							
							
						 
						
							2025-07-02 00:17:42 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								13d33995cb 
								
							 
						 
						
							
							
								
								Kernel: Make sure PageTable::fast_page gets passed page aligned addr  
							
							
							
						 
						
							2025-06-30 01:48:47 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								c8c05f62b4 
								
							 
						 
						
							
							
								
								Kernel: Remove unused FileSystem::dev  
							
							
							
						 
						
							2025-06-29 00:29:03 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								944b045885 
								
							 
						 
						
							
							
								
								Toolchain: Set CMAKE_STAGING_PREFIX in toolchain file  
							
							
							
						 
						
							2025-06-28 23:34:11 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								19897ffa26 
								
							 
						 
						
							
							
								
								userspace: Compile test utility :D  
							
							
							
						 
						
							2025-06-28 22:40:00 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								42a10b21c7 
								
							 
						 
						
							
							
								
								userspace: Implement true and false utilities  
							
							
							
						 
						
							2025-06-28 22:39:19 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								5df0e25c1f 
								
							 
						 
						
							
							
								
								userspace: Implement chown utility  
							
							
							
						 
						
							2025-06-28 21:32:59 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								ebf2b16d09 
								
							 
						 
						
							
							
								
								Kernel: Implement chown to ext2 and tmpfs  
							
							
							
						 
						
							2025-06-28 21:28:54 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								f2eaab6e43 
								
							 
						 
						
							
							
								
								ports: Add tuxracer port  
							
							... 
							
							
							
							THIS IS SUPER SLOW 
							
						 
						
							2025-06-28 20:54:45 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								a847823411 
								
							 
						 
						
							
							
								
								ports: Add tcl port  
							
							
							
						 
						
							2025-06-28 20:54:45 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								fe9a8b542a 
								
							 
						 
						
							
							
								
								ports: Add bochs port  
							
							... 
							
							
							
							THIS IS SUPER SLOW 
							
						 
						
							2025-06-28 20:54:45 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								cd101b6844 
								
							 
						 
						
							
							
								
								ports: Add sdl12-compat port  
							
							
							
						 
						
							2025-06-28 20:54:45 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								69229102c4 
								
							 
						 
						
							
							
								
								ports: Add SDL2 port  
							
							
							
						 
						
							2025-06-28 20:52:33 +03:00