1fade1aa9e 
								
							 
						 
						
							
							
								
								Kernel: Process::working_directory() is now thread safe  
							
							... 
							
							
							
							I realized you cannot return a stirng view and it to be thread safe 
							
						 
						
							2023-03-24 01:46:25 +02:00  
				
					
						
							
							
								 
						
							
								814f0b215d 
								
							 
						 
						
							
							
								
								Kernel: Create RecursiveSpinLock and add it to Process  
							
							... 
							
							
							
							We now lock every function within Proccess, just to be sure.
Recursive lock allows us to use lock from the same thread even if
we already have the spinlock locked 
							
						 
						
							2023-03-24 01:32:35 +02:00  
				
					
						
							
							
								 
						
							
								5fd26b4ea8 
								
							 
						 
						
							
							
								
								Kernel: Lock process functions instead of the ata controller  
							
							... 
							
							
							
							Process has to use locks at least on some functions so multithreaded
disk io is safe. This seemed to fix corrupted reads from disk 
							
						 
						
							2023-03-24 01:17:39 +02:00  
				
					
						
							
							
								 
						
							
								e5eab8bae4 
								
							 
						 
						
							
							
								
								Kernel: Ext2FS now does allocations better  
							
							... 
							
							
							
							We only have to allocate at the beginning of the all functions and
can properly exit before any disk reads if we run out of memory.
This makes development little bit 'harder' since the {read,write}_block
user must allocate a buffer of atleast block_size bytes.
I also made disk access to cause kernel panic on error since the error
handling during file write is something I don't want to think now.
The filesystem can easily corrupt so, I feel like when disk io starts
to fail I'll come back to this. 
							
						 
						
							2023-03-23 23:22:31 +02:00  
				
					
						
							
							
								 
						
							
								75c4f35e85 
								
							 
						 
						
							
							
								
								Kernel: Add possibiliity to create empty files on Ext2  
							
							... 
							
							
							
							Big rewrite for Ext2 for more easy and optimized code 
							
						 
						
							2023-03-23 22:26:06 +02:00  
				
					
						
							
							
								 
						
							
								633414bd20 
								
							 
						 
						
							
							
								
								Kernel: Remove block group descriptor cache from ext2fs  
							
							... 
							
							
							
							This will make improving the fs easier since we need to only update
the values on the disk 
							
						 
						
							2023-03-23 18:52:58 +02:00  
				
					
						
							
							
								 
						
							
								7ca6cd61be 
								
							 
						 
						
							
							
								
								Kernel: Move get_unix_time to RTC namespace  
							
							
							
						 
						
							2023-03-23 18:14:51 +02:00  
				
					
						
							
							
								 
						
							
								3ef72e8a7b 
								
							 
						 
						
							
							
								
								BAN: Modify Span constructors to keep constness correctly  
							
							
							
						 
						
							2023-03-23 14:26:03 +02:00  
				
					
						
							
							
								 
						
							
								9b56801c3d 
								
							 
						 
						
							
							
								
								Kernel: StorageDevice and Ext2 "support" writing  
							
							
							
						 
						
							2023-03-23 13:04:13 +02:00  
				
					
						
							
							
								 
						
							
								5f6c58ffd2 
								
							 
						 
						
							
							
								
								Kernel: Shell now prints unix time with 'date' command  
							
							
							
						 
						
							2023-03-23 11:13:51 +02:00  
				
					
						
							
							
								 
						
							
								74949401bd 
								
							 
						 
						
							
							
								
								Kernel: Cleanup GPT parsing code  
							
							
							
						 
						
							2023-03-23 11:13:14 +02:00  
				
					
						
							
							
								 
						
							
								4ffc69a6e4 
								
							 
						 
						
							
							
								
								Kernel: TTY buffer is resized on font size change  
							
							... 
							
							
							
							Shell also has better line wrapping. You still can't visually go
back to previous line, but atleas we now write from the beginning
of the line 
							
						 
						
							2023-03-22 02:09:22 +02:00  
				
					
						
							
							
								 
						
							
								61ac9833be 
								
							 
						 
						
							
							
								
								Kernel: Reading from fd verifies that file is opened for reading  
							
							
							
						 
						
							2023-03-22 01:55:58 +02:00  
				
					
						
							
							
								 
						
							
								dbf7d9f19e 
								
							 
						 
						
							
							
								
								Kernel: Ext2 directory functions now fail on invalid blocks  
							
							... 
							
							
							
							Invalid blocks should only happen while writing to a file and
I think in that case we should just bail out instead of giving
you incomlete inode list or search result. 
							
						 
						
							2023-03-22 01:55:57 +02:00  
				
					
						
							
							
								 
						
							
								a6e5a0b704 
								
							 
						 
						
							
							
								
								Kernel: cksum uses now a different crc32_table to match linux 'cksum'  
							
							
							
						 
						
							2023-03-22 01:55:21 +02:00  
				
					
						
							
							
								 
						
							
								337463ec16 
								
							 
						 
						
							
							
								
								Kernel: Ext2 can now read from non-block-size aligned offsets  
							
							
							
						 
						
							2023-03-21 19:19:17 +02:00  
				
					
						
							
							
								 
						
							
								072954480d 
								
							 
						 
						
							
							
								
								Kernel: Remove obsolete Ext2FS::ext2_root_inode()  
							
							... 
							
							
							
							This was not used by anyone and the cast was wrong anyway 
							
						 
						
							2023-03-21 18:19:48 +02:00  
				
					
						
							
							
								 
						
							
								3652d11059 
								
							 
						 
						
							
							
								
								Kernel: Remove for_each_block from Ext2  
							
							
							
						 
						
							2023-03-21 18:14:02 +02:00  
				
					
						
							
							
								 
						
							
								54824aec74 
								
							 
						 
						
							
							
								
								Kernel: Cleanup font parsing  
							
							... 
							
							
							
							We use now the LittleEndian<> wrapper for PSF2 header and no more
magic constants in code 
							
						 
						
							2023-03-20 19:48:08 +02:00  
				
					
						
							
							
								 
						
							
								75e85def83 
								
							 
						 
						
							
							
								
								Kernel: prefs font does not allocate extra buffer  
							
							
							
						 
						
							2023-03-20 19:48:01 +02:00  
				
					
						
							
							
								 
						
							
								f9ae1f0023 
								
							 
						 
						
							
							
								
								Kernel: Fix PC Screen font parsing  
							
							... 
							
							
							
							I had misread the format and the parsing code was incorrect. I also
changed fonts to store unicode codepoints as 32 bit integers, so
every character can be represented 
							
						 
						
							2023-03-20 14:52:42 +02:00  
				
					
						
							
							
								 
						
							
								896b4c280c 
								
							 
						 
						
							
							
								
								Kernel: Font parsing uses Spans now  
							
							
							
						 
						
							2023-03-20 13:35:54 +02:00  
				
					
						
							
							
								 
						
							
								e4bcd98904 
								
							 
						 
						
							
							
								
								Kernel: Add basic mounting to VFS.  
							
							
							
						 
						
							2023-03-19 05:51:25 +02:00  
				
					
						
							
							
								 
						
							
								3570764448 
								
							 
						 
						
							
							
								
								Kernel: Add comparison operator for inodes  
							
							
							
						 
						
							2023-03-19 03:34:23 +02:00  
				
					
						
							
							
								 
						
							
								b41491e205 
								
							 
						 
						
							
							
								
								Kernel: Add cksum to Shell for file read testing  
							
							... 
							
							
							
							I also removed the 'using namespace BAN' 
							
						 
						
							2023-03-18 03:50:24 +02:00  
				
					
						
							
							
								 
						
							
								8236598f9d 
								
							 
						 
						
							
							
								
								Kernel: Optimize Ext2 disk reads  
							
							... 
							
							
							
							We used to read whole file until we reached the asked offset.
Now we can calculate the appropriate block and read just the asked data. 
							
						 
						
							2023-03-18 03:47:59 +02:00  
				
					
						
							
							
								 
						
							
								1a26a318a4 
								
							 
						 
						
							
							
								
								Kernel: Rework filesystem reading  
							
							... 
							
							
							
							We now read from a filesystem to user provided buffer.
