42b85dc33b 
								
							 
						 
						
							
							
								
								Kernel: Add ANSI support for hiding/showing cursor to TTY  
							
							
							
						 
						
							2023-09-04 14:30:09 +03:00  
				
					
						
							
							
								 
						
							
								044378cfa3 
								
							 
						 
						
							
							
								
								Kernel: Add basic nanosleep, only millisecond percision  
							
							
							
						 
						
							2023-09-04 12:59:50 +03:00  
				
					
						
							
							
								 
						
							
								f1d4d5f995 
								
							 
						 
						
							
							
								
								Kernel: Add basic support for O_NONBLOCK (only for tty)  
							
							
							
						 
						
							2023-09-04 12:57:52 +03:00  
				
					
						
							
							
								 
						
							
								19d0fb6fcd 
								
							 
						 
						
							
							
								
								Kernel: add basic fcntl() with couple of commands and no validation  
							
							
							
						 
						
							2023-09-04 12:57:09 +03:00  
				
					
						
							
							
								 
						
							
								7933265095 
								
							 
						 
						
							
							
								
								Kernel: Split ext2 implementation to multiple files  
							
							
							
						 
						
							2023-09-01 15:10:23 +03:00  
				
					
						
							
							
								 
						
							
								d810644018 
								
							 
						 
						
							
							
								
								Kernel: Start work on writable ext2 filesystem  
							
							
							
						 
						
							2023-08-31 23:40:31 +03:00  
				
					
						
							
							
								 
						
							
								a7bfc1c2ec 
								
							 
						 
						
							
							
								
								Kernel: Add missing ififo() to Inode::Mode  
							
							
							
						 
						
							2023-08-31 21:38:31 +03:00  
				
					
						
							
							
								 
						
							
								65501837b7 
								
							 
						 
						
							
							
								
								Kernel: Stack trace dumping validates pointers before using them  
							
							
							
						 
						
							2023-08-31 21:36:23 +03:00  
				
					
						
							
							
								 
						
							
								cbd2519b9a 
								
							 
						 
						
							
							
								
								Kernel: better handle kernel errors  
							
							
							
						 
						
							2023-08-29 00:13:21 +03:00  
				
					
						
							
							
								 
						
							
								e8a73f9696 
								
							 
						 
						
							
							
								
								BuildSystem: use -a with rsync  
							
							... 
							
							
							
							This allows cmake to not rebuild whole project every time 
							
						 
						
							2023-08-28 11:38:17 +03:00  
				
					
						
							
							
								 
						
							
								b05cf9ef09 
								
							 
						 
						
							
							
								
								BuildSystem: Base sysroot is now distributed as a tar ball  
							
							... 
							
							
							
							This allows file and directory permissions work as intended.
cmake is now filled with 'sudo' but with sudo timeout this should be
fine. 
							
						 
						
							2023-08-23 10:38:21 +03:00  
				
					
						
							
							
								 
						
							
								ef1077fd7b 
								
							 
						 
						
							
							
								
								Kernel: kill() with negative pid actually matches pgid  
							
							
							
						 
						
							2023-08-22 14:54:15 +03:00  
				
					
						
							
							
								 
						
							
								f1ba5c7e0f 
								
							 
						 
						
							
							
								
								Kernel: Process keeps track if forked process has called exec*()  
							
							
							
						 
						
							2023-08-22 14:53:46 +03:00  
				
					
						
							
							
								 
						
							
								97ea4986af 
								
							 
						 
						
							
							
								
								Kernel/LibC: implement proper getpgid and setpgid  
							
							
							
						 
						
							2023-08-22 14:53:12 +03:00  
				
					
						
							
							
								 
						
							
								25c021c15b 
								
							 
						 
						
							
							
								
								Kernel: Add function to enumerate processes in session  
							
							
							
						 
						
							2023-08-22 14:52:28 +03:00  
				
					
						
							
							
								 
						
							
								42b90ae76c 
								
							 
						 
						
							
							
								
								Kernel/LibC: Add {get,set}pgrp()  
							
							
							
						 
						
							2023-08-22 11:36:33 +03:00  
				
					
						
							
							
								 
						
							
								ccc61cb10c 
								
							 
						 
						
							
							
								
								Kernel: Barebones implementation sessions and process groups  
							
							
							
						 
						
							2023-08-22 11:35:40 +03:00  
				
					
						
							
							
								 
						
							
								8e4216215e 
								
							 
						 
						
							
							
								
								Kernel/LibC: add dup() syscall and function  
							
							
							
						 
						
							2023-08-17 12:03:29 +03:00  
				
					
						
							
							
								 
						
							
								8c282a5d83 
								
							 
						 
						
							
							
								
								Kernel: O_SEARCH doesn't require any permissions  
							
							... 
							
							
							
							Except read permissions for all directories in the path
This allows us to stat e.g. device files for which we don't have
the permissions. 
							
						 
						
							2023-08-11 12:26:07 +03:00  
				
					
						
							
							
								 
						
							
								8f3348cf2b 
								
							 
						 
						
							
							
								
								Kernel: open() now validates file access mode  
							
							
							
						 
						
							2023-08-11 11:53:38 +03:00  
				
					
						
							
							
								 
						
							
								38c0bc7bae 
								
							 
						 
						
							
							
								
								Kernel: Remove unused syscall  
							
							
							
						 
						
							2023-08-11 11:43:48 +03:00  
				
					
						
							
							
								 
						
							
								a7f37236bf 
								
							 
						 
						
							
							
								
								Kernel: Zero initialize threads sse_storage  
							
							
							
						 
						
							2023-08-11 00:26:43 +03:00  
				
					
						
							
							
								 
						
							
								51532336b0 
								
							 
						 
						
							
							
								
								Kernel: Move structures in boot.S to .data section  
							
							
							
						 
						
							2023-08-11 00:26:12 +03:00  
				
					
						
							
							
								 
						
							
								03d4b47f63 
								
							 
						 
						
							
							
								
								Kernel: HPET is now used in legacy mode when PIC is forced  
							
							
							
						 
						
							2023-08-10 22:01:30 +03:00  
				
					
						
							
							
								 
						
							
								8b57edde6b 
								
							 
						 
						
							
							
								
								Kernel: Fix slave PIC  
							
							... 
							
							
							
							we dont mask interrupt 2 in PIC since it corresponds to the
