Bananymous 
							
						 
						
							
								447da99f0b 
								
							 
						 
						
							
							
								
								Kernel/LibC: Implement readlink and readlinkat  
							
							
							
						 
						
							2023-11-11 23:16:52 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								a3a287f5ca 
								
							 
						 
						
							
							
								
								Bootloader: Continue work on bootloader  
							
							... 
							
							
							
							Bootloader can now get the memory map and read cmdline from user.
Now 'just' video mode query, ext2 and ELF parsing are needed :D 
							
						 
						
							2023-11-11 22:49:00 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								c47f6a78bc 
								
							 
						 
						
							
							
								
								Bootloader: Start work on bootloader  
							
							... 
							
							
							
							I wrote a fast first stage bootloader and a installer to put it into
a disk image. 
							
						 
						
							2023-11-09 22:42:47 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								430a006acf 
								
							 
						 
						
							
							
								
								Toolchain: Fix typo when setting make flags  
							
							... 
							
							
							
							I defaultet MAKEFLAGS to -j which will launch processes in parallel
without any limit. 
							
						 
						
							2023-11-09 21:57:45 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								845ed66e5e 
								
							 
						 
						
							
							
								
								Toolchain: add em=gnu to gas. This allows using / in expressions  
							
							
							
						 
						
							2023-11-09 21:43:13 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								2191ca46bb 
								
							 
						 
						
							
							
								
								Kernel: Make TmpFS enforce max page count.  
							
							
							
						 
						
							2023-11-07 16:13:21 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								cec04a2858 
								
							 
						 
						
							
							
								
								Kernel: Remove now obsolete RamFS  
							
							... 
							
							
							
							Everything is using now the better TmpFS which uses physical pages
for page allocation instead of the static kmalloc memory. 
							
						 
						
							2023-11-07 16:07:11 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								b87351f6d5 
								
							 
						 
						
							
							
								
								Kernel: Make DevFS use the new and better TmpFS instead of RamFS  
							
							
							
						 
						
							2023-11-07 16:05:05 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								464737fbe9 
								
							 
						 
						
							
							
								
								Kernel: Add method to TmpFS for looping over all (cached) inodes  
							
							
							
						 
						
							2023-11-07 16:04:34 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								8b4f661acb 
								
							 
						 
						
							
							
								
								Kernel: Lock TmpFS in all its methods  
							
							
							
						 
						
							2023-11-07 16:03:52 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								27963febc0 
								
							 
						 
						
							
							
								
								Kernel: Implement symlinks to TmpFS  
							
							
							
						 
						
							2023-11-07 15:59:50 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								6d4b684219 
								
							 
						 
						
							
							
								
								Kernel: Make PS/2 keyboard wait until interrupts are enabled  
							
							
							
						 
						
							2023-11-07 15:58:50 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								670c787af3 
								
							 
						 
						
							
							
								
								BuildSystem: Fix temporary sysroot creation in toolchain compilation  
							
							
							
						 
						
							2023-11-07 14:16:49 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								a0fbf18d3b 
								
							 
						 
						
							
							
								
								meminfo: better format for files without permissions  
							
							
							
						 
						
							2023-11-07 02:41:01 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								1acc0abf2e 
								
							 
						 
						
							
							
								
								Kernel: Make unlinking from /proc always fail with EPERM  
							
							
							
						 
						
							2023-11-07 02:40:27 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								c20f773c5d 
								
							 
						 
						
							
							
								
								Kernel: /tmp is now TmpFS instead of RamFS  
							
							
							
						 
						
							2023-11-07 02:36:22 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								a46b2f43d9 
								
							 
						 
						
							
							
								
								Kernel: Make ProcFS use the new TmpFS internally  
							
							
							
						 
						
							2023-11-07 02:35:44 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								a20f8607de 
								
							 
						 
						
							
							
								
								Kernel: Implement TmpFS Inode unlinking and deletion  
							
							
							
						 
						
							2023-11-06 21:49:12 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								af330f7b8e 
								
							 
						 
						
							
							
								
								Kernel: TmpFS directory inodes now iterate over only valid entries  
							
							
							
						 
						
							2023-11-06 21:41:51 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								e33b3bcdff 
								
							 
						 
						
							
							
								
								Kernel: Fix TmpFS directory entry enumeration early return  
							
							
							
						 
						
							2023-11-06 21:06:10 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								181d139c7d 
								
							 
						 
						
							
							
								
								Kernel: Fix ext2 directory listing for big directories  
							
							
							
						 
						
							2023-11-06 21:05:58 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								639fd8804c 
								
							 
						 
						
							
							
								
								Kernel: Implement TmpFS directory listing  
							
							
							
						 
						
							2023-11-06 21:05:58 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								cbb2c37e00 
								
							 
						 
						
							
							
								
								Kernel: Implement TmpFS inode chmod  
							
							
							
						 
						
							2023-11-06 20:11:34 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								ab4f033385 
								
							 
						 
						
							
							
								
								Kernel: Cleanup TmpFS code and block access doesn't require allocs  
							
							... 
							
							
							
							TmpFS blocks are now accessed with a simple wrapper 
							
						 
						
							2023-11-06 20:07:09 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								1ed08f62d3 
								
							 
						 
						
							
							
								
								Kernel: TmpInode blocks are on demand allocated  
							
							
							
						 
						
							2023-11-06 10:44:37 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								8164c15b6c 
								
							 
						 
						
							
							
								
								Kernel: Implement read/write/truncate for TmpFileInode  
							
							
							
						 
						
							2023-11-05 02:28:43 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								f9bf47ab30 
								
							 
						 
						
							
							
								
								Kernel: Start work on proper TmpFS in Heap instead of kmalloc memory  
							
							
							
						 
						
							2023-11-04 18:18:45 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								e5ffadb109 
								
							 
						 
						
							
							
								
								Kernel: Add better APIs for fast page  
							
							
							
						 
						
							2023-11-04 18:13:16 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								061d10e635 
								
							 
						 
						
							
							
								
								BAN: Update bytespan -> span API  
							
							
							
						 
						
							2023-11-04 18:12:46 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								6d899aa6ce 
								
							 
						 
						
							
							
								
								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 
							
						 
						
							
								120f7329b1 
								
							 
						 
						
							
							
								
								BAN: Update ASSERT api  
							
							... 
							
							
							
							its now much harder to mix < with <= and > with >= 
							
						 
						
							2023-11-02 00:01:12 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								4f25c20c97 
								
							 
						 
						
							
							
								
								Kernel: Canonicalize vaddr before using it  
							
							
							
						 
						
							2023-10-30 19:20:17 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								5e396851f4 
								
							 
						 
						
							
							
								
								Kernel: Remove unused externs in kernel.cpp  
							
							
							
						 
						
							2023-10-30 19:09:31 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								a44482639d 
								
							 
						 
						
							
							
								
								Kernel: Temporarily force FileBackedRegion mappings writable  
							
							... 
							
							
							
							Now that write-protect bit is enabled this is neccessary. 
							
						 
						
							2023-10-30 19:08:33 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								3bac19e518 
								
							 
						 
						
							
							
								
								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 
							
						 
						
							
								4dbe15aa0e 
								
							 
						 
						
							
							
								
								Kernel: Remove GeneralAllocator since it was not used  
							
							
							
						 
						
							2023-10-30 18:13:17 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								1c5985148c 
								
							 
						 
						
							
							
								
								Kernel: Allow offsetof with packed fields  
							
							... 
							
							
							
							This is not standard C++ but should be fine with my toolchain. 
							
						 
						
							2023-10-30 17:51:18 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								ce2461d0e8 
								
							 
						 
						
							
							
								
								Kernel: panic takes arguments as rvalue references  
							
							
							
						 
						
							2023-10-30 16:22:02 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								4e785a133c 
								
							 
						 
						
							
							
								
								Kernel: Fix ext2 small link deallocation  
							
							... 
							
							
							
							Also fix deallocation bug 
							
						 
						
							2023-10-30 16:22:02 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								26c7aee327 
								
							 
						 
						
							
							
								
								Kernel: only map kernel from g_kernel_start onwards  
							
							
							
						 
						
							2023-10-30 16:22:02 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								0405461742 
								
							 
						 
						
							
							
								
								BAN: Implement better ASSERT macros  
							
							... 
							
							
							
							Implement macros for all basic binary ops. These macros print failed
