390a747768 
								
							 
						 
						
							
							
								
								Kernel: Add prefs font for terminal output before file system  
							
							
							
						 
						
							2023-02-23 01:22:50 +02:00  
				
					
						
							
							
								 
						
							
								a4980acc88 
								
							 
						 
						
							
							
								
								Kernel: Fonts can now be parsed from the filesystem and set to terminal  
							
							... 
							
							
							
							We currently dont have a fallback font if we cannot get to filesystem
initialization, but that will come later. I can't test on real hardware
for this reason. 
							
						 
						
							2023-02-22 22:29:31 +02:00  
				
					
						
							
							
								 
						
							
								0e668738dc 
								
							 
						 
						
							
							
								
								Kernel: Make some basic bitmap font parsing code  
							
							
							
						 
						
							2023-02-22 22:28:12 +02:00  
				
					
						
							
							
								 
						
							
								a3e9e7d125 
								
							 
						 
						
							
							
								
								Kernel: Fix some shell commands  
							
							
							
						 
						
							2023-02-22 21:55:32 +02:00  
				
					
						
							
							
								 
						
							
								4cd99c71ca 
								
							 
						 
						
							
							
								
								Kernel: kmalloc uses now spinlock and fix kmalloc_fixed()  
							
							
							
						 
						
							2023-02-22 21:49:28 +02:00  
				
					
						
							
							
								 
						
							
								c9ea22f5e2 
								
							 
						 
						
							
							
								
								Kernel: IDT now confirms that it allocated succesfully  
							
							
							
						 
						
							2023-02-22 21:48:40 +02:00  
				
					
						
							
							
								 
						
							
								0e77b4dc4e 
								
							 
						 
						
							
							
								
								BAN: You can now transform little endian data to host endian  
							
							
							
						 
						
							2023-02-22 21:47:22 +02:00  
				
					
						
							
							
								 
						
							
								f98f3d851c 
								
							 
						 
						
							
							
								
								BAN: HashMap uses LinkedList as bucket, so kmalloc_fixed can be used  
							
							
							
						 
						
							2023-02-22 21:46:41 +02:00  
				
					
						
							
							
								 
						
							
								a845f8696c 
								
							 
						 
						
							
							
								
								BAN: Add function to decode utf-8 encoded strings  
							
							... 
							
							
							
							works for 3 byte unicode characters 
							
						 
						
							2023-02-22 21:45:26 +02:00  
				
					
						
							
							
								 
						
							
								d9c05b7378 
								
							 
						 
						
							
							
								
								Kernel: rewrite the whole kmalloc (again)  
							
							... 
							
							
							
							Performance of the old kmalloc implementation was terrible.
We now use fixed-width linked list allocations for sizes <= 60 bytes.
This is much faster than variable size allocation.
We don't use bitmap scanning anymore since it was probably the slow
part. Instead we use headers that tell allocations size and aligment.
I removed the kmalloc_eternal, even though it was very fast, there is
not really any need for it, since the only place it was used in was IDT.
These changes allowed my psf (font) parsing to go from ~500 ms to ~20 ms.
(coming soon :D) 
							
						 
						
							2023-02-22 16:32:50 +02:00  
				
					
						
							
							
								 
						
							
								4afc4660a4 
								
							 
						 
						
							
							
								
								BAN: Basic containers have shrink_to_fit() method  
							
							... 
							
							
							
							I also chaged the default memory allocation increase from 1.5 to 2 
							
						 
						
							2023-02-22 02:07:05 +02:00  
				
					
						
							
							
								 
						
							
								5d31e89574 
								
							 
						 
						
							
							
								
								Kernel: Update ErrorOr API and add path find to VFS  
							
							... 
							
							
							
							These two are done on the same commit since Changes to Shell were
annoying to make work with only one change 
							
						 
						
							2023-02-22 01:23:11 +02:00  
				
					
						
							
							
								 
						
							
								9aab67fed8 
								
							 
						 
						
							
							
								
								BAN: make all Math functions inline constexpr  
							
							
							
						 
						
							2023-02-22 01:17:56 +02:00  
				
					
						
							
							
								 
						
							
								10b6d51522 
								
							 
						 
						
							
							
								
								BAN: implement Variant<> for two types  
							
							
							
						 
						
							2023-02-22 01:17:21 +02:00  
				
					
						
							
							
								 
						
							
								afd4b7a184 
								
							 
						 
						
							
							
								
								BAN: HashMap now copies size when copying :D  
							
							
							
						 
						
							2023-02-22 01:16:07 +02:00  
				
					
						
							
							
								 
						
							
								038379274e 
								
							 
						 
						
							
							
								
								Kernel: Inode can now return full mode value  
							
							... 
							
							
							
							Kernel::Inode::Mode is an union of bitmasked fields for every
