512be884ed 
								
							 
						 
						
							
							
								
								Kernel: Add barebones GeneralAllocator for >4096B  
							
							
							
						 
						
							2023-05-08 22:10:49 +03:00  
				
					
						
							
							
								 
						
							
								f1667b398a 
								
							 
						 
						
							
							
								
								Kernel: FixedWidthAllocator operates on MMU  
							
							... 
							
							
							
							Instead of Process* we use MMU& in FixedWidthAllocator since it is
everything it actually needs :) 
							
						 
						
							2023-05-08 00:06:56 +03:00  
				
					
						
							
							
								 
						
							
								b0ec0f1a1a 
								
							 
						 
						
							
							
								
								Kernel: We add FixedWidthAllocators on demand  
							
							... 
							
							
							
							On SYS_ALLOC we will add a new FixedWidthAllocator if the old ones
are already full or we don't have one with proper size. This allows
arbitary number of allocations as long as you have enough memory
available :)
Next I will be writing a general allocator for allocations larger
than 4096 bytes which should make SYS_ALLOC syscall complete :) 
							
						 
						
							2023-05-07 23:57:01 +03:00  
				
					
						
							
							
								 
						
							
								05046d6e93 
								
							 
						 
						
							
							
								
								BAN: Error uses 64 bit error codes  
							
							
							
						 
						
							2023-05-07 02:09:52 +03:00  
				
					
						
							
							
								 
						
							
								054c5450df 
								
							 
						 
						
							
							
								
								LibC: syscall() now returns -1 on error and updates errno  
							
							
							
						 
						
							2023-05-07 01:51:39 +03:00  
				
					
						
							
							
								 
						
							
								12e42f40c5 
								
							 
						 
						
							
							
								
								Kernel/LibC: add free function for FixedWidthAllocator  
							
							... 
							
							
							
							I have to rework the syscall API and allocators in process. For
now this works well enough :) 
							
						 
						
							2023-05-07 01:21:50 +03:00  
				
					
						
							
							
								 
						
							
								890aa9aa15 
								
							 
						 
						
							
							
								
								BuildSystem: linker -O2 doesn't do anything? hopefully  
							
							
							
						 
						
							2023-05-06 19:58:08 +03:00  
				
					
						
							
							
								 
						
							
								bcfd838131 
								
							 
						 
						
							
							
								
								Kernel: Add basic fixed width allocator for userspace  
							
							... 
							
							
							
							We have to move process stacks to the general heap and maybe map
kernel to higher half. 
							
						 
						
							2023-05-06 19:58:08 +03:00  
				
					
						
							
							
								 
						
							
								9c07add00f 
								
							 
						 
						
							
							
								
								Kernel: Invalid physical addresses from heap are specified now by 0  
							
							
							
						 
						
							2023-05-06 17:34:22 +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  
				
					
						
							
							
								 
						
							
								3c5d3eb8ad 
								
							 
						 
						
							
							
								
								Kernel: TTY input process is now single instance  
							
							... 
							
							
							
							Process sends key events to the active (currently only) tty 
							
						 
						
							2023-04-30 16:11:14 +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  
				
					
						
							
							
								 
						
							
								9d7530662f 
								
							 
						 
						
							
							
								
								Kernel: dprintln file name is now relative  
							
							... 
							
							
							
							This makes file names much shorter 
							
						 
						
							2023-04-28 14:43:19 +03:00  
				
					
						
							
							
								 
						
							
								9cf09165b5 
								
							 
						 
						
							
							
								
								BAN: Add is_power_of_two to Math functions  
							
							
							
						 
						
							2023-04-28 14:42:49 +03:00  
				
					
						
							
							
								 
						
							
								e1a6e7c3ac 
								
							 
						 
						
							
							
								
								LibC: add proper stdlib.h header  
							
							... 
							
							
							
							Function declarations taken from the posix specifications 
							
						 
						
							2023-04-27 15:14:03 +03:00  
				
					
						
							
							
								 
						
							
								3537d53d5c 
								
							 
						 
						
							
							
								
								LibC: add link to posix stdio.h  
							
							
							
						 
						
							2023-04-27 14:16:25 +03:00  
				
					
						
							
							
								 
						
							
								c20ba3064d 
								
							 
						 
						
							
							
								
								Userspace: Simple stdio test  
							
							
							
						 
						
							2023-04-25 14:50:26 +03:00  
				
					
						
							
							
								 
						
							
								a22caa38d2 
								
							 
						 
						
							
							
								
								Kernel: Scheduler updates tss stack on thread execution  
							
							
							
						 
						
							2023-04-25 14:49:50 +03:00  
				
					
						
							
							
								 
						
							
								dc0f8b383f 
								
							 
						 
						
							
							
								
								Kernel: Usespace threads now have an interrupt stack  
							
							
							
						 
						
							2023-04-25 14:49:18 +03:00  
				
					
						
							
							
								 
						
							
								f1a0625b61 
								
							 
						 
						
							
							
								
								Kernel: TSS stack can be set after initialization  
							
							
							
						 
						
							2023-04-25 14:48:12 +03:00  
				
					
						
							
							
								 
						
							
								02b961fd7e 
								
							 
						 
						
							
							
								
								Kernel: Stack pointer out of bounds now panics with a message  
							
							
							
						 
						
							2023-04-25 13:40:55 +03:00  
				
					
						
							
							
								 
						
							
								1d42b26fce 
								
							 
						 
						
							
							
								
								LibC: Fix some bugs  
							
							
							
						 
						
							2023-04-25 13:27:01 +03:00  
				
					
						
							
							
								 
						
							
								6e01e04922 
								
							 
						 
						
							
							
								
								Kernel: Fix bug in Process::create_userspace()  
							
							... 
							
							
							
							We used to write more than we needed to. This could lead to unwanted
page faults 
							
						 
						
							2023-04-25 13:21:28 +03:00  
				
					
						
							
							
								 
						
							
								79812b34b0 
								
							 
						 
						
							
							
								
								LibC: fread() now does a single syscall  
							
							
							
						 
						
							2023-04-25 12:38:08 +03:00  
				
					
						
							
							
								 
						
							
								b7c2ea8d46 
								
							 
						 
						
							
							
								
								Kernel: Fix possible dead lock in Process::read()  
							
							
							
						 
						
							2023-04-23 14:46:18 +03:00  
				
					
						
							
							
								 
						
							
								cd74b2167d 
								
							 
						 
						
							
							
								
								LibC: Write mostly functioning stdio  
							
							
							
						 
						
							2023-04-23 14:32:37 +03:00  
				
					
						
							
							
								 
						
							
								9b2a577fc3 
								
							 
						 
						
							
							
								
								Kernel: Add ASSERTion to Process::exit()  
							
							... 
							
							
							
							This is just so I don't forget that exit can currently only
be called on the executing thread itself 
							
						 
						
							2023-04-22 19:05:27 +03:00  
				
					
						
							
							
								 
						
							
								2dd09163e6 
								
							 
						 
						
							
							
								
								Kernel: Process can now load 32 bit elf files on i386  
							
							... 
							
							
							
							We are page faulting on process exit but I'm investigating
the reason. 
							
						 
						
							2023-04-22 19:03:30 +03:00  
				
					
						
							
							
								 
						
							
								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