Bananymous 
							
						 
						
							
								0c590821ed 
								
							 
						 
						
							
							
								
								Kernel: only map kernel from g_kernel_start onwards  
							
							
							
						 
						
							2023-10-30 16:22:02 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								6ef153b6ca 
								
							 
						 
						
							
							
								
								Kernel: Enable Write Protect. This seems to be good for security  
							
							
							
						 
						
							2023-10-30 12:23:22 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								130a69bac6 
								
							 
						 
						
							
							
								
								Kernel: Fix stack OOB detection  
							
							... 
							
							
							
							I now check both interrupt and normal stack to detect OOB. Processes
are killed if they encouner stack over/under flow. 
							
						 
						
							2023-10-30 12:17:08 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								0b5fcb3f88 
								
							 
						 
						
							
							
								
								Kernel/LibC: Add crt* files to LibC and remove crt0 from kernel  
							
							... 
							
							
							
							There was no reason for libc get crt0 from kernel. 
							
						 
						
							2023-10-30 11:06:13 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								c17cdb39d5 
								
							 
						 
						
							
							
								
								Kernel: Map multiboot2 memory in PageTable initialization  
							
							... 
							
							
							
							It cannot be assumed that multiboot data lies between kernel_end
and 2 GiB mark, so I properly allocate virtual address space for it. 
							
						 
						
							2023-10-17 01:15:08 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								69a39b7077 
								
							 
						 
						
							
							
								
								Kernel: Start using multiboot2 instead of multiboot  
							
							... 
							
							
							
							This allows better compatibility with (U)EFI and gives RSDP location
instead of me having to scan ram to find it. 
							
						 
						
							2023-10-17 01:06:24 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								128202a55a 
								
							 
						 
						
							
							
								
								Kernel: Cleanup GDT code  
							
							
							
						 
						
							2023-10-13 16:18:22 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								518fd3fad0 
								
							 
						 
						
							
							
								
								Kernel: Add 16 more irq handlers  
							
							... 
							
							
							
							IDT will now panic if trying to assing handler for non supported
irq. 
							
						 
						
							2023-10-13 16:17:27 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								27eb5af6f0 
								
							 
						 
						
							
							
								
								Kernel: Rework interrupt mechanism  
							
							... 
							
							
							
							All interruptrable classes now inherit from Interruptable which
has methdo handle_irq which is called on a interrupt. 
							
						 
						
							2023-10-05 18:53:45 +03:00  
				
					
						
							
							
								 
						
							
								245f58cc3a 
								
							 
						 
						
							
							
								
								Kernel: mmap regions are now demand paged  
							
							... 
							
							
							
							mmap will not actually take any memory unless you use the given
memory. 
							
						 
						
							2023-09-28 21:07:14 +03:00  
				
					
						
							
							
								 
						
							
								d7ecf94347 
								
							 
						 
						
							
							
								
								Kernel: Reboot will now always succeed  
							
							... 
							
							
							
							If acpi reset fails, we forcefully trigger a triple fault to restart
the system. 
							
						 
						
							2023-09-28 13:53:03 +03:00  
				
					
						
							
							
								 
						
							
								976114fde1 
								
							 
						 
						
							
							
								
								Kernel: Print more detailed output on ISR  
							
							
							
						 
						
							2023-09-25 20:33:07 +03:00  
				
					
						
							
							
								 
						
							
								7a7c5e433e 
								
							 
						 
						
							
							
								
								Kernel/LibC: add flag to enable/disable sse support  
							
							... 
							
							
							
							SSE support is very experimental and causes GP. I decided to make
SSE not default until I get to fixing it :) 
							
						 
						
							2023-09-23 02:28:25 +03:00  
				
					
						
							
							
								 
						
							
								dd0b8c4140 
								
							 
						 
						
							
							
								
								Kernel: Add pointer validation API to page table  
							
							
							
						 
						
							2023-09-22 17:20:35 +03:00  
				
					
						
							
							
								 
						
							
								7ec860a3d4 
								
							 
						 
						
							
							
								
								Kernel: Print stack trace on isr  
							
							
							
						 
						
							2023-09-11 01:20:55 +03:00  
				
					
						
							
							
								 
						
							
								921d95d18f 
								
							 
						 
						
							
							
								
								All: Clear lines with only whitspace in them  
							
							
							
						 
						
							2023-09-10 00:31:42 +03:00  
				
					
						
							
							
								 
						
							
								f75adab9d8 
								
							 
						 
						
							
							
								
								Kernel: Move structures in boot.S to .data section  
							
							
							
						 
						
							2023-08-11 00:26:12 +03:00  
				
					
						
							
							
								 
						
							
								0b8396b1a6 
								
							 
						 
						
							
							
								
								Kernel: IDT now sends EOI for every interrupt  
							
							... 
							
							
							
							EOI is sent before calling the interrupt handler. This should be fine
