Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								f206e72447 
								
							 
						 
						
							
							
								
								Kernel: Don't require msync addresses to be page aligned  
							
							 
							
							... 
							
							
							
							Inodes implementing msync can require page aligned addresses, but are
also allowed to not :) This reduces sizes of framebuffer msyncs! 
							
						 
						
							2024-11-17 20:15:28 +02:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								58e45fb394 
								
							 
						 
						
							
							
								
								Kernel: Print process name on exceptions if it is available  
							
							 
							
							
							
						 
						
							2024-11-17 20:15:28 +02:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								5e8fdc997a 
								
							 
						 
						
							
							
								
								Kernel: Prevent userspace from overwriting CPU load memory  
							
							 
							
							
							
						 
						
							2024-11-17 20:15:28 +02:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								0228cd4f31 
								
							 
						 
						
							
							
								
								Kernel: Increase userspace stack size and decrease kernel stack  
							
							 
							
							... 
							
							
							
							Quake II needs a lot of stack, it was overflowing my 256 KiB stack so
this patch doubles that, so Quake II can run!
Also every thread had 256 KiB kernel stack. This is unnecessarily large
and now dropped to 32 KiB. 
							
						 
						
							2024-11-14 21:03:04 +02:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								64c52012df 
								
							 
						 
						
							
							
								
								Kernel: Fix MemoryRegion overlap comparison  
							
							 
							
							... 
							
							
							
							This made some calls to `munmap` unmap extra regions. 
							
						 
						
							2024-11-13 17:26:42 +02:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								1838ea5c30 
								
							 
						 
						
							
							
								
								Kernel: Fix pseudo terminal leaks  
							
							 
							
							
							
						 
						
							2024-11-04 15:35:07 +02:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								a3f41fd4d9 
								
							 
						 
						
							
							
								
								Kernel: Cleanup disk cache  
							
							 
							
							... 
							
							
							
							Add missing include and cleanup code calling automatic disk sync. 
							
						 
						
							2024-11-03 20:28:15 +02:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								f4be37700f 
								
							 
						 
						
							
							
								
								Kernel/userspace: rework floating point math  
							
							 
							
							... 
							
							
							
							SSE is now unconditionally enabled any where and most of math.h is now
actually implemented. using __builtin_<func> lead to many hangs where
the builtin function would just call itself. 
							
						 
						
							2024-11-03 20:28:15 +02:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								ed19bb11fe 
								
							 
						 
						
							
							
								
								Kernel: Cleanup thread default sse initialization  
							
							 
							
							
							
						 
						
							2024-11-03 20:22:28 +02:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								8fd0162393 
								
							 
						 
						
							
							
								
								Kernel: Rewrite x86_64 page tables to use HHDM instead of kmalloc  
							
							 
							
							... 
							
							
							
							This allows page tables to not crash the kernel once kmalloc runs out of
its (limited) static memory. 
							
						 
						
							2024-10-14 11:40:30 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								f0b18da881 
								
							 
						 
						
							
							
								
								Kernel: Add kmalloc helper APIs  
							
							 
							
							
							
						 
						
							2024-10-14 11:39:04 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								5f63ea8f8a 
								
							 
						 
						
							
							
								
								Kernel: Add CPUID check for 1 GiB page support  
							
							 
							
							
							
						 
						
							2024-10-14 11:38:03 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								2b43569927 
								
							 
						 
						
							
							
								
								Kernel: Use enums in boot info instead of magic values  
							
							 
							
							
							
						 
						
							2024-10-14 11:36:51 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								4ba33175cf 
								
							 
						 
						
							
							
								
								Kernel: Don't leak memory when preparing fast page  
							
							 
							
							... 
							
							
							
							For some reason I was allocating memory for page table entry... 
							
						 
						
							2024-10-14 11:34:48 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								3edc1af560 
								
							 
						 
						
							
							
								
								Kernel: Don't map main bios area in page table initialization  
							
							 
							
							... 
							
							
							
							This is only needed for RSDP lookup so it can be done with fast pages 
							
						 
						
							2024-10-14 11:32:54 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								55fbd09e45 
								
							 
						 
						
							
							
								
								Kernel: Rewrite physical memory allocation with PageTable::fast_pages  
							
							 
							
							
							
						 
						
							2024-10-14 11:32:54 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								166550fbba 
								
							 
						 
						
							
							
								
								Kernel: Ext2 check if file exists before creating it  
							
							 
							
							
							
						 
						
							2024-10-07 18:21:05 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								b6e040dfc2 
								
							 
						 
						
							
							
								
								Kernel/Shell: Fix backspace and delete key byte sequences  
							
							 
							
							
							
						 
						
							2024-10-04 04:14:47 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								2d11ce9669 
								
							 
						 
						
							
							
								
								Kernel: Fix interrupt system  
							
							 
							
							... 
							
							
							
							I had not understood how MSIs work and I was unnecessarily routing them
