Bananymous 
							
						 
						
							
								5293ae070d 
								
							 
						 
						
							
							
								
								Kernel: ProcFS inodes reflect processes ruid/rgid  
							
							... 
							
							
							
							setgid/setuid did not change the permissions of procfs inodes. This
made Shell launched by init not appear in meminfo. 
							
						 
						
							2023-11-18 14:26:44 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								a312d75bb2 
								
							 
						 
						
							
							
								
								Bootloader: Implement VESA video mode query and pass it to kernel  
							
							... 
							
							
							
							Kernel now gets framebuffer from bootloader. Framebuffer dimensions
and bpp are hardcoded in bootloader, but will probably be read from
config file at some point. 
							
						 
						
							2023-11-17 22:45:35 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								065eec430e 
								
							 
						 
						
							
							
								
								Kernel/Bootloader: banan-os can now be booted with my bootloader :D  
							
							
							
						 
						
							2023-11-17 20:33:02 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								41065d2f9a 
								
							 
						 
						
							
							
								
								Kernel: Don't calculate divisor in a for loop in ext2 inodes  
							
							
							
						 
						
							2023-11-17 19:02:01 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								3daf3d53a3 
								
							 
						 
						
							
							
								
								Kernel: Serial now uses random size for some serial ports  
							
							... 
							
							
							
							If the serial port doesn't repond with a size, just use a random
one. There is no reason to ditch the whole output if you cannot
determine its size. 
							
						 
						
							2023-11-17 18:56:02 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								ec56e9c6f1 
								
							 
						 
						
							
							
								
								Kernel: Don't use multiboot2 explicitly. Parse it to common structure  
							
							... 
							
							
							
							This allows support of multiple different bootloaders 
							
						 
						
							2023-11-17 18:54:59 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								447da99f0b 
								
							 
						 
						
							
							
								
								Kernel/LibC: Implement readlink and readlinkat  
							
							
							
						 
						
							2023-11-11 23:16:52 +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 
							
						 
						
							
								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 
							
						 
						
							
								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 
							
						 
						
							
								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 
							
						 
						
							
								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 
							
						 
						
							
								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  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								0757834176 
								
							 
						 
						
							
							
								
								Kernel: Rewrite a lot of ext2 code  
							
							... 
							
							
							
							This commit consists of multiple big changes
1. blocks for inodes are now allocated on demand
  - reading from non allocated block will just return zeroes
  - writing to non allocated block allocates it
2. code doesn't really use raw pointers anymore
  - all casts to uint32_t or structures are now replaced with
    spans. either as<T> or as_span<T> which both are bounds
	checked
3. code doesn't depend on random macros for accessing indirect blocks
  - i added some recursive functions which take care of this :) 
							
						 
						
							2023-10-28 22:13:28 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								8d583c8b67 
								
							 
						 
						
							
							
								
								Kernel: Fix ext2 inode block allocation with triply indirect blocks  
							
							
							
						 
						
							2023-10-28 16:53:00 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								99bde9aa49 
								
							 
						 
						
							
							
								
								Kernel: Fix ext2 inode deletion cleanup  
							
							... 
							
							
							
							I now cleanup all blocks (including direct) in i_block array 
							
						 
						
							2023-10-28 16:52:56 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								d09310f388 
								
							 
						 
						
							
							
								
								Kernel: Fix ext2 inode deletion  
							
							... 
							
							
							
							fsck now reports clean filesystem even after deleting files 
							
						 
						
							2023-10-26 02:05:05 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								74bfb930f2 
								
							 
						 
						
							
							
								
								Kernel/LibC: Add syscall and wrapper for unlink  
							
							
							
						 
						
							2023-10-25 21:45:04 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								091c5b6a66 
								
							 
						 
						
							
							
								
								BAN: Implement Ext2 file unlinking  
							
							... 
							
							
							
							Ext2 inodes can now be unlinked from directories and after last
inode closes (destructor gets called) we check if link count is 0
and cleanup the inode from filesystem 
							
						 
						
							2023-10-25 21:43:36 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								8bb47aee02 
								
							 
						 
						
							
							
								
								Kernel/LibC/Userspace: Implement mkdir and creat  
							
							... 
							
							
							
							Touch now uses creat insteadd of open with O_CREAT flag 
							
						 
						
							2023-10-25 21:07:26 +03:00