Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								caca6dc701 
								
							 
						 
						
							
							
								
								Kernel: Exceptions will now enable interrupts before calling exit()  
							
							 
							
							... 
							
							
							
							this allows scheduler verification on reschedule() not panic 
							
						 
						
							2023-06-11 03:29:22 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								4cdeb98897 
								
							 
						 
						
							
							
								
								Kernel: We now store the  processes exit code  
							
							 
							
							
							
						 
						
							2023-06-10 17:31:56 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								841584ccbd 
								
							 
						 
						
							
							
								
								Kernel: get_free_contiguous_pages works with non-page aligned addresses  
							
							 
							
							... 
							
							
							
							also fix bug in ordering 
							
						 
						
							2023-06-06 02:03:23 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								896b919c9d 
								
							 
						 
						
							
							
								
								Kernel/LibC: pass environ pointer to process  
							
							 
							
							
							
						 
						
							2023-06-05 21:12:08 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								b403155ca9 
								
							 
						 
						
							
							
								
								Kernel: You can specify first vaddr for getting free pages  
							
							 
							
							
							
						 
						
							2023-06-04 01:15:48 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								b168462b43 
								
							 
						 
						
							
							
								
								Kernel: PageTable now has debug_dump  
							
							 
							
							... 
							
							
							
							This dumps all the mapped pages and their flags 
							
						 
						
							2023-06-03 20:08:13 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								68691faca1 
								
							 
						 
						
							
							
								
								Kernel: boot.S is back to 2 MiB pages  
							
							 
							
							... 
							
							
							
							bochs doesn't seem to support 1 GiB pages 
							
						 
						
							2023-06-03 18:53:36 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								dcb23f686f 
								
							 
						 
						
							
							
								
								Kernel: boot.S maps GiB as single pdpte  
							
							 
							
							
							
						 
						
							2023-05-31 00:51:15 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								650570e57d 
								
							 
						 
						
							
							
								
								Kernel: Fix comment  
							
							 
							
							
							
						 
						
							2023-05-31 00:51:15 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								1f5a36f074 
								
							 
						 
						
							
							
								
								Kernel: PageTable destructor works now  
							
							 
							
							... 
							
							
							
							we are successfully booting higher half kernel now :) 
							
						 
						
							2023-05-31 00:44:14 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								aeaf2cd3f1 
								
							 
						 
						
							
							
								
								Kernel: PageTable::create_userspace() now works  
							
							 
							
							
							
						 
						
							2023-05-31 00:44:14 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								67886b0c5a 
								
							 
						 
						
							
							
								
								Kernel: Move V2P and P2V to Memory/Types.h  
							
							 
							
							
							
						 
						
							2023-05-30 23:57:03 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								56eb6fb4ce 
								
							 
						 
						
							
							
								
								Kernel: PageTable::map_range_at maps correctly the last page  
							
							 
							
							
							
						 
						
							2023-05-30 23:56:07 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								81cf389754 
								
							 
						 
						
							
							
								
								Kernel: Booting with higher half kernel gets to Heap initialization  
							
							 
							
							
							
						 
						
							2023-05-30 22:21:12 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								0907965dc5 
								
							 
						 
						
							
							
								
								Kernel: start work on higher half kernel  
							
							 
							
							
							
						 
						
							2023-05-30 08:00:17 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								210d90ec79 
								
							 
						 
						
							
							
								
								Kernel: We now identity map full GiB in boot.S  
							
							 
							
							... 
							
							
							
							The paging structure is pre-built so no unnecessary calculations are done 
							
						 
						
							2023-05-30 00:08:52 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								5bb1f2a48c 
								
							 
						 
						
							
							
								
								Kernel: Rename MMU to PageTable  
							
							 
							
							... 
							
							
							
							This is more descriptive name for what it actually represents 
							
						 
						
							2023-05-29 21:06:09 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								fb17af4844 
								
							 
						 
						
							
							
								
								Kernel/LibC: opening standard files is done in libc  
							
							 
							
							
							
						 
						
							2023-05-29 20:21:19 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								b8ec8918b7 
								
							 
						 
						
							
							
								
								Kernel: We can't lock the MMU lock in load()  
							
							 
							
							... 
							
							
							
							It needs to be callable always by scheduler 
							
						 
						
							2023-05-29 19:39:35 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								ff83f967d8 
								
							 
						 
						
							
							
								
								Kernel: Make RecursiveSpinLock thread safe  
							
							 
							
							... 
							
							
							
							also SpinLock is now implemented with gcc builtins 
							
						 
						
							2023-05-29 19:38:09 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								ec73db0057 
								
							 
						 
						
							
							
								
								Kernel: Move page macros to Types.h  
							
							 
							
							
							
						 
						
							2023-05-28 21:03:08 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								833642d405 
								
							 
						 
						
							
							
								
								Kernel: ISR will now crash userspace process instead of panicing kernel  
							
							 
							
							
							
						 
						
							2023-05-28 20:53:10 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								3e93dae53c 
								
							 
						 
						
							
							
								
								Kernel: Add invalidate() to MMU  
							
							 
							
							
							
						 
						
							2023-05-28 18:05:49 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								187bb046aa 
								
							 
						 
						
							
							
								
								Kernel: fix MMU::map_page_at()  
							
							 
							
							... 
							
							
							
							We used to only reassign if flags changed 
							
						 
						
							2023-05-28 17:57:05 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								869de7283f 
								
							 
						 
						
							
							
								
								Kernel: MMU::get() is now MMU::kernel  
							
							 
							
							... 
							
							
							
							MMU is can now be locked with RecursiveSpinLock.
