4cd72992c8 
								
							 
						 
						
							
							
								
								Kernel/LibC: Add basic pipe() syscall and command  
							
							... 
							
							
							
							You can now create pipes :) 
							
						 
						
							2023-07-06 22:16:26 +03:00  
				
					
						
							
							
								 
						
							
								1fb305fa45 
								
							 
						 
						
							
							
								
								Kernel/LibC: add clock_gettime() for CLOCK_MONOTONIC  
							
							... 
							
							
							
							This gets the number of milliseconds since boot 
							
						 
						
							2023-07-06 00:38:29 +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  
				
					
						
							
							
								 
						
							
								7d254c26bc 
								
							 
						 
						
							
							
								
								Kernel: Rewrite and optimize DiskCache  
							
							... 
							
							
							
							DiskCache now consists of PageCaches which are caches of contiguous
sectors. This allows the disk cache to be ordered and faster traversal.
We seem to have a problem somewhere during reading. The stack gets
corrupted. 
							
						 
						
							2023-06-19 10:31:47 +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  
				
					
						
							
							
								 
						
							
								09c824b90e 
								
							 
						 
						
							
							
								
								Kernel: Add GeneralAllocator::paddr_of  
							
							... 
							
							
							
							Yoy can now query physical address of a virtual address for general
allocator allocation 
							
						 
						
							2023-06-18 23:25:51 +03:00  
				
					
						
							
							
								 
						
							
								44fb3945df 
								
							 
						 
						
							
							
								
								Kernel: General allocator takes first valid vaddr as parameter  
							
							
							
						 
						
							2023-06-17 22:23:34 +03:00  
				
					
						
							
							
								 
						
							
								5dcc53bcf2 
								
							 
						 
						
							
							
								
								Kernel: Make disk IO blocking thread safe  
							
							... 
							
							
							
							This was causing a lot of deadlocks on vms without kvm accel 
							
						 
						
							2023-06-12 18:57:47 +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  
				
					
						
							
							
								 
						
							
								2253c45feb 
								
							 
						 
						
							
							
								
								Kernel: Remove Shell from kernel  
							
							... 
							
							
							
							This is now obsolete since we have a userspace Shell. 
							
						 
						
							2023-06-12 02:04:52 +03:00  
				
					
						
							
							
								 
						
							
								f09b82c4b5 
								
							 
						 
						
							
							
								
								Kernel/LibC: add SYS_{SET,GET}_PWD and chdir, getpwd  
							
							
							
						 
						
							2023-06-12 02:02:52 +03:00  
				
					
						
							
							
								 
						
							
								11b68f6a53 
								
							 
						 
						
							
							
								
								Kernel: Add SYS_GET_{,E}{UID,GID}  
							
							
							
						 
						
							2023-06-11 22:37:00 +03:00  
				
					
						
							
							
								 
						
							
								3fe67e4882 
								
							 
						 
						
							
							
								
								Kernel: Add syscalls for set{,e,re}{uid,gid}  
							
							
							
						 
						
							2023-06-11 22:37:00 +03:00  
				
					
						
							
							
								 
						
							
								c7ec19c25c 
								
							 
						 
						
							
							
								
								Kernel: Add basic Credentials for the system  
							
							... 
							
							
							
							Now filesystem access/open, etc confirm that you have access for rwxs 
							
						 
						
							2023-06-11 20:06:06 +03:00  
				
					
						
							
							
								 
						
							
								64890bb640 
								
							 
						 
						
							
							
								
								Kernel: Add SYS_OPENAT  
							
							
							
						 
						
							2023-06-11 03:29:22 +03:00  
				
					
						
							
							
								 
						
							
								01311b470f 
								
							 
						 
						
							
							
								
								Kernel: Rewrite directory listing so it can be integrated to libc  
							
							
							
						 
						
							2023-06-11 00:17:18 +03:00  
				
					
						
							
							
								 
						
							
								4cdeb98897 
								
							 
						 
						
							
							
								
								Kernel: We now store the  processes exit code  
							
							
							
						 
						
							2023-06-10 17:31:56 +03:00  
				
					
						
							
							
								 
						
							
								1aec3fcedd 
								
							 
						 
						
							
							
								
								Kernel: Scheduler now has reschedule()  
							
							... 
							
							
							
							This can be called from anywhere and just causes the scheduler to
schedule the next thread. This is more efficient and verbose version
of Scheduler::set_current_thread_sleeping(0), since we don't have
to wake other threads or do other verifications. 
							
						 
						
							2023-06-09 00:47:17 +03:00  
				
					
						
							
							
								 
						
							
								aec63081e2 
								
							 
						 
						
							
							
								
								Kenrel: Rename Scheduler::reschedule -> Scheduler::timer_reschedule  
							
							
							
						 
						
							2023-06-09 00:41:43 +03:00  
				
					
						
							
							
								 
						
							
								801025ad7b 
								
							 
						 
						
							
							
								
								Kernel: Big commit. Rewrite ELF loading code  
							
							... 
							
							
							
							We now load ELF files to VirtualRanges instead of using kmalloc.
We have only a fixed 1 MiB kmalloc for big allocations and this
allows loading files even when they don't fit in there.
This caused me to rewrite the whole ELF loading process since the
loaded ELF is not in memory mapped by every process.
Virtual ranges allow you to zero out the memory and to copy into
them from arbitary byte buffers. 
							
						 
						
							2023-06-09 00:37:43 +03:00  
				
					
						
							
							
								 
						
							
								59b10c4d25 
								
							 
						 
						
							
							
								
								Kernel: PageTableScope locks the PageTable before disabling interrupts  
							
							... 
							
							
							
							This allows replacing some PageTableScopes with PageTable::lock() 
							
						 
						
							2023-06-09 00:34:41 +03:00  
				
					
						
							
							
								 
						
							
								24993f6020 
								
							 
						 
						
							
							
								
								LibC: implement setenv, unsetenv, putenv  
							
							
							
						 
						
							2023-06-05 22:51:02 +03:00  
				
					
						
							
							
								 
						
							
								55ea5c5488 
								
							 
						 
						
							
							
								
								Kernel: add basic support for environment variables  
							
							... 
							
							
							
							exec functions will search files from PATH 
							
						 
						
							2023-06-05 22:51:02 +03:00  
				
					
						
							
							
								 
						
							
								c6b5cc1e07 
								
							 
						 
						
							
							
								
								Kernel: exec now has better posix errors  
							
							
							
						 
						
							2023-06-05 21:12:08 +03:00  
				
					
						
							
							
								 
						
							
								896b919c9d 
								
							 
						 
						
							
							
								
								Kernel/LibC: pass environ pointer to process  
							
							
							
						 
						
							2023-06-05 21:12:08 +03:00  
				
					
						
							
							
								 
						
							
								cf88142856 
								
							 
						 
						
							
							
								
								Kernel: TTY now supports CSI s and u  
							
							... 
							
							
							
							These are commonly supported values to save and load cursor