Read sizes are determined by read call.
You should now get file descriptors and do reading through Process::current() 
							
						 
						
							2023-03-17 21:18:41 +02:00  
				
					
						
							
							
								 
						
							
								1f2ceeb329 
								
							 
						 
						
							
							
								
								Kernel: VFS caches currently open inodes  
							
							
							
						 
						
							2023-03-16 15:31:33 +02:00  
				
					
						
							
							
								 
						
							
								1b7625581d 
								
							 
						 
						
							
							
								
								Kernel: Add basic concept of Processes  
							
							... 
							
							
							
							We now create Shell as a process that has its own threads 
							
						 
						
							2023-03-16 12:17:04 +02:00  
				
					
						
							
							
								 
						
							
								c012822d49 
								
							 
						 
						
							
							
								
								BAN: Rename StringView suffix from _sv to sv  
							
							
							
						 
						
							2023-03-16 12:15:16 +02:00  
				
					
						
							
							
								 
						
							
								8b8e3cbbf0 
								
							 
						 
						
							
							
								
								Kernel/Userspace: Start initial work on userspace and syscalls  
							
							
							
						 
						
							2023-03-13 15:32:46 +02:00  
				
					
						
							
							
								 
						
							
								af854ec9e1 
								
							 
						 
						
							
							
								
								Kernel: Thread creation now takes void(*)() as entry and void* as data  
							
							... 
							
							
							
							This simplifies threading for the future and gets rid of (undefined?)
cast of member function pointer to address 
							
						 
						
							2023-03-09 15:33:42 +02:00  
				
					
						
							
							
								 
						
							
								8dbece9119 
								
							 
						 
						
							
							
								
								Kernel: kmalloc minimum align is forced to s_kmalloc_min_align  
							
							
							
						 
						
							2023-03-09 14:37:25 +02:00  
				
					
						
							
							
								 
						
							
								8940ff8002 
								
							 
						 
						
							
							
								
								Kernel: You don't have to check whether VFS is initialized or not  
							
							... 
							
							
							
							VFS now returns Error when attempting to traverse inodes if it did
not find root partition 
							
						 
						
							2023-03-09 02:31:24 +02:00  
				
					
						
							
							
								 
						
							
								fc58baf54d 
								
							 
						 
						
							
							
								
								Kernel: if VFS initialization does not find root, we fail  
							
							
							
						 
						
							2023-03-09 02:17:42 +02:00  
				
					
						
							
							
								 
						
							
								2e6e0d0ef5 
								
							 
						 
						
							
							
								
								Kernel: FIX ubsan complaining about unaligned addresses for STDHeaders  
							
							
							
						 
						
							2023-03-08 22:55:44 +02:00  
				
					
						
							
							
								 
						
							
								371dfe8ef3 
								
							 
						 
						
							
							
								
								BAN: Formatter now uses perfect forwarding on its arguments  
							
							
							
						 
						
							2023-03-08 21:31:26 +02:00  
				
					
						
							
							
								 
						
							
								7458f68c38 
								
							 
						 
						
							
							
								
								BAN: Error can now be constructed from c_string or format string  
							
							... 
							
							
							
							If the resulting string would overflow, we just truncate it to fit
the error message buffer (128) bytes 
							
						 
						
							2023-03-08 17:05:37 +02:00  
				
					
						
							
							
								 
						
							
								d90aba0963 
								
							 
						 
						
							
							
								
								Kernel: Create CriticalScope and fix kmalloc  
							
							... 
							
							
							
							This disables interrupts for the current scope and restores them
after the scope. This is used in kmalloc, since scheduler might
call into kmalloc/kfree, but deadlock if some thread is currently
trying to allocate. This allows us to use kmalloc in Scheduler. 
							
						 
						
							2023-03-08 13:55:53 +02:00  
				
					
						
							
							
								 
						
							
								a068d828fe 
								
							 
						 
						
							
							
								
								Kernel: ATA reads go through the ata controller and not only device  
							
							
							
						 
						
							2023-03-08 03:26:25 +02:00  
				
					
						
							
							
								 
						
							
								1dabe7a222 
								
							 
						 
						
							
							
								
								Kernel: More rework on Scheduler  
							
							
							
						 
						
							2023-03-08 03:26:25 +02:00  
				
					
						
							
							
								 
						
							
								e7a577f54a 
								
							 
						 
						
							
							
								
								Kernel: fix includes  
							
							
							
						 
						
							2023-03-08 03:26:25 +02:00  
				
					
						
							
							
								 
						
							
								23b3028e15 
								
							 
						 
						
							
							
								
								Kernel: Rename RefCounted -> RefPtr and implement RefCounted  
							
							
							
						 
						
							2023-03-08 03:26:25 +02:00  
				
					
						
							
							
								 
						
							
								f7ebda3bf1 
								
							 
						 
						
							
							
								
								Kernel: Move interrupt related functions to InterruptController  
							
							
							
						 
						
							2023-03-08 03:16:51 +02:00  
				
					
						
							
							
								 
						
							
								b5673278c4 
								
							 
						 
						
							
							
								
								Kernel: Disable color after Debug::dump_stack_trace  
							
							
							
						 
						
							2023-03-08 02:41:44 +02:00  
				
					
						
							
							
								 
						
							
								0b62729887 
								
							 
						 
						
							
							
								
								Kernel: Scheduler sleeping is working  
							
							... 
							
							
							
							We have to disable optimization for one function, but I'm working
on a fix 
							
						 
						
							2023-03-08 02:41:44 +02:00  
				
					
						
							
							
								 
						
							
								b8ee77eb78 
								
							 
						 
						
							
							
								
								Kernel: Initial work on new scheduler with queues  
							
							... 
							
							
							
							Sleeping is definately broken 
							
						 
						
							2023-03-08 02:41:44 +02:00  
				
					
						
							
							
								 
						
							
								a9acf1f6dc 
								
							 
						 
						
							
							
								
								Kernel: PCIDevice is now class with getters and constructor  
							
							
							
						 
						
							2023-03-08 02:41:44 +02:00  
				
					
						
							
							
								 
						
							
								42c33ebfb3 
								
							 
						 
						
							
							
								
								Kernel: kmalloc aligns size to s_kmalloc_min_align  
							
							... 
							
							
							
							We don't get unaligned memory anymore from kmalloc 
							
						 
						
							2023-03-08 02:41:44 +02:00  
				
					
						
							
							
								 
						
							
								ed18d86f08 
								
							 
						 
						
							
							
								
								Kernel: Fix spinlock unlocking in x86_64  
							
							... 
							
							
							
							Spinlock unlock used a 64 bit write on 32 bit integer, overwriting
some random memory. This caused some really hard to find bugs 
							
						 
						
							2023-03-08 02:41:44 +02:00  
				
					
						
							
							
								 
						
							
								df8811fc1a 
								
							 
						 
						
							
							
								
								Kernel: Remove "a" from .section .text  
							
							
							
						 
						
							2023-03-07 01:57:09 +02:00  
				
					
						
							
							
								 
						
							
								8a52c0f9d7 
								
							 
						 
						
							
							
								
								Kernel: Cleanup RSDP parsing code  
							
							
							
						 
						
							2023-03-07 00:41:13 +02:00  
				
					
						
							
							
								 
						
							
								06db890d49 
								
							 
						 
						
							
							
								
								Kernel: Add ubsan  
							
							... 
							
							
							
							My brain has been melting since I'm getting very random bugs.
I hope I can debug them better with ubsan :) 
							
						 
						
							2023-03-06 23:38:05 +02:00  
				
					
						
							
							
								 
						
							
								d5f302a68b 
								
							 
						 
						
							
							
								
								Kernel: kmalloc now uses two locks  
							
							... 
							
							
							
							One for fixed allocations and one for general allocations 
							
						 
						
							2023-03-06 12:40:35 +02:00  
				
					
						
							
							
								 
						
							
								f1f5e76636 
								
							 
						 
						
							
							
								
								Kernel: kmalloc requires alignment to be power of two  
							
							
							
						 
						
							2023-03-02 22:31:13 +02:00  
				
					
						
							
							
								 
						
							
								52aa98ba25 
								
							 
						 
						
							
							
								
								Kernel+LibC: Add some errno codes  
							
							... 
							
							
							
							Kernel now returns ENOMEM and other errnos, so we dont have to write
