Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								04cfbca336 
								
							 
						 
						
							
							
								
								Kernel: Add ANSI support for hiding/showing cursor to TTY  
							
							 
							
							
							
						 
						
							2023-09-04 14:30:09 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								9901f95d78 
								
							 
						 
						
							
							
								
								Kernel: Add basic nanosleep, only millisecond percision  
							
							 
							
							
							
						 
						
							2023-09-04 12:59:50 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								b2139c0b1e 
								
							 
						 
						
							
							
								
								Kernel: Add basic support for O_NONBLOCK (only for tty)  
							
							 
							
							
							
						 
						
							2023-09-04 12:57:52 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								6f002c926a 
								
							 
						 
						
							
							
								
								Kernel: add basic fcntl() with couple of commands and no validation  
							
							 
							
							
							
						 
						
							2023-09-04 12:57:09 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								a711462ef4 
								
							 
						 
						
							
							
								
								Kernel: Split ext2 implementation to multiple files  
							
							 
							
							
							
						 
						
							2023-09-01 15:10:23 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								f31c6b847f 
								
							 
						 
						
							
							
								
								Kernel: Start work on writable ext2 filesystem  
							
							 
							
							
							
						 
						
							2023-08-31 23:40:31 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								195ccf4f53 
								
							 
						 
						
							
							
								
								Kernel: Add missing ififo() to Inode::Mode  
							
							 
							
							
							
						 
						
							2023-08-31 21:38:31 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								d745fca86a 
								
							 
						 
						
							
							
								
								Kernel: Process keeps track if forked process has called exec*()  
							
							 
							
							
							
						 
						
							2023-08-22 14:53:46 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								60a2185ee6 
								
							 
						 
						
							
							
								
								Kernel/LibC: implement proper getpgid and setpgid  
							
							 
							
							
							
						 
						
							2023-08-22 14:53:12 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								d634fec8dc 
								
							 
						 
						
							
							
								
								Kernel: Add function to enumerate processes in session  
							
							 
							
							
							
						 
						
							2023-08-22 14:52:28 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								c9243f0d1e 
								
							 
						 
						
							
							
								
								Kernel/LibC: Add {get,set}pgrp()  
							
							 
							
							
							
						 
						
							2023-08-22 11:36:33 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								0f6c19a1b7 
								
							 
						 
						
							
							
								
								Kernel: Barebones implementation sessions and process groups  
							
							 
							
							
							
						 
						
							2023-08-22 11:35:40 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								79f3aa5419 
								
							 
						 
						
							
							
								
								Kernel/LibC: add dup() syscall and function  
							
							 
							
							
							
						 
						
							2023-08-17 12:03:29 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								e1400f9680 
								
							 
						 
						
							
							
								
								Kernel: Remove unused syscall  
							
							 
							
							
							
						 
						
							2023-08-11 11:43:48 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								6e5bce3c57 
								
							 
						 
						
							
							
								
								Kernel: Zero initialize threads sse_storage  
							
							 
							
							
							
						 
						
							2023-08-11 00:26:43 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								5d0a6e7b08 
								
							 
						 
						
							
							
								
								Kernel: HPET is now used in legacy mode when PIC is forced  
							
							 
							
							
							
						 
						
							2023-08-10 22:01:30 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								96c0ad0d3d 
								
							 
						 
						
							
							
								
								Kernel: Remove get_unix_timestamp from SystemTimer  
							
							 
							
							... 
							
							
							
							Kernel now uses the percise real_time() and time_since_boot() 
							
						 
						
							2023-08-09 08:57:50 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								6fcb191ca0 
								
							 
						 
						
							
							
								
								Kernel: Add PageTable::Flags::CacheDisable  
							
							 
							
							... 
							
							
							
							Also fix multiple places where we were using uint8_t as page table
flags instead of PageTable::flags_t which we promoted to uint16_t
while back. 
							
						 
						
							2023-08-06 23:59:30 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								3df97c36e6 
								
							 
						 
						
							
							
								
								Kerne: SystemTimer can now output the current real time  
							
							 
							
							
							
						 
						
							2023-08-04 16:06:47 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								c732297623 
								
							 
						 
						
							
							
								
								Kernel: Rename TimerHandler to SystemTimer  
							
							 
							
							... 
							
							
							
							I changed SystemTimer to only handle the "best" supported timer
