24f0d26fce 
								
							 
						 
						
							
							
								
								LibC: Implement basic dirent functionality  
							
							... 
							
							
							
							We don't currently support seeking 
							
						 
						
							2023-06-11 03:29:22 +03:00  
				
					
						
							
							
								 
						
							
								825ec221b7 
								
							 
						 
						
							
							
								
								Kernel: we don't panic anymore on unrecognized syscall  
							
							
							
						 
						
							2023-06-11 00:18:48 +03:00  
				
					
						
							
							
								 
						
							
								e31080bce3 
								
							 
						 
						
							
							
								
								Kernel: allow open() call with O_SEARCH  
							
							
							
						 
						
							2023-06-11 00:18:34 +03:00  
				
					
						
							
							
								 
						
							
								7a5d5cabad 
								
							 
						 
						
							
							
								
								Kernel: Add syscall for reading directory entries  
							
							
							
						 
						
							2023-06-11 00:18:08 +03:00  
				
					
						
							
							
								 
						
							
								f7de310889 
								
							 
						 
						
							
							
								
								LibC: add missing O_EXEC and O_SEARCH  
							
							
							
						 
						
							2023-06-11 00:17:18 +03:00  
				
					
						
							
							
								 
						
							
								e209ca7c82 
								
							 
						 
						
							
							
								
								Kernel: Rewrite directory listing so it can be integrated to libc  
							
							
							
						 
						
							2023-06-11 00:17:18 +03:00  
				
					
						
							
							
								 
						
							
								ee8de77a90 
								
							 
						 
						
							
							
								
								Userspace: fix return values of cat and echo  
							
							
							
						 
						
							2023-06-10 17:34:10 +03:00  
				
					
						
							
							
								 
						
							
								db49cbd6e2 
								
							 
						 
						
							
							
								
								Kernel: We now store the  processes exit code  
							
							
							
						 
						
							2023-06-10 17:31:56 +03:00  
				
					
						
							
							
								 
						
							
								e001eecb7b 
								
							 
						 
						
							
							
								
								Userspace: add exit to shell  
							
							
							
						 
						
							2023-06-09 01:51:23 +03:00  
				
					
						
							
							
								 
						
							
								7f34d00c95 
								
							 
						 
						
							
							
								
								Userspace: add echo  
							
							
							
						 
						
							2023-06-09 01:50:18 +03:00  
				
					
						
							
							
								 
						
							
								2c18adbddd 
								
							 
						 
						
							
							
								
								Userspace: add ^L support for shell  
							
							
							
						 
						
							2023-06-09 01:24:33 +03:00  
				
					
						
							
							
								 
						
							
								97c7fc42d1 
								
							 
						 
						
							
							
								
								Kernel: SpinLocks now reschedule if they cannot aquire the lock  
							
							... 
							
							
							
							This allows us to not actually spin doing nothing while waiting for
another (not executing) to release the lock. This api won't probably
work when we get to SMP 
							
						 
						
							2023-06-09 00:53:32 +03:00  
				
					
						
							
							
								 
						
							
								7da0627f8e 
								
							 
						 
						
							
							
								
								Kernel: Process::exit() now uses the new Scheduler::reschedule()  
							
							... 
							
							
							
							We use this new function while waiting for all blocking threads to