error messages 
							
						 
						
							2023-03-02 21:10:44 +02:00  
				
					
						
							
							
								 
						
							
								90a7268e5a 
								
							 
						 
						
							
							
								
								BAN: Rewrite RefCounted to return ErrorOr  
							
							
							
						 
						
							2023-03-02 12:30:11 +02:00  
				
					
						
							
							
								 
						
							
								1dd61e93b6 
								
							 
						 
						
							
							
								
								Kernel: Threads cannot take arguments anymore  
							
							
							
						 
						
							2023-03-02 01:56:09 +02:00  
				
					
						
							
							
								 
						
							
								4d8bdec16d 
								
							 
						 
						
							
							
								
								Kernel: fix i386 MMU  
							
							
							
						 
						
							2023-03-02 00:47:29 +02:00  
				
					
						
							
							
								 
						
							
								7fcbb869e1 
								
							 
						 
						
							
							
								
								Kernel: Initialize GDT in kernel code  
							
							... 
							
							
							
							We dont use the boot GDT only while booting 
							
						 
						
							2023-03-01 21:21:56 +02:00  
				
					
						
							
							
								 
						
							
								7f8cad83b1 
								
							 
						 
						
							
							
								
								Kernel: x86_64 boot script now makes GDT with null, kernel code and data  
							
							
							
						 
						
							2023-03-01 21:21:56 +02:00  
				
					
						
							
							
								 
						
							
								ba8c4dbc7f 
								
							 
						 
						
							
							
								
								Kernel: panic now disables interrupts as the first thing  
							
							
							
						 
						
							2023-03-01 21:21:56 +02:00  
				
					
						
							
							
								 
						
							
								9756de02ef 
								
							 
						 
						
							
							
								
								Kernel: MMU now takes flags when allocating pages  
							
							
							
						 
						
							2023-03-01 21:21:56 +02:00  
				
					
						
							
							
								 
						
							
								7d84f290a1 
								
							 
						 
						
							
							
								
								Kernel: Add lock to Disk reads before I forget  
							
							
							
						 
						
							2023-02-26 03:48:11 +02:00  
				
					
						
							
							
								 
						
							
								ee5d02aa70 
								
							 
						 
						
							
							
								
								Kernel: Rewrite basically all current disk io stuff  
							
							... 
							
							
							
							This is a big commit that was kinda hard to split to smaller ones.
Essentially we now look at all the mass storage devices from PCI
and initialize (P)ATA devices. This doesn't provide any more functionality
but better abstractions and everything doesn't have to be on its old
default port that might be different for modern computers. 
							
						 
						
							2023-02-26 03:00:29 +02:00  
				
					
						
							
							
								 
						
							
								40cf68a22a 
								
							 
						 
						
							
							
								
								Kernel: Shell now sleeps through Scheduler and doesn't 'hlt'  
							
							... 
							
							
							
							ls doesn't crash when trying to list file 
							
						 
						
							2023-02-26 02:57:27 +02:00  
				
					
						
							
							
								 
						
							
								04bb08d27f 
								
							 
						 
						
							
							
								
								Kernel: Add basic PCI enumeration  
							
							
							
						 
						
							2023-02-26 02:56:53 +02:00  
				
					
						
							
							
								 
						
							
								34f9912a1d 
								
							 
						 
						
							
							
								
								Kernel: Add IO functions inl, outl, and ins{b,w,l} to read into buffer  
							
							
							
						 
						
							2023-02-24 12:39:38 +02:00  
				
					
						
							
							
								 
						
							
								80f9428337 
								
							 
						 
						
							
							
								
								Kernel: Fix prefs font for 32 bit  
							
							
							
						 
						
							2023-02-24 03:19:54 +02:00  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								6a133782ed 
								
							 
						 
						
							
							
								
								All: Move to c++20  
							
							
							
						 
						
							2023-02-09 23:05:26 +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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								6cbad718fb 
								
							 
						 
						
							
							
								
								Kernel: Add some more cxxabi functionality  
							
							... 
							
							
							
							We can now declate static variables in functions 
							
						 
						
							2023-02-02 15:50:26 +02:00  
				
					
						
							
							
								 
						
							
								f6b05212e0 
								
							 
						 
						
							
							
								
								Kernel: Add is_locked() to spinlock  
							
							... 
							
							
							
							I think this is atomic read 
							
						 
						
							2023-02-02 15:49:30 +02:00  
				
					
						
							
							
								 
						
							
								01f267a321 
								
							 
						 
						
							
							
								
								Kernel: fix spinlock for i386  
							
							
							
						 
						
							2023-02-02 15:49:00 +02:00  
				
					
						
							
							
								 
						
							
								9b8de5025a 
								
							 
						 
						
							
							
								
								All: rename every function from UpperCamelCase to snake_case  
							
							... 
							
							
							
							This was a mess since I didn't know which to use but now I decided
to go with snake_case :) 
							
						 
						
							2023-02-01 21:05:44 +02:00  
				
					
						
							
							
								 
						
							
								6a9d60a8fb 
								
							 
						 
						
							
							
								
								Kernel: Implement somewhat functioning multithread support  
							
							... 
							
							
							
							This still uses only a single cpu, but we can now have 'parallelization'
This seems to work fine in qemu and bochs, but my own computer did not
like this when I last tried.
I have absolutely no idea how multithreading should actually be
implmemented and I just thought and implemented the most simple one I
could think of. This might not be in any way correct :D 
							
						 
						
							2023-02-01 01:53:35 +02:00  
				
					
						
							
							
								 
						
							
								7d8aafa0b5 
								
							 
						 
						
							
							
								
								Kernel: Add macros for current archutecture  
							
							
							
						 
						
							2023-02-01 01:52:52 +02:00  
				
					
						
							
							
								 
						
							
								337569b0ca 
								
							 
						 
						
							
							
								
								Kernel: Implement basic SpinLock  
							
							
							
						 
						
							2023-02-01 01:52:52 +02:00  
				
					
						
							
							
								 
						
							
								be502ae616 
								
							 
						 
						
							
							
								
								Kernel: Debug stacktrace now detects if it kernel panics itself  
							
							
							
						 
						
							2023-01-31 18:43:09 +02:00  
				
					
						
							
							
								 
						
							
								cb3b62d665 
								
							 
						 
						
							
							
								
								Kernel: Only allocate single GDT entry during boot.S  
							
							... 
							
							
							
							When we need more, we should probably initialize rest of them
in cpp code 
							
						 
						
							2023-01-31 18:43:09 +02:00  
				
					
						
							
							
								 
						
							
								1954f223ad 
								
							 
						 
						
							
							
								
								Kernel: Add no sse and sse2 for kernel code  
							
							
							
						 
						
							2023-01-31 18:43:09 +02:00  
				
					
						
							
							
								 
						
							
								1687028ed5 
								
							 
						 
						
							
							
								
								Kernel: Add constructor and destructor to MMU  
							
							
							
						 
						
							2023-01-30 18:54:04 +02:00  
				
					
						
							
							
								 
						
							
								6dc22b7251 
								
							 
						 
						
							
							
								
								Kernel: Add actual register values to x86_64 kernel panic  
							
							... 
							
							
							
							Very hackish implementation, but we now get actual registers at the
time of the interrupt happening 
							
						 
						
							2023-01-30 18:52:38 +02:00  
				
					
						
							
							
								 
						
							
								bfe3426f6d 
								
							 
						 
						
							
							
								
								Kernel: Add processor dump flag to APIC  
							
							
							
						 
						
							2023-01-26 13:13:46 +02:00  
				
					
						
							
							
								 
						
							
								6418d7cfc3 
								
							 
						 
						
							
							
								
								Kernel: Add Other GDT entries to x86_64  
							
							
							
						 
						
							2023-01-26 12:53:04 +02:00  
				
					
						
							
							
								 
						
							
								f0093ed2fd 
								
							 
						 
						
							
							
								
								Kernel: kmalloc_eternal now updates the used/free values  
							
							... 
							
							
							
							I also improved the kmalloc_dump_info() formatting. We format the
values as 8-digit hex numbers since (atleast for now) the kmalloc
will always be under 4 GiB address and size :) 
							
						 
						
							2023-01-26 03:04:19 +02:00  
				
					
						
							
							
								 
						
							
								e00d18029d 
								
							 
						 
						
							
							
								
								Kernel: rewrite some of APIC since it didn't work with xsdts for some reason  
							
							
							
						 
						
							2023-01-26 02:57:14 +02:00  
				
					
						
							
							
								 
						
							
								35d2e27292 
								
							 
						 
						
							
							
								
								Kernel: Improve MMU  
							
							... 
							
							
							
							We don't have to invalidate page in AllocatePage() if we don't make