slave PIC. Also cleanup PIC code :) 
							
						 
						
							2023-08-10 21:52:31 +03:00  
				
					
						
							
							
								 
						
							
								778778fede 
								
							 
						 
						
							
							
								
								Kernel: HPET doesn't use the legacy mapping anymore  
							
							
							
						 
						
							2023-08-10 21:08:32 +03:00  
				
					
						
							
							
								 
						
							
								f7449c4ab9 
								
							 
						 
						
							
							
								
								Kernel: APIC now uses MMIO namespace functions for mmio  
							
							
							
						 
						
							2023-08-10 21:07:23 +03:00  
				
					
						
							
							
								 
						
							
								fd2bcc9156 
								
							 
						 
						
							
							
								
								Kernel: IDT now sends EOI for every interrupt  
							
							... 
							
							
							
							EOI is sent before calling the interrupt handler. This should be fine
since all interrupts are processed with interrupts disabled 
							
						 
						
							2023-08-09 09:57:02 +03:00  
				
					
						
							
							
								 
						
							
								a5b1555725 
								
							 
						 
						
							
							
								
								Kernel: Validate HPET tick period  
							
							
							
						 
						
							2023-08-09 09:50:38 +03:00  
				
					
						
							
							
								 
						
							
								e74fdbc55b 
								
							 
						 
						
							
							
								
								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  
				
					
						
							
							
								 
						
							
								008c777a9f 
								
							 
						 
						
							
							
								
								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  
				
					
						
							
							
								 
						
							
								d8a9d4a24e 
								
							 
						 
						
							
							
								
								Kerne: SystemTimer can now output the current real time  
							
							
							
						 
						
							2023-08-04 16:06:47 +03:00  
				
					
						
							
							
								 
						
							
								bc0e1fa898 
								
							 
						 
						
							
							
								
								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  
				
					
						
							
							
								 
						
							
								17f1737c9a 
								
							 
						 
						
							
							
								
								Kernel: Add function to retrieve boot time as timespec  
							
							
							
						 
						
							2023-08-04 16:06:47 +03:00  
				
					
						
							
							
								 
						
							
								868444f043 
								
							 
						 
						
							
							
								
								Kernel: F11 now prints current time to debug output  
							
							... 
							
							
							
							This allows better timer percision and system freeze checks 
							
						 
						
							2023-08-04 15:22:51 +03:00  
				
					
						
							
							
								 
						
							
								fdae253695 
								
							 
						 
						
							
							
								
								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  
				
					
						
							
							
								 
						
							
								d4adcff958 
								
							 
						 
						
							
							
								
								Kernel: Move sleep() implementation to TimerHandler  
							
							
							
						 
						
							2023-08-04 15:15:00 +03:00  
				
					
						
							
							
								 
						
							
								2c59c9a3cc 
								
							 
						 
						
							
							
								
								Kernel: Add more structures to ACPI  
							
							
							
						 
						
							2023-08-04 15:13:47 +03:00  
				
					
						
							
							
								 
						
							
								3a59a64355 
								
							 
						 
						
							
							
								
								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  
				
					
						
							
							
								 
						
							
								9363c1cdaf 
								
							 
						 
						
							
							
								
								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  
				
					
						
							
							
								 
						
							
								198e6d7cf6 
								
							 
						 
						
							
							
								
								Kernel: Start work on abstracting Timers  
							
							
							
						 
						
							2023-08-04 10:29:42 +03:00  
				
					
						
							
							
								 
						
							
								07ee898f4f 
								
							 
						 
						
							
							
								
								Kernel: Remove unnecessary timer check from Scheduler  
							
							
							
						 
						
							2023-08-04 10:29:42 +03:00  
				
					
						
							
							
								 
						
							
								e57c1fc9fc 
								
							 
						 
						
							
							
								
								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  
				
					
						
							
							
								 
						
							
								a11b5ae41f 
								
							 
						 
						
							
							
								
								Kernel: align userspace stacks  
							
							... 
							
							
							
							I was getting #GP on sse instructions 
							
						 
						
							2023-08-03 18:09:48 +03:00  
				
					
						
							
							
								 
						
							
								91f04ce250 
								
							 
						 
						
							
							
								
								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  
				
					
						
							
							
								 
						
							
								926df2b276 
								
							 
						 
						
							
							
								
								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  
				
					
						
							
							
								 
						
							
								217dbca7b7 
								
							 
						 
						
							
							
								
								Kernel: Cleanup returns from any kind on interrupts  
							
							
							
						 
						
							2023-08-01 14:23:50 +03:00  
				
					
						
							
							
								 
						
							
								679d47131d 
								
							 
						 
						
							
							
								
								BuildSystem: Edit build flags regarding sse and warnings  
							
							
							
						 
						
							2023-07-31 22:31:17 +03:00  
				
					
						
							
							
								 
						
							
								8b1bccb79b 
								
							 
						 
						
							
							
								
								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  
				
					
						
							
							
								 
						
							
								e86e755c51 
								
							 
						 
						
							
							
								
								Kernel: Generally improve signals  
							
							
							
						 
						
							2023-07-31 22:28:18 +03:00