850ff93940 
								
							 
						 
						
							
							
								
								LibELF: Add 32 bit support  
							
							
							
						 
						
							2023-04-22 19:00:18 +03:00  
				
					
						
							
							
								 
						
							
								fb6add2b4a 
								
							 
						 
						
							
							
								
								Kernel: Fix 32 bit MMU  
							
							
							
						 
						
							2023-04-22 18:22:39 +03:00  
				
					
						
							
							
								 
						
							
								48445f12ac 
								
							 
						 
						
							
							
								
								Kernel: More proper paging in Elf loading  
							
							
							
						 
						
							2023-04-22 18:17:44 +03:00  
				
					
						
							
							
								 
						
							
								792fad2a03 
								
							 
						 
						
							
							
								
								Kernel: d{print,warn,error}ln(...) now has a spinlock  
							
							
							
						 
						
							2023-04-22 17:58:51 +03:00  
				
					
						
							
							
								 
						
							
								cc04990ce3 
								
							 
						 
						
							
							
								
								Kernel: Process now frees up its pages on destruction  
							
							
							
						 
						
							2023-04-22 16:54:46 +03:00  
				
					
						
							
							
								 
						
							
								7530482cc2 
								
							 
						 
						
							
							
								
								Kernel: Cleanup process creation for userspace  
							
							
							
						 
						
							2023-04-22 16:51:50 +03:00  
				
					
						
							
							
								 
						
							
								33d8c518e9 
								
							 
						 
						
							
							
								
								Kernel: Fix some deadlocks in the Process  
							
							
							
						 
						
							2023-04-22 16:19:57 +03:00  
				
					
						
							
							
								 
						
							
								e0ce2394fe 
								
							 
						 
						
							
							
								
								Kernel: Remove obsolete userspace stuff from kernel  
							
							
							
						 
						
							2023-04-22 15:38:45 +03:00  
				
					
						
							
							
								 
						
							
								fadce063a7 
								
							 
						 
						
							
							
								
								Kernel: Usespace programs are now ran through ELF files  
							
							... 
							
							
							
							only 64 bit elf files are supported for now. 
							
						 
						
							2023-04-22 15:35:32 +03:00  
				
					
						
							
							
								 
						
							
								ef0263e32d 
								
							 
						 
						
							
							
								
								LibELF: Header printing can now be turned off  
							
							
							
						 
						
							2023-04-22 15:34:09 +03:00  
				
					
						
							
							
								 
						
							
								4588e25d27 
								
							 
						 
						
							
							
								
								LibELF: ELF now has methods for accessing more attributes  
							
							... 
							
							
							
							You can now access the program headers and the memory itself 
							
						 
						
							2023-04-22 15:31:05 +03:00  
				
					
						
							
							
								 
						
							
								ff8c0086e2 
								
							 
						 
						
							
							
								
								LibC: puts() now just calls syscall(SYS_WRITE, ...)  
							
							
							
						 
						
							2023-04-22 15:29:38 +03:00  
				
					
						
							
							
								 
						
							
								dc1b7cf08f 
								
							 
						 
						
							
							
								
								LibC: syscalls have now proper argument order  
							
							
							
						 
						
							2023-04-22 15:29:15 +03:00  
				
					
						
							
							
								 
						
							
								26fe6ad898 
								
							 
						 
						
							
							
								
								Kernel: kmalloc does not dump stack trace  
							
							... 
							
							
							
							dump_stack_trace() page faults and i dont feel like debugging this
