Bananymous 
							
						 
						
							
								dfe5a2d665 
								
							 
						 
						
							
							
								
								All: Cleanup all files  
							
							... 
							
							
							
							Add newline to end of files and remove whitespace from end of lines 
							
						 
						
							2024-01-24 15:53:38 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								24b71d1170 
								
							 
						 
						
							
							
								
								Kernel: Appreciate setuid and setgid bits executables  
							
							
							
						 
						
							2023-12-06 18:14:27 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								2c2ee6636f 
								
							 
						 
						
							
							
								
								fixup  
							
							
							
						 
						
							2023-11-13 21:39:48 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								3beebd721f 
								
							 
						 
						
							
							
								
								LibELF: Remove 2 32 bit types that don't exist  
							
							
							
						 
						
							2023-11-13 21:39:39 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								f6c312a6b3 
								
							 
						 
						
							
							
								
								BuildSystem: using sysroot doesn't need root privileges anymore!  
							
							... 
							
							
							
							Sysroot is now created with fakeroot. This allows root access to be
only needed for disk image creation, since it uses loopback devices. 
							
						 
						
							2023-11-04 17:50:43 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								42772611ce 
								
							 
						 
						
							
							
								
								Kernel: Add fast page to page table  
							
							... 
							
							
							
							Add "fast page" to KERNEL_OFFSET. This is always present in page
tables and only requires changing the page table entry to map. This
requires no interrupts since it should only be for very operations
like memcpy.
I used to map all temporary mappings to vaddr 0, but this is much
better. C++ standard always says that nullptr access is undefined
and this gets rid of it.
Fixed some bugs I found along the way 
							
						 
						
							2023-10-30 19:02:09 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								b5d873dfae 
								
							 
						 
						
							
							
								
								Kernel/LibELF: Map pages always as RW so kernel can write to them  
							
							... 
							
							
							
							Kernel doesn't seem to require W permissions to a page without UEFI
so this had not been found earlier. 
							
						 
						
							2023-10-30 12:14:12 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								f3d9da9549 
								
							 
						 
						
							
							
								
								Kernel: Rewrite all read/write functions to use BAN::ByteSpan  
							
							... 
							
							
							
							This allows us to not work with raw pointers and use sized containers
for reading and writing. 
							
						 
						
							2023-10-24 11:56:00 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								9a6cc0dc2d 
								
							 
						 
						
							
							
								
								Kernel: Check whether ELF address space can be loaded  
							
							... 
							
							
							
							Before reserving address space in SYS_EXEC verify that ELF address
space is actually loadable. For example when trying to execute the
kernel binary in userspace, binarys address space would overlap with
current kernel address space. Now kernel won't crash anymore and
will just send SIGKILL to the process calling exec*(). 
							
						 
						
							2023-10-12 22:59:36 +03:00  
				
					
						
							
							
								 
						
							
								5ee3506474 
								
							 
						 
						
							
							
								
								Kernel: Add physical memory info to /proc/{pid}/meminfo  
							
							
							
						 
						
							2023-09-30 22:11:45 +03:00  
				
					
						
							
							
								 
						
							
								56bb419884 
								
							 
						 
						
							
							
								
								Kernel: All process' memory areas can report their virtual mem usage  
							
							
							
						 
						
							2023-09-30 21:15:46 +03:00  
				
					
						
							
							
								 
						
							
								06af9f3187 
								
							 
						 
						
							
							
								
								LibELF: Optimize LoadableELF::clone() memory usage  
							
							... 
							
							
							
							We only clone mapped pages that have been marked as writeble.
Read/execute only pages will be exactly as in the file itself and
can be demand paged also :D 
							
						 
						
							2023-09-29 02:05:12 +03:00  
				
					
						
							
							
								 
						
							
								8357dd7b3d 
								
							 
						 
						
							
							
								
								LibELF: Implement new ELF structure  
							
							... 
							
							
							
							This structure is used for demand pagable execution. It handles all