any changes. We also should not assert on deallocating non-present
pages, just return early :) 
							
						 
						
							2023-01-26 02:57:14 +02:00  
				
					
						
							
							
								 
						
							
								589f338357 
								
							 
						 
						
							
							
								
								Kernel: Cleanup IDT register dump inline assembly  
							
							
							
						 
						
							2023-01-26 02:57:14 +02:00  
				
					
						
							
							
								 
						
							
								05b48fa71c 
								
							 
						 
						
							
							
								
								Kernel: add gcc option to make sure we have (r/e)bp saved on stack  
							
							
							
						 
						
							2023-01-26 02:57:14 +02:00  
				
					
						
							
							
								 
						
							
								aa0757e135 
								
							 
						 
						
							
							
								
								Kernel: Move dump_stacktrace from panic -> debug  
							
							
							
						 
						
							2023-01-26 02:57:14 +02:00  
				
					
						
							
							
								 
						
							
								e87026f01d 
								
							 
						 
						
							
							
								
								Kernel: I have no idea what this commit does  
							
							... 
							
							
							
							I had committed a change in IDT but reverted it now.
This propably only adds a spurious interrupt detection to common cpp
interrupt handler? 
							
						 
						
							2023-01-26 02:55:37 +02:00  
				
					
						
							
							
								 
						
							
								9c31790359 
								
							 
						 
						
							
							
								
								Kernel: Add option to disable Serial output  
							
							... 
							
							
							
							This makes all debug output to appear on the TTY 
							
						 
						
							2023-01-25 22:51:42 +02:00  
				
					
						
							
							
								 
						
							
								c0bc002ac6 
								
							 
						 
						
							
							
								
								Kernel: Move debug printing to its own file  
							
							... 
							
							
							
							It didn't make sense that dprint was defined in Serial.h.
We also now dump dprint to tty if there is no serial and tty is initialized 
							
						 
						
							2023-01-25 22:51:42 +02:00  
				
					
						
							
							
								 
						
							
								b315fdc27f 
								
							 
						 
						
							
							
								
								Kernel: Finally managed to get 64-bit working  
							
							... 
							
							
							
							I had weird problems with interrupts but everything should work now 
							
						 
						
							2023-01-25 19:19:28 +02:00  
				
					
						
							
							
								 
						
							
								c4670f49d4 
								
							 
						 
						
							
							
								
								Kernel: Refactor some IDT code  
							
							
							
						 
						
							2023-01-25 19:19:28 +02:00  
				
					
						
							
							
								 
						
							
								48348c9e57 
								
							 
						 
						
							
							
								
								Kernel: Cleanup APIC code. Remove unnecessary defines and add consts  
							
							
							
						 
						
							2023-01-25 19:00:41 +02:00  
				
					
						
							
							
								 
						
							
								ba53582f23 
								
							 
						 
						
							
							
								
								Kernel: Rewrite APIC and PIC more OOP friendly  
							
							... 
							
							
							
							x86_64 port is slowly coming together 
							
						 
						
							2023-01-23 20:13:57 +02:00  
				
					
						
							
							
								 
						
							
								b50bb03ed4 
								
							 
						 
						
							
							
								
								Kernel: Panic now halts machine even if we get spurious irqs  
							
							
							
						 
						
							2023-01-23 18:25:48 +02:00  
				
					
						
							
							
								 
						
							
								54043288cb 
								
							 
						 
						
							
							
								
								Kernel: Move CPUID out of arch/  
							
							... 
							
							
							
							CPUID instructions behaves the same on x86 and x86_64. I am not
planning on supporting any non x86 based architectures. 
							
						 
						
							2023-01-23 18:12:52 +02:00  
				
					
						
							
							
								 
						
							
								1b9f7aa815 
								
							 
						 
						
							
							
								
								Kernel: Rewrite the whole VESA driver  
							
							... 
							
							
							
							We dont support vga text mode currently. I might add it later if needed.