position 
							
						 
						
							2023-06-05 18:19:13 +03:00  
				
					
						
							
							
								 
						
							
								d1ad38c8d4 
								
							 
						 
						
							
							
								
								Kernel/LibC: add SYS_STAT and stat(), lstat()  
							
							
							
						 
						
							2023-06-05 14:37:14 +03:00  
				
					
						
							
							
								 
						
							
								9fbb2b9369 
								
							 
						 
						
							
							
								
								Kernel: Add SYS_WAIT  
							
							... 
							
							
							
							This syscall waits for a given pid. 
							
						 
						
							2023-06-04 18:00:52 +03:00  
				
					
						
							
							
								 
						
							
								5bf7ca1c80 
								
							 
						 
						
							
							
								
								Kernel: Allocators are now stored in UniqPtr  
							
							... 
							
							
							
							This allows proper memory management, we had some memory leak 
							
						 
						
							2023-06-04 01:25:57 +03:00  
				
					
						
							
							
								 
						
							
								1b1f22c35e 
								
							 
						 
						
							
							
								
								Kernel: make load_elf() its own function  
							
							
							
						 
						
							2023-06-04 01:24:11 +03:00  
				
					
						
							
							
								 
						
							
								479817231a 
								
							 
						 
						
							
							
								
								Kernel: PhysicalRange maps its nodes to kernel vaddr space  
							
							... 
							
							
							
							This keeps the lower half of address space cleaner 
							
						 
						
							2023-06-04 01:20:47 +03:00  
				
					
						
							
							
								 
						
							
								b403155ca9 
								
							 
						 
						
							
							
								
								Kernel: You can specify first vaddr for getting free pages  
							
							
							
						 
						
							2023-06-04 01:15:48 +03:00  
				
					
						
							
							
								 
						
							
								5f339d585c 
								
							 
						 
						
							
							
								
								Kernel: PAGE_FLAG_MASK is now only 0xF  
							
							... 
							
							
							
							We don't care currenly about anything but the last few bits 
							
						 
						
							2023-06-03 20:08:13 +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  
				
					
						
							
							
								 
						
							
								9228df0f23 
								
							 
						 
						
							
							
								
								Kernel: Inode/Device detection is done with overridden bool functions  
							
							
							
						 
						
							2023-06-03 13:28:15 +03:00  
				
					
						
							
							
								 
						
							
								813d0f1b5f 
								
							 
						 
						
							
							
								
								Kernel: add basic disk cache  
							
							... 
							
							
							
							ATADevices now add disk cache to themselves 
							
						 
						
							2023-06-03 02:23:14 +03:00  
				
					
						
							
							
								 
						
							
								2b901abfb1 
								
							 
						 
						
							
							
								
								Kernel: Shell 'memory' now prints heap memory usage  
							
							
							
						 
						
							2023-06-03 02:22:18 +03:00  
				
					
						
							
							
								 
						
							
								7bbdee6cc4 
								
							 
						 
						
							
							
								
								Kernel: Symlinks are now working  
							
							... 
							
							
							
							We still have to implement loop or depth detection 
							
						 
						
							2023-06-02 11:43:46 +03:00  
				
					
						
							
							
								 
						
							
								835d32814d 
								
							 
						 
						
							
							
								
								Kernel: add basic support for symlinks  
							
							
							
						 
						
							2023-06-01 00:24:45 +03:00  
				
					
						
							
							
								 
						
							
								b48b239882 
								
							 
						 
						
							
							
								
								Kernel: Implement Process::exec()  
							
							
							
						 
						
							2023-05-31 20:56:29 +03:00  
				
					
						
							
							
								 
						
							
								5fb69300ca 
								
							 
						 
						
							
							
								
								Kernel: Move userspace entry functions to Process instead of Thread  
							
							
							
						 
						
							2023-05-31 19:31:10 +03:00  
				
					
						
							
							
								 
						
							
								67886b0c5a 
								
							 
						 
						
							
							
								
								Kernel: Move V2P and P2V to Memory/Types.h  
							
							
							
						 
						
							2023-05-30 23:57:03 +03:00  
				
					
						
							
							
								 
						
							
								81cf389754 
								
							 
						 
						
							
							
								
								Kernel: Booting with higher half kernel gets to Heap initialization  
							
							
							
						 
						
							2023-05-30 22:21:12 +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  
				
					
						
							
							
								 
						
							
								ff83f967d8 
								
							 
						 
						
							
							
								
								Kernel: Make RecursiveSpinLock thread safe  
							
							... 
							
							
							
							also SpinLock is now implemented with gcc builtins 
							
						 
						
							2023-05-29 19:38:09 +03:00  
				
					
						
							
							
								 
						
							
								09666adc53 
								
							 
						 
						
							
							
								
								Kernel: fork() now copies allocations through FixedWidthAllocator  
							
							
							
						 
						
							2023-05-28 21:34:35 +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  
				
					
						
							
							
								 
						
							
								f04399c3a0 
								
							 
						 
						
							
							
								
								Kernel: fork() now copies allocation done through GeneralAllocator  
							
							
							
						 
						
							2023-05-28 20:37:39 +03:00  
				
					
						
							
							
								 
						
							
								f2d767b799 
								
							 
						 
						
							
							
								
								Kernel: Add bareboness fork() function  
							
							
							
						 
						
							2023-05-28 18:08:49 +03:00  
				
					
						
							
							
								 
						
							
								3e93dae53c 
								
							 
						 
						
							
							
								
								Kernel: Add invalidate() to MMU  
							
							
							
						 
						
							2023-05-28 18:05:49 +03:00  
				
					
						
							
							
								 
						
							
								b021d3eebd 
								
							 
						 
						
							
							
								
								Kernel: Processes and Threads use VirtualRange memory allocations  
							
							
							
						 
						
							2023-05-28 17:48:34 +03:00  
				
					
						
							
							
								 
						
							
								15842db83e 
								
							 
						 
						
							
							
								
								Kernel: Move PhysicalRange to its own file and add VirtualRange  
							
							
							
						 
						
							2023-05-28 17:48:34 +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  
				
					
						
							
							
								 
						
							
								faf14b880e 
								
							 
						 
						
							
							
								
								LibC: Rewrite all the headers.  
							
							... 
							
							
							
							We now have more or less posix issue 2018 conforming libc headers.
This was a really time consuming and boring operation but it had to
be done.
Now we get to actually start implementing libc :) 
							
						 
						
							2023-05-26 22:31:21 +03:00  
				
					
						
							
							
								 
						
							
								1658e925f2 
								
							 
						 
						
							
							
								
								Kernel: Add bareboness possibility to set termios  
							
							
							
						 
						
							2023-05-26 22:31:21 +03:00  
				
					
						
							
							
								 
						
							
								80d9f6131b 
								
							 
						 
						
							
							
								
								Kernel/LibC: move file offset back to kernel  
							
							... 
							
							
							
							This makes keeping track of offsets easier and more proper 
							
						 
						
							2023-05-26 22:31:21 +03:00  
				
					
						
							
							
								 
						
							
								e0a72defa2 
								
							 
						 
						
							
							
								
								Kernel: Add argc and argv to process entry  
							
							
							
						 
						
							2023-05-16 00:27:49 +03:00  
				
					
						
							
							
								 
						
							
								e0a7e242f8 
								
							 
						 
						
							
							
								
								Kernel: Add MMUScope  
							
							... 
							
							
							
							This disables interrupts and loads specified mmu for the
scope it lives in 
							
						 
						
							2023-05-16 00:26:39 +03:00  
				
					
						
							
							
								 
						
							
								6acb86c14b 
								
							 
						 
						
							
							
								
								Kernel: MMU keeps track of the current  
							
							
							
						 
						
							2023-05-16 00:26:39 +03:00  
				
					
						
							
							
								 
						
							
								729ff267d7 
								
							 
						 
						
							
							
								
								LibC: add function declarations to sys/stat.h  
							
							
							
						 
						
							2023-05-11 15:11:33 +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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								f36b94d039 
								
							 
						 
						
							
							
								
								Kernel: MMU can now provide info about virtual address space  
							
							
							
						 
						
							2023-05-06 17:34:22 +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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								cd74b2167d 
								
							 
						 
						
							
							
								
								LibC: Write mostly functioning stdio  
							
							
							
						 
						
							2023-04-23 14:32:37 +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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								633929629c 
								
							 
						 
						
							
							
								
								Kernel: Start working on heap  
							
							
							
						 
						
							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  
				
					
						
							
							
								 
						
							
								8ee63f8264 
								
							 
						 
						
							
							
								
								Kernel: We can create basic userspace processes  
							
							... 
							
							
							
							These are still allocated on the kernel memory 
							
						 
						
							2023-04-12 17:52:36 +03:00  
				
					
						
							
							
								 
						
							
								34358b8471 
								
							 
						 
						
							
							
								
								Kernel: Scheduler can now terminate processes threads  
							
							
							
						 
						
							2023-04-12 17:49:04 +03:00  
				
					
						
							
							
								 
						
							
								3201c3654e 
								
							 
						 
						
							
							
								
								Kernel: Threads now use only 4 KiB stack :)  
							
							
							
						 
						
							2023-04-12 00:22:08 +03:00  
				
					
						
							
							
								 
						
							
								5810a77cbf 
								
							 
						 
						
							
							
								
								Kernel: Mark Scheduler::start() as noreturn as appropriate  
							
							
							
						 
						
							2023-04-11 23:33:20 +03:00  
				
					
						
							
							
								 
						
							
								aa2aee684b 
								
							 
						 
						
							
							
								
								Kernel: remove message from BAN::Error  
							
							... 
							
							
							
							We don't store the error message anymore in BAN::Error.
Instead we store a error code that can be mapped into a string.
This allows BAN::Error to only take 4 bytes instead of 128.
We should also make some kernel initialization just panic instead
of returning errors since they are required for succesfull boot
anyway. 
							
						 
						
							2023-04-11 23:25:21 +03:00  
				
					
						
							
							
								 
						
							
								cfa025acae 
								
							 
						 
						
							
							
								
								BAN: Move RefPtr to its own file and create New.h  
							
							... 
							
							
							
							New.h contains definitions for placement new operators and
