Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								643e87a076 
								
							 
						 
						
							
							
								
								Kernel: Threads are deleted sooner and cleaner  
							
							 
							
							... 
							
							
							
							We now delete threads when
    1. it is marked as Terminated and is the current thread
    2. it tries to start execution in Terminated state
This allows us to never have thread executing in Terminated state 
							
						 
						
							2023-08-04 10:29:42 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								20eafb4cc4 
								
							 
						 
						
							
							
								
								Kernel: align userspace stacks  
							
							 
							
							... 
							
							
							
							I was getting #GP on sse instructions 
							
						 
						
							2023-08-03 18:09:48 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								e715d52f80 
								
							 
						 
						
							
							
								
								LibC: fix typo  
							
							 
							
							
							
						 
						
							2023-08-02 22:10:12 +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
							
						 
						
							 
							
							
							
							
								
							
							
								dddfa308d7 
								
							 
						 
						
							
							
								
								Shell: Print if the process exited because of a signal  
							
							 
							
							
							
						 
						
							2023-08-01 14:24:36 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								a78a7ed156 
								
							 
						 
						
							
							
								
								Kernel: Cleanup returns from any kind on interrupts  
							
							 
							
							
							
						 
						
							2023-08-01 14:23:50 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								b4eddf04c4 
								
							 
						 
						
							
							
								
								LibC: sys/wait.h now has proper exit status macros  
							
							 
							
							... 
							
							
							
							We use the same format as basically every implementation 
							
						 
						
							2023-08-01 10:32:04 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								2a851b52f1 
								
							 
						 
						
							
							
								
								BuildSystem: Edit build flags regarding sse and warnings  
							
							 
							
							
							
						 
						
							2023-07-31 22:31:17 +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
							
						 
						
							 
							
							
							
							
								
							
							
								834bf33e57 
								
							 
						 
						
							
							
								
								LibC: we don't parse syscall arguments in unistd  
							
							 
							
							... 
							
							
							
							We just call Kernel::syscall() with 5 arguments from the variadic function.
This was a necessary addition since the syscall() function
used over 2 KiB of stack space. 
							
						 
						
							2023-07-31 22:24:11 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								1a6100f083 
								
							 
						 
						
							
							
								
								Kernel: Cleanup signal trampoline  
							
							 
							
							
							
						 
						
							2023-07-30 15:58:35 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								de927b6b05 
								
							 
						 
						
							
							
								
								Kernel: Remove is_in_syscall from Thread  
							
							 
							
							
							
						 
						
							2023-07-30 14:49:51 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								1d7795e22c 
								
							 
						 
						
							
							
								
								Kernel: Hardware exceptions  now sends signals to userspace  
							
							 
							
							
							
						 
						
							2023-07-30 14:34:15 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								abe8810d47 
								
							 
						 
						
							
							
								
								Kernel: raise() now force sends signal  
							
							 
							
							
							
						 
						
							2023-07-30 14:17:07 +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
							
						 
						
							 
							
							
							
							
								
							
							
								925df39107 
								
							 
						 
						
							
							
								
								Kernel: Userspace sets the foreground process and Shell handles ^C  
							
							 
							
							
							
						 
						
							2023-07-28 18:10:36 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								9279bbbd19 
								
							 
						 
						
							
							
								
								Kernel: TTY now sends SIGINT on ^C to foreground process  
							
							 
							
							
							
						 
						
							2023-07-28 18:10:09 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								9fd9a8b5b1 
								
							 
						 
						
							
							
								
								Kernel: Mark reading section from StorageDevice as terminate critical  
							
							 
							
							
							
						 
						
							2023-07-28 18:09:35 +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
							
						 
						
							 
							
							
							
							
								
							
							
								f609170a6a 
								
							 
						 
						
							
							
								
								Kernel: DiskCache uses are now done without interrupts  
							
							 
							
							... 
							
							
							
							This allows disk cache to not be invalid state after partial read/write 
							
						 
						
							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
							
						 
						
							 
							
							
							
							
								
							
							
								7b4a2fe3d1 
								
							 
						 
						
							
							
								
								Kernel: Process::exit() unblocks the whole lock before blocking  
							
							 
							
							
							
						 
						
							2023-07-24 22:29:59 +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
							
						 
						
							 
							
							
							
							
								
							
							
								d560137ae6 
								
							 
						 
						
							
							
								
								Kernel/LibC: add SYS_SIGNAL/signal()  
							
							 
							
							
							
						 
						
							2023-07-21 20:08:13 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								c12f4fb40f 
								
							 
						 
						
							
							
								
								Kernel: Make signals more POSIX  
							
							 
							
							
							
						 
						
							2023-07-21 20:01:12 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								10169d773d 
								
							 
						 
						
							
							
								
								Kernel/LibC: Add SYS_KILL/kill()  
							
							 
							
							
							
						 
						
							2023-07-21 19:27:38 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								b78596dcf4 
								
							 
						 
						
							
							
								
								Kernel: Scheduler now sends queued signals  
							
							 
							
							
							
						 
						
							2023-07-21 19:27:10 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								40f7c6b8fa 
								
							 
						 
						
							
							
								
								Kernel: Make signals thread specific  
							
							 
							
							
							
						 
						
							2023-07-21 19:00:59 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								8063700d7b 
								
							 
						 
						
							
							
								
								Kernel: add default signal actions  
							
							 
							
							
							
						 
						
							2023-07-21 18:02:35 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								70f89ed1fc 
								
							 
						 
						
							
							
								
								BuildSystem: Strip kernel. We will add the map once we use it  
							
							 
							
							
							
						 
						
							2023-07-21 15:47:31 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								c2cf98e32f 
								
							 
						 
						
							
							
								
								Kernel/LibC: Add bareboness signals  
							
							 
							
							... 
							
							
							
							You can now call raise() to raise a signal. Signal handlers are
not yet supported, but the handling works :) 
							
						 
						
							2023-07-21 15:45:02 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								a1db032ba9 
								
							 
						 
						
							
							
								
								Kernel: kernel memory takes now full pml4e  
							
							 
							
							... 
							
							
							
							This allows flags to work properly 
							
						 
						
							2023-07-21 13:47:05 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								5babd7b4f2 
								
							 
						 
						
							
							
								
								Kernel: remove PAGE_FLAGS_MASK as that was not correct anymore  
							
							 
							
							... 
							
							
							
							After I added NXE bit, the flags mask is no longer valid 
							
						 
						
							2023-07-21 12:01:50 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								c0029a2fa2 
								
							 
						 
						
							
							
								
								Kernel: Don't map kernel executable memory as writable  
							
							 
							
							
							
						 
						
							2023-07-21 11:17:39 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								4e35b8b49d 
								
							 
						 
						
							
							
								
								Kernel: Syscalls now get the interrupt stack  
							
							 
							
							
							
						 
						
							2023-07-21 11:04:16 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								21c6135ae2 
								
							 
						 
						
							
							
								
								BAN: Fix function call in Optional  
							
							 
							
							
							
						 
						
							2023-07-21 10:57:46 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								b02c486ad0 
								
							 
						 
						
							
							
								
								Kernel: add NullDevice to /dev/null  
							
							 
							
							
							
						 
						
							2023-07-20 00:06:22 +03:00