34358b8471 
								
							 
						 
						
							
							
								
								Kernel: Scheduler can now terminate processes threads  
							
							
							
						 
						
							2023-04-12 17:49:04 +03:00  
				
					
						
							
							
								 
						
							
								5b1af4ec47 
								
							 
						 
						
							
							
								
								Kernel: Debug::dump_stack_trace now 'detects' repeating function  
							
							
							
						 
						
							2023-04-12 01:32:41 +03:00  
				
					
						
							
							
								 
						
							
								071d7af58a 
								
							 
						 
						
							
							
								
								Kernel: kmalloc does not check for corruptiong unless it cannot allocate  
							
							... 
							
							
							
							We 'don't care' if kmalloc is corrupted unless it prevents us from
allocating memory. Scheduler should be catching stack overflows either
way and is much more efficient 
							
						 
						
							2023-04-12 00:24:02 +03:00  
				
					
						
							
							
								 
						
							
								3201c3654e 
								
							 
						 
						
							
							
								
								Kernel: Threads now use only 4 KiB stack :)  
							
							
							
						 
						
							2023-04-12 00:22:08 +03:00  
				
					
						
							
							
								 
						
							
								6ed3023725 
								
							 
						 
						
							
							
								
								Kernel: Fix TTY spinlock usage  
							
							
							
						 
						
							2023-04-12 00:20:04 +03:00  
				
					
						
							
							
								 
						
							
								892a63aec5 
								
							 
						 
						
							
							
								
								Kernel: Shell TTY_PRINT is now function instead of macro  
							
							... 
							
							
							
							This makes functions uses way less stack 
							
						 
						
							2023-04-12 00:18:58 +03:00  
				
					
						
							
							
								 
						
							
								3fe889d4a4 
								
							 
						 
						
							
							
								
								BuildSystem: GCC will now complain on functions with 1 KiB stack  
							
							
							
						 
						
							2023-04-12 00:18:06 +03:00  
				
					
						
							
							
								 
						
							
								c35e7368f2 
								
							 
						 
						
							
							
								
								BAN: Variant now aligns its data properly  
							
							
							
						 
						
							2023-04-12 00:17:45 +03:00  
				
					
						
							
							
								 
						
							
								cafd546ce8 
								
							 
						 
						
							
							
								
								Kernel: kmalloc now detects corruption  
							
							... 
							
							
							
							Kmalloc checks if its nodes have corrupted. This was happening
because of stack overflow. 
							
						 
						
							2023-04-11 23:36:46 +03:00  
				
					
						
							
							
								 
						
							
								5810a77cbf 
								
							 
						 
						
							
							
								
								Kernel: Mark Scheduler::start() as noreturn as appropriate  
							
							
							
						 
						
							2023-04-11 23:33:20 +03:00  
				
					
						
							
							
								 
						
							
								6f7045ead2 
								
							 
						 
						
							
							
								
								Kernel: kernel doesn't allocate large blocks of data on stack  
							
							... 
							
							
							
							We used to allocate 1 KiB blocks on multiple places on stack. This
is a problem, since kernel stack shouldn't have to be too big 
							
						 
						
							2023-04-11 23:31:58 +03:00  
				
					
						
							
							
								 
						
							
								40f9a42c00 
								
							 
						 
						
							
							
								
								Kernel: Scheduler will panic if it encounters  stack overflow  
							
							
							
						 
						
							2023-04-11 23:29:21 +03:00  
				
					
						
							
							
								 
						
							
								9abe1f27bb 
								
							 
						 
						
							
							
								
								Kernel: Process now locks the mutex while modifying open files  
							
							... 
							
							
							
							This allows processes to be actually removed from the list instead
of dead locking 
							
						 
						
							2023-04-11 23:28:16 +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  
				
					
						
							
							
								 
						
							
								781cc78a1f 
								
							 
						 
						
							
							
								
								BuildSystem: Fix header copying to sysroot  
							
							... 
							
							
							
							We used to copy all headers everytime to sysroot which caused
rebuild of the whole os. Now we use the cmake command
'copy_directory_if_different' which seemed to fix this issue :) 
							
						 
						
							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  
				
					
						
							
							
								 
						
							
								df6e8a6562 
								
							 
						 
						
							
							
								
								Kernel: Add small wait in ATA driver before reading/writing  
							
							... 
							
							
							
							This allows bochs to boot again 
							
						 
						
							2023-04-10 21:07:25 +03:00  
				
					
						
							
							
								 
						
							
								3f01f936a1 
								
							 
						 
						
							
							
								
								Kernel: Fix framepointers on started threads  
							
							
							
						 
						
							2023-04-10 21:07:25 +03:00  
				
					
						
							
							
								 
						
							
								25ddc24754 
								
							 
						 
						
							
							
								
								BuildSystem: cmake can now build out libc  
							
							... 
							
							
							
							I can't seem to get libc++ build to work... 
							
						 
						
							2023-04-10 21:07:25 +03:00  
				
					
						
							
							
								 
						
							
								989f9ec5fe 
								
							 
						 
						
							
							
								
								LibC: remove old unused files  
							
							
							
						 
						
							2023-04-07 02:26:44 +03:00  
				
					
						
							
							
								 
						
							
								3fbee2c835 
								
							 
						 
						
							
							
								
								BuildSystem: remove now obsolete include directories from kernel build  
							
							
							
						 
						
							2023-04-07 02:25:47 +03:00  
				
					
						
							
							
								 
						
							
								b10b3cbe3b 
								
							 
						 
						
							
							
								
								Add a screenshot to README  
							
							
							
						 
						
							2023-04-06 21:01:27 +03:00  
				
					
						
							
							
								 
						
							
								77e94e1d3b 
								
							 
						 
						
							
							
								
								General: Write basic README  
							
							
							
						 
						
							2023-04-06 20:59:45 +03:00  
				
					
						
							
							
								 
						
							
								4a3bfaff90 
								
							 
						 
						
							
							
								
								Scripts: linecount does not count lines from toolchain/  
							
							
							
						 
						
							2023-04-06 20:31:10 +03:00  
				
					
						
							
							
								 
						
							
								2a8dc58b6a 
								
							 
						 
						
							
							
								
								BuildSystem: Cleanup cmake code  
							
							... 
							
							
							
							The buildsystem is kind of a mess. I will be writingn build