through IOAPIC. This is not necessary and should not be done :D
Also MSIs were reserving interrupts that IOAPIC was capable of
generating. Now IOAPIC and MSIs use different set of interrupts so
IOAPIC can use more interrupts if needed. 
							
						 
						
							2024-09-27 15:31:31 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								b89fc3fe87 
								
							 
						 
						
							
							
								
								Kernel: Implement ANSI SGR 7 to invert colors  
							
							 
							
							... 
							
							
							
							This allows vim's visual selection to show up 
							
						 
						
							2024-09-26 15:08:11 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								39802b56c1 
								
							 
						 
						
							
							
								
								Kernel: Allow SYS_EXEC to fail at any point  
							
							 
							
							... 
							
							
							
							This patch builds new executable image to another pml4 structure and
only after everything is validated will current context be replaced.
This allows exec to fail "late" where previously it would panic the
kernel or kill the process. This allows graceful handling of exec
failures in userspace! 
							
						 
						
							2024-09-24 16:29:38 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								ebb87ccdde 
								
							 
						 
						
							
							
								
								Kernel: Add asserts for overflow checks with ms -> ns conversions  
							
							 
							
							
							
						 
						
							2024-09-24 16:28:44 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								f0e55938c1 
								
							 
						 
						
							
							
								
								Kernel: Allow initial binding of threads to specific processor  
							
							 
							
							
							
						 
						
							2024-09-24 16:27:40 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								348d04f7f5 
								
							 
						 
						
							
							
								
								Kernel: Implement static Process::kill()  
							
							 
							
							... 
							
							
							
							This allows killing processes even when there does not exist a current
thread. 
							
						 
						
							2024-09-24 13:16:43 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								d395cf38b7 
								
							 
						 
						
							
							
								
								Kernel: Binding to port 0 will always find unused port  
							
							 
							
							
							
						 
						
							2024-09-22 17:30:01 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								57aec2a733 
								
							 
						 
						
							
							
								
								Kernel: Validate pointer's when printing stack trace  
							
							 
							
							... 
							
							
							
							There was an kernel panic if stack trace contained uncanonical
addresses. 
							
						 
						
							2024-09-22 17:16:01 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								ae89237453 
								
							 
						 
						
							
							
								
								Kernel: Disable warning when calling syscall  
							
							 
							
							... 
							
							
							
							This warning is only generated when compiling with UBSAN and I don't see
how the value would even be uninitialzed. 
							
						 
						
							2024-09-22 17:15:07 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								60d5257678 
								
							 
						 
						
							
							
								
								Kenrel: Add __builtin_unreachable support for UBSAN  
							
							 
							
							
							
						 
						
							2024-09-22 17:14:36 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								d59463d11b 
								
							 
						 
						
							
							
								
								Kernel: Fix TTY reading one keyevent after disabling input handling  
							
							 
							
							
							
						 
						
							2024-09-22 17:13:10 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								23d6205659 
								
							 
						 
						
							
							
								
								Kernel: Move DEBUG_* macros to centralized Debug.h  
							
							 
							
							... 
							
							
							
							This makes toggling debug info much easier 
							
						 
						
							2024-09-20 11:00:07 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								bc0acc6f44 
								
							 
						 
						
							
							
								
								Kernel: Validate network packet sizes before casting  
							
							 
							
							... 
							
							
							
							This caused a lot of crashes on invalid packets :D 
							
						 
						
							2024-09-20 10:46:59 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								b8622f2b4b 
								
							 
						 
						
							
							
								
								Kernel: Implement simple RTL8169 driver  
							
							 
							
							... 
							
							
							
							This allows me to use internet when running banan-os on my hardware! 
							
						 
						
							2024-09-19 22:58:03 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								7f0c39fe91 
								
							 
						 
						
							
							
								
								Kernel: Don't crash the kernel if packet is smaller than ethernet hdr  
							
							 
							
							
							
						 
						
							2024-09-19 22:51:55 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								a489be0e05 
								
							 
						 
						
							
							
								
								Kernel: Allow parallel LAPIC timer initialization with HPET  
							
							 
							
							... 
							
							
							
							HPET supports reading LAPIC counter without locks, so it can be done in