since all interrupts are processed with interrupts disabled 
							
						 
						
							2023-08-09 09:57:02 +03:00  
				
					
						
							
							
								 
						
							
								6fcb191ca0 
								
							 
						 
						
							
							
								
								Kernel: Add PageTable::Flags::CacheDisable  
							
							... 
							
							
							
							Also fix multiple places where we were using uint8_t as page table
flags instead of PageTable::flags_t which we promoted to uint16_t
while back. 
							
						 
						
							2023-08-06 23:59:30 +03:00  
				
					
						
							
							
								 
						
							
								659adb89a6 
								
							 
						 
						
							
							
								
								Kernel: Start work on abstracting Timers  
							
							
							
						 
						
							2023-08-04 10:29:42 +03:00  
				
					
						
							
							
								 
						
							
								643e87a076 
								
							 
						 
						
							
							
								
								Kernel: Threads are deleted sooner and cleaner  
							
							... 
							
							
							
							We now delete threads when
    1. it is marked as Terminated and is the current thread
    2. it tries to start execution in Terminated state
This allows us to never have thread executing in Terminated state 
							
						 
						
							2023-08-04 10:29:42 +03:00  
				
					
						
							
							
								 
						
							
								20eafb4cc4 
								
							 
						 
						
							
							
								
								Kernel: align userspace stacks  
							
							... 
							
							
							
							I was getting #GP on sse instructions 
							
						 
						
							2023-08-03 18:09:48 +03:00  
				
					
						
							
							
								 
						
							
								3139391e06 
								
							 
						 
						
							
							
								
								Kernel: Change PageTable API  
							
							... 
							
							
							
							Getting free pages not reserves them, so you don't have to hold
the page table lock :) 
							
						 
						
							2023-08-02 22:09:14 +03:00  
				
					
						
							
							
								 
						
							
								64ad752e73 
								
							 
						 
						
							
							
								
								Kernel: PageTable now supports reserved pages  
							
							... 
							
							
							
							You can now map pages as reserved, so that they will not be given
from get_free_page() or get_free_contiguous_pages(). 
							
						 
						
							2023-08-01 16:35:54 +03:00  
				
					
						
							
							
								 
						
							
								a78a7ed156 
								
							 
						 
						
							
							
								
								Kernel: Cleanup returns from any kind on interrupts  
							
							
							
						 
						
							2023-08-01 14:23:50 +03:00  
				
					
						
							
							
								 
						
							
								b245a55ea0 
								
							 
						 
						
							
							
								
								Kernel: store/load sse/mmx/fpu state on isr/irq/syscall  
							
							... 
							
							
							
							I haven't tested this yet but should be fine. This will be optimized
to only save state from threads that are using it 
							
						 
						
							2023-07-31 22:28:57 +03:00  
				
					
						
							
							
								 
						
							
								c4f6c859c1 
								
							 
						 
						
							
							
								
								Kernel: Generally improve signals  
							
							
							
						 
						
							2023-07-31 22:28:18 +03:00  
				
					
						
							
							
								 
						
							
								1a6100f083 
								
							 
						 
						
							
							
								
								Kernel: Cleanup signal trampoline  
							
							
							
						 
						
							2023-07-30 15:58:35 +03:00  
				
					
						
							
							
								 
						
							
								de927b6b05 
								
							 
						 
						
							
							
								
								Kernel: Remove is_in_syscall from Thread  
							
							
							
						 
						
							2023-07-30 14:49:51 +03:00  
				
					
						
							
							
								 
						
							
								1d7795e22c 
								
							 
						 
						
							
							
								
								Kernel: Hardware exceptions  now sends signals to userspace  
							
							
							
						 
						
							2023-07-30 14:34:15 +03:00  
				
					
						
							
							
								 
						
							
								9729e5a05b 
								
							 
						 
						
							
							
								
								Kernel: Change signal kernel API  
							
							... 
							
							
							
							return rsp and rip are now stored per thread 
							
						 
						
							2023-07-23 18:33:10 +03:00  
				
					
						
							
							
								 
						
							
								2dce0a0415 
								
							 
						 
						
							
							
								
								Kernel: Userspace signal handlers are now called one at a time  
							
							... 
							
							
							
							I added a syscall for telling the kernel when signal execution has