BAN::allocator and BAN::dealloctor 
							
						 
						
							2023-04-10 21:07:25 +03:00  
				
					
						
							
							
								 
						
							
								f924ac9265 
								
							 
						 
						
							
							
								
								Kernel: Threads can now be terminated mid execution  
							
							
							
						 
						
							2023-04-10 21:07:25 +03:00  
				
					
						
							
							
								 
						
							
								f281543255 
								
							 
						 
						
							
							
								
								Kernel: Add tty to process and make termios modifiable  
							
							
							
						 
						
							2023-04-05 02:53:28 +03:00  
				
					
						
							
							
								 
						
							
								4f522d337a 
								
							 
						 
						
							
							
								
								Kernel: Add partial support for shell  
							
							... 
							
							
							
							We don't handle arrow keys, and the tty does not know how to clear
the screeen :D 
							
						 
						
							2023-04-05 01:30:58 +03:00  
				
					
						
							
							
								 
						
							
								af0979ec32 
								
							 
						 
						
							
							
								
								Kernel: Process can now initialize stdio  
							
							... 
							
							
							
							This allows the use of the fds STD{IN,OUT,ERR}_FILENO 
							
						 
						
							2023-04-05 01:10:25 +03:00  
				
					
						
							
							
								 
						
							
								7f95444bb5 
								
							 
						 
						
							
							
								
								Kernel: Start work on making tty a file  
							
							... 
							
							
							
							TTY is now a file that you can read from/write to. I still have
to port shell to use this new interface 
							
						 
						
							2023-04-05 00:56:09 +03:00  
				
					
						
							
							
								 
						
							
								783842bac2 
								
							 
						 
						
							
							
								
								Kernel: add virtual write function to inode  
							
							
							
						 
						
							2023-04-03 20:29:07 +03:00  
				
					
						
							
							
								 
						
							
								ee1f3623ce 
								
							 
						 
						
							
							
								
								Kernel: Fix typo  
							
							
							
						 
						
							2023-04-03 19:56:55 +03:00  
				
					
						
							
							
								 
						
							
								b87dae7e7c 
								
							 
						 
						
							
							
								
								Kernel: Device dev and rdev number is done more properly  
							
							... 
							
							
							
							Also hd* partitions are now 1 indexed instead of 0 
							
						 
						
							2023-04-03 11:43:16 +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  
				
					
						
							
							
								 
						
							
								46d65471d9 
								
							 
						 
						
							
							
								
								Kernel: ATA now uses irqs instead of polling  
							
							... 
							
							
							
							Reading is now much slower at ~500 kB/s it was around 3 MB/s.
This is probably mostly due semaphore blocking taking atleast
until next reschedule (1 ms itervals). This will be a problem
as long as we are using only single processor.
I could try to use {READ/WRITE}_MULTIPLE commands, but since
most of the disk reads are 2 sectors (inode block size) this
will at most double the speed.
Most efficient speed up would of course be caching disk access
data and inodes overall. 
							
						 
						
							2023-04-03 00:03:38 +03:00  
				
					
						
							
							
								 
						
							
								dcc174b62e 
								
							 
						 
						
							
							
								
								Kernel: Move ATADevice to its own file from ATAController  
							
							... 
							
							
							
							The API is kinda weird since device reads/writes go from
ATADevice -> ATAController -> ATADevice
but this is for now atleast necessary since ATAController has(?)
to keep all devices from using the disks at the same time 
							
						 
						
							2023-04-02 18:26:19 +03:00  
				
					
						
							
							
								 
						
							
								cbb0f6be9a 
								
							 
						 
						
							
							
								
								Kernel: cleanup includes  
							
							... 
							
							
							
							I went quickly went through all files since I found some weird
includes :D 
							
						 
						
							2023-04-01 02:14:49 +03:00  
				
					
						
							
							
								 
						
							
								a60f8098ee 
								
							 
						 
						
							
							
								
								Kernel: Fix traversing back from mount points  
							
							
							
						 
						
							2023-04-01 01:54:35 +03:00  
				
					
						
							
							
								 
						
							
								8b5d8d9f8a 
								
							 
						 
						
							
							
								
								Kernel: Process gets absolute paths for mount  
							
							
							
						 
						
							2023-04-01 00:30:11 +03:00  
				
					
						
							
							
								 
						
							
								db65cfeb8a 
								
							 
						 
						
							
							
								
								Kernel: Cleanup ATA device initialization  
							
							
							
						 
						
							2023-03-31 00:58:57 +03:00  
				
					
						
							
							
								 
						
							
								a3ba6da6f3 
								
							 
						 
						
							
							
								
								Kernel: Move DeviceManager to its own file  
							
							
							
						 
						
							2023-03-30 22:39:45 +03:00  
				
					
						
							
							
								 
						
							
								b048630e5b 
								
							 
						 
						
							
							
								
								Kernel: Improve locking in Process, VFS and ATAController  
							
							... 
							
							
							
							We used to block on all process access. This meant that shell
reading the keyboard input would block all VFS access making disk
accesses practically impossible. We now block only when it is
necessary :) 
							
						 
						
							2023-03-30 22:02:16 +03:00  
				
					
						
							
							
								 
						
							
								dcee92a6bc 
								
							 
						 
						
							
							
								
								Kernel: Thread is no longer RefCounted  
							
							... 
							
							
							
							This makes developement with Scheduler much easier against compiler
optimizations. I could now remove the pragma GCC optimize stuff. 
							
						 
						
							2023-03-30 19:16:51 +03:00  
				
					
						
							
							
								 
						
							
								c2e3b422cc 
								
							 
						 
						
							
							
								
								Kernel: Add Semaphore to block threads  
							
							
							
						 
						
							2023-03-30 18:46:33 +03:00  
				
					
						
							
							
								 
						
							
								d4c03d3939 
								
							 
						 
						
							
							
								
								Kernel: root partition is now passed from the commandline  
							
							
							
						 
						
							2023-03-30 18:46:19 +03:00  
				
					
						
							
							
								 
						
							
								8e68d2e3ea 
								
							 
						 
						
							
							
								
								Kernel: Shell can now mount partitions  
							
							
							
						 
						
							2023-03-30 15:06:41 +03:00  
				
					
						
							
							
								 
						
							
								30c33b55e3 
								
							 
						 
						
							
							
								
								Kernel: Inode::Mode is now a struct so we can have functions in it  
							
							
							
						 
						
							2023-03-30 14:41:15 +03:00  
				
					
						
							
							
								 
						
							
								e2791e5260 
								
							 
						 
						
							
							
								
								Kernel: StorageDevices and Controllers are now devices  
							
							
							
						 
						
							2023-03-30 14:22:15 +03:00  
				
					
						
							
							
								 
						
							
								88a8bd659d 
								
							 
						 
						
							
							
								
								Kernel: Add IFBLK, IFLNK, IFSOCK to Inode::Mode  
							
							
							
						 
						
							2023-03-30 13:15:46 +03:00  
				
					
						
							
							
								 
						
							
								f9cc114907 
								
							 
						 
						
							
							
								
								Kernel: All devices have atime, mtime, ctime at their creation  
							
							
							
						 
						
							2023-03-30 13:15:46 +03:00  
				
					
						
							
							
								 
						
							
								9a4d603a62 
								
							 
						 
						
							
							
								
								Kernel: Remove the mount test from VFS  
							
							
							
						 
						
							2023-03-30 11:43:24 +03:00  
				
					
						
							
							
								 
						
							
								78ea4b2207 
								
							 
						 
						
							
							
								
								Kernel: fix stat command and device numbers  
							
							
							
						 
						
							2023-03-30 10:43:08 +03:00  
				
					
						
							
							
								 
						
							
								ab3cdea548 
								
							 
						 
						
							
							
								
								Kernel: Rewrite mounting code  
							
							
							
						 
						
							2023-03-29 21:34:48 +03:00  
				
					
						
							
							
								 
						
							
								dd84a2175f 
								
							 
						 
						
							
							
								
								Kernel: Move Partition out of StorageDevice and rename functions  
							
							
							
						 
						
							2023-03-29 13:23:01 +03:00  
				
					
						
							
							
								 
						
							
								62fb233eb1 
								
							 
						 
						
							
							
								
								Kernel: DeviceManager is now a 'FileSystem' so it can expose devices  
							
							... 
							
							
							
							Shell reads keyboard through /dev/input :) 
							
						 
						
							2023-03-29 11:50:46 +03:00  
				
					
						
							
							
								 
						
							
								16d9d29971 
								
							 
						 
						
							
							
								
								Kernel: Remove obsolete KeyboardLayout/  
							
							... 
							
							
							
							This was used by the old input system. Currently keyboard layout is