possible bit 
							
						 
						
							2023-02-20 21:39:24 +02:00  
				
					
						
							
							
								 
						
							
								fbc17eb6dd 
								
							 
						 
						
							
							
								
								BAN: Implement basic HashMap  
							
							
							
						 
						
							2023-02-20 16:00:51 +02:00  
				
					
						
							
							
								 
						
							
								efaca469ee 
								
							 
						 
						
							
							
								
								Kernel: Ext2Inode now supports indirect blocks through for_each_block()  
							
							
							
						 
						
							2023-02-20 10:25:15 +02:00  
				
					
						
							
							
								 
						
							
								80006ea137 
								
							 
						 
						
							
							
								
								Kernel: Initial work on filesystem  
							
							... 
							
							
							
							We support now ext2 directory listing. File reading is not yet supported. 
							
						 
						
							2023-02-20 01:46:00 +02:00  
				
					
						
							
							
								 
						
							
								247f03c79e 
								
							 
						 
						
							
							
								
								BAN: Make ErrorOr<> have attribute [[nodiscard]]  
							
							... 
							
							
							
							We don't have to specify it everytime we make function return ErrorOr 
							
						 
						
							2023-02-19 20:10:30 +02:00  
				
					
						
							
							
								 
						
							
								feaeee11e5 
								
							 
						 
						
							
							
								
								Kernel: fix ARCH() macro and add helper macros for push/pop  
							
							
							
						 
						
							2023-02-19 18:52:25 +02:00  
				
					
						
							
							
								 
						
							
								0506fee34a 
								
							 
						 
						
							
							
								
								Kernel: Shell's thread now uses sleep instead of polling  
							
							... 
							
							
							
							Also added 'sleep' command that just sleeps for 5 seconds 
							
						 
						
							2023-02-19 18:52:25 +02:00  
				
					
						
							
							
								 
						
							
								1bd8b0fe5c 
								
							 
						 
						
							
							
								
								Kernel: Sleep now actually sleeps and allows idling  
							
							
							
						 
						
							2023-02-19 18:52:25 +02:00  
				
					
						
							
							
								 
						
							
								66a4b69a29 
								
							 
						 
						
							
							
								
								BAN: Math now uses template concepts and add div_round_up  
							
							
							
						 
						
							2023-02-19 00:48:56 +02:00  
				
					
						
							
							
								 
						
							
								eacf551d0f 
								
							 
						 
						
							
							
								
								Build: Make install-usb.sh print human readable size  
							
							
							
						 
						
							2023-02-19 00:48:25 +02:00  
				
					
						
							
							
								 
						
							
								8f1b6da2af 
								
							 
						 
						
							
							
								
								Kernel: Use Vector instead of raw poiters in Disk stuff  
							
							... 
							
							
							
							We now don't have to manually free allocated data 
							
						 
						
							2023-02-16 20:48:41 +02:00  
				
					
						
							
							
								 
						
							
								7f12a7050a 
								
							 
						 
						
							
							
								
								BAN: Add data() to Vector.  
							
							... 
							
							
							
							This allows you to access the underlying data in a vector 
							
						 
						
							2023-02-16 20:47:49 +02:00  
				
					
						
							
							
								 
						
							
								460fc3a29f 
								
							 
						 
						
							
							
								
								Kernel: Start working on filesystem  
							
							... 
							
							
							
							We have a basic PATA driver (for reading) and gpt parser. 
							
						 
						
							2023-02-16 20:00:31 +02:00  
				
					
						
							
							
								 
						
							
								94cbacc998 
								
							 
						 
						
							
							
								
								Kernel: PIT now has very barebones sleep  
							
							
							
						 
						
							2023-02-16 17:53:25 +02:00  
				
					
						
							
							
								 
						
							
								1b45b4d728 
								
							 
						 
						
							
							
								
								Kernel: Remove unnecessary BOCKS_BREAK()  
							
							
							
						 
						
							2023-02-16 17:52:39 +02:00  
				
					
						
							
							
								 
						
							
								f188fea81c 
								
							 
						 
						
							
							
								
								BAN: Implement basic HashSet  
							
							
							
						 
						
							2023-02-10 02:59:52 +02:00  
				
					
						
							
							
								 
						
							
								7630df84ad 
								
							 
						 
						
							
							
								
								BAN: Add basic hashing functionality  
							
							
							
						 
						
							2023-02-10 02:59:30 +02:00  
				
					
						
							
							
								 
						
							
								4f8fcf0bd7 
								
							 
						 
						
							
							
								
								BAN: Add Formatter specialization for Vector  
							
							
							
						 
						
							2023-02-10 02:58:14 +02:00  
				
					
						
							
							
								 
						
							
								f68ae01d0c 
								
							 
						 
						
							
							
								
								BAN: Fix ErrorOr<void> to actually set error byte  
							
							
							
						 
						
							2023-02-10 01:06:18 +02:00  
				
					
						
							
							
								 
						
							
								7ee4ecd7f4 
								
							 
						 
						
							
							
								
								BAN: Vector's and Queue's underlying type is T* instead of uint8_t*  
							
							... 
							
							
							
							I have no idea what kind of brainfart I had to make use uint8_t*