I also removed mouse 'support' from Shell since it didn't do anything
and I didn't implement arbitary bitmap rendering to framebuffer 
							
						 
						
							2023-01-23 13:21:53 +02:00  
				
					
						
							
							
								 
						
							
								10c7ef7baa 
								
							 
						 
						
							
							
								
								Kernel: MMU rename weird variable  
							
							
							
						 
						
							2023-01-22 20:16:44 +02:00  
				
					
						
							
							
								 
						
							
								b67bbab083 
								
							 
						 
						
							
							
								
								Kernel: fix dump_stacktrace  
							
							
							
						 
						
							2023-01-22 20:05:24 +02:00  
				
					
						
							
							
								 
						
							
								62469c529f 
								
							 
						 
						
							
							
								
								Kernel: IDT now allocates descriptors with kmalloc_eternal  
							
							
							
						 
						
							2023-01-22 03:18:42 +02:00  
				
					
						
							
							
								 
						
							
								026fdc251c 
								
							 
						 
						
							
							
								
								Kernel: Add kmalloc_eternal back  
							
							
							
						 
						
							2023-01-22 03:10:48 +02:00  
				
					
						
							
							
								 
						
							
								cdd27ae3db 
								
							 
						 
						
							
							
								
								Kernel: rename MMU::m_page_directory_pointer_table -> m_highest_paging_stuct  
							
							... 
							
							
							
							This might not always be pdpt. In x86_64 it is pml4/pml5 
							
						 
						
							2023-01-22 03:03:58 +02:00  
				
					
						
							
							
								 
						
							
								6ec4ba3dc9 
								
							 
						 
						
							
							
								
								Kernel: Move dump_backtrace() out of arch.  
							
							... 
							
							
							
							I discovered __builtin_frame_address() 
							
						 
						
							2023-01-22 03:00:13 +02:00  
				
					
						
							
							
								 
						
							
								fbfb3d6b70 
								
							 
						 
						
							
							
								
								Kernel: IDT cleanup GateDesctiptor usage  
							
							... 
							
							
							
							And move everything to IDT namespace 
							
						 
						
							2023-01-22 02:06:43 +02:00  
				
					
						
							
							
								 
						
							
								558374a47c 
								
							 
						 
						
							
							
								
								Kernel: IDT flush only once in initialization  
							
							
							
						 
						
							2023-01-22 02:06:43 +02:00  
				
					
						
							
							
								 
						
							
								6e24ef8323 
								
							 
						 
						
							
							
								
								Kernel: IDT cleanup Kernel panic messages  
							
							
							
						 
						
							2023-01-22 02:06:43 +02:00  
				
					
						
							
							
								 
						
							
								3e8fbbaabd 
								
							 
						 
						
							
							
								
								Kernel: Fix small typos in IDT  
							
							
							
						 
						
							2023-01-22 01:12:47 +02:00  
				
					
						
							
							
								 
						
							
								491610db2c 
								
							 
						 
						
							
							
								
								Kernel: move GDT initialization to boot.S  
							
							
							
						 
						
							2023-01-22 00:48:12 +02:00  
				
					
						
							
							
								 
						
							
								aac7595a47 
								
							 
						 
						
							
							
								
								Kernel: cleanup boot.S code and enable SSE  
							
							
							
						 
						
							2023-01-21 23:44:23 +02:00  
				
					
						
							
							
								 
						
							
								fdbc04f29d 
								
							 
						 
						
							
							
								
								Kernel: kmalloc now uses the actual kernel end location  
							
							
							
						 
						
							2023-01-21 22:40:23 +02:00  
				
					
						
							
							
								 
						
							
								9088f7b305 
								
							 
						 
						
							
							
								
								Kernel: kmalloc prints addresses on panic  
							
							
							
						 
						
							2023-01-21 22:29:44 +02:00  
				
					
						
							
							
								 
						
							
								b5453fad5c 
								
							 
						 
						
							
							
								
								Kernel: dump_stacktrace uses now "\r\n" line endings for bochs  
							
							
							
						 
						
							2023-01-21 22:21:38 +02:00  
				
					
						
							
							
								 
						
							
								bb051604a1 
								
							 
						 
						
							
							
								
								Kernel: Move dump_stacktrace() to arch folder  
							
							... 
							
							
							
							It uses mov instruction which has different register on x86/x86-64 
							
						 
						
							2023-01-21 22:16:31 +02:00  
				
					
						
							
							
								 
						
							
								9e092c80c0 
								
							 
						 
						
							
							
								
								Kernel: Cleanup boot.S  
							
							
							
						 
						
							2023-01-21 22:16:01 +02:00  
				
					
						
							
							
								 
						
							
								53a5ad3cf9 
								
							 
						 
						
							
							
								
								BAN: Function now properly forward arguments  
							
							
							
						 
						
							2023-01-17 11:16:46 +02:00  
				
					
						
							
							
								 
						
							
								b9a4530e54 
								
							 
						 
						
							
							
								
								Kernel: Kernel::Panic now dumps stacktrace to com1  
							
							
							
						 
						
							2023-01-16 21:50:50 +02:00  
				
					
						
							
							
								 
						
							
								7540fa0385 
								
							 
						 
						
							
							
								
								Kernel: Shell now 'properly' parses commandline  
							
							
							
						 
						
							2023-01-16 20:09:22 +02:00  
				
					
						
							
							
								 
						
							
								e307db47eb 
								
							 
						 
						
							
							
								
								Kernel: Kernel::Panic() will now always print to serial output  
							
							
							
						 
						
							2023-01-16 15:44:27 +02:00  
				
					
						
							
							
								 
						
							
								73abc3b2ee 
								
							 
						 
						
							
							
								
								fixup! Kernel: Move GDT to its own namespace and cleanup  
							
							
							
						 
						
							2023-01-16 15:24:59 +02:00  
				
					
						
							
							
								 
						
							
								46e5b3f3d6 
								
							 
						 
						
							
							
								
								Kernel: Move GDT to its own namespace and cleanup  
							
							
							
						 
						
							2023-01-16 15:24:10 +02:00  
				
					
						
							
							
								 
						
							
								b46fa0d116 
								
							 
						 
						
							
							
								
								Kernel: Shell can now dump kmalloc info  
							
							
							
						 
						
							2023-01-16 15:17:00 +02:00  
				
					
						
							
							
								 
						
							
								8881c1e117 
								
							 
						 
						
							
							
								
								Kernel: Shell is no longer singleton  
							
							
							
						 
						
							2023-01-16 15:16:39 +02:00  
				
					
						
							
							
								 
						
							
								1545850be3 
								
							 
						 
						
							
							
								
								Kernel: Input callbacks use the new BAN::Function  
							
							
							
						 
						
							2023-01-16 15:15:02 +02:00  
				
					
						
							
							
								 
						
							
								d5e162b1ea 
								
							 
						 
						
							
							
								
								Kernel: fix kmalloc header  
							
							
							
						 
						
							2023-01-16 12:10:50 +02:00  
				
					
						
							
							
								 
						
							
								689338b506 
								
							 
						 
						
							
							
								
								Kernel: kmalloc can now dump current memory usage  
							
							
							
						 
						
							2023-01-13 17:42:19 +02:00  
				
					
						
							
							
								 
						
							
								f547a788f2 
								
							 
						 
						
							
							
								
								Kernel: Add support for arrow keys in Shell  
							
							
							
						 
						
							2023-01-13 15:07:24 +02:00  
				
					
						
							
							
								 
						
							
								bf4b26d1fd 
								
							 
						 
						
							
							
								
								Kernel: kmalloc now returns nullptr if you try to allocate over kmalloc size  
							
							
							
						 
						
							2023-01-13 15:04:06 +02:00  
				
					
						
							
							
								 
						
							
								32453daf66 
								
							 
						 
						
							
							
								
								Kernel: actually dont map page 0  
							
							
							
						 
						
							2023-01-13 15:04:06 +02:00  
				
					
						
							
							
								 
						
							
								416a41745f 
								
							 
						 
						
							
							
								
								Kernel: Kernel::Panic now checks that TTY is initialized instead of VESA  
							
							
							
						 
						
							2023-01-13 15:04:06 +02:00  
				
					
						
							
							
								 
						
							
								77e82de51e 
								
							 
						 
						
							
							
								
								Kernel: Make IDT exceptions use a single Kernel:Panic  
							
							... 
							
							
							
							This allows IDT to print exceptions even when we dont have TTY 
							
						 
						
							2023-01-13 15:04:06 +02:00  
				
					
						
							
							
								 
						
							
								af8d486893 
								
							 
						 
						
							
							
								
								Kenrel: TTY fix cursor position with ANSI escapes  
							
							
							
						 
						
							2023-01-13 15:04:06 +02:00  
				
					
						
							
							
								 
						
							
								75ee592fb5 
								
							 
						 
						
							
							
								
								Kernel: remove debug print from MMU  
							
							
							
						 
						
							2023-01-13 00:04:50 +02:00  
				
					
						
							
							
								 
						
							
								6b73547989 
								
							 
						 
						
							
							
								
								All: edit gcc flags  
							
							
							
						 
						
							2023-01-13 00:04:15 +02:00  
				
					
						
							
							
								 
						
							
								7f01eaa936 
								
							 
						 
						
							
							
								
								Kernel: Move CPUID feature strings to cpp file  
							
							
							
						 
						
							2023-01-13 00:03:37 +02:00  
				
					
						
							
							
								 
						
							
								d0aa938b35 
								
							 
						 
						
							
							
								
								Kernel: remove unused function from kmalloc  
							
							
							
						 
						
							2023-01-13 00:03:10 +02:00  
				
					
						
							
							
								 
						
							
								4c7950cd3e 
								
							 
						 
						
							
							
								
								Kernel: remove unused function from IDT  
							
							
							
						 
						
							2023-01-13 00:02:39 +02:00  
				
					
						
							
							
								 
						
							
								61bd9da8e0 
								
							 
						 
						
							
							
								
								BAN: Add [[nodiscard]] to BAN functions returning ErrorOr  
							
							
							
						 
						
							2023-01-12 23:57:07 +02:00  
				
					
						
							
							
								 
						
							
								4ae4ad528a 
								
							 
						 
						
							
							
								
								Kernel: APIC use dprintln instead of kprintln  
							
							... 
							
							
							
							VESA drivers will be initialized much later now so kprintln