memory allocation and file reading. 
							
						 
						
							2023-09-29 01:58:03 +03:00  
				
					
						
							
							
								 
						
							
								5bdf7d313f 
								
							 
						 
						
							
							
								
								LibELF: Add types for native executable  
							
							
							
						 
						
							2023-09-29 01:56:57 +03:00  
				
					
						
							
							
								 
						
							
								921d95d18f 
								
							 
						 
						
							
							
								
								All: Clear lines with only whitspace in them  
							
							
							
						 
						
							2023-09-10 00:31:42 +03:00  
				
					
						
							
							
								 
						
							
								8032824054 
								
							 
						 
						
							
							
								
								BuildSystem: use -a with rsync  
							
							... 
							
							
							
							This allows cmake to not rebuild whole project every time 
							
						 
						
							2023-08-28 11:38:17 +03:00  
				
					
						
							
							
								 
						
							
								80e7a89f67 
								
							 
						 
						
							
							
								
								BuildSystem: Base sysroot is now distributed as a tar ball  
							
							... 
							
							
							
							This allows file and directory permissions work as intended.
cmake is now filled with 'sudo' but with sudo timeout this should be
fine. 
							
						 
						
							2023-08-23 10:38:21 +03:00  
				
					
						
							
							
								 
						
							
								275a730485 
								
							 
						 
						
							
							
								
								LibELF: We use BAN::Vector<uint8_t> as elf storage  
							
							... 
							
							
							
							This is made possible by the dynamic kmalloc 
							
						 
						
							2023-06-18 23:29:23 +03:00  
				
					
						
							
							
								 
						
							
								c7ec19c25c 
								
							 
						 
						
							
							
								
								Kernel: Add basic Credentials for the system  
							
							... 
							
							
							
							Now filesystem access/open, etc confirm that you have access for rwxs 
							
						 
						
							2023-06-11 20:06:06 +03:00  
				
					
						
							
							
								 
						
							
								801025ad7b 
								
							 
						 
						
							
							
								
								Kernel: Big commit. Rewrite ELF loading code  
							
							... 
							
							
							
							We now load ELF files to VirtualRanges instead of using kmalloc.
We have only a fixed 1 MiB kmalloc for big allocations and this
allows loading files even when they don't fit in there.
This caused me to rewrite the whole ELF loading process since the
loaded ELF is not in memory mapped by every process.
Virtual ranges allow you to zero out the memory and to copy into
them from arbitary byte buffers. 
							
						 
						
							2023-06-09 00:37:43 +03:00  
				
					
						
							
							
								 
						
							
								80d9f6131b 
								
							 
						 
						
							
							
								
								Kernel/LibC: move file offset back to kernel  
							
							... 
							
							
							
							This makes keeping track of offsets easier and more proper 
							
						 
						
							2023-05-26 22:31:21 +03:00  
				
					
						
							
							
								 
						
							
								729ff267d7 
								
							 
						 
						
							
							
								
								LibC: add function declarations to sys/stat.h  
							
							
							
						 
						
							2023-05-11 15:11:33 +03:00  
				
					
						
							
							
								 
						
							
								ff2e2937a5 
								
							 
						 
						
							
							
								
								Kernel: Remove offset from OpenFileDescriptor  
							
							... 
							
							
							
							This is now handled on the libc side. There might be reasons to
have it in kernel side, but for simplicity's sake I'm moving it
to libc for now :) 
							
						 
						
							2023-05-09 20:31:22 +03:00  
				
					
						
							
							
								 
						
							
								850ff93940 
								
							 
						 
						
							
							
								
								LibELF: Add 32 bit support  
							
							
							
						 
						
							2023-04-22 19:00:18 +03:00  
				
					
						
							
							
								 
						
							
								ef0263e32d 
								
							 
						 
						
							
							
								
								LibELF: Header printing can now be turned off  
							
							
							
						 
						
							2023-04-22 15:34:09 +03:00  
				
					
						
							
							
								 
						
							
								4588e25d27 
								
							 
						 
						
							
							
								
								LibELF: ELF now has methods for accessing more attributes  
							
							... 
							
							
							
							You can now access the program headers and the memory itself 
							
						 
						
							2023-04-22 15:31:05 +03:00  
				
					
						
							
							
								 
						
							
								7d57d2fcfb 
								
							 
						 
						
							
							
								
								LibELF: remove unused file  
							
							
							
						 
						
							2023-04-19 17:32:12 +03:00  
				
					
						
							
							
								 
						
							
								d63716db96 
								
							 
						 
						
							
							
								
								Kernel: Process is not reference counted any more  
							
							... 
							
							
							
							This was not necessary and it made things needlessly complicated 
							
						 
						
							2023-04-19 00:34:18 +03:00  
				
					
						
							
							
								 
						
							
								998ae511a3 
								
							 
						 
						
							
							
								
								LibELF: Start implementing elf library  
							
							
							
						 
						
							2023-04-18 10:18:15 +03:00