that just complicated the code :D 
							
						 
						
							2023-02-10 00:12:23 +02:00  
				
					
						
							
							
								 
						
							
								e5ffc1686f 
								
							 
						 
						
							
							
								
								BAN: Vector::const_iterator now uses const T* as underlying type  
							
							
							
						 
						
							2023-02-09 23:06:49 +02:00  
				
					
						
							
							
								 
						
							
								bfc9a2377c 
								
							 
						 
						
							
							
								
								BAN: LinkedList now uses iterators instead of const_iterators on methods  
							
							
							
						 
						
							2023-02-09 23:06:16 +02:00  
				
					
						
							
							
								 
						
							
								6a133782ed 
								
							 
						 
						
							
							
								
								All: Move to c++20  
							
							
							
						 
						
							2023-02-09 23:05:26 +02:00  
				
					
						
							
							
								 
						
							
								338771c5b0 
								
							 
						 
						
							
							
								
								BAN: Cleanup Vector code  
							
							... 
							
							
							
							*Applies to last patch also!*
Remove duplicate code in iterators. We used to have separate iterator
and const_iterator but now they are the same class with some enable_if
magic to disable references from const_iterator
This introduces some 'bad things' you can for example call
const_iterator.operator*<false>() to obtain non const reference. I
don't think this matters since you could use const_cast or something
else to work around const if you really tried 
							
						 
						
							2023-02-07 11:08:05 +02:00  
				
					
						
							
							
								 
						
							
								08dfb0e1db 
								
							 
						 
						
							
							
								
								BAN: Cleanup LinkedList code  
							
							
							
						 
						
							2023-02-06 19:01:52 +02:00  
				
					
						
							
							
								 
						
							
								0eb1fb8bae 
								
							 
						 
						
							
							
								
								Buildsystem: Build disk image manually  
							
							... 
							
							
							
							We don't use grub-mkrescue anymore. Instead we build the disk image
manually. This allows us to have known disk layout for easier testing
when I get to implementing disk reading. For now I made the root
partition ext2 since I think that will be the first format that I'll
implement. 
							
						 
						
							2023-02-05 18:08:40 +02:00  
				
					
						
							
							
								 
						
							
								fb7fe73d49 
								
							 
						 
						
							
							
								
								Kernel: Add inw and outw to IO  
							
							
							
						 
						
							2023-02-04 23:37:34 +02:00  
				
					
						
							
							
								 
						
							
								6fab26692b 
								
							 
						 
						
							
							
								
								Kernel: remove unnecessary function from x86_64 Thread.S  
							
							
							
						 
						
							2023-02-02 23:48:18 +02:00  
				
					
						
							
							
								 
						
							
								2161528cb6 
								
							 
						 
						
							
							
								
								Kernel: Shell is now launched as a capturing lambda  
							
							
							
						 
						
							2023-02-02 23:27:51 +02:00  
				
					
						
							
							
								 
						
							
								cdbad56ed7 
								
							 
						 
						
							
							
								
								Kernel: Update shell thread command to run following command as thread  
							
							... 
							
							
							
							'thread echo "Hello World"' runs the command 'echo "Hello World"' after
5 seconds have passed. This was just my test code for threading 
							
						 
						
							2023-02-02 23:26:19 +02:00  
				
					
						
							
							
								 
						
							
								5b5e620d8a 
								
							 
						 
						
							
							
								
								Kernel: Improve multithreading support  
							
							... 
							
							
							
							We can now use arbitary BAN::function<void(...)> as the Thread.
I also implemented multithreading for i386 since it was not done
on the initial multithreading commit. 
							
						 
						
							2023-02-02 23:24:12 +02:00  
				
					
						
							
							
								 
						
							
								777ede328e 
								
							 
						 
						
							
							
								
								Kernel: Add helper functions for reading current rsp and rbp  
							
							
							
						 
						
							2023-02-02 23:19:44 +02:00  
				
					
						
							
							
								 
						
							
								2403df50bb 
								
							 
						 
						
							
							
								
								BAN: Add getter for Function size  
							
							
							
						 
						
							2023-02-02 23:19:18 +02:00  
				
					
						
							
							
								 
						
							
								c85b97abee 
								
							 
						 
						
							
							
								
								Kernel: fix some of i368 IDT. This was really broken  
							
							
							
						 
						
							2023-02-02 15:52:06 +02:00  
				
					
						
							
							
								 
						
							
								117d1de038 
								
							 
						 
						
							
							
								
								Kernel: panic does not need to include <kernel/kprint.h>  
							
							... 
							
							
							
							This allows us to not have kprint available literally everywhere 
							
						 
						
							2023-02-02 15:51:15 +02:00