hardcoded to finnish. But it will be reworked as something read from
the filesystem 
							
						 
						
							2023-03-29 03:09:14 +03:00  
				
					
						
							
							
								 
						
							
								fa8e921ee8 
								
							 
						 
						
							
							
								
								Kernel: Rework the whole input system  
							
							... 
							
							
							
							We now use Device abstraction that will allow us to provide devices
to userspace through /dev. Currently Shell reads from first and only
device (it being PS/2 Keyboard). 
							
						 
						
							2023-03-29 03:05:16 +03:00  
				
					
						
							
							
								 
						
							
								c7286396d8 
								
							 
						 
						
							
							
								
								Kernel: Move ACPI to its own file  
							
							
							
						 
						
							2023-03-27 17:30:45 +03:00  
				
					
						
							
							
								 
						
							
								666051fd34 
								
							 
						 
						
							
							
								
								Kernel/BAN: move unix time conversion to BAN and add stat to Shell  
							
							
							
						 
						
							2023-03-27 00:49:58 +03:00  
				
					
						
							
							
								 
						
							
								e55860eb6b 
								
							 
						 
						
							
							
								
								Kernel: Rework processes and VFS so we don't expose inodes  
							
							... 
							
							
							
							Everything is now done through a file descriptor. 
							
						 
						
							2023-03-26 04:30:57 +03:00  
				
					
						
							
							
								 
						
							
								1fade1aa9e 
								
							 
						 
						
							
							
								
								Kernel: Process::working_directory() is now thread safe  
							
							... 
							
							
							
							I realized you cannot return a stirng view and it to be thread safe 
							
						 
						
							2023-03-24 01:46:25 +02:00  
				
					
						
							
							
								 
						
							
								814f0b215d 
								
							 
						 
						
							
							
								
								Kernel: Create RecursiveSpinLock and add it to Process  
							
							... 
							
							
							
							We now lock every function within Proccess, just to be sure.
Recursive lock allows us to use lock from the same thread even if
we already have the spinlock locked 
							
						 
						
							2023-03-24 01:32:35 +02:00  
				
					
						
							
							
								 
						
							
								5fd26b4ea8 
								
							 
						 
						
							
							
								
								Kernel: Lock process functions instead of the ata controller  
							
							... 
							
							
							
							Process has to use locks at least on some functions so multithreaded
disk io is safe. This seemed to fix corrupted reads from disk 
							
						 
						
							2023-03-24 01:17:39 +02:00  
				
					
						
							
							
								 
						
							
								e5eab8bae4 
								
							 
						 
						
							
							
								
								Kernel: Ext2FS now does allocations better  
							
							... 
							
							
							
							We only have to allocate at the beginning of the all functions and
can properly exit before any disk reads if we run out of memory.
This makes development little bit 'harder' since the {read,write}_block
user must allocate a buffer of atleast block_size bytes.
I also made disk access to cause kernel panic on error since the error
handling during file write is something I don't want to think now.
The filesystem can easily corrupt so, I feel like when disk io starts
to fail I'll come back to this. 
							
						 
						
							2023-03-23 23:22:31 +02:00  
				
					
						
							
							
								 
						
							
								75c4f35e85 
								
							 
						 
						
							
							
								
								Kernel: Add possibiliity to create empty files on Ext2  
							
							... 
							
							
							
							Big rewrite for Ext2 for more easy and optimized code 
							
						 
						
							2023-03-23 22:26:06 +02:00  
				
					
						
							
							
								 
						
							
								633414bd20 
								
							 
						 
						
							
							
								
								Kernel: Remove block group descriptor cache from ext2fs  
							
							... 
							
							
							
							This will make improving the fs easier since we need to only update
the values on the disk 
							
						 
						
							2023-03-23 18:52:58 +02:00  
				
					
						
							
							
								 
						
							
								7ca6cd61be 
								
							 
						 
						
							
							
								
								Kernel: Move get_unix_time to RTC namespace  
							
							
							
						 
						
							2023-03-23 18:14:51 +02:00  
				
					
						
							
							
								 
						
							
								3ef72e8a7b 
								
							 
						 
						
							
							
								
								BAN: Modify Span constructors to keep constness correctly  
							
							
							
						 
						
							2023-03-23 14:26:03 +02:00  
				
					
						
							
							
								 
						
							
								9b56801c3d 
								
							 
						 
						
							
							
								
								Kernel: StorageDevice and Ext2 "support" writing  
							
							
							
						 
						
							2023-03-23 13:04:13 +02:00  
				
					
						
							
							
								 
						
							
								74949401bd 
								
							 
						 
						
							
							
								
								Kernel: Cleanup GPT parsing code  
							
							
							
						 
						
							2023-03-23 11:13:14 +02:00  
				
					
						
							
							
								 
						
							
								072954480d 
								
							 
						 
						
							
							
								
								Kernel: Remove obsolete Ext2FS::ext2_root_inode()  
							
							... 
							
							
							
							This was not used by anyone and the cast was wrong anyway 
							
						 
						
							2023-03-21 18:19:48 +02:00  
				
					
						
							
							
								 
						
							
								3652d11059 
								
							 
						 
						
							
							
								
								Kernel: Remove for_each_block from Ext2  
							
							
							
						 
						
							2023-03-21 18:14:02 +02:00  
				
					
						
							
							
								 
						
							
								f9ae1f0023 
								
							 
						 
						
							
							
								
								Kernel: Fix PC Screen font parsing  
							
							... 
							
							
							
							I had misread the format and the parsing code was incorrect. I also
changed fonts to store unicode codepoints as 32 bit integers, so
every character can be represented 
							
						 
						
							2023-03-20 14:52:42 +02:00  
				
					
						
							
							
								 
						
							
								896b4c280c 
								
							 
						 
						
							
							
								
								Kernel: Font parsing uses Spans now  
							
							
							
						 
						
							2023-03-20 13:35:54 +02:00  
				
					
						
							
							
								 
						
							
								e4bcd98904 
								
							 
						 
						
							
							
								
								Kernel: Add basic mounting to VFS.  
							
							
							
						 
						
							2023-03-19 05:51:25 +02:00  
				
					
						
							
							
								 
						
							
								3570764448 
								
							 
						 
						
							
							
								
								Kernel: Add comparison operator for inodes  
							
							
							
						 
						
							2023-03-19 03:34:23 +02:00  
				
					
						
							
							
								 
						
							
								8236598f9d 
								
							 
						 
						
							
							
								
								Kernel: Optimize Ext2 disk reads  
							
							... 
							
							
							
							We used to read whole file until we reached the asked offset.
Now we can calculate the appropriate block and read just the asked data. 
							
						 
						
							2023-03-18 03:47:59 +02:00  
				
					
						
							
							
								 
						
							
								1a26a318a4 
								
							 
						 
						
							
							
								
								Kernel: Rework filesystem reading  
							
							... 
							
							
							
							We now read from a filesystem to user provided buffer.
Read sizes are determined by read call.
You should now get file descriptors and do reading through Process::current() 
							
						 
						
							2023-03-17 21:18:41 +02:00  
				
					
						
							
							
								 
						
							
								1f2ceeb329 
								
							 
						 
						
							
							
								
								Kernel: VFS caches currently open inodes  
							
							
							
						 
						
							2023-03-16 15:31:33 +02:00  
				
					
						
							
							
								 
						
							
								1b7625581d 
								
							 
						 
						
							
							
								
								Kernel: Add basic concept of Processes  
							
							... 
							
							
							
							We now create Shell as a process that has its own threads 
							
						 
						
							2023-03-16 12:17:04 +02:00  
				
					
						
							
							
								 
						
							
								8b8e3cbbf0 
								
							 
						 
						
							
							
								
								Kernel/Userspace: Start initial work on userspace and syscalls  
							
							
							
						 
						
							2023-03-13 15:32:46 +02:00  
				
					
						
							
							
								 
						
							
								af854ec9e1 
								
							 
						 
						
							
							
								
								Kernel: Thread creation now takes void(*)() as entry and void* as data  
							
							... 
							
							
							
							This simplifies threading for the future and gets rid of (undefined?)