it can initialize. 
							
						 
						
							2023-08-04 16:06:47 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								ca5a097ef5 
								
							 
						 
						
							
							
								
								Kernel: Add function to retrieve boot time as timespec  
							
							 
							
							
							
						 
						
							2023-08-04 16:06:47 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								1fa7a1cac4 
								
							 
						 
						
							
							
								
								Kernel: Add basic HPET support to replace PIT if exists  
							
							 
							
							... 
							
							
							
							This works same way as the PIT implementation; calls Scheduler every
milli second. 
							
						 
						
							2023-08-04 15:22:51 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								ea4a70c3b3 
								
							 
						 
						
							
							
								
								Kernel: Move sleep() implementation to TimerHandler  
							
							 
							
							
							
						 
						
							2023-08-04 15:15:00 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								aa0929614a 
								
							 
						 
						
							
							
								
								Kernel: Add more structures to ACPI  
							
							 
							
							
							
						 
						
							2023-08-04 15:13:47 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								3c31fc9c4b 
								
							 
						 
						
							
							
								
								Kernel: Implement basic MMIO functions  
							
							 
							
							... 
							
							
							
							This is equivalent to IO.h except for memory mapped io instead of
IO ports 
							
						 
						
							2023-08-04 15:12:29 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								7eb2c140fe 
								
							 
						 
						
							
							
								
								Kernel: Move RTC to Timer directory  
							
							 
							
							... 
							
							
							
							PIT ms counter seems to be off by multiple seconds/minute. I will
be probably changing to HPET for system time 
							
						 
						
							2023-08-04 11:12:16 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								659adb89a6 
								
							 
						 
						
							
							
								
								Kernel: Start work on abstracting Timers  
							
							 
							
							
							
						 
						
							2023-08-04 10:29:42 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								dd17124c77 
								
							 
						 
						
							
							
								
								Kernel: Remove unnecessary timer check from Scheduler  
							
							 
							
							
							
						 
						
							2023-08-04 10:29:42 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								3139391e06 
								
							 
						 
						
							
							
								
								Kernel: Change PageTable API  
							
							 
							
							... 
							
							
							
							Getting free pages not reserves them, so you don't have to hold
the page table lock :) 
							
						 
						
							2023-08-02 22:09:14 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								64ad752e73 
								
							 
						 
						
							
							
								
								Kernel: PageTable now supports reserved pages  
							
							 
							
							... 
							
							
							
							You can now map pages as reserved, so that they will not be given
from get_free_page() or get_free_contiguous_pages(). 
							
						 
						
							2023-08-01 16:35:54 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								a78a7ed156 
								
							 
						 
						
							
							
								
								Kernel: Cleanup returns from any kind on interrupts  
							
							 
							
							
							
						 
						
							2023-08-01 14:23:50 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								b245a55ea0 
								
							 
						 
						
							
							
								
								Kernel: store/load sse/mmx/fpu state on isr/irq/syscall  
							
							 
							
							... 
							
							
							
							I haven't tested this yet but should be fine. This will be optimized
to only save state from threads that are using it 
							
						 
						
							2023-07-31 22:28:57 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								c4f6c859c1 
								
							 
						 
						
							
							
								
								Kernel: Generally improve signals  
							
							 
							
							
							
						 
						
							2023-07-31 22:28:18 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								de927b6b05 
								
							 
						 
						
							
							
								
								Kernel: Remove is_in_syscall from Thread  
							
							 
							
							
							
						 
						
							2023-07-30 14:49:51 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								acf125c853 
								
							 
						 
						
							
							
								
								Kernel: Signals are not queued anymore  
							
							 
							
							... 
							
							
							
							Posix doesn't require signal queing if you don't use sigqueue() which