now :) 
							
						 
						
							2023-04-21 13:45:13 +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  
				
					
						
							
							
								 
						
							
								c26529ae86 
								
							 
						 
						
							
							
								
								Kernel: kmalloc will always print debug on failed alloc  
							
							
							
						 
						
							2023-04-19 18:05:01 +03:00  
				
					
						
							
							
								 
						
							
								7d57d2fcfb 
								
							 
						 
						
							
							
								
								LibELF: remove unused file  
							
							
							
						 
						
							2023-04-19 17:32:12 +03:00  
				
					
						
							
							
								 
						
							
								e8a0df54b1 
								
							 
						 
						
							
							
								
								Kernel: ATAController will fail to initialize in native mode  
							
							
							
						 
						
							2023-04-19 17:29:36 +03:00  
				
					
						
							
							
								 
						
							
								33393335c8 
								
							 
						 
						
							
							
								
								Kernel: PCI devices now report their prog_if  
							
							
							
						 
						
							2023-04-19 16:43:05 +03:00  
				
					
						
							
							
								 
						
							
								c5b02bb9f5 
								
							 
						 
						
							
							
								
								Kernel: Shell fix file reading  
							
							... 
							
							
							
							We were reading 8 bytes at a time instead of the 1024 we were
supposed to :DD 
							
						 
						
							2023-04-19 14:09:23 +03:00  
				
					
						
							
							
								 
						
							
								a1047918d2 
								
							 
						 
						
							
							
								
								Kernel: Shell now has exit() command  
							
							
							
						 
						
							2023-04-19 12:53:09 +03:00  
				
					
						
							
							
								 
						
							
								fd81e31050 
								
							 
						 
						
							
							
								
								Kernel: Fix Process::exit() and where it is called from  
							
							... 
							
							
							
							cksum doesn't seem to work anymore on big files. I have to look
into this. It locks up after couple of seconds... 
							
						 
						
							2023-04-19 12:52:21 +03:00  
				
					
						
							
							
								 
						
							
								160315c4d0 
								
							 
						 
						
							
							
								
								Update README.md  
							
							... 
							
							
							
							Add cool badges :D 
							
						 
						
							2023-04-19 00:46:42 +03:00  
				
					
						
							
							
								 
						
							
								d9b7747fc5 
								
							 
						 
						
							
							
								
								LibC: exit() calls _fini()  
							
							
							
						 
						
							2023-04-19 00:42:00 +03:00  
				
					
						
							
							
								 
						
							
								dcce18799f 
								
							 
						 
						
							
							
								
								Kernel: We now launch Shell again on boot  
							
							... 
							
							
							
							Adding this just before push :D 
							
						 
						
							2023-04-19 00:41:24 +03:00  
				
					
						
							
							
								 
						
							
								a9a15ea2c0 
								
							 
						 
						
							
							
								
								Kernel: init2 is now launched as a process instead of thread  
							
							... 
							
							
							
							Also only process can now add threads to scheduler. Nobody should
have raw access to scheduler and everything should be through
Process::current() or irqs (reschedules) 
							
						 
						
							2023-04-19 00:39:06 +03:00  
				
					
						
							
							
								 
						
							
								d63716db96 
								
							 
						 
						
							
							
								
								Kernel: Process is not reference counted any more  
							
							... 
							
							
							
							This was not necessary and it made things needlessly complicated 
							
						 
						
							2023-04-19 00:34:18 +03:00  
				
					
						
							
							
								 
						
							
								3ca623349a 
								
							 
						 
						
							
							
								
								BAN: Add {TRY,MUST}_REF for references  
							
							... 
							
							
							
							It is annoying that we have to have separate macros for these but
I can't find a way to cleanly return lvalue reference from statement
expression. Currently we cast the reference to pointer and return
unreference the pointer outside of the expression.
This feature will probably not be used any time soon, but atleas
it is implemented if I need it one day 
							
						 
						
							2023-04-19 00:31:15 +03:00  
				
					
						
							
							
								 
						
							
								121f4bc1dd 
								
							 
						 
						
							
							
								
								BAN: TRY and MUST macros use rvalue references  
							
							
							
						 
						
							2023-04-19 00:11:15 +03:00  
				
					
						
							
							
								 
						
							
								8e31ef9905 
								
							 
						 
						
							
							
								
								BAN: Add specialization for ErrorOr<LValueReference>  
							
							... 
							
							
							
							ErrorOr can now return a reference :) 
							
						 
						
							2023-04-18 22:02:47 +03:00  
				
					
						
							
							
								 
						
							
								2c52e0aad8 
								
							 
						 
						
							
							
								
								BAN: Variant with reference now supports copy/assign  
							
							
							
						 
						
							2023-04-18 20:21:23 +03:00  
				
					
						
							
							
								 
						
							
								06916f56be 
								
							 
						 
						
							
							
								
								BAN: Variant now works with references  
							
							... 
							
							
							
							References can be assigned with the set() method. Construction nor