resume execution 
							
						 
						
							2023-06-09 00:49:19 +03:00  
				
					
						
							
							
								 
						
							
								27cef23823 
								
							 
						 
						
							
							
								
								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  
				
					
						
							
							
								 
						
							
								b7fc2dc3d0 
								
							 
						 
						
							
							
								
								Kenrel: Rename Scheduler::reschedule -> Scheduler::timer_reschedule  
							
							
							
						 
						
							2023-06-09 00:41:43 +03:00  
				
					
						
							
							
								 
						
							
								8af390e0f6 
								
							 
						 
						
							
							
								
								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  
				
					
						
							
							
								 
						
							
								96d6453ea8 
								
							 
						 
						
							
							
								
								Kernel: PageTableScope locks the PageTable before disabling interrupts  
							
							... 
							
							
							
							This allows replacing some PageTableScopes with PageTable::lock() 
							
						 
						
							2023-06-09 00:34:41 +03:00  
				
					
						
							
							
								 
						
							
								2b9900e56e 
								
							 
						 
						
							
							
								
								Kernel: get_free_contiguous_pages works with non-page aligned addresses  
							
							... 
							
							
							
							also fix bug in ordering 
							
						 
						
							2023-06-06 02:03:23 +03:00  
				
					
						
							
							
								 
						
							
								86f58f60cb 
								
							 
						 
						
							
							
								
								LibC: implement setenv, unsetenv, putenv  
							
							
							
						 
						
							2023-06-05 22:51:02 +03:00  
				
					
						
							
							
								 
						
							
								064ce568c2 
								
							 
						 
						
							
							
								
								Kernel: add basic support for environment variables  
							
							... 
							
							
							
							exec functions will search files from PATH 
							
						 
						
							2023-06-05 22:51:02 +03:00  
				
					
						
							
							
								 
						
							
								6aff459e1c 
								
							 
						 
						
							
							
								
								BAN: add StringView::contains(char)  
							
							
							
						 
						
							2023-06-05 22:51:02 +03:00  
				
					
						
							
							
								 
						
							
								0b1b4d8f7e 
								
							 
						 
						
							
							
								
								Kernel: exec now has better posix errors  
							
							
							
						 
						
							2023-06-05 21:12:08 +03:00  
				
					
						
							
							
								 
						
							
								3fc2c3529a 
								
							 
						 
						
							
							
								
								Shell: load old termios for process execution  
							
							
							
						 
						
							2023-06-05 21:12:08 +03:00  
				
					
						
							
							
								 
						
							
								b0e9ab0519 
								
							 
						 
						
							
							
								
								Kernel/LibC: pass environ pointer to process  
							
							
							
						 
						
							2023-06-05 21:12:08 +03:00  
				
					
						
							
							
								 
						
							
								668517a723 
								
							 
						 
						
							
							
								
								Kernel: TTY now actually flushes on ^D  
							
							
							
						 
						
							2023-06-05 20:21:46 +03:00  
				
					
						
							
							
								 
						
							
								649f08ec78 
								
							 
						 
						
							
							
								
								Kernel: verify that loaded elfs are executable  
							
							
							
						 
						
							2023-06-05 19:29:32 +03:00  
				
					
						
							
							
								 
						
							
								2f2c298c68 
								
							 
						 
						
							
							
								
								Shell: add bareboness utf8 support  
							
							... 
							
							
							
							This should work as long as TTY provides only valid utf8.
If the utf is invalid, assertion fails and the shell dies. 
							
						 
						
							2023-06-05 18:55:22 +03:00  
				
					
						
							
							
								 
						
							
								90e48970e6 
								
							 
						 
						
							
							
								
								Shell: we now support left/right arrows  
							
							
							
						 
						
							2023-06-05 18:24:41 +03:00  
				
					
						
							
							
								 
						
							
								480842a203 
								
							 
						 
						
							
							
								
								LibC: abort now prints 'abort()' and exits  
							
							... 
							
							
							
							we used to call assert in abort which then recursively called
abort again. 
							
						 
						
							2023-06-05 18:23:19 +03:00  
				
					
						
							
							
								 
						
							
								5425394880 
								
							 
						 
						
							
							
								
								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  
				
					
						
							
							
								 
						
							
								a365813fa9 
								
							 
						 
						
							
							
								
								BuildSystem: disable nls from gcc  
							
							
							
						 
						
							2023-06-05 17:55:47 +03:00  
				
					
						
							
							
								 
						
							
								9d64dbd5c2 
								
							 
						 
						
							
							
								
								Kernel/LibC: add SYS_STAT and stat(), lstat()  
							
							
							
						 
						
							2023-06-05 14:37:14 +03:00  
				
					
						
							
							
								 
						
							
								30bb61a775 
								
							 
						 
						
							
							
								
								Base: revert bin and lib symlinks to relative paths  
							
							... 
							
							
							
							Absolute paths fucked up toolchain building and usespace linking,