instructions soon. 
							
						 
						
							2023-04-06 20:31:10 +03:00  
				
					
						
							
							
								 
						
							
								8a8793fd2d 
								
							 
						 
						
							
							
								
								BuildSystem: you can now build the toolchain with cmake  
							
							
							
						 
						
							2023-04-06 00:23:02 +03:00  
				
					
						
							
							
								 
						
							
								7ab9e420ac 
								
							 
						 
						
							
							
								
								Update .gitignore  
							
							
							
						 
						
							2023-04-06 00:02:47 +03:00  
				
					
						
							
							
								 
						
							
								43ca62de47 
								
							 
						 
						
							
							
								
								BuildSystem: Create script for os specific toolchain  
							
							
							
						 
						
							2023-04-06 00:02:13 +03:00  
				
					
						
							
							
								 
						
							
								a5830c5424 
								
							 
						 
						
							
							
								
								LibC: add stubs for a lot of functions  
							
							
							
						 
						
							2023-04-05 23:58:40 +03:00  
				
					
						
							
							
								 
						
							
								b6896a6d85 
								
							 
						 
						
							
							
								
								LibC: sys/types uses 'typedef' instead of 'using'  
							
							
							
						 
						
							2023-04-05 15:03:24 +03:00  
				
					
						
							
							
								 
						
							
								9e0b4132ee 
								
							 
						 
						
							
							
								
								Kernel: Shell now somewhat functions again  
							
							... 
							
							
							
							I will not be fixing the shell implementation until I get to
userspace 
							
						 
						
							2023-04-05 11:37:41 +03:00  
				
					
						
							
							
								 
						
							
								68158324f4 
								
							 
						 
						
							
							
								
								Kernel: Fix TTY echo and canonical flag behaviour  
							
							
							
						 
						
							2023-04-05 11:35:19 +03:00  
				
					
						
							
							
								 
						
							
								a420be6b20 
								
							 
						 
						
							
							
								
								Kernel: Fix ansi control sequence cursor movement  
							
							
							
						 
						
							2023-04-05 03:07:52 +03:00  
				
					
						
							
							
								 
						
							
								f281543255 
								
							 
						 
						
							
							
								
								Kernel: Add tty to process and make termios modifiable  
							
							
							
						 
						
							2023-04-05 02:53:28 +03:00  
				
					
						
							
							
								 
						
							
								67ff01e915 
								
							 
						 
						
							
							
								
								LibC: Add errno ENOTTY  
							
							
							
						 
						
							2023-04-05 02:47:37 +03:00  
				
					
						
							
							
								 
						
							
								dcf0969e2d 
								
							 
						 
						
							
							
								
								Kernel: TTY now supports clearing  
							
							
							
						 
						
							2023-04-05 02:04:18 +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  
				
					
						
							
							
								 
						
							
								63e863ad35 
								
							 
						 
						
							
							
								
								LibC: Add unistd.h with STD{IN,OUT,ERR}_FILENO definitions  
							
							
							
						 
						
							2023-04-05 00:59:48 +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  
				
					
						
							
							
								 
						
							
								e1534ad25b 
								
							 
						 
						
							
							
								
								Kernel: Fix keys in PS2Keymap  
							
							
							
						 
						
							2023-04-03 20:25:23 +03:00  
				
					
						
							
							
								 
						
							
								ee1f3623ce 
								
							 
						 
						
							
							
								
								Kernel: Fix typo  
							
							
							
						 
						
							2023-04-03 19:56:55 +03:00  
				
					
						
							
							
								 
						
							
								dffdb51713 
								
							 
						 
						
							
							
								
								BuildSystem: remove non-existent file from kernel CMakeLists.txt  
							
							
							
						 
						
							2023-04-03 19:02:25 +03:00  
				
					
						
							
							
								 
						
							
								daa35aaf7d 
								
							 
						 
						
							
							
								
								BAN: Add data() member function to Array  
							
							
							
						 
						
							2023-04-03 17:00:52 +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  
				
					
						
							
							
								 
						
							
								86d777e2eb 
								
							 
						 
						
							
							
								
								LibC: add device macros in sys/sysmacros.h  
							
							
							
						 
						
							2023-04-03 10:59:15 +03:00  
				
					
						
							
							
								 
						
							
								2ffee63889 
								
							 
						 
						
							
							
								
								Kernel: Cleaner partition parsing errors  
							
							
							
						 
						
							2023-04-03 09:55:49 +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