will not be available when initializing APIC 
							
						 
						
							2023-01-12 13:52:22 +02:00  
				
					
						
							
							
								 
						
							
								f412c164b3 
								
							 
						 
						
							
							
								
								Kernel: Rename ACPI debug print macro  
							
							
							
						 
						
							2023-01-12 13:48:05 +02:00  
				
					
						
							
							
								 
						
							
								5493d1bae1 
								
							 
						 
						
							
							
								
								Kernel: Add debug print to MMU and fix comment  
							
							
							
						 
						
							2023-01-12 13:46:02 +02:00  
				
					
						
							
							
								 
						
							
								301ad89783 
								
							 
						 
						
							
							
								
								Kernel: Unallocate RSDT after we are done with it  
							
							
							
						 
						
							2023-01-12 13:45:01 +02:00  
				
					
						
							
							
								 
						
							
								087d14fbb7 
								
							 
						 
						
							
							
								
								Kenrel: Remove unnecessary print from kmalloc_initialize()  
							
							
							
						 
						
							2023-01-12 13:24:41 +02:00  
				
					
						
							
							
								 
						
							
								3dfe062de1 
								
							 
						 
						
							
							
								
								Kernel: Cleanup TTY code  
							
							
							
						 
						
							2023-01-12 13:24:41 +02:00  
				
					
						
							
							
								 
						
							
								33a4fcc662 
								
							 
						 
						
							
							
								
								Kernel: Add helper macro for bochs magic break point  
							
							
							
						 
						
							2023-01-12 13:24:41 +02:00  
				
					
						
							
							
								 
						
							
								8fd51fb47d 
								
							 
						 
						
							
							
								
								Kernel: Replace Paging{.h,.cpp} with better MMU{.h,.cpp}  
							
							
							
						 
						
							2023-01-12 13:24:36 +02:00  
				
					
						
							
							
								 
						
							
								64c57ea3d0 
								
							 
						 
						
							
							
								
								Kernel: Remove obsole CPUID::IsAvailable  
							
							... 
							
							
							
							This is now a harware requirement that is verified already in boot.S 
							
						 
						
							2023-01-10 21:28:59 +02:00  
				
					
						
							
							
								 
						
							
								7d45b3cbd6 
								
							 
						 
						
							
							
								
								Kernel: Rewrote kmalloc to be much simpler and allow alignment  
							
							
							
						 
						
							2023-01-10 21:10:36 +02:00  
				
					
						
							
							
								 
						
							
								d89b6aa9ce 
								
							 
						 
						
							
							
								
								Kernel: Serial output now gives clickable links  
							
							
							
						 
						
							2023-01-10 21:09:59 +02:00  
				
					
						
							
							
								 
						
							
								6f9552d673 
								
							 
						 
						
							
							
								
								BAN: Add math to its own namespace  
							
							
							
						 
						
							2023-01-10 19:11:27 +02:00  
				
					
						
							
							
								 
						
							
								181478119e 
								
							 
						 
						
							
							
								
								Kernel: Paging is now enabled by boot.S  
							
							
							
						 
						
							2023-01-10 17:53:29 +02:00  
				
					
						
							
							
								 
						
							
								85068e27d6 
								
							 
						 
						
							
							
								
								BAN: BAN/Memory.h now provides the operator new and delete  
							
							
							
						 
						
							2023-01-10 17:51:33 +02:00  
				
					
						
							
							
								 
						
							
								c6467b8ebc 
								
							 
						 
						
							
							
								
								Kernel: Multiboot data and kernel command lines are now global variables  
							
							
							
						 
						
							2023-01-10 17:50:24 +02:00  
				
					
						
							
							
								 
						
							
								5106552bfd 
								
							 
						 
						
							
							
								
								Kernel: Serial output uses now "\r\n" as line endings  
							
							
							
						 
						
							2023-01-10 11:24:30 +02:00  
				
					
						
							
							
								 
						
							
								979a5960e4 
								
							 
						 
						
							
							
								
								Kernel: We don't use floating point arithemtic anymore in kernel  
							
							
							
						 
						
							2023-01-10 11:10:17 +02:00  
				
					
						
							
							
								 
						
							
								efd8638a96 
								
							 
						 
						
							
							
								
								Kernel: Improve kernel panic message and rename it 'panic'->'Panic'  
							
							
							
						 
						
							2023-01-09 21:57:03 +02:00  
				
					
						
							
							
								 
						
							
								531f470132 
								
							 
						 
						
							
							
								
								Kernel: Add helper to map pages with base address and size  
							
							... 
							
							
							
							This allows us to easily map enough pages for buffer with known size
VESA driver can now allocate enough memory for whole framebuffer if it
doesn't fit in a single page (1920x1080 for example) 
							
						 
						
							2023-01-05 03:44:41 +02:00  
				
					
						
							
							
								 
						
							
								086f0c7cf6 
								
							 
						 
						
							
							
								
								Kernel: Better error reporting from VESA and fix texmode rendering  
							
							
							
						 
						
							2023-01-05 03:36:20 +02:00  
				
					
						
							
							
								 
						
							
								d6623def32 
								
							 
						 
						
							
							
								
								Kernel: Paging uses now PAE with 2 MiB pages  
							
							
							
						 
						
							2023-01-05 02:00:18 +02:00  
				
					
						
							
							
								 
						
							
								a12ddfa12a 
								
							 
						 
						
							
							
								
								Kernel: Update PS/2 controller  
							
							
							
						 
						
							2023-01-04 19:22:23 +02:00  
				
					
						
							
							
								 
						
							
								fcec793873 
								
							 
						 
						
							
							
								
								Kernel: Shell now renders a mouse  
							
							... 
							
							
							
							PS/2 mouse doesn't seem to work with PIC. 
							
						 
						
							2022-12-30 20:48:15 +02:00  
				
					
						
							
							
								 
						
							
								9d9a6b2fec 
								
							 
						 
						
							
							
								
								Kernel: VESA can now print 8x16 bitmaps  
							
							
							
						 
						
							2022-12-30 20:47:25 +02:00  
				
					
						
							
							
								 
						
							
								f51ca4b642 
								
							 
						 
						
							
							
								
								Kernel: Rewrite IDT exception kernel panic message  
							
							
							
						 
						
							2022-12-30 20:03:09 +02:00  
				
					
						
							
							
								 
						
							
								fc05642b74 
								
							 
						 
						
							
							
								
								Kernel: Make Render from buffer public tty function  
							
							
							
						 
						
							2022-12-30 19:57:44 +02:00  
				
					
						
							
							
								 
						
							
								ef0b2010e0 
								
							 
						 
						
							
							
								
								Kernel: Add basic PS/2 Mouse driver  
							
							
							
						 
						
							2022-12-30 19:38:21 +02:00  
				
					
						
							
							
								 
						
							
								3c92aa45fb 
								
							 
						 
						
							
							
								
								Kernel: 'cpuinfo' command in shell now shows wheter you are running on 64-bit cpu  
							
							
							
						 
						
							2022-12-28 19:46:37 +02:00  
				
					
						
							
							
								 
						
							
								267367333e 
								
							 
						 
						
							
							
								
								Kernel: Move paging code to a helper  
							
							
							
						 
						
							2022-12-28 19:01:01 +02:00  
				
					
						
							
							
								 
						
							
								06a4ef1d87 
								
							 
						 
						
							
							
								
								Kernel: Commandline parsing does not depend on kmalloc anymore  
							
							
							
						 
						
							2022-12-28 04:17:46 +02:00  
				
					
						
							
							
								 
						
							
								5d7a767f8b 
								
							 
						 
						
							
							
								
								Kernel: Enable basic paging  
							
							
							
						 
						
							2022-12-28 04:17:34 +02:00  
				
					
						
							
							
								 
						
							
								3e8590687f 
								
							 
						 
						
							
							
								
								Kernel: Cleanup code and move kmalloc initialization to later  
							
							
							
						 
						
							2022-12-28 04:16:21 +02:00  
				
					
						
							
							
								 
						
							
								2a65c5fd0f 
								
							 
						 
						
							
							
								
								Kernel: Shell now actually prints to its TTY  
							
							
							
						 
						
							2022-12-27 20:11:49 +02:00  
				
					
						
							
							
								 
						
							
								fd4fdffd46 
								
							 
						 
						
							
							
								
								BAN::Formatter now takes putc like function as a parameter  
							
							... 
							
							
							
							This allows us to use capturing lambdas as a putc like function 
							
						 
						
							2022-12-27 19:55:07 +02:00  
				
					
						
							
							
								 
						
							
								98fc72b0d0 
								
							 
						 
						
							
							
								
								Kernel: kmalloc now aligns everything by alignof(max_align_t)  
							
							... 
							
							
							
							kmalloc properly aligns everything now.
I also changed so that kmalloc addresses are stored as uintptr_t
instead of void* or uint8_t* for easier arithemetic and less casting 
							
						 
						
							2022-12-27 19:07:20 +02:00  
				
					
						
							
							
								 
						
							
								9169020ad2 
								
							 
						 
						
							
							
								
								Kernel: Remove unnecessary checks from GraphicsPutCharAt()  
							
							
							
						 
						
							2022-12-27 18:29:51 +02:00  
				
					
						
							
							
								 
						
							
								620b836fc3 
								
							 
						 
						
							
							
								
								Kernel: VESA now somewhat handles Cursor in Graphics mode  
							
							
							
						 
						
							2022-12-27 18:29:02 +02:00  
				
					
						
							
							
								 
						
							
								2d46281c16 
								
							 
						 
						
							
							
								
								Kernel: TTY scroll is now done using memmove  
							
							... 
							
							
							
							This will be faster when memory functions will be optimized 
							
						 
						
							2022-12-27 17:45:47 +02:00  
				
					
						
							
							
								 
						
							
								5ae1fc58e9 
								
							 
						 
						
							
							
								
								Kernel: Clean code in tty and vesa  
							
							
							
						 
						
							2022-12-27 17:22:45 +02:00  
				
					
						
							
							
								 
						
							
								2535eb1c4c 
								
							 
						 
						
							
							
								
								Kernel: TTY now handles keeping terminal buffer  
							
							... 
							
							
							
							VESA Driver cannot scroll anymore, this is handled by tty 
							
						 
						
							2022-12-27 17:06:33 +02:00  
				
					
						
							
							
								 
						
							
								f7eb85babd 
								
							 
						 
						
							
							
								
								Kernel: IDT exceptions print better errors now  
							
							
							
						 
						
							2022-12-23 15:56:10 +02:00  
				
					
						
							
							
								 
						
							
								d8fd6afd12 
								
							 
						 
						
							
							
								
								Kernel: Make TTY a class  
							
							
							
						 
						
							2022-12-23 15:55:45 +02:00  
				
					
						
							
							
								 
						
							
								3f7a61a4d2 
								
							 
						 
						
							
							
								
								Kernel: VESA driver has now second buffer for fast scrolling  
							
							... 
							
							
							
							This allows us to not read from video memory, since it was very slow