since g++ was finding host libraries from /usr/lib. 
							
						 
						
							2023-06-05 10:08:01 +03:00  
				
					
						
							
							
								 
						
							
								1f36ed0cf9 
								
							 
						 
						
							
							
								
								Userspace: Start work on proper shell  
							
							
							
						 
						
							2023-06-05 01:42:57 +03:00  
				
					
						
							
							
								 
						
							
								d54c76f88a 
								
							 
						 
						
							
							
								
								Base: /lib and /bin are now absolute symlinks  
							
							
							
						 
						
							2023-06-04 18:12:05 +03:00  
				
					
						
							
							
								 
						
							
								cbb9f47ee5 
								
							 
						 
						
							
							
								
								LibC: add wait and waitpid  
							
							... 
							
							
							
							Note that wait() doesn't work since only waiting for specified
pid is supported. wait() will just return -1 and set errno to
ECHILD. 
							
						 
						
							2023-06-04 18:00:52 +03:00  
				
					
						
							
							
								 
						
							
								b68d5a5833 
								
							 
						 
						
							
							
								
								Kernel: Add SYS_WAIT  
							
							... 
							
							
							
							This syscall waits for a given pid. 
							
						 
						
							2023-06-04 18:00:52 +03:00  
				
					
						
							
							
								 
						
							
								94d2090777 
								
							 
						 
						
							
							
								
								Kernel: fork() now clones current thread  
							
							... 
							
							
							
							This is how posix specifies thread cloning during fork 
							
						 
						
							2023-06-04 17:40:37 +03:00  
				
					
						
							
							
								 
						
							
								e97585daf9 
								
							 
						 
						
							
							
								
								Kernel: Process FixedWidthAllocators come now in 4 sizes  
							
							
							
						 
						
							2023-06-04 01:26:43 +03:00  
				
					
						
							
							
								 
						
							
								924fc2118c 
								
							 
						 
						
							
							
								
								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  
				
					
						
							
							
								 
						
							
								51f4c0c750 
								
							 
						 
						
							
							
								
								Kernel: make load_elf() its own function  
							
							
							
						 
						
							2023-06-04 01:24:11 +03:00  
				
					
						
							
							
								 
						
							
								37b93da650 
								
							 
						 
						
							
							
								
								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  
				
					
						
							
							
								 
						
							
								35e739dcdd 
								
							 
						 
						
							
							
								
								Kernel: reorder process exit steps  
							
							
							
						 
						
							2023-06-04 01:19:04 +03:00  
				
					
						
							
							
								 
						
							
								8352392b38 
								
							 
						 
						
							
							
								
								Kernel: You can specify first vaddr for getting free pages  
							
							
							
						 
						
							2023-06-04 01:15:48 +03:00  
				
					
						
							
							
								 
						
							
								413f05bfca 
								
							 
						 
						
							
							
								
								BAN: Add UniqPtr  
							
							
							
						 
						
							2023-06-04 00:39:20 +03:00  
				
					
						
							
							
								 
						
							
								dc1aff58ed 
								
							 
						 
						
							
							
								
								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  
				
					
						
							
							
								 
						
							
								9f75d9cfe5 
								
							 
						 
						
							
							
								
								Kernel: PageTable now has debug_dump  
							
							... 
							
							
							
							This dumps all the mapped pages and their flags 
							
						 
						
							2023-06-03 20:08:13 +03:00  
				
					
						
							
							
								 
						
							
								a42af7e973 
								
							 
						 
						
							
							
								
								Kernel: boot.S is back to 2 MiB pages  
							
							... 
							
							
							
							bochs doesn't seem to support 1 GiB pages 
							
						 
						
							2023-06-03 18:53:36 +03:00  
				
					
						
							
							
								 
						
							
								2ce244d303 
								
							 
						 
						
							
							
								
								BAN: Errors now includes assert.h  
							
							
							
						 
						
							2023-06-03 18:53:05 +03:00  
				
					
						
							
							
								 
						
							
								a775a920d0 
								
							 
						 
						
							
							
								
								BuildSystem: remove sse and sse2 from userspace  
							
							
							
						 
						
							2023-06-03 16:05:32 +03:00