Scheduler now has get_current_tid() that works before the Scheduler
is initialized. This allows RecursiveSpinLock usage early on. 
							
						 
						
							2023-05-28 16:18:18 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								e0a72defa2 
								
							 
						 
						
							
							
								
								Kernel: Add argc and argv to process entry  
							
							 
							
							
							
						 
						
							2023-05-16 00:27:49 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								6acb86c14b 
								
							 
						 
						
							
							
								
								Kernel: MMU keeps track of the current  
							
							 
							
							
							
						 
						
							2023-05-16 00:26:39 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								ec316391c5 
								
							 
						 
						
							
							
								
								Kernel: argc is passed as zero to userspace  
							
							 
							
							
							
						 
						
							2023-05-11 18:28:32 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								ff2e2937a5 
								
							 
						 
						
							
							
								
								Kernel: Remove offset from OpenFileDescriptor  
							
							 
							
							... 
							
							
							
							This is now handled on the libc side. There might be reasons to
have it in kernel side, but for simplicity's sake I'm moving it
to libc for now :) 
							
						 
						
							2023-05-09 20:31:22 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								512be884ed 
								
							 
						 
						
							
							
								
								Kernel: Add barebones GeneralAllocator for >4096B  
							
							 
							
							
							
						 
						
							2023-05-08 22:10:49 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								ab8aac7dcf 
								
							 
						 
						
							
							
								
								Kernel: GDT tss selector is now 16 bit value  
							
							 
							
							
							
						 
						
							2023-05-06 17:34:22 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								f36b94d039 
								
							 
						 
						
							
							
								
								Kernel: MMU can now provide info about virtual address space  
							
							 
							
							
							
						 
						
							2023-05-06 17:34:22 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								92daa831d1 
								
							 
						 
						
							
							
								
								Kernel: ISRs now print pid and tid  
							
							 
							
							
							
						 
						
							2023-05-06 00:10:15 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								e7a170c89f 
								
							 
						 
						
							
							
								
								Kernel: 64 bit MMU now properly identity maps kernel  
							
							 
							
							
							
						 
						
							2023-05-05 14:19:28 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								55bb0084aa 
								
							 
						 
						
							
							
								
								Kernel: namespace and function renames  
							
							 
							
							... 
							
							
							
							MMU moved to namespace kernel