finished. We should send a random hash or id to the signal trampoline
that we would include in the syscall, so validity of signal exit can
be confirmed. 
							
						 
						
							2023-07-23 13:34:53 +03:00  
				
					
						
							
							
								 
						
							
								8063700d7b 
								
							 
						 
						
							
							
								
								Kernel: add default signal actions  
							
							
							
						 
						
							2023-07-21 18:02:35 +03:00  
				
					
						
							
							
								 
						
							
								c2cf98e32f 
								
							 
						 
						
							
							
								
								Kernel/LibC: Add bareboness signals  
							
							... 
							
							
							
							You can now call raise() to raise a signal. Signal handlers are
not yet supported, but the handling works :) 
							
						 
						
							2023-07-21 15:45:02 +03:00  
				
					
						
							
							
								 
						
							
								a1db032ba9 
								
							 
						 
						
							
							
								
								Kernel: kernel memory takes now full pml4e  
							
							... 
							
							
							
							This allows flags to work properly 
							
						 
						
							2023-07-21 13:47:05 +03:00  
				
					
						
							
							
								 
						
							
								5babd7b4f2 
								
							 
						 
						
							
							
								
								Kernel: remove PAGE_FLAGS_MASK as that was not correct anymore  
							
							... 
							
							
							
							After I added NXE bit, the flags mask is no longer valid 
							
						 
						
							2023-07-21 12:01:50 +03:00  
				
					
						
							
							
								 
						
							
								c0029a2fa2 
								
							 
						 
						
							
							
								
								Kernel: Don't map kernel executable memory as writable  
							
							
							
						 
						
							2023-07-21 11:17:39 +03:00  
				
					
						
							
							
								 
						
							
								4e35b8b49d 
								
							 
						 
						
							
							
								
								Kernel: Syscalls now get the interrupt stack  
							
							
							
						 
						
							2023-07-21 11:04:16 +03:00  
				
					
						
							
							
								 
						
							
								bf5d74b8bc 
								
							 
						 
						
							
							
								
								Kernel: fix memory leak in PageTable  
							
							... 
							
							
							
							PageTable used to leak 2 pages on creation and other two on deletion 
							
						 
						
							2023-07-19 23:17:39 +03:00  
				
					
						
							
							
								 
						
							
								98c698d9ec 
								
							 
						 
						
							
							
								
								Kernel: Enable global bit on kernel pages  
							
							
							
						 
						
							2023-07-13 15:23:25 +03:00  
				
					
						
							
							
								 
						
							
								9ea2c1d932 
								
							 
						 
						
							
							
								
								Kernel: Support execute disable bit  
							
							... 
							
							
							
							We will now map executable memory explicitly as executable. 
							
						 
						
							2023-07-13 14:28:53 +03:00  
				
					
						
							
							
								 
						
							
								4086d7c3be 
								
							 
						 
						
							
							
								
								Kernel: rework the whole PageTable structure  
							
							... 
							
							
							
							We now have page table structure for kernel memory which is shared
between all processes. 
							
						 
						
							2023-07-05 23:41:35 +03:00  
				
					
						
							
							
								 
						
							
								9a7b2587af 
								
							 
						 
						
							
							
								
								Kernel: kmalloc has now somewhat dynamic storage  
							
							... 
							
							
							
							Allocations bigger than PAGE_SIZE and those not forced to be identity
mapped are now done on a GeneralAllocator. This allows us to use kmalloc
for big allocations; bigger than the fixed 1 MiB storage.
This is still a hack and the whole kmalloc will have to be rewritten at
some point, but for now this does the job :D 
							
						 
						
							2023-06-18 23:27:00 +03:00  
				
					
						
							
							
								 
						
							
								57e59d998f 
								
							 
						 
						
							
							
								
								Kernel: Add enum for ISR name to number  
							
							
							
						 
						
							2023-06-18 23:24:27 +03:00  
				
					
						
							
							
								 
						
							
								23543b15ca 
								
							 
						 
						
							
							
								
								Kernel: Rework syscall calling  
							
							... 
							
							
							
							I removed the intermediate function when calling syscalls. Now syscall