cast of member function pointer to address 
							
						 
						
							2023-03-09 15:33:42 +02:00  
				
					
						
							
							
								 
						
							
								8940ff8002 
								
							 
						 
						
							
							
								
								Kernel: You don't have to check whether VFS is initialized or not  
							
							... 
							
							
							
							VFS now returns Error when attempting to traverse inodes if it did
not find root partition 
							
						 
						
							2023-03-09 02:31:24 +02:00  
				
					
						
							
							
								 
						
							
								371dfe8ef3 
								
							 
						 
						
							
							
								
								BAN: Formatter now uses perfect forwarding on its arguments  
							
							
							
						 
						
							2023-03-08 21:31:26 +02:00  
				
					
						
							
							
								 
						
							
								7458f68c38 
								
							 
						 
						
							
							
								
								BAN: Error can now be constructed from c_string or format string  
							
							... 
							
							
							
							If the resulting string would overflow, we just truncate it to fit
the error message buffer (128) bytes 
							
						 
						
							2023-03-08 17:05:37 +02:00  
				
					
						
							
							
								 
						
							
								d90aba0963 
								
							 
						 
						
							
							
								
								Kernel: Create CriticalScope and fix kmalloc  
							
							... 
							
							
							
							This disables interrupts for the current scope and restores them
after the scope. This is used in kmalloc, since scheduler might
call into kmalloc/kfree, but deadlock if some thread is currently
trying to allocate. This allows us to use kmalloc in Scheduler. 
							
						 
						
							2023-03-08 13:55:53 +02:00  
				
					
						
							
							
								 
						
							
								a068d828fe 
								
							 
						 
						
							
							
								
								Kernel: ATA reads go through the ata controller and not only device  
							
							
							
						 
						
							2023-03-08 03:26:25 +02:00  
				
					
						
							
							
								 
						
							
								1dabe7a222 
								
							 
						 
						
							
							
								
								Kernel: More rework on Scheduler  
							
							
							
						 
						
							2023-03-08 03:26:25 +02:00  
				
					
						
							
							
								 
						
							
								e7a577f54a 
								
							 
						 
						
							
							
								
								Kernel: fix includes  
							
							
							
						 
						
							2023-03-08 03:26:25 +02:00  
				
					
						
							
							
								 
						
							
								23b3028e15 
								
							 
						 
						
							
							
								
								Kernel: Rename RefCounted -> RefPtr and implement RefCounted  
							
							
							
						 
						
							2023-03-08 03:26:25 +02:00  
				
					
						
							
							
								 
						
							
								f7ebda3bf1 
								
							 
						 
						
							
							
								
								Kernel: Move interrupt related functions to InterruptController  
							
							
							
						 
						
							2023-03-08 03:16:51 +02:00  
				
					
						
							
							
								 
						
							
								b8ee77eb78 
								
							 
						 
						
							
							
								
								Kernel: Initial work on new scheduler with queues  
							
							... 
							
							
							
							Sleeping is definately broken 
							
						 
						
							2023-03-08 02:41:44 +02:00  
				
					
						
							
							
								 
						
							
								a9acf1f6dc 
								
							 
						 
						
							
							
								
								Kernel: PCIDevice is now class with getters and constructor  
							
							
							
						 
						
							2023-03-08 02:41:44 +02:00  
				
					
						
							
							
								 
						
							
								1dd61e93b6 
								
							 
						 
						
							
							
								
								Kernel: Threads cannot take arguments anymore  
							
							
							
						 
						
							2023-03-02 01:56:09 +02:00  
				
					
						
							
							
								 
						
							
								7fcbb869e1 
								
							 
						 
						
							
							
								
								Kernel: Initialize GDT in kernel code  
							
							... 
							
							
							
							We dont use the boot GDT only while booting 
							
						 
						
							2023-03-01 21:21:56 +02:00  
				
					
						
							
							
								 
						
							
								ba8c4dbc7f 
								
							 
						 
						
							
							
								
								Kernel: panic now disables interrupts as the first thing  
							
							
							
						 
						
							2023-03-01 21:21:56 +02:00  
				
					
						
							
							
								 
						
							
								9756de02ef 
								
							 
						 
						
							
							
								
								Kernel: MMU now takes flags when allocating pages  
							
							
							
						 
						
							2023-03-01 21:21:56 +02:00  
				
					
						
							
							
								 
						
							
								7d84f290a1 
								
							 
						 
						
							
							
								
								Kernel: Add lock to Disk reads before I forget  
							
							
							
						 
						
							2023-02-26 03:48:11 +02:00  
				
					
						
							
							
								 
						
							
								ee5d02aa70 
								
							 
						 
						
							
							
								
								Kernel: Rewrite basically all current disk io stuff  
							
							... 
							
							
							
							This is a big commit that was kinda hard to split to smaller ones.
Essentially we now look at all the mass storage devices from PCI
and initialize (P)ATA devices. This doesn't provide any more functionality
but better abstractions and everything doesn't have to be on its old
default port that might be different for modern computers. 
							
						 
						
							2023-02-26 03:00:29 +02:00  
				
					
						
							
							
								 
						
							
								04bb08d27f 
								
							 
						 
						
							
							
								
								Kernel: Add basic PCI enumeration  
							
							
							
						 
						
							2023-02-26 02:56:53 +02:00  
				
					
						
							
							
								 
						
							
								34f9912a1d 
								
							 
						 
						
							
							
								
								Kernel: Add IO functions inl, outl, and ins{b,w,l} to read into buffer  
							
							
							
						 
						
							2023-02-24 12:39:38 +02:00  
				
					
						
							
							
								 
						
							
								390a747768 
								
							 
						 
						
							
							
								
								Kernel: Add prefs font for terminal output before file system  
							
							
							
						 
						
							2023-02-23 01:22:50 +02:00  
				
					
						
							
							
								 
						
							
								a4980acc88 
								
							 
						 
						
							
							
								
								Kernel: Fonts can now be parsed from the filesystem and set to terminal  
							
							... 
							
							
							
							We currently dont have a fallback font if we cannot get to filesystem
initialization, but that will come later. I can't test on real hardware
for this reason. 
							
						 
						
							2023-02-22 22:29:31 +02:00  
				
					
						
							
							
								 
						
							
								0e668738dc 
								
							 
						 
						
							
							
								
								Kernel: Make some basic bitmap font parsing code  
							
							
							
						 
						
							2023-02-22 22:28:12 +02:00  
				
					
						
							
							
								 
						
							
								d9c05b7378 
								
							 
						 
						
							
							
								
								Kernel: rewrite the whole kmalloc (again)  
							
							... 
							
							
							
							Performance of the old kmalloc implementation was terrible.
We now use fixed-width linked list allocations for sizes <= 60 bytes.
This is much faster than variable size allocation.
We don't use bitmap scanning anymore since it was probably the slow
part. Instead we use headers that tell allocations size and aligment.
I removed the kmalloc_eternal, even though it was very fast, there is
not really any need for it, since the only place it was used in was IDT.
These changes allowed my psf (font) parsing to go from ~500 ms to ~20 ms.
(coming soon :D) 
							
						 
						
							2023-02-22 16:32:50 +02:00  
				
					
						
							
							
								 
						
							
								5d31e89574 
								
							 
						 
						
							
							
								
								Kernel: Update ErrorOr API and add path find to VFS  
							
							... 
							
							
							
							These two are done on the same commit since Changes to Shell were
annoying to make work with only one change 
							
						 
						
							2023-02-22 01:23:11 +02:00  
				
					
						
							
							
								 
						
							
								038379274e 
								
							 
						 
						
							
							
								
								Kernel: Inode can now return full mode value  
							
							... 
							
							
							
							Kernel::Inode::Mode is an union of bitmasked fields for every