Kernel::Memory::Heap moved to just Kernel
MMU::map_{page,range} renamed to identity_map_{page,range}
Add MMU::get_page_flags 
							
						 
						
							2023-04-28 14:48:38 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								acf5660090 
								
							 
						 
						
							
							
								
								Kernel: Add set_tss_stack() to 32 bit  
							
							 
							
							
							
						 
						
							2023-04-28 14:44:23 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								f1a0625b61 
								
							 
						 
						
							
							
								
								Kernel: TSS stack can be set after initialization  
							
							 
							
							
							
						 
						
							2023-04-25 14:48:12 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								fb6add2b4a 
								
							 
						 
						
							
							
								
								Kernel: Fix 32 bit MMU  
							
							 
							
							
							
						 
						
							2023-04-22 18:22:39 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								e0ce2394fe 
								
							 
						 
						
							
							
								
								Kernel: Remove obsolete userspace stuff from kernel  
							
							 
							
							
							
						 
						
							2023-04-22 15:38:45 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								fc71d2f7c4 
								
							 
						 
						
							
							
								
								Kernel: Don't call 'cli' on interrupt  
							
							 
							
							... 
							
							
							
							This is automatically done because we are using interrupt gates
in the IDT 
							
						 
						
							2023-04-21 11:18:08 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								35e949ef5e 
								
							 
						 
						
							
							
								
								Kernel: Fix syscall return value in 32 bit  
							
							 
							
							
							
						 
						
							2023-04-21 11:08:02 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								9c506ef85b 
								
							 
						 
						
							
							
								
								Kernel: Stack pointer is validated when updated  
							
							 
							
							... 
							
							
							
							This allows us not to fail stack pointer when in syscall since
interrupts use their own stack 
							
						 
						
							2023-04-21 10:40:24 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								b1c7af38d0 
								
							 
						 
						
							
							
								
								Kernel: Add barebones per process virtual addresses  
							
							 
							
							... 
							
							
							
							We now assign every (userspace) process its own MMU which we load
in scheduler. This allows every process to have separate virtual
address space.
This is very hackish implementations but it works for now 
							
						 
						
							2023-04-20 00:45:41 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								ea0c9b639f 
								
							 
						 
						
							
							
								
								Kernel: Add some bareboness functionality to map virtual addresses  
							
							 
							
							
							
						 
						
							2023-04-19 23:51:36 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								0030f035be 
								
							 
						 
						
							
							
								
								Kernel: Rename MMU::{un,}allocate... to MMU::{un,}map  
							
							 
							
							... 
							
							
							
							This is more appropriate name for the behaviour :D 
							
						 
						
							2023-04-19 21:50:30 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								6a3b3213cf 
								
							 
						 
						
							
							
								
								Kernel: Kmalloc now has its memory statically allocated  
							
							 
							
							... 
							
							
							
							We don't use the memory map given by bootloader since this automatically
maps the memory to a available space. 
							
						 
						
							2023-04-18 10:18:15 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								fdb4eb6042 
								
							 
						 
						
							
							
								
								Kernel: Move kmalloc and MMU to Memory directory  
							
							 
							
							
							
						 
						
							2023-04-18 10:18:15 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								3f9d6f0311 
								
							 
						 
						
							
							
								
								LibC: add needed stubs to build executables with our compiler  
							
							 
							
							
							
						 
						
							2023-04-12 17:53:02 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								8ee63f8264 
								
							 
						 
						
							
							
								
								Kernel: We can create basic userspace processes  
							
							 
							
							... 
							
							
							
							These are still allocated on the kernel memory 
							
						 
						
							2023-04-12 17:52:36 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								f924ac9265 
								
							 
						 
						
							
							
								
								Kernel: Threads can now be terminated mid execution  
							
							 
							
							
							
						 
						
							2023-04-10 21:07:25 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								3f01f936a1 
								
							 
						 
						
							
							
								
								Kernel: Fix framepointers on started threads  
							
							 
							
							
							
						 
						
							2023-04-10 21:07:25 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								25ddc24754 
								
							 
						 
						
							
							
								
								BuildSystem: cmake can now build out libc  
							
							 
							
							... 
							
							
							
							I can't seem to get libc++ build to work... 
							
						 
						
							2023-04-10 21:07:25 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								c936aac777 
								
							 
						 
						
							
							
								
								Kernel: Optimize scheduler idling  
							
							 
							
							... 
							
							
							
							Now after each interrupt we will ask the scheduler to reschedule