handler calls the current process automatically. Only exception is
sys_fork, since it needs a assembly trampoline for the new thread. 
							
						 
						
							2023-06-12 14:16:48 +03:00  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								4cdeb98897 
								
							 
						 
						
							
							
								
								Kernel: We now store the  processes exit code  
							
							
							
						 
						
							2023-06-10 17:31:56 +03:00  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								896b919c9d 
								
							 
						 
						
							
							
								
								Kernel/LibC: pass environ pointer to process  
							
							
							
						 
						
							2023-06-05 21:12:08 +03:00  
				
					
						
							
							
								 
						
							
								b403155ca9 
								
							 
						 
						
							
							
								
								Kernel: You can specify first vaddr for getting free pages  
							
							
							
						 
						
							2023-06-04 01:15:48 +03:00  
				
					
						
							
							
								 
						
							
								b168462b43 
								
							 
						 
						
							
							
								
								Kernel: PageTable now has debug_dump  
							
							... 
							
							
							
							This dumps all the mapped pages and their flags 
							
						 
						
							2023-06-03 20:08:13 +03:00  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								dcb23f686f 
								
							 
						 
						
							
							
								
								Kernel: boot.S maps GiB as single pdpte  
							
							
							
						 
						
							2023-05-31 00:51:15 +03:00  
				
					
						
							
							
								 
						
							
								650570e57d 
								
							 
						 
						
							
							
								
								Kernel: Fix comment  
							
							
							
						 
						
							2023-05-31 00:51:15 +03:00  
				
					
						
							
							
								 
						
							
								1f5a36f074 
								
							 
						 
						
							
							
								
								Kernel: PageTable destructor works now  
							
							... 
							
							
							
							we are successfully booting higher half kernel now :) 
							
						 
						
							2023-05-31 00:44:14 +03:00  
				
					
						
							
							
								 
						
							
								aeaf2cd3f1 
								
							 
						 
						
							
							
								
								Kernel: PageTable::create_userspace() now works  
							
							
							
						 
						
							2023-05-31 00:44:14 +03:00  
				
					
						
							
							
								 
						
							
								67886b0c5a 
								
							 
						 
						
							
							
								
								Kernel: Move V2P and P2V to Memory/Types.h  
							
							
							
						 
						
							2023-05-30 23:57:03 +03:00  
				
					
						
							
							
								 
						
							
								56eb6fb4ce 
								
							 
						 
						
							
							
								
								Kernel: PageTable::map_range_at maps correctly the last page  
							
							
							
						 
						
							2023-05-30 23:56:07 +03:00  
				
					
						
							
							
								 
						
							
								81cf389754 
								
							 
						 
						
							
							
								
								Kernel: Booting with higher half kernel gets to Heap initialization  
							
							
							
						 
						
							2023-05-30 22:21:12 +03:00  
				
					
						
							
							
								 
						
							
								0907965dc5 
								
							 
						 
						
							
							
								
								Kernel: start work on higher half kernel  
							
							
							
						 
						
							2023-05-30 08:00:17 +03:00  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								5bb1f2a48c 
								
							 
						 
						
							
							
								
								Kernel: Rename MMU to PageTable  
							
							... 
							
							
							
							This is more descriptive name for what it actually represents 
							
						 
						
							2023-05-29 21:06:09 +03:00  
				
					
						
							
							
								 
						
							
								fb17af4844 
								
							 
						 
						
							
							
								
								Kernel/LibC: opening standard files is done in libc  
							
							
							
						 
						
							2023-05-29 20:21:19 +03:00  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								ff83f967d8 
								
							 
						 
						
							
							
								
								Kernel: Make RecursiveSpinLock thread safe  
							
							... 
							
							
							
							also SpinLock is now implemented with gcc builtins 
							
						 
						
							2023-05-29 19:38:09 +03:00  
				
					
						
							
							
								 
						
							
								ec73db0057 
								
							 
						 
						
							
							
								
								Kernel: Move page macros to Types.h  
							
							
							
						 
						
							2023-05-28 21:03:08 +03:00  
				
					
						
							
							
								 
						
							
								833642d405 
								
							 
						 
						
							
							
								
								Kernel: ISR will now crash userspace process instead of panicing kernel  
							
							
							
						 
						
							2023-05-28 20:53:10 +03:00  
				
					
						
							
							
								 
						
							
								3e93dae53c 
								
							 
						 
						
							
							
								
								Kernel: Add invalidate() to MMU  
							
							
							
						 
						
							2023-05-28 18:05:49 +03:00  
				
					
						
							
							
								 
						
							
								187bb046aa 
								
							 
						 
						
							
							
								
								Kernel: fix MMU::map_page_at()  
							
							... 
							
							
							
							We used to only reassign if flags changed 
							
						 
						
							2023-05-28 17:57:05 +03:00  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								e0a72defa2 
								
							 
						 
						
							
							
								
								Kernel: Add argc and argv to process entry  
							
							
							
						 
						
							2023-05-16 00:27:49 +03:00  
				
					
						
							
							
								 
						
							
								6acb86c14b 
								
							 
						 
						
							
							
								
								Kernel: MMU keeps track of the current  
							
							
							
						 
						
							2023-05-16 00:26:39 +03:00  
				
					
						
							
							
								 
						
							
								ec316391c5 
								
							 
						 
						
							
							
								
								Kernel: argc is passed as zero to userspace  
							
							
							
						 
						
							2023-05-11 18:28:32 +03:00  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								512be884ed 
								
							 
						 
						
							
							
								
								Kernel: Add barebones GeneralAllocator for >4096B  
							
							
							
						 
						
							2023-05-08 22:10:49 +03:00  
				
					
						
							
							
								 
						
							
								ab8aac7dcf 
								
							 
						 
						
							
							
								
								Kernel: GDT tss selector is now 16 bit value  
							
							
							
						 
						
							2023-05-06 17:34:22 +03:00  
				
					
						
							
							
								 
						
							
								f36b94d039 
								
							 
						 
						
							
							
								
								Kernel: MMU can now provide info about virtual address space  
							
							
							
						 
						
							2023-05-06 17:34:22 +03:00  
				
					
						
							
							
								 
						
							
								92daa831d1 
								
							 
						 
						
							
							
								
								Kernel: ISRs now print pid and tid  
							
							
							
						 
						
							2023-05-06 00:10:15 +03:00  
				
					
						
							
							
								 
						
							
								e7a170c89f 
								
							 
						 
						
							
							
								
								Kernel: 64 bit MMU now properly identity maps kernel  
							
							
							
						 
						
							2023-05-05 14:19:28 +03:00  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								acf5660090 
								
							 
						 
						
							
							
								
								Kernel: Add set_tss_stack() to 32 bit  
							
							
							
						 
						
							2023-04-28 14:44:23 +03:00  
				
					
						
							
							
								 
						
							
								f1a0625b61 
								
							 
						 
						
							
							
								
								Kernel: TSS stack can be set after initialization  
							
							
							
						 
						
							2023-04-25 14:48:12 +03:00  
				
					
						
							
							
								 
						
							
								fb6add2b4a 
								
							 
						 
						
							
							
								
								Kernel: Fix 32 bit MMU  
							
							
							
						 
						
							2023-04-22 18:22:39 +03:00  
				
					
						
							
							
								 
						
							
								e0ce2394fe 
								
							 
						 
						
							
							
								
								Kernel: Remove obsolete userspace stuff from kernel  
							
							
							
						 
						
							2023-04-22 15:38:45 +03:00  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								35e949ef5e 
								
							 
						 
						
							
							
								
								Kernel: Fix syscall return value in 32 bit  
							
							
							
						 
						
							2023-04-21 11:08:02 +03:00  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								ea0c9b639f 
								
							 
						 
						
							
							
								
								Kernel: Add some bareboness functionality to map virtual addresses  
							
							
							
						 
						
							2023-04-19 23:51:36 +03:00  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								fdb4eb6042 
								
							 
						 
						
							
							
								
								Kernel: Move kmalloc and MMU to Memory directory  
							
							
							
						 
						
							2023-04-18 10:18:15 +03:00  
				
					
						
							
							
								 
						
							
								3f9d6f0311 
								
							 
						 
						
							
							
								
								LibC: add needed stubs to build executables with our compiler  
							
							
							
						 
						
							2023-04-12 17:53:02 +03:00  
				
					
						
							
							
								 
						
							
								8ee63f8264 
								
							 
						 
						
							
							
								
								Kernel: We can create basic userspace processes  
							
							... 
							
							
							
							These are still allocated on the kernel memory 
							
						 
						
							2023-04-12 17:52:36 +03:00  
				
					
						
							
							
								 
						
							
								f924ac9265 
								
							 
						 
						
							
							
								
								Kernel: Threads can now be terminated mid execution  
							
							
							
						 
						
							2023-04-10 21:07:25 +03:00  
				
					
						
							
							
								 
						
							
								3f01f936a1 
								
							 
						 
						
							
							
								
								Kernel: Fix framepointers on started threads  
							
							
							
						 
						
							2023-04-10 21:07:25 +03:00  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								8b8e3cbbf0 
								
							 
						 
						
							
							
								
								Kernel/Userspace: Start initial work on userspace and syscalls  
							
							
							
						 
						
							2023-03-13 15:32:46 +02:00