possible bit 
							
						 
						
							2023-02-20 21:39:24 +02:00  
				
					
						
							
							
								 
						
							
								efaca469ee 
								
							 
						 
						
							
							
								
								Kernel: Ext2Inode now supports indirect blocks through for_each_block()  
							
							
							
						 
						
							2023-02-20 10:25:15 +02:00  
				
					
						
							
							
								 
						
							
								80006ea137 
								
							 
						 
						
							
							
								
								Kernel: Initial work on filesystem  
							
							... 
							
							
							
							We support now ext2 directory listing. File reading is not yet supported. 
							
						 
						
							2023-02-20 01:46:00 +02:00  
				
					
						
							
							
								 
						
							
								247f03c79e 
								
							 
						 
						
							
							
								
								BAN: Make ErrorOr<> have attribute [[nodiscard]]  
							
							... 
							
							
							
							We don't have to specify it everytime we make function return ErrorOr 
							
						 
						
							2023-02-19 20:10:30 +02:00  
				
					
						
							
							
								 
						
							
								feaeee11e5 
								
							 
						 
						
							
							
								
								Kernel: fix ARCH() macro and add helper macros for push/pop  
							
							
							
						 
						
							2023-02-19 18:52:25 +02:00  
				
					
						
							
							
								 
						
							
								1bd8b0fe5c 
								
							 
						 
						
							
							
								
								Kernel: Sleep now actually sleeps and allows idling  
							
							
							
						 
						
							2023-02-19 18:52:25 +02:00  
				
					
						
							
							
								 
						
							
								8f1b6da2af 
								
							 
						 
						
							
							
								
								Kernel: Use Vector instead of raw poiters in Disk stuff  
							
							... 
							
							
							
							We now don't have to manually free allocated data 
							
						 
						
							2023-02-16 20:48:41 +02:00  
				
					
						
							
							
								 
						
							
								460fc3a29f 
								
							 
						 
						
							
							
								
								Kernel: Start working on filesystem  
							
							... 
							
							
							
							We have a basic PATA driver (for reading) and gpt parser. 
							
						 
						
							2023-02-16 20:00:31 +02:00  
				
					
						
							
							
								 
						
							
								94cbacc998 
								
							 
						 
						
							
							
								
								Kernel: PIT now has very barebones sleep  
							
							
							
						 
						
							2023-02-16 17:53:25 +02:00  
				
					
						
							
							
								 
						
							
								6a133782ed 
								
							 
						 
						
							
							
								
								All: Move to c++20  
							
							
							
						 
						
							2023-02-09 23:05:26 +02:00  
				
					
						
							
							
								 
						
							
								fb7fe73d49 
								
							 
						 
						
							
							
								
								Kernel: Add inw and outw to IO  
							
							
							
						 
						
							2023-02-04 23:37:34 +02:00  
				
					
						
							
							
								 
						
							
								5b5e620d8a 
								
							 
						 
						
							
							
								
								Kernel: Improve multithreading support  
							
							... 
							
							
							
							We can now use arbitary BAN::function<void(...)> as the Thread.
I also implemented multithreading for i386 since it was not done
on the initial multithreading commit. 
							
						 
						
							2023-02-02 23:24:12 +02:00  
				
					
						
							
							
								 
						
							
								777ede328e 
								
							 
						 
						
							
							
								
								Kernel: Add helper functions for reading current rsp and rbp  
							
							
							
						 
						
							2023-02-02 23:19:44 +02:00  
				
					
						
							
							
								 
						
							
								117d1de038 
								
							 
						 
						
							
							
								
								Kernel: panic does not need to include <kernel/kprint.h>  
							
							... 
							
							
							
							This allows us to not have kprint available literally everywhere 
							
						 
						
							2023-02-02 15:51:15 +02:00  
				
					
						
							
							
								 
						
							
								f6b05212e0 
								
							 
						 
						
							
							
								
								Kernel: Add is_locked() to spinlock  
							
							... 
							
							
							
							I think this is atomic read 
							
						 
						
							2023-02-02 15:49:30 +02:00  
				
					
						
							
							
								 
						
							
								9b8de5025a 
								
							 
						 
						
							
							
								
								All: rename every function from UpperCamelCase to snake_case  
							
							... 
							
							
							
							This was a mess since I didn't know which to use but now I decided
to go with snake_case :) 
							
						 
						
							2023-02-01 21:05:44 +02:00  
				
					
						
							
							
								 
						
							
								6a9d60a8fb 
								
							 
						 
						
							
							
								
								Kernel: Implement somewhat functioning multithread support  
							
							... 
							
							
							
							This still uses only a single cpu, but we can now have 'parallelization'
This seems to work fine in qemu and bochs, but my own computer did not
like this when I last tried.
I have absolutely no idea how multithreading should actually be
implmemented and I just thought and implemented the most simple one I
could think of. This might not be in any way correct :D 
							
						 
						
							2023-02-01 01:53:35 +02:00  
				
					
						
							
							
								 
						
							
								7d8aafa0b5 
								
							 
						 
						
							
							
								
								Kernel: Add macros for current archutecture  
							
							
							
						 
						
							2023-02-01 01:52:52 +02:00  
				
					
						
							
							
								 
						
							
								337569b0ca 
								
							 
						 
						
							
							
								
								Kernel: Implement basic SpinLock  
							
							
							
						 
						
							2023-02-01 01:52:52 +02:00  
				
					
						
							
							
								 
						
							
								1687028ed5 
								
							 
						 
						
							
							
								
								Kernel: Add constructor and destructor to MMU  
							
							
							
						 
						
							2023-01-30 18:54:04 +02:00  
				
					
						
							
							
								 
						
							
								6dc22b7251 
								
							 
						 
						
							
							
								
								Kernel: Add actual register values to x86_64 kernel panic  
							
							... 
							
							
							
							Very hackish implementation, but we now get actual registers at the
time of the interrupt happening 
							
						 
						
							2023-01-30 18:52:38 +02:00  
				
					
						
							
							
								 
						
							
								aa0757e135 
								
							 
						 
						
							
							
								
								Kernel: Move dump_stacktrace from panic -> debug  
							
							
							
						 
						
							2023-01-26 02:57:14 +02:00  
				
					
						
							
							
								 
						
							
								e87026f01d 
								
							 
						 
						
							
							
								
								Kernel: I have no idea what this commit does  
							
							... 
							
							
							
							I had committed a change in IDT but reverted it now.