parallel. This makes booting much faster. Previously initializing every
timer took 100 ms, so 16 CPUs took total of 1.6 seconds. This allows
doing it all in 100 ms. 
							
						 
						
							2024-09-19 14:41:59 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								8e08046519 
								
							 
						 
						
							
							
								
								Kernel: Add asserts about having locked TTY's write lock  
							
							 
							
							... 
							
							
							
							This for some reason fixes booting on real hardware? :D 
							
						 
						
							2024-09-18 00:56:48 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								999eb53364 
								
							 
						 
						
							
							
								
								Kernel: Release debug lock if its locked during kernel panic  
							
							 
							
							... 
							
							
							
							Also kernel panic now prints if it had lock 
							
						 
						
							2024-09-18 00:56:02 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								0620ed3d4f 
								
							 
						 
						
							
							
								
								Kernel: Fix file open permissions for some syscalls  
							
							 
							
							
							
						 
						
							2024-09-17 19:11:48 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								b779b3cf2d 
								
							 
						 
						
							
							
								
								Kernel: Move file finding code to a helper  
							
							 
							
							
							
						 
						
							2024-09-17 18:52:52 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								e431e90b20 
								
							 
						 
						
							
							
								
								Kernel/LibC: Implement all chown family function with fchownat  
							
							 
							
							
							
						 
						
							2024-09-17 18:35:01 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								4aa466b948 
								
							 
						 
						
							
							
								
								Kernel/LibC: Implement all chmod family functions using fchmodat  
							
							 
							
							
							
						 
						
							2024-09-17 17:19:26 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								3666525d24 
								
							 
						 
						
							
							
								
								Kernel/LibC: Implement `readlink` in terms of `readlinkat`  
							
							 
							
							
							
						 
						
							2024-09-17 16:38:15 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								5e4aa75e03 
								
							 
						 
						
							
							
								
								Kernel: Perform access checks when creating a file or a directory  
							
							 
							
							... 
							
							
							
							Also SYS_CREATE_DIR now uses correct relative path. It used to always
create files relative to root. And as no permission checks were tested,
file creation succeeded to root as long as path did not contain '/' :D 
							
						 
						
							2024-09-17 15:57:07 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								d4ea720239 
								
							 
						 
						
							
							
								
								Kernel: Don't crash the kernel if ext2 encounters disk error  
							
							 
							
							... 
							
							
							
							This will most likely result in a corrupted filesystem, but crashing the
kernel is too much :D 
							
						 
						
							2024-09-17 15:54:33 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								97ee370ffe 
								
							 
						 
						
							
							
								
								Kernel: Allow listing files even if one of directories blocks are empty  
							
							 
							
							
							
						 
						
							2024-09-17 15:53:14 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								54732edff4 
								
							 
						 
						
							
							
								
								Kernel: Fix bugs in memory regions  
							
							 
							
							... 
							
							
							
							MemoryRegion::initialize() required size to be page aligned, this is not
necessary.
MemoryBackedRegion::copy_data_to_region() required user-write
permissions for underlying data. This did not matter as memory backed
regions dont support COW memory, but it could lead to bugs later on. 
							
						 
						
							2024-09-15 23:18:05 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								7feb4c4ebd 
								
							 
						 
						
							
							
								
								Kernel: VFS::file_from_absolute_path now used root_file() API  
							
							 
							
							
							
						 
						
							2024-09-15 02:38:25 +03:00