I also implemented fast path for graphics clearing and scrolling if bpp is 32 
							
						 
						
							2022-12-20 14:02:44 +02:00  
				
					
						
							
							
								 
						
							
								5e2680cade 
								
							 
						 
						
							
							
								
								Kernel: You can now disable APIC from the grub commandline  
							
							
							
						 
						
							2022-12-20 11:57:09 +02:00  
				
					
						
							
							
								 
						
							
								4c559f50a4 
								
							 
						 
						
							
							
								
								BAN: StringView::Split() now precomputes number of elements  
							
							... 
							
							
							
							We dont have to resize vector on PushBack()'s if we reserve required size 
							
						 
						
							2022-12-20 11:37:28 +02:00  
				
					
						
							
							
								 
						
							
								c82caacbaa 
								
							 
						 
						
							
							
								
								Kernel: Cleanup APIC code  
							
							... 
							
							
							
							APIC seems to work on my main machine, but not on other one 
							
						 
						
							2022-12-20 04:45:46 +02:00  
				
					
						
							
							
								 
						
							
								64a5a28ff0 
								
							 
						 
						
							
							
								
								Kernel: Add time since boot to Shell  
							
							
							
						 
						
							2022-12-19 11:46:38 +02:00  
				
					
						
							
							
								 
						
							
								c8866aa88b 
								
							 
						 
						
							
							
								
								Kernel: Move GDT and IDT assembly to inline assembly  
							
							
							
						 
						
							2022-12-19 11:46:38 +02:00  
				
					
						
							
							
								 
						
							
								0bdb01ee04 
								
							 
						 
						
							
							
								
								Kernel: Replace PIC with APIC  
							
							... 
							
							
							
							If APIC/IOAPIC is not found, we fallback to PIC
Interrupts don't seem to work on real hardware (?) 
							
						 
						
							2022-12-19 11:46:25 +02:00  
				
					
						
							
							
								 
						
							
								7efa5bfb75 
								
							 
						 
						
							
							
								
								Kernel: Shell backspace unicode detection cleanup  
							
							
							
						 
						
							2022-12-16 11:53:59 +02:00  
				
					
						
							
							
								 
						
							
								f244728d33 
								
							 
						 
						
							
							
								
								Kernel: Add unicode support  
							
							
							
						 
						
							2022-12-16 03:55:13 +02:00  
				
					
						
							
							
								 
						
							
								6fe0d04f07 
								
							 
						 
						
							
							
								
								Kernel: Implement basic VESA Graphics mode driver  
							
							... 
							
							
							
							We now support VESA Graphics mode with some bitmap fonts 
							
						 
						
							2022-12-16 00:47:03 +02:00  
				
					
						
							
							
								 
						
							
								9274c9ee2f 
								
							 
						 
						
							
							
								
								Kernel: Abstract TTY to use new VESA  
							
							
							
						 
						
							2022-12-15 19:05:07 +02:00  
				
					
						
							
							
								 
						
							
								930661619b 
								
							 
						 
						
							
							
								
								Kernel: Add more functionality to Shell  
							
							... 
							
							
							
							commands 'time', 'cpuid', 'random' 
							
						 
						
							2022-12-15 17:29:35 +02:00  
				
					
						
							
							
								 
						
							
								a2d38af37a 
								
							 
						 
						
							
							
								
								Kernel: Implement 'cpuid' and enumerations for features  
							
							
							
						 
						
							2022-12-15 17:28:54 +02:00  
				
					
						
							
							
								 
						
							
								7bddcafadd 
								
							 
						 
						
							
							
								
								Kernel: Remove a lot of empty lines  
							
							
							
						 
						
							2022-12-14 21:17:46 +02:00  
				
					
						
							
							
								 
						
							
								711ba19a82 
								
							 
						 
						
							
							
								
								Kernel: Add basic Shell to test functionality  
							
							
							
						 
						
							2022-12-13 21:34:50 +02:00  
				
					
						
							
							
								 
						
							
								f8224e55b1 
								
							 
						 
						
							
							
								
								Kernel: Force strlen compilation so BAN can use it  
							
							
							
						 
						
							2022-12-13 21:33:54 +02:00  
				
					
						
							
							
								 
						
							
								ced05ff5f2 
								
							 
						 
						
							
							
								
								BAN: use only memcmp when comparing string(view) with const char*  
							
							
							
						 
						
							2022-12-13 21:32:51 +02:00  
				
					
						
							
							
								 
						
							
								833a82c8d1 
								
							 
						 
						
							
							
								
								Kernel: Fix keymay brace/bracket to correct way around  
							
							
							
						 
						
							2022-12-13 21:10:25 +02:00  
				
					
						
							
							
								 
						
							
								fd6e0ed0f7 
								
							 
						 
						
							
							
								
								Kernel: debug printing now show system time correctly  
							
							
							
						 
						
							2022-12-13 20:44:52 +02:00  
				
					
						
							
							
								 
						
							
								174daa3e02 
								
							 
						 
						
							
							
								
								Kernel: Keyboard event callback can now be registered later  
							
							
							
						 
						
							2022-12-13 16:15:10 +02:00  
				
					
						
							
							
								 
						
							
								171a33bbcd 
								
							 
						 
						
							
							
								
								Kernel/BAN: Add weekday to Time structure and get it with RTC  
							
							
							
						 
						
							2022-12-13 14:37:10 +02:00  
				
					
						
							
							
								 
						
							
								52c793bb5c 
								
							 
						 
						
							
							
								
								Kernel/BAN: Make Time a struct in BAN and add formatter to it  
							
							
							
						 
						
							2022-12-13 12:37:26 +02:00  
				
					
						
							
							
								 
						
							
								334abe6b27 
								
							 
						 
						
							
							
								
								Kernel: lol  
							
							
							
						 
						
							2022-12-13 12:12:15 +02:00  
				
					
						
							
							
								 
						
							
								68e88d9413 
								
							 
						 
						
							
							
								
								Kernel: Add clear() command public TTY API  
							
							
							
						 
						
							2022-12-13 10:45:24 +02:00  
				
					
						
							
							
								 
						
							
								e62a626b39 
								
							 
						 
						
							
							
								
								Kernel: Improve keyboard input by a lot  
							
							... 
							
							
							
							Seems to work on my 2 computerss 
							
						 
						
							2022-12-13 10:45:06 +02:00  
				
					
						
							
							
								 
						
							
								7ebe727a29 
								
							 
						 
						
							
							
								
								Kernel: Add RTC to get current time  
							
							
							
						 
						
							2022-12-13 10:41:36 +02:00  
				
					
						
							
							
								 
						
							
								835430e7b0 
								
							 
						 
						
							
							
								
								BAN: Move Formatter to new project called BAN  
							
							... 
							
							
							
							I also implemented basic ErrorOr and Queue 
							
						 
						
							2022-12-13 10:39:57 +02:00  
				
					
						
							
							
								 
						
							
								1283e74ee6 
								
							 
						 
						
							
							
								
								Kernel: Formatter now supports fill to length  
							
							
							
						 
						
							2022-12-13 01:16:49 +02:00  
				
					
						
							
							
								 
						
							
								2938c85c1a 
								
							 
						 
						
							
							
								
								Kernel: Makefile formatting  
							
							
							
						 
						
							2022-12-13 00:59:53 +02:00  
				
					
						
							
							
								 
						
							
								f6def7a747 
								
							 
						 
						
							
							
								
								Kernel: initialize every irq handler to nullptr  
							
							
							
						 
						
							2022-12-13 00:57:48 +02:00  
				
					
						
							
							
								 
						
							
								9c72f7255a 
								
							 
						 
						
							
							
								
								Kernel: Add red colors to kernel panics  
							
							
							
						 
						
							2022-12-13 00:57:13 +02:00  
				
					
						
							
							
								 
						
							
								5f75479861 
								
							 
						 
						
							
							
								
								Kernel: zero initialize VGA_MEMORY and fix colors  
							
							
							
						 
						
							2022-12-13 00:56:30 +02:00  
				
					
						
							
							
								 
						
							
								79a2bccd21 
								
							 
						 
						
							
							
								
								Kernel: kfree now checks for nullptr  
							
							
							
						 
						
							2022-12-13 00:53:19 +02:00  
				
					
						
							
							
								 
						
							
								5494d8d2ac 
								
							 
						 
						
							
							
								
								Kernel: We can now use destructors in global objects  
							
							
							
						 
						
							2022-12-13 00:52:32 +02:00  
				
					
						
							
							
								 
						
							
								ddc28a8c0e 
								
							 
						 
						
							
							
								
								Kernel: Rename Printer to Formatter  
							
							
							
						 
						
							2022-12-13 00:50:21 +02:00  
				
					
						
							
							
								 
						
							
								e1a15a4989 
								
							 
						 
						
							
							
								
								Kernel: Add video mode request for bootloader  
							
							
							
						 
						
							2022-12-10 03:55:24 +02:00  
				
					
						
							
							
								 
						
							
								03e7812cae 
								
							 
						 
						
							
							
								
								Kernel: Add basic ANSI support :)  
							
							
							
						 
						
							2022-12-10 03:53:44 +02:00  
				
					
						
							
							
								 
						
							
								862b32d735 
								
							 
						 
						
							
							
								
								Kernel: Improve kmalloc error messages  
							
							
							
						 
						
							2022-12-10 01:08:01 +02:00  
				
					
						
							
							
								 
						
							
								3d3f12bd30 
								
							 
						 
						
							
							
								
								Kernel: Add new generic Printer class  
							
							... 
							
							
							
							kprint is now just a #define to Printer::print<terminal_putc>.