This propably only adds a spurious interrupt detection to common cpp
interrupt handler? 
							
						 
						
							2023-01-26 02:55:37 +02:00  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								ba53582f23 
								
							 
						 
						
							
							
								
								Kernel: Rewrite APIC and PIC more OOP friendly  
							
							... 
							
							
							
							x86_64 port is slowly coming together 
							
						 
						
							2023-01-23 20:13:57 +02:00  
				
					
						
							
							
								 
						
							
								b50bb03ed4 
								
							 
						 
						
							
							
								
								Kernel: Panic now halts machine even if we get spurious irqs  
							
							
							
						 
						
							2023-01-23 18:25:48 +02:00  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								491610db2c 
								
							 
						 
						
							
							
								
								Kernel: move GDT initialization to boot.S  
							
							
							
						 
						
							2023-01-22 00:48:12 +02:00  
				
					
						
							
							
								 
						
							
								bb051604a1 
								
							 
						 
						
							
							
								
								Kernel: Move dump_stacktrace() to arch folder  
							
							... 
							
							
							
							It uses mov instruction which has different register on x86/x86-64 
							
						 
						
							2023-01-21 22:16:31 +02:00  
				
					
						
							
							
								 
						
							
								b9a4530e54 
								
							 
						 
						
							
							
								
								Kernel: Kernel::Panic now dumps stacktrace to com1  
							
							
							
						 
						
							2023-01-16 21:50:50 +02:00  
				
					
						
							
							
								 
						
							
								7540fa0385 
								
							 
						 
						
							
							
								
								Kernel: Shell now 'properly' parses commandline  
							
							
							
						 
						
							2023-01-16 20:09:22 +02:00  
				
					
						
							
							
								 
						
							
								e307db47eb 
								
							 
						 
						
							
							
								
								Kernel: Kernel::Panic() will now always print to serial output  
							
							
							
						 
						
							2023-01-16 15:44:27 +02:00  
				
					
						
							
							
								 
						
							
								46e5b3f3d6 
								
							 
						 
						
							
							
								
								Kernel: Move GDT to its own namespace and cleanup  
							
							
							
						 
						
							2023-01-16 15:24:10 +02:00  
				
					
						
							
							
								 
						
							
								8881c1e117 
								
							 
						 
						
							
							
								
								Kernel: Shell is no longer singleton  
							
							
							
						 
						
							2023-01-16 15:16:39 +02:00  
				
					
						
							
							
								 
						
							
								1545850be3 
								
							 
						 
						
							
							
								
								Kernel: Input callbacks use the new BAN::Function  
							
							
							
						 
						
							2023-01-16 15:15:02 +02:00  
				
					
						
							
							
								 
						
							
								d5e162b1ea 
								
							 
						 
						
							
							
								
								Kernel: fix kmalloc header  
							
							
							
						 
						
							2023-01-16 12:10:50 +02:00  
				
					
						
							
							
								 
						
							
								f547a788f2 
								
							 
						 
						
							
							
								
								Kernel: Add support for arrow keys in Shell  
							
							
							
						 
						
							2023-01-13 15:07:24 +02:00  
				
					
						
							
							
								 
						
							
								416a41745f 
								
							 
						 
						
							
							
								
								Kernel: Kernel::Panic now checks that TTY is initialized instead of VESA  
							
							
							
						 
						
							2023-01-13 15:04:06 +02:00  
				
					
						
							
							
								 
						
							
								7f01eaa936 
								
							 
						 
						
							
							
								
								Kernel: Move CPUID feature strings to cpp file  
							
							
							
						 
						
							2023-01-13 00:03:37 +02:00  
				
					
						
							
							
								 
						
							
								301ad89783 
								
							 
						 
						
							
							
								
								Kernel: Unallocate RSDT after we are done with it  
							
							
							
						 
						
							2023-01-12 13:45:01 +02:00  
				
					
						
							
							
								 
						
							
								33a4fcc662 
								
							 
						 
						
							
							
								
								Kernel: Add helper macro for bochs magic break point  
							
							
							
						 
						
							2023-01-12 13:24:41 +02:00  
				
					
						
							
							
								 
						
							
								8fd51fb47d 
								
							 
						 
						
							
							
								
								Kernel: Replace Paging{.h,.cpp} with better MMU{.h,.cpp}  
							
							
							
						 
						
							2023-01-12 13:24:36 +02:00  
				
					
						
							
							
								 
						
							
								64c57ea3d0 
								
							 
						 
						
							
							
								
								Kernel: Remove obsole CPUID::IsAvailable  
							
							... 
							
							
							
							This is now a harware requirement that is verified already in boot.S 
							
						 
						
							2023-01-10 21:28:59 +02:00  
				
					
						
							
							
								 
						
							
								7d45b3cbd6 
								
							 
						 
						
							
							
								
								Kernel: Rewrote kmalloc to be much simpler and allow alignment  
							
							
							
						 
						
							2023-01-10 21:10:36 +02:00  
				
					
						
							
							
								 
						
							
								d89b6aa9ce 
								
							 
						 
						
							
							
								
								Kernel: Serial output now gives clickable links  
							
							
							
						 
						
							2023-01-10 21:09:59 +02:00  
				
					
						
							
							
								 
						
							
								85068e27d6 
								
							 
						 
						
							
							
								
								BAN: BAN/Memory.h now provides the operator new and delete  
							
							
							
						 
						
							2023-01-10 17:51:33 +02:00  
				
					
						
							
							
								 
						
							
								c6467b8ebc 
								
							 
						 
						
							
							
								
								Kernel: Multiboot data and kernel command lines are now global variables  
							
							
							
						 
						
							2023-01-10 17:50:24 +02:00  
				
					
						
							
							
								 
						
							
								5106552bfd 
								
							 
						 
						
							
							
								
								Kernel: Serial output uses now "\r\n" as line endings  
							
							
							
						 
						
							2023-01-10 11:24:30 +02:00  
				
					
						
							
							
								 
						
							
								979a5960e4 
								
							 
						 
						
							
							
								
								Kernel: We don't use floating point arithemtic anymore in kernel  
							
							
							
						 
						
							2023-01-10 11:10:17 +02:00  
				
					
						
							
							
								 
						
							
								efd8638a96 
								
							 
						 
						
							
							
								
								Kernel: Improve kernel panic message and rename it 'panic'->'Panic'  
							
							
							
						 
						
							2023-01-09 21:57:03 +02:00  
				
					
						
							
							
								 
						
							
								531f470132 
								
							 
						 
						
							
							
								
								Kernel: Add helper to map pages with base address and size  
							
							... 
							
							
							
							This allows us to easily map enough pages for buffer with known size
VESA driver can now allocate enough memory for whole framebuffer if it
doesn't fit in a single page (1920x1080 for example) 
							
						 
						
							2023-01-05 03:44:41 +02:00  
				
					
						
							
							
								 
						
							
								d6623def32 
								
							 
						 
						
							
							
								
								Kernel: Paging uses now PAE with 2 MiB pages  
							
							
							
						 
						
							2023-01-05 02:00:18 +02:00  
				
					
						
							
							
								 
						
							
								fcec793873 
								
							 
						 
						
							
							
								
								Kernel: Shell now renders a mouse  
							
							... 
							
							
							
							PS/2 mouse doesn't seem to work with PIC. 
							
						 
						
							2022-12-30 20:48:15 +02:00  
				
					
						
							
							
								 
						
							
								9d9a6b2fec 
								
							 
						 
						
							
							
								
								Kernel: VESA can now print 8x16 bitmaps  
							
							
							
						 
						
							2022-12-30 20:47:25 +02:00  
				
					
						
							
							
								 
						
							
								fc05642b74 
								
							 
						 
						
							
							
								
								Kernel: Make Render from buffer public tty function  
							
							
							
						 
						
							2022-12-30 19:57:44 +02:00  
				
					
						
							
							
								 
						
							
								ef0b2010e0 
								
							 
						 
						
							
							
								
								Kernel: Add basic PS/2 Mouse driver  
							
							
							
						 
						
							2022-12-30 19:38:21 +02:00  
				
					
						
							
							
								 
						
							
								3c92aa45fb 
								
							 
						 
						
							
							
								
								Kernel: 'cpuinfo' command in shell now shows wheter you are running on 64-bit cpu  
							
							
							
						 
						
							2022-12-28 19:46:37 +02:00  
				
					
						
							
							
								 
						
							
								5d7a767f8b 
								
							 
						 
						
							
							
								
								Kernel: Enable basic paging  
							
							
							
						 
						
							2022-12-28 04:17:34 +02:00  
				
					
						
							
							
								 
						
							
								fd4fdffd46 
								
							 
						 
						
							
							
								
								BAN::Formatter now takes putc like function as a parameter  
							
							... 
							
							
							
							This allows us to use capturing lambdas as a putc like function 
							
						 
						
							2022-12-27 19:55:07 +02:00  
				
					
						
							
							
								 
						
							
								620b836fc3 
								
							 
						 
						
							
							
								
								Kernel: VESA now somewhat handles Cursor in Graphics mode  
							
							
							
						 
						
							2022-12-27 18:29:02 +02:00  
				
					
						
							
							
								 
						
							
								5ae1fc58e9 
								
							 
						 
						
							
							
								
								Kernel: Clean code in tty and vesa  
							
							
							
						 
						
							2022-12-27 17:22:45 +02:00  
				
					
						
							
							
								 
						
							
								2535eb1c4c 
								
							 
						 
						
							
							
								
								Kernel: TTY now handles keeping terminal buffer  
							
							... 
							
							
							
							VESA Driver cannot scroll anymore, this is handled by tty 
							
						 
						
							2022-12-27 17:06:33 +02:00  
				
					
						
							
							
								 
						
							
								d8fd6afd12 
								
							 
						 
						
							
							
								
								Kernel: Make TTY a class  
							
							
							
						 
						
							2022-12-23 15:55:45 +02:00  
				
					
						
							
							
								 
						
							
								3f7a61a4d2 
								
							 
						 
						
							
							
								
								Kernel: VESA driver has now second buffer for fast scrolling  
							
							... 
							
							
							
							This allows us to not read from video memory, since it was very slow
