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 
							
						 
						
							 
							
							
							
							
								
							
							
								55fbd09e45 
								
							 
						 
						
							
							
								
								Kernel: Rewrite physical memory allocation with PageTable::fast_pages  
							
							 
							
							
							
						 
						
							2024-10-14 11:32:54 +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 
							
						 
						
							 
							
							
							
							
								
							
							
								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 
							
						 
						
							 
							
							
							
							
								
							
							
								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 
							
						 
						
							 
							
							
							
							
								
							
							
								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 
							
						 
						
							 
							
							
							
							
								
							
							
								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 
							
						 
						
							 
							
							
							
							
								
							
							
								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 
							
						 
						
							 
							
							
							
							
								
							
							
								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 
							
						 
						
							 
							
							
							
							
								
							
							
								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 
							
						 
						
							 
							
							
							
							
								
							
							
								7feb4c4ebd 
								
							 
						 
						
							
							
								
								Kernel: VFS::file_from_absolute_path now used root_file() API  
							
							 
							
							
							
						 
						
							2024-09-15 02:38:25 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								2911d1f018 
								
							 
						 
						
							
							
								
								Kernel: Cleanup and fix pseudo terminals  
							
							 
							
							
							
						 
						
							2024-09-15 02:38:07 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								8956835d95 
								
							 
						 
						
							
							
								
								Kernel: Make sys_.*at use VFS relative path finding  
							
							 
							
							
							
						 
						
							2024-09-14 21:15:58 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								ea4ec2eafc 
								
							 
						 
						
							
							
								
								Kernel: Make OpenFileDescrptor store VFS::File instead of inode+path  
							
							 
							
							
							
						 
						
							2024-09-14 20:10:21 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								3a352078de 
								
							 
						 
						
							
							
								
								Kernel: Make VirtualFileSystem::File non copyable  
							
							 
							
							
							
						 
						
							2024-09-14 20:09:28 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								6060b39548 
								
							 
						 
						
							
							
								
								Kernel: Implement relative file searching in VFS  
							
							 
							
							
							
						 
						
							2024-09-14 19:44:20 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								2b52ea4c6f 
								
							 
						 
						
							
							
								
								Kernel: Make Inode::can_access const  
							
							 
							
							
							
						 
						
							2024-09-14 19:39:41 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								b41738b47b 
								
							 
						 
						
							
							
								
								Kernel: Fix ACPI name formatting functions  
							
							 
							
							
							
						 
						
							2024-09-14 19:39:13 +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 `mmap`s  
							
							 
							
							
							
						 
						
							2024-09-11 19:33:50 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								c65613901f 
								
							 
						 
						
							
							
								
								Kernel: Fix AML aliases and package elements  
							
							 
							
							
							
						 
						
							2024-09-10 16:18:42 +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 
							
						 
						
							 
							
							
							
							
								
							
							
								991ae4383a 
								
							 
						 
						
							
							
								
								Kernel/LibC: Implement fchmod  
							
							 
							
							
							
						 
						
							2024-08-25 15:07:42 +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 
							
						 
						
							 
							
							
							
							
								
							
							
								37cd4ed504 
								
							 
						 
						
							
							
								
								Kernel: Add support for CSI @, b, d to VirtualTerminal  
							
							 
							
							
							
						 
						
							2024-08-22 14:04:45 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								23194d1f53 
								
							 
						 
						
							
							
								
								Kernel: Implement basic random device to /dev/random  
							
							 
							
							
							
						 
						
							2024-08-22 14:02:26 +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 
							
						 
						
							 
							
							
							
							
								
							
							
								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 
							
						 
						
							 
							
							
							
							
								
							
							
								0fa16cf982 
								
							 
						 
						
							
							
								
								Kernel: Fix and add some AML to_underlying functions  
							
							 
							
							
							
						 
						
							2024-08-18 20:44:51 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								368f5e9799 
								
							 
						 
						
							
							
								
								Kernel: Add command lineoption `nousb` that will disable usb controller  
							
							 
							
							
							
						 
						
							2024-08-16 22:09:24 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								490a28ee7a 
								
							 
						 
						
							
							
								
								Kernel/AML: General cleanup and compliance improvements  
							
							 
							
							
							
						 
						
							2024-08-15 23:14:13 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								d729d7f570 
								
							 
						 
						
							
							
								
								Kernel: Implement AML storing to Buffer  
							
							 
							
							
							
						 
						
							2024-08-15 23:12:52 +03:00