This allows us to use same print formatting for serial output :) 
							
						 
						
							2022-12-10 00:57:09 +02:00  
				
					
						
							
							
								 
						
							
								26f1ebe26f 
								
							 
						 
						
							
							
								
								Kernel: Implement very basic, but functional kmalloc/kfree  
							
							
							
						 
						
							2022-12-09 00:26:24 +02:00  
				
					
						
							
							
								 
						
							
								ef56f9a239 
								
							 
						 
						
							
							
								
								Kernel: Add floating point printing to kprint  
							
							
							
						 
						
							2022-12-09 00:22:47 +02:00  
				
					
						
							
							
								 
						
							
								817de9f359 
								
							 
						 
						
							
							
								
								Kernel: Properly handle finnish keyboard layout.  
							
							... 
							
							
							
							You can now type any basic ascii character from keyboard.
Multimedia keys are not yet handled. 
							
						 
						
							2022-12-08 18:05:48 +02:00  
				
					
						
							
							
								 
						
							
								5ba7af2cf6 
								
							 
						 
						
							
							
								
								TTY: Treat tabs as spaces  
							
							
							
						 
						
							2022-12-08 17:50:44 +02:00  
				
					
						
							
							
								 
						
							
								e998615253 
								
							 
						 
						
							
							
								
								Kernel: Move GDT and IDT files to architecture specific folder  
							
							
							
						 
						
							2022-12-08 17:50:04 +02:00  
				
					
						
							
							
								 
						
							
								b7a600c86d 
								
							 
						 
						
							
							
								
								Kernel: Keyboard is now handeled "properly"  
							
							
							
						 
						
							2022-12-07 04:35:38 +02:00  
				
					
						
							
							
								 
						
							
								998184e288 
								
							 
						 
						
							
							
								
								Kernel: TTY now handles '\b'  
							
							
							
						 
						
							2022-12-07 04:35:02 +02:00  
				
					
						
							
							
								 
						
							
								4202c999fa 
								
							 
						 
						
							
							
								
								Kernel: IRQs are now working :)  
							
							
							
						 
						
							2022-12-07 02:48:44 +02:00  
				
					
						
							
							
								 
						
							
								343dda629c 
								
							 
						 
						
							
							
								
								Kernel panic now halts the system  
							
							
							
						 
						
							2022-12-03 18:19:07 +02:00  
				
					
						
							
							
								 
						
							
								c17f61611e 
								
							 
						 
						
							
							
								
								Improve buildsystem by making build directory  
							
							... 
							
							
							
							We now create build directory for kernel and libc so that source
directories are kept more clean. 
							
						 
						
							2022-12-03 18:17:37 +02:00  
				
					
						
							
							
								 
						
							
								c292ef5471 
								
							 
						 
						
							
							
								
								Improve IDT Kernel panic  
							
							
							
						 
						
							2022-11-16 20:28:07 +02:00  
				
					
						
							
							
								 
						
							
								4ebd0e5c36 
								
							 
						 
						
							
							
								
								Fix negative number printing in kprint  
							
							
							
						 
						
							2022-11-16 20:27:22 +02:00  
				
					
						
							
							
								 
						
							
								20f7c18988 
								
							 
						 
						
							
							
								
								kmalloc does not zero initialize kernel memory  
							
							
							
						 
						
							2022-11-16 19:51:45 +02:00  
				
					
						
							
							
								 
						
							
								f2b45ba212 
								
							 
						 
						
							
							
								
								Add GDT and IDT  
							
							
							
						 
						
							2022-11-16 19:49:09 +02:00  
				
					
						
							
							
								 
						
							
								b500a8a7ed 
								
							 
						 
						
							
							
								
								kmalloc  
							
							
							
						 
						
							2022-11-16 19:48:36 +02:00  
				
					
						
							
							
								 
						
							
								550ecbc951 
								
							 
						 
						
							
							
								
								Kernel panic uses kprint with parameters  
							
							
							
						 
						
							2022-11-16 19:47:19 +02:00  
				
					
						
							
							
								 
						
							
								123382eace 
								
							 
						 
						
							
							
								
								Fixes :)  
							
							
							
						 
						
							2022-11-15 21:42:14 +02:00  
				
					
						
							
							
								 
						
							
								7c06c75d6c 
								
							 
						 
						
							
							
								
								Move cursor in terminal when writing to it  
							
							
							
						 
						
							2022-11-15 09:26:14 +02:00  
				
					
						
							
							
								 
						
							
								3bc4d7d39b 
								
							 
						 
						
							
							
								
								Rename .s extensions to .S  
							
							
							
						 
						
							2022-11-15 09:25:18 +02:00  
				
					
						
							
							
								 
						
							
								d289916bc0 
								
							 
						 
						
							
							
								
								Changed back to lower half kernel, since im dump.  
							
							... 
							
							
							
							I dont see the benefit of higher half (and could not get multiboot info) 
							
						 
						
							2022-11-15 00:38:33 +02:00  
				
					
						
							
							
								 
						
							
								9e933a5ec5 
								
							 
						 
						
							
							
								
								Add kernel panic function  
							
							
							
						 
						
							2022-11-14 18:53:00 +02:00  
				
					
						
							
							
								 
						
							
								b185ed4fd3 
								
							 
						 
						
							
							
								
								Libc is now written in C++  
							
							
							
						 
						
							2022-11-14 00:31:24 +02:00  
				
					
						
							
							
								 
						
							
								fd13f74bbf 
								
							 
						 
						
							
							
								
								Changed into higher half kernel  
							
							... 
							
							
							
							https://wiki.osdev.org/Higher_Half_x86_Bare_Bones  
						
							2022-11-13 02:03:20 +02:00  
				
					
						
							
							
								 
						
							
								db656fe469 
								
							 
						 
						
							
							
								
								Implement Stack Smashing Protection  
							
							
							
						 
						
							2022-11-12 23:46:33 +02:00  
				
					
						
							
							
								 
						
							
								61609db228 
								
							 
						 
						
							
							
								
								Kernel is now in C++ :)  
							
							
							
						 
						
							2022-11-12 21:30:26 +02:00  
				
					
						
							
							
								 
						
							
								e6b4866ab0 
								
							 
						 
						
							
							
								
								Initial commit. We have a booting kernel  
							
							
							
						 
						
							2022-11-12 21:04:47 +02:00