values when the fail. 
							
						 
						
							2023-10-30 16:22:02 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								8a10853ba7 
								
							 
						 
						
							
							
								
								Kernel: Enable Write Protect. This seems to be good for security  
							
							
							
						 
						
							2023-10-30 12:23:22 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								5d34cebeca 
								
							 
						 
						
							
							
								
								Kernel: Fix stack OOB detection  
							
							... 
							
							
							
							I now check both interrupt and normal stack to detect OOB. Processes
are killed if they encouner stack over/under flow. 
							
						 
						
							2023-10-30 12:17:08 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								3d899d2e44 
								
							 
						 
						
							
							
								
								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 
							
						 
						
							
								f72fdeeb59 
								
							 
						 
						
							
							
								
								BAN: String now uses union for its sso storage  
							
							... 
							
							
							
							This allows String to shrink by 8 bytes since Variant's 8 index is
no longer stored in here.
This required me to make Strings max size one bit less, but that
should still be fine. There should never be strings with size of
over half of the computer's address space. 
							
						 
						
							2023-10-30 11:13:16 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								382f9d9bb3 
								
							 
						 
						
							
							
								
								Userspace: Add quick test for global ctors and dtors  
							
							
							
						 
						
							2023-10-30 11:11:10 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								bc1d1bf919 
								
							 
						 
						
							
							
								
								LibC: implement and call __cxa_finalize() on exit()  
							
							... 
							
							
							
							This allows global destructors to be actually called 
							
						 
						
							2023-10-30 11:10:08 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								f05b9a6877 
								
							 
						 
						
							
							
								
								Kernel/LibC: Add crt* files to LibC and remove crt0 from kernel  
							
							... 
							
							
							
							There was no reason for libc get crt0 from kernel. 
							
						 
						
							2023-10-30 11:06:13 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								ea5ed3001e 
								
							 
						 
						
							
							
								
								Toolchain: Clone GCC and Binutils from git  
							
							... 
							
							
							
							This feels much cleaner than just downloading tar balls from
pregiven urls. Also patching works much better like this!
I added --disable-initfini-array since global constructors were
not called. 
							
						 
						
							2023-10-30 11:02:57 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								f312c3a4d7 
								
							 
						 
						
							
							
								
								Kernel: Fix ACPI DSDT address  
							
							... 
							
							
							
							Read x_dsdt address only if fadt's length contains it. Bochs seems
to have version 1 fadt without the x_* fields. 
							
						 
						
							2023-10-29 21:35:11 +02:00