I also implemented fast path for graphics clearing and scrolling if bpp is 32 
							
						 
						
							2022-12-20 14:02:44 +02:00  
				
					
						
							
							
								 
						
							
								5e2680cade 
								
							 
						 
						
							
							
								
								Kernel: You can now disable APIC from the grub commandline  
							
							
							
						 
						
							2022-12-20 11:57:09 +02:00  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								f244728d33 
								
							 
						 
						
							
							
								
								Kernel: Add unicode support  
							
							
							
						 
						
							2022-12-16 03:55:13 +02:00  
				
					
						
							
							
								 
						
							
								6fe0d04f07 
								
							 
						 
						
							
							
								
								Kernel: Implement basic VESA Graphics mode driver  
							
							... 
							
							
							
							We now support VESA Graphics mode with some bitmap fonts 
							
						 
						
							2022-12-16 00:47:03 +02:00  
				
					
						
							
							
								 
						
							
								9274c9ee2f 
								
							 
						 
						
							
							
								
								Kernel: Abstract TTY to use new VESA  
							
							
							
						 
						
							2022-12-15 19:05:07 +02:00  
				
					
						
							
							
								 
						
							
								930661619b 
								
							 
						 
						
							
							
								
								Kernel: Add more functionality to Shell  
							
							... 
							
							
							
							commands 'time', 'cpuid', 'random' 
							
						 
						
							2022-12-15 17:29:35 +02:00  
				
					
						
							
							
								 
						
							
								a2d38af37a 
								
							 
						 
						
							
							
								
								Kernel: Implement 'cpuid' and enumerations for features  
							
							
							
						 
						
							2022-12-15 17:28:54 +02:00  
				
					
						
							
							
								 
						
							
								7bddcafadd 
								
							 
						 
						
							
							
								
								Kernel: Remove a lot of empty lines  
							
							
							
						 
						
							2022-12-14 21:17:46 +02:00  
				
					
						
							
							
								 
						
							
								711ba19a82 
								
							 
						 
						
							
							
								
								Kernel: Add basic Shell to test functionality  
							
							
							
						 
						
							2022-12-13 21:34:50 +02:00  
				
					
						
							
							
								 
						
							
								833a82c8d1 
								
							 
						 
						
							
							
								
								Kernel: Fix keymay brace/bracket to correct way around  
							
							
							
						 
						
							2022-12-13 21:10:25 +02:00  
				
					
						
							
							
								 
						
							
								fd6e0ed0f7 
								
							 
						 
						
							
							
								
								Kernel: debug printing now show system time correctly  
							
							
							
						 
						
							2022-12-13 20:44:52 +02:00  
				
					
						
							
							
								 
						
							
								174daa3e02 
								
							 
						 
						
							
							
								
								Kernel: Keyboard event callback can now be registered later  
							
							
							
						 
						
							2022-12-13 16:15:10 +02:00  
				
					
						
							
							
								 
						
							
								52c793bb5c 
								
							 
						 
						
							
							
								
								Kernel/BAN: Make Time a struct in BAN and add formatter to it  
							
							
							
						 
						
							2022-12-13 12:37:26 +02:00  
				
					
						
							
							
								 
						
							
								334abe6b27 
								
							 
						 
						
							
							
								
								Kernel: lol  
							
							
							
						 
						
							2022-12-13 12:12:15 +02:00  
				
					
						
							
							
								 
						
							
								68e88d9413 
								
							 
						 
						
							
							
								
								Kernel: Add clear() command public TTY API  
							
							
							
						 
						
							2022-12-13 10:45:24 +02:00  
				
					
						
							
							
								 
						
							
								e62a626b39 
								
							 
						 
						
							
							
								
								Kernel: Improve keyboard input by a lot  
							
							... 
							
							
							
							Seems to work on my 2 computerss 
							
						 
						
							2022-12-13 10:45:06 +02:00  
				
					
						
							
							
								 
						
							
								7ebe727a29 
								
							 
						 
						
							
							
								
								Kernel: Add RTC to get current time  
							
							
							
						 
						
							2022-12-13 10:41:36 +02:00  
				
					
						
							
							
								 
						
							
								835430e7b0 
								
							 
						 
						
							
							
								
								BAN: Move Formatter to new project called BAN  
							
							... 
							
							
							
							I also implemented basic ErrorOr and Queue 
							
						 
						
							2022-12-13 10:39:57 +02:00  
				
					
						
							
							
								 
						
							
								1283e74ee6 
								
							 
						 
						
							
							
								
								Kernel: Formatter now supports fill to length  
							
							
							
						 
						
							2022-12-13 01:16:49 +02:00  
				
					
						
							
							
								 
						
							
								9c72f7255a 
								
							 
						 
						
							
							
								
								Kernel: Add red colors to kernel panics  
							
							
							
						 
						
							2022-12-13 00:57:13 +02:00  
				
					
						
							
							
								 
						
							
								ddc28a8c0e 
								
							 
						 
						
							
							
								
								Kernel: Rename Printer to Formatter  
							
							
							
						 
						
							2022-12-13 00:50:21 +02:00  
				
					
						
							
							
								 
						
							
								3d3f12bd30 
								
							 
						 
						
							
							
								
								Kernel: Add new generic Printer class  
							
							... 
							
							
							
							kprint is now just a #define to Printer::print<terminal_putc>.
This allows us to use same print formatting for serial output :) 
							
						 
						
							2022-12-10 00:57:09 +02:00  
				
					
						
							
							
								 
						
							
								26f1ebe26f 
								
							 
						 
						
							
							
								
								Kernel: Implement very basic, but functional kmalloc/kfree  
							
							
							
						 
						
							2022-12-09 00:26:24 +02:00  
				
					
						
							
							
								 
						
							
								ef56f9a239 
								
							 
						 
						
							
							
								
								Kernel: Add floating point printing to kprint  
							
							
							
						 
						
							2022-12-09 00:22:47 +02:00  
				
					
						
							
							
								 
						
							
								817de9f359 
								
							 
						 
						
							
							
								
								Kernel: Properly handle finnish keyboard layout.  
							
							... 
							
							
							
							You can now type any basic ascii character from keyboard.
Multimedia keys are not yet handled. 
							
						 
						
							2022-12-08 18:05:48 +02:00  
				
					
						
							
							
								 
						
							
								4202c999fa 
								
							 
						 
						
							
							
								
								Kernel: IRQs are now working :)  
							
							
							
						 
						
							2022-12-07 02:48:44 +02:00  
				
					
						
							
							
								 
						
							
								343dda629c 
								
							 
						 
						
							
							
								
								Kernel panic now halts the system  
							
							
							
						 
						
							2022-12-03 18:19:07 +02:00  
				
					
						
							
							
								 
						
							
								4ebd0e5c36 
								
							 
						 
						
							
							
								
								Fix negative number printing in kprint  
							
							
							
						 
						
							2022-11-16 20:27:22 +02:00  
				
					
						
							
							
								 
						
							
								20f7c18988 
								
							 
						 
						
							
							
								
								kmalloc does not zero initialize kernel memory  
							
							
							
						 
						
							2022-11-16 19:51:45 +02:00  
				
					
						
							
							
								 
						
							
								f2b45ba212 
								
							 
						 
						
							
							
								
								Add GDT and IDT  
							
							
							
						 
						
							2022-11-16 19:49:09 +02:00  
				
					
						
							
							
								 
						
							
								b500a8a7ed 
								
							 
						 
						
							
							
								
								kmalloc  
							
							
							
						 
						
							2022-11-16 19:48:36 +02:00  
				
					
						
							
							
								 
						
							
								550ecbc951 
								
							 
						 
						
							
							
								
								Kernel panic uses kprint with parameters  
							
							
							
						 
						
							2022-11-16 19:47:19 +02:00  
				
					
						
							
							
								 
						
							
								123382eace 
								
							 
						 
						
							
							
								
								Fixes :)  
							
							
							
						 
						
							2022-11-15 21:42:14 +02:00  
				
					
						
							
							
								 
						
							
								7c06c75d6c 
								
							 
						 
						
							
							
								
								Move cursor in terminal when writing to it  
							
							
							
						 
						
							2022-11-15 09:26:14 +02:00  
				
					
						
							
							
								 
						
							
								d289916bc0 
								
							 
						 
						
							
							
								
								Changed back to lower half kernel, since im dump.  
							
							... 
							
							
							
							I dont see the benefit of higher half (and could not get multiboot info) 
							
						 
						
							2022-11-15 00:38:33 +02:00  
				
					
						
							
							
								 
						
							
								9e933a5ec5 
								
							 
						 
						
							
							
								
								Add kernel panic function  
							
							
							
						 
						
							2022-11-14 18:53:00 +02:00  
				
					
						
							
							
								 
						
							
								b185ed4fd3 
								
							 
						 
						
							
							
								
								Libc is now written in C++  
							
							
							
						 
						
							2022-11-14 00:31:24 +02:00  
				
					
						
							
							
								 
						
							
								61609db228 
								
							 
						 
						
							
							
								
								Kernel is now in C++ :)  
							
							
							
						 
						
							2022-11-12 21:30:26 +02:00  
				
					
						
							
							
								 
						
							
								e6b4866ab0 
								
							 
						 
						
							
							
								
								Initial commit. We have a booting kernel  
							
							
							
						 
						
							2022-11-12 21:04:47 +02:00