assigment operators cannot be used with references to avoid ambiguity
with what assignment to reference does.
You can set the underlying reference with the set() method and access
it with the get() method.
The references are stored as pointers to the object under the hood
which means that size of a reference is sizeof pointer. 
							
						 
						
							2023-04-18 19:53:34 +03:00  
				
					
						
							
							
								 
						
							
								c3df0bd15e 
								
							 
						 
						
							
							
								
								BAN: Variant::set now copy/move assigns when possible  
							
							
							
						 
						
							2023-04-18 19:10:22 +03:00  
				
					
						
							
							
								 
						
							
								b41a8e2829 
								
							 
						 
						
							
							
								
								BAN: Variant now has variadic template types  
							
							
							
						 
						
							2023-04-18 18:29:48 +03:00  
				
					
						
							
							
								 
						
							
								96ac072166 
								
							 
						 
						
							
							
								
								Kernel: Heap allows us to take free pages.  
							
							... 
							
							
							
							The API is kinda weird and will probably be reworked in near future
but this will work for now :) 
							
						 
						
							2023-04-18 10:18:15 +03:00  
				
					
						
							
							
								 
						
							
								295a27f16a 
								
							 
						 
						
							
							
								
								Kernel: Panic wont print stacktrace if it has already paniced  
							
							... 
							
							
							
							This prevents stack trace dump to panic and loop 
							
						 
						
							2023-04-18 10:18:15 +03:00  
				
					
						
							
							
								 
						
							
								88f60b5e41 
								
							 
						 
						
							
							
								
								Kernel: Map all ACPI tables on initialization  
							
							... 
							
							
							
							This makes their usage much easier and less error prone
They won't mapped be processes when we get to there, so this won't be
a problem 
							
						 
						
							2023-04-18 10:18:15 +03:00  
				
					
						
							
							
								 
						
							
								1c22e90fa0 
								
							 
						 
						
							
							
								
								Scripts: remove disk build from install-usb.sh  
							
							... 
							
							
							
							You can still use the install-usb.sh script from the build directory. 
							
						 
						
							2023-04-18 10:18:15 +03:00  
				
					
						
							
							
								 
						
							
								d23604b0d5 
								
							 
						 
						
							
							
								
								Kernel: Handle some Heap edge cases  
							
							
							
						 
						
							2023-04-18 10:18:15 +03:00  
				
					
						
							
							
								 
						
							
								c5347e6707 
								
							 
						 
						
							
							
								
								Kernel: Reorder boot initialization  
							
							... 
							
							
							
							We now create the TTY as soon as possible so we can show console
output without serial port. 
							
						 
						
							2023-04-18 10:18:15 +03:00  
				
					
						
							
							
								 
						
							
								bf0c7b9ae8 
								
							 
						 
						
							
							
								
								Kernel: Heap implementation can now give free pages from all of RAM  
							
							
							
						 
						
							2023-04-18 10:18:15 +03:00  
				
					
						
							
							
								 
						
							
								0374b68fa1 
								
							 
						 
						
							
							
								
								Kernel: Remove unused file  
							
							
							
						 
						
							2023-04-18 10:18:15 +03:00  
				
					
						
							
							
								 
						
							
								633929629c 
								
							 
						 
						
							
							
								
								Kernel: Start working on heap  
							
							
							
						 
						
							2023-04-18 10:18:15 +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