if the current thread is the idle thread. This allows semaphore
unblocking to be practically instant when there is only one thread
executing.
Now disk reading is back to ~3 MB/s for single threaded process 
							
						 
						
							2023-04-03 01:51:05 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								4c5176f751 
								
							 
						 
						
							
							
								
								BuildSystem: We are now using cmake instead of plain make  
							
							 
							
							... 
							
							
							
							I have been annoyed for a while since I had to build everything
when running the os since the buildsystem was really bad.
I wanted to rewrite the whole build system and changed to using cmake
:) 
							
						 
						
							2023-04-02 04:07:27 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								8b8e3cbbf0 
								
							 
						 
						
							
							
								
								Kernel/Userspace: Start initial work on userspace and syscalls  
							
							 
							
							
							
						 
						
							2023-03-13 15:32:46 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								df8811fc1a 
								
							 
						 
						
							
							
								
								Kernel: Remove "a" from .section .text  
							
							 
							
							
							
						 
						
							2023-03-07 01:57:09 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								1dd61e93b6 
								
							 
						 
						
							
							
								
								Kernel: Threads cannot take arguments anymore  
							
							 
							
							
							
						 
						
							2023-03-02 01:56:09 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								4d8bdec16d 
								
							 
						 
						
							
							
								
								Kernel: fix i386 MMU  
							
							 
							
							
							
						 
						
							2023-03-02 00:47:29 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								7fcbb869e1 
								
							 
						 
						
							
							
								
								Kernel: Initialize GDT in kernel code  
							
							 
							
							... 
							
							
							
							We dont use the boot GDT only while booting 
							
						 
						
							2023-03-01 21:21:56 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								7f8cad83b1 
								
							 
						 
						
							
							
								
								Kernel: x86_64 boot script now makes GDT with null, kernel code and data  
							
							 
							
							
							
						 
						
							2023-03-01 21:21:56 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								9756de02ef 
								
							 
						 
						
							
							
								
								Kernel: MMU now takes flags when allocating pages  
							
							 
							
							
							
						 
						
							2023-03-01 21:21:56 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								80f9428337 
								
							 
						 
						
							
							
								
								Kernel: Fix prefs font for 32 bit  
							
							 
							
							
							
						 
						
							2023-02-24 03:19:54 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								c9ea22f5e2 
								
							 
						 
						
							
							
								
								Kernel: IDT now confirms that it allocated succesfully  
							
							 
							
							
							
						 
						
							2023-02-22 21:48:40 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								1bd8b0fe5c 
								
							 
						 
						
							
							
								
								Kernel: Sleep now actually sleeps and allows idling  
							
							 
							
							
							
						 
						
							2023-02-19 18:52:25 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								6fab26692b 
								
							 
						 
						
							
							
								
								Kernel: remove unnecessary function from x86_64 Thread.S  
							
							 
							
							
							
						 
						
							2023-02-02 23:48:18 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								c85b97abee 
								
							 
						 
						
							
							
								
								Kernel: fix some of i368 IDT. This was really broken  
							
							 
							
							
							
						 
						
							2023-02-02 15:52:06 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								01f267a321 
								
							 
						 
						
							
							
								
								Kernel: fix spinlock for i386  
							
							 
							
							
							
						 
						
							2023-02-02 15:49:00 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								337569b0ca 
								
							 
						 
						
							
							
								
								Kernel: Implement basic SpinLock  
							
							 
							
							
							
						 
						
							2023-02-01 01:52:52 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								1687028ed5 
								
							 
						 
						
							
							
								
								Kernel: Add constructor and destructor to MMU  
							
							 
							
							
							
						 
						
							2023-01-30 18:54:04 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								6418d7cfc3 
								
							 
						 
						
							
							
								
								Kernel: Add Other GDT entries to x86_64  
							
							 
							
							
							
						 
						
							2023-01-26 12:53:04 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								589f338357 
								
							 
						 
						
							
							
								
								Kernel: Cleanup IDT register dump inline assembly  
							
							 
							
							
							
						 
						
							2023-01-26 02:57:14 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								c4670f49d4 
								
							 
						 
						
							
							
								
								Kernel: Refactor some IDT code  
							
							 
							
							
							
						 
						
							2023-01-25 19:19:28 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								ba53582f23 
								
							 
						 
						
							
							
								
								Kernel: Rewrite APIC and PIC more OOP friendly  
							
							 
							
							... 
							
							
							
							x86_64 port is slowly coming together 
							
						 
						
							2023-01-23 20:13:57 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								10c7ef7baa 
								
							 
						 
						
							
							
								
								Kernel: MMU rename weird variable  
							
							 
							
							
							
						 
						
							2023-01-22 20:16:44 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								62469c529f 
								
							 
						 
						
							
							
								
								Kernel: IDT now allocates descriptors with kmalloc_eternal  
							
							 
							
							
							
						 
						
							2023-01-22 03:18:42 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								6ec4ba3dc9 
								
							 
						 
						
							
							
								
								Kernel: Move dump_backtrace() out of arch.  
							
							 
							
							... 
							
							
							
							I discovered __builtin_frame_address() 
							
						 
						
							2023-01-22 03:00:13 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								fbfb3d6b70 
								
							 
						 
						
							
							
								
								Kernel: IDT cleanup GateDesctiptor usage  
							
							 
							
							... 
							
							
							
							And move everything to IDT namespace 
							
						 
						
							2023-01-22 02:06:43 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								558374a47c 
								
							 
						 
						
							
							
								
								Kernel: IDT flush only once in initialization  
							
							 
							
							
							
						 
						
							2023-01-22 02:06:43 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								6e24ef8323 
								
							 
						 
						
							
							
								
								Kernel: IDT cleanup Kernel panic messages  
							
							 
							
							
							
						 
						
							2023-01-22 02:06:43 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								3e8fbbaabd 
								
							 
						 
						
							
							
								
								Kernel: Fix small typos in IDT  
							
							 
							
							
							
						 
						
							2023-01-22 01:12:47 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								491610db2c 
								
							 
						 
						
							
							
								
								Kernel: move GDT initialization to boot.S  
							
							 
							
							
							
						 
						
							2023-01-22 00:48:12 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								aac7595a47 
								
							 
						 
						
							
							
								
								Kernel: cleanup boot.S code and enable SSE  
							
							 
							
							
							
						 
						
							2023-01-21 23:44:23 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								b5453fad5c 
								
							 
						 
						
							
							
								
								Kernel: dump_stacktrace uses now "\r\n" line endings for bochs  
							
							 
							
							
							
						 
						
							2023-01-21 22:21:38 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								9e092c80c0 
								
							 
						 
						
							
							
								
								Kernel: Cleanup boot.S  
							
							 
							
							
							
						 
						
							2023-01-21 22:16:01 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								b9a4530e54 
								
							 
						 
						
							
							
								
								Kernel: Kernel::Panic now dumps stacktrace to com1  
							
							 
							
							
							
						 
						
							2023-01-16 21:50:50 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								73abc3b2ee 
								
							 
						 
						
							
							
								
								fixup! Kernel: Move GDT to its own namespace and cleanup  
							
							 
							
							
							
						 
						
							2023-01-16 15:24:59 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								46e5b3f3d6 
								
							 
						 
						
							
							
								
								Kernel: Move GDT to its own namespace and cleanup  
							
							 
							
							
							
						 
						
							2023-01-16 15:24:10 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								32453daf66 
								
							 
						 
						
							
							
								
								Kernel: actually dont map page 0  
							
							 
							
							
							
						 
						
							2023-01-13 15:04:06 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								416a41745f 
								
							 
						 
						
							
							
								
								Kernel: Kernel::Panic now checks that TTY is initialized instead of VESA  
							
							 
							
							
							
						 
						
							2023-01-13 15:04:06 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								75ee592fb5 
								
							 
						 
						
							
							
								
								Kernel: remove debug print from MMU  
							
							 
							
							
							
						 
						
							2023-01-13 00:04:50 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								7f01eaa936 
								
							 
						 
						
							
							
								
								Kernel: Move CPUID feature strings to cpp file  
							
							 
							
							
							
						 
						
							2023-01-13 00:03:37 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								4c7950cd3e 
								
							 
						 
						
							
							
								
								Kernel: remove unused function from IDT  
							
							 
							
							
							
						 
						
							2023-01-13 00:02:39 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								f412c164b3 
								
							 
						 
						
							
							
								
								Kernel: Rename ACPI debug print macro  
							
							 
							
							
							
						 
						
							2023-01-12 13:48:05 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								5493d1bae1 
								
							 
						 
						
							
							
								
								Kernel: Add debug print to MMU and fix comment  
							
							 
							
							
							
						 
						
							2023-01-12 13:46:02 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								301ad89783 
								
							 
						 
						
							
							
								
								Kernel: Unallocate RSDT after we are done with it  
							
							 
							
							
							
						 
						
							2023-01-12 13:45:01 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								8fd51fb47d 
								
							 
						 
						
							
							
								
								Kernel: Replace Paging{.h,.cpp} with better MMU{.h,.cpp}  
							
							 
							
							
							
						 
						
							2023-01-12 13:24:36 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								6f9552d673 
								
							 
						 
						
							
							
								
								BAN: Add math to its own namespace  
							
							 
							
							
							
						 
						
							2023-01-10 19:11:27 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								181478119e 
								
							 
						 
						
							
							
								
								Kernel: Paging is now enabled by boot.S  
							
							 
							
							
							
						 
						
							2023-01-10 17:53:29 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								c6467b8ebc 
								
							 
						 
						
							
							
								
								Kernel: Multiboot data and kernel command lines are now global variables  
							
							 
							
							
							
						 
						
							2023-01-10 17:50:24 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								efd8638a96 
								
							 
						 
						
							
							
								
								Kernel: Improve kernel panic message and rename it 'panic'->'Panic'  
							
							 
							
							
							
						 
						
							2023-01-09 21:57:03 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								086f0c7cf6 
								
							 
						 
						
							
							
								
								Kernel: Better error reporting from VESA and fix texmode rendering  
							
							 
							
							
							
						 
						
							2023-01-05 03:36:20 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								d6623def32 
								
							 
						 
						
							
							
								
								Kernel: Paging uses now PAE with 2 MiB pages  
							
							 
							
							
							
						 
						
							2023-01-05 02:00:18 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								9d9a6b2fec 
								
							 
						 
						
							
							
								
								Kernel: VESA can now print 8x16 bitmaps  
							
							 
							
							
							
						 
						
							2022-12-30 20:47:25 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								f51ca4b642 
								
							 
						 
						
							
							
								
								Kernel: Rewrite IDT exception kernel panic message  
							
							 
							
							
							
						 
						
							2022-12-30 20:03:09 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								fc05642b74 
								
							 
						 
						
							
							
								
								Kernel: Make Render from buffer public tty function  
							
							 
							
							
							
						 
						
							2022-12-30 19:57:44 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								ef0b2010e0 
								
							 
						 
						
							
							
								
								Kernel: Add basic PS/2 Mouse driver  
							
							 
							
							
							
						 
						
							2022-12-30 19:38:21 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								3c92aa45fb 
								
							 
						 
						
							
							
								
								Kernel: 'cpuinfo' command in shell now shows wheter you are running on 64-bit cpu  
							
							 
							
							
							
						 
						
							2022-12-28 19:46:37 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								267367333e 
								
							 
						 
						
							
							
								
								Kernel: Move paging code to a helper  
							
							 
							
							
							
						 
						
							2022-12-28 19:01:01 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								5d7a767f8b 
								
							 
						 
						
							
							
								
								Kernel: Enable basic paging  
							
							 
							
							
							
						 
						
							2022-12-28 04:17:34 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								3e8590687f 
								
							 
						 
						
							
							
								
								Kernel: Cleanup code and move kmalloc initialization to later  
							
							 
							
							
							
						 
						
							2022-12-28 04:16:21 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								9169020ad2 
								
							 
						 
						
							
							
								
								Kernel: Remove unnecessary checks from GraphicsPutCharAt()  
							
							 
							
							
							
						 
						
							2022-12-27 18:29:51 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								620b836fc3 
								
							 
						 
						
							
							
								
								Kernel: VESA now somewhat handles Cursor in Graphics mode  
							
							 
							
							
							
						 
						
							2022-12-27 18:29:02 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								5ae1fc58e9 
								
							 
						 
						
							
							
								
								Kernel: Clean code in tty and vesa  
							
							 
							
							
							
						 
						
							2022-12-27 17:22:45 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								f7eb85babd 
								
							 
						 
						
							
							
								
								Kernel: IDT exceptions print better errors now  
							
							 
							
							
							
						 
						
							2022-12-23 15:56:10 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								d8fd6afd12 
								
							 
						 
						
							
							
								
								Kernel: Make TTY a class  
							
							 
							
							
							
						 
						
							2022-12-23 15:55:45 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								5e2680cade 
								
							 
						 
						
							
							
								
								Kernel: You can now disable APIC from the grub commandline  
							
							 
							
							
							
						 
						
							2022-12-20 11:57:09 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								64a5a28ff0 
								
							 
						 
						
							
							
								
								Kernel: Add time since boot to Shell  
							
							 
							
							
							
						 
						
							2022-12-19 11:46:38 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								c8866aa88b 
								
							 
						 
						
							
							
								
								Kernel: Move GDT and IDT assembly to inline assembly  
							
							 
							
							
							
						 
						
							2022-12-19 11:46:38 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								f244728d33 
								
							 
						 
						
							
							
								
								Kernel: Add unicode support  
							
							 
							
							
							
						 
						
							2022-12-16 03:55:13 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								9274c9ee2f 
								
							 
						 
						
							
							
								
								Kernel: Abstract TTY to use new VESA  
							
							 
							
							
							
						 
						
							2022-12-15 19:05:07 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								a2d38af37a 
								
							 
						 
						
							
							
								
								Kernel: Implement 'cpuid' and enumerations for features  
							
							 
							
							
							
						 
						
							2022-12-15 17:28:54 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								f6def7a747 
								
							 
						 
						
							
							
								
								Kernel: initialize every irq handler to nullptr  
							
							 
							
							
							
						 
						
							2022-12-13 00:57:48 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								5f75479861 
								
							 
						 
						
							
							
								
								Kernel: zero initialize VGA_MEMORY and fix colors  
							
							 
							
							
							
						 
						
							2022-12-13 00:56:30 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								e1a15a4989 
								
							 
						 
						
							
							
								
								Kernel: Add video mode request for bootloader  
							
							 
							
							
							
						 
						
							2022-12-10 03:55:24 +02:00