we don't support. Process also has its own pending signal mask. 
							
						 
						
							2023-07-29 16:54:31 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								3c6be319b1 
								
							 
						 
						
							
							
								
								Kernel: Restructure process and thread termination  
							
							 
							
							... 
							
							
							
							When we want to kill a process, we mark its threads as Terminating
or Terminated. If the thread is in critical section that has to be
finished, it will be in Terminating state until done. Once Scheduler
is trying to execute Terminated thread it will instead delete it.
Once processes last thread is marked Terminated, the processes will
turn it into a cleanup thread, that will allow blocks and memory
cleanup to be done. 
							
						 
						
							2023-07-28 18:06:20 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								104894c0c7 
								
							 
						 
						
							
							
								
								Kernel: Rewrite DiskCache  
							
							 
							
							... 
							
							
							
							We now cache only clean pages since I don't want to think about
syncing the disk later. 
							
						 
						
							2023-07-27 22:22:39 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								2f52001c6d 
								
							 
						 
						
							
							
								
								Kernel: Locks allow locking after locker is invalid  
							
							 
							
							... 
							
							
							
							SpinLock and RecursiveSpinLock will now allow locking after the initial
locker is invalid. This allows us to kill threads even if they are holding
internal locks 
							
						 
						
							2023-07-27 18:52:51 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								9f75b04714 
								
							 
						 
						
							
							
								
								Kernel: Scheduler can now check if tid is valid  
							
							 
							
							... 
							
							
							
							Tid can become invalid if the thread is already terminated 
							
						 
						
							2023-07-27 18:34:06 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								f6ee4b3496 
								
							 
						 
						
							
							
								
								Kernel: Implement SYS_GET_PID and SYS_TCSETPGID  
							
							 
							
							... 
							
							
							
							we don't have consept of process groups yet 
							
						 
						
							2023-07-24 22:29:59 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								1ef0534b69 
								
							 
						 
						
							
							
								
								Kernel: TTY now stores foreground process pid  
							
							 
							
							... 
							
							
							
							this will be process pgid when we have process groups 
							
						 
						
							2023-07-24 22:29:59 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								b9dd1895bb 
								
							 
						 
						
							
							
								
								Kernel: add Thread::queue_signal()  
							
							 
							
							
							
						 
						
							2023-07-24 22:26:10 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								be47743dfa 
								
							 
						 
						
							
							
								
								Kernel: Scheduler can now block threads based on tid  
							
							 
							
							
							
						 
						
							2023-07-24 22:24:21 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								57798e5d76 
								
							 
						 
						
							
							
								
								Kernel: remove Semaphore::is_blocked  
							
							 
							
							... 
							
							
							
							this will not mean anything after semaphores can spuriously wake up 
							
						 
						
							2023-07-24 22:23:13 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								cd64c1cfec 
								
							 
						 
						
							
							
								
								Kernel: add is_tty() to inode  
							
							 
							
							
							
						 
						
							2023-07-24 22:19:59 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								f76d921e25 
								
							 
						 
						
							
							
								
								Kernel: you can now ask process if it is userspace process  
							
							 
							
							
							
						 
						
							2023-07-23 18:54:10 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								a2bf474013 
								
							 
						 
						
							
							
								
								Kernel: OpenFileDesctiptor can now return inode of fd  
							
							 
							
							
							
						 
						
							2023-07-23 18:52:33 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								9729e5a05b 
								
							 
						 
						
							
							
								
								Kernel: Change signal kernel API  
							
							 
							
							... 
							
							
							
							return rsp and rip are now stored per thread 
							
						 
						
							2023-07-23 18:33:10 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								2dce0a0415 
								
							 
						 
						
							
							
								
								Kernel: Userspace signal handlers are now called one at a time  
							
							 
							
							... 
							
							
							
							I added a syscall for telling the kernel when signal execution has
finished. We should send a random hash or id to the signal trampoline
that we would include in the syscall, so validity of signal exit can
be confirmed. 
							
						 
						
							2023-07-23 13:34:53 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								c12f4fb40f 
								
							 
						 
						
							
							
								
								Kernel: Make signals more POSIX  
							
							 
							
							
							
						 
						
							2023-07-21 20:01:12 +03:00