1abf54d652 
								
							 
						 
						
							
							
								
								Kernel: Fix bug in disk writing  
							
							... 
							
							
							
							I have used two weeks in locating a bug in my ext2 implementation
while the bug was actually in disk write. If you called write_sectors
on disk it would write the first sector_size bytes repeatedly to all
asked sectors and this corrupted the disk... 
							
						 
						
							2023-09-08 02:43:08 +03:00  
				
					
						
							
							
								 
						
							
								3750d29b2b 
								
							 
						 
						
							
							
								
								Kernel: Fix possible out-of-bounds disk access in ext2  
							
							
							
						 
						
							2023-09-08 02:42:53 +03:00  
				
					
						
							
							
								 
						
							
								e75522a005 
								
							 
						 
						
							
							
								
								BuildSystem: Cleanup disk image creation  
							
							
							
						 
						
							2023-09-08 02:41:39 +03:00  
				
					
						
							
							
								 
						
							
								5972c73950 
								
							 
						 
						
							
							
								
								LibC: fix fread implementation  
							
							... 
							
							
							
							fread() should read until either size*nitems bytes are read or eof
is reached. 
							
						 
						
							2023-09-07 16:00:47 +03:00  
				
					
						
							
							
								 
						
							
								41757b5f6c 
								
							 
						 
						
							
							
								
								Shell: Clean exit on ^D and use getchar()  
							
							... 
							
							
							
							Use getchar() instead of fread(&ch, 1, sizeof(char), stdin). This
is much cleaner. 
							
						 
						
							2023-09-07 15:51:05 +03:00  
				
					
						
							
							
								 
						
							
								c33c7f8b3b 
								
							 
						 
						
							
							
								
								Init: use read instead of fread()  
							
							... 
							
							
							
							This allows actually correct behaviour. My fread implementation is
flawed. It should not return on '\n' 
							
						 
						
							2023-09-07 15:47:59 +03:00  
				
					
						
							
							
								 
						
							
								4648f6718e 
								
							 
						 
						
							
							
								
								Kernel: Cleanup TTY::read()  
							
							
							
						 
						
							2023-09-07 15:27:21 +03:00  
				
					
						
							
							
								 
						
							
								b30af0edca 
								
							 
						 
						
							
							
								
								Kernel: TTY now reads input byte by byte  
							
							... 
							
							
							
							This allows correct behaviour for character streams / keyboard
handling. Serial input can now send working ^C :D 
							
						 
						
							2023-09-07 15:06:27 +03:00  
				
					
						
							
							
								 
						
							
								5e1725abb2 
								
							 
						 
						
							
							
								
								Kernel: Remove bitmap debug printing from ext2 inode allocation  
							
							
							
						 
						
							2023-09-06 01:25:09 +03:00  
				
					
						
							
							
								 
						
							
								6ad2f23259 
								
							 
						 
						
							
							
								
								Kernel: Correct inode links count  
							
							
							
						 
						
							2023-09-05 14:46:56 +03:00  
				
					
						
							
							
								 
						
							
								0d725f68e3 
								
							 
						 
						
							
							
								
								Snake render grid lines without extra space after last '#'  
							
							
							
						 
						
							2023-09-05 14:35:53 +03:00  
				
					
						
							
							
								 
						
							
								0770ba0936 
								
							 
						 
						
							
							
								
								BuildSystem: Don't set permissions on image creation  
							
							... 
							
							
							
							This is already handled by *new* tar ball sysroot 
							
						 
						
							2023-09-05 14:35:53 +03:00  
				
					
						
							
							
								 
						
							
								c13b5aecfe 
								
							 
						 
						
							
							
								
								Snake: Reorder apple generation/snake body update  
							
							... 
							
							
							
							If new apple was generated to heads previous position after update,
it would not render. 
							
						 
						
							2023-09-05 14:30:30 +03:00  
				
					
						
							
							
								 
						
							
								3892579049 
								
							 
						 
						
							
							
								
								Base: Add grub entries for serial-only boot  
							
							... 
							
							
							
							We can now fully boot with serial input and output :)
Qemu can be run with -nographic flag 
							
						 
						
							2023-09-05 01:07:52 +03:00  
				
					
						
							
							
								 
						
							
								ba7e1b9ca5 
								
							 
						 
						
							
							
								
								Kernel: Add /dev/tty symlink that targets the current tty  
							
							
							
						 
						
							2023-09-05 01:07:52 +03:00  
				
					
						
							
							
								 
						
							
								f0772e385c 
								
							 
						 
						
							
							
								
								Kernel: Implement basic RamSymlinkInode  
							
							
							
						 
						
							2023-09-05 01:07:52 +03:00  
				
					
						
							
							
								 
						
							
								3fd94b1acb 
								
							 
						 
						
							
							
								
								Kernel: You can now read serial output from the /dev/ttyS*  
							
							
							
						 
						
							2023-09-05 01:07:52 +03:00  
				
					
						
							
							
								 
						
							
								93c5755012 
								
							 
						 
						
							
							
								
								Kernel: Receive interrupts for COM1 and COM2 input  
							
							... 
							
							
							
							The input has to still be attached to terminal 
							
						 
						
							2023-09-04 22:07:40 +03:00  
				
					
						
							
							
								 
						
							
								323de3c866 
								
							 
						 
						
							
							
								
								Kernel: Rework whole Terminal structure  
							
							... 
							
							
							
							Serial monitors can now be used as a output. This requires editing
init code for the stdio opening. Serial input is not supported, so qemu
still needs graphical window for ps/2 keyboard. 
							
						 
						
							2023-09-04 19:34:18 +03:00  
				
					
						
							
							
								 
						
							
								52b9fddfd7 
								
							 
						 
						
							
							
								
								Kernel: Make serial devices to their own class  
							
							
							
						 
						
							2023-09-04 14:57:05 +03:00  
				
					
						
							
							
								 
						
							
								e4041ce5ec 
								
							 
						 
						
							
							
								
								Userspace: Implement basic snake game :)  
							
							
							
						 
						
							2023-09-04 14:30:45 +03:00  
				
					
						
							
							
								 
						
							
								04cfbca336 
								
							 
						 
						
							
							
								
								Kernel: Add ANSI support for hiding/showing cursor to TTY  
							
							
							
						 
						
							2023-09-04 14:30:09 +03:00  
				
					
						
							
							
								 
						
							
								7184514b5d 
								
							 
						 
						
							
							
								
								LibC: add time() implementation  
							
							
							
						 
						
							2023-09-04 13:52:58 +03:00  
				
					
						
							
							
								 
						
							
								dfb18d38f7 
								
							 
						 
						
							
							
								
								LibC: Add rand() and srand() implementation  
							
							... 
							
							
							
							This code is from the wikipedia page for Permuted congruential generator 
							
						 
						
							2023-09-04 13:52:13 +03:00  
				
					
						
							
							
								 
						
							
								9901f95d78 
								
							 
						 
						
							
							
								
								Kernel: Add basic nanosleep, only millisecond percision  
							
							
							
						 
						
							2023-09-04 12:59:50 +03:00  
				
					
						
							
							
								 
						
							
								b2139c0b1e 
								
							 
						 
						
							
							
								
								Kernel: Add basic support for O_NONBLOCK (only for tty)  
							
							
							
						 
						
							2023-09-04 12:57:52 +03:00  
				
					
						
							
							
								 
						
							
								6f002c926a 
								
							 
						 
						
							
							
								
								Kernel: add basic fcntl() with couple of commands and no validation  
							
							
							
						 
						
							2023-09-04 12:57:09 +03:00  
				
					
						
							
							
								 
						
							
								a711462ef4 
								
							 
						 
						
							
							
								
								Kernel: Split ext2 implementation to multiple files  
							
							
							
						 
						
							2023-09-01 15:10:23 +03:00  
				
					
						
							
							
								 
						
							
								f31c6b847f 
								
							 
						 
						
							
							
								
								Kernel: Start work on writable ext2 filesystem  
							
							
							
						 
						
							2023-08-31 23:40:31 +03:00  
				
					
						
							
							
								 
						
							
								195ccf4f53 
								
							 
						 
						
							
							
								
								Kernel: Add missing ififo() to Inode::Mode  
							
							
							
						 
						
							2023-08-31 21:38:31 +03:00  
				
					
						
							
							
								 
						
							
								5786ffe7d2 
								
							 
						 
						
							
							
								
								BuildSystem: Add cmake target to validate main partition  
							
							
							
						 
						
							2023-08-31 21:37:30 +03:00  
				
					
						
							
							
								 
						
							
								073edd0b8e 
								
							 
						 
						
							
							
								
								Kernel: Stack trace dumping validates pointers before using them  
							
							
							
						 
						
							2023-08-31 21:36:23 +03:00  
				
					
						
							
							
								 
						
							
								2c136dae2d 
								
							 
						 
						
							
							
								
								Update README.md  
							
							
							
						 
						
							2023-08-31 17:54:12 +03:00  
				
					
						
							
							
								 
						
							
								250789aa20 
								
							 
						 
						
							
							
								
								Kernel: better handle kernel errors  
							
							
							
						 
						
							2023-08-29 00:13:21 +03:00  
				
					
						
							
							
								 
						
							
								8032824054 
								
							 
						 
						
							
							
								
								BuildSystem: use -a with rsync  
							
							... 
							
							
							
							This allows cmake to not rebuild whole project every time 
							
						 
						
							2023-08-28 11:38:17 +03:00  
				
					
						
							
							
								 
						
							
								7aaea786c2 
								
							 
						 
						
							
							
								
								LibC: Don't undef needed values in inttypes.h  
							
							
							
						 
						
							2023-08-24 15:48:14 +03:00  
				
					
						
							
							
								 
						
							
								ce8e8e68f4 
								
							 
						 
						
							
							
								
								BuildSystem: Add USES_TERMINAL when preparing sysroot  
							
							... 
							
							
							
							You were not able to enter sudo password on sysroot unpacking,
which caused ninja to hang 
							
						 
						
							2023-08-23 20:48:40 +03:00  
				
					
						
							
							
								 
						
							
								80e7a89f67 
								
							 
						 
						
							
							
								
								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  
				
					
						
							
							
								 
						
							
								b780df8be0 
								
							 
						 
						
							
							
								
								Shell: hostname is not parsed from /etc/hostname  
							
							
							
						 
						
							2023-08-23 10:38:21 +03:00  
				
					
						
							
							
								 
						
							
								c4210b5810 
								
							 
						 
						
							
							
								
								Shell: use process groups more properly  
							
							
							
						 
						
							2023-08-22 14:54:50 +03:00  
				
					
						
							
							
								 
						
							
								38e72019c7 
								
							 
						 
						
							
							
								
								Kernel: kill() with negative pid actually matches pgid  
							
							
							
						 
						
							2023-08-22 14:54:15 +03:00  
				
					
						
							
							
								 
						
							
								d745fca86a 
								
							 
						 
						
							
							
								
								Kernel: Process keeps track if forked process has called exec*()  
							
							
							
						 
						
							2023-08-22 14:53:46 +03:00  
				
					
						
							
							
								 
						
							
								60a2185ee6 
								
							 
						 
						
							
							
								
								Kernel/LibC: implement proper getpgid and setpgid  
							
							
							
						 
						
							2023-08-22 14:53:12 +03:00  
				
					
						
							
							
								 
						
							
								d634fec8dc 
								
							 
						 
						
							
							
								
								Kernel: Add function to enumerate processes in session  
							
							
							
						 
						
							2023-08-22 14:52:28 +03:00  
				
					
						
							
							
								 
						
							
								e33bf62bba 
								
							 
						 
						
							
							
								
								BAN: increase function size to 5 * sizeof(void*)  
							
							
							
						 
						
							2023-08-22 14:52:03 +03:00  
				
					
						
							
							
								 
						
							
								2dcd4ed131 
								
							 
						 
						
							
							
								
								Shell/init: We now use pgrp instead of pid and init open terminal  
							
							
							
						 
						
							2023-08-22 11:37:04 +03:00  
				
					
						
							
							
								 
						
							
								c9243f0d1e 
								
							 
						 
						
							
							
								
								Kernel/LibC: Add {get,set}pgrp()  
							
							
							
						 
						
							2023-08-22 11:36:33 +03:00  
				
					
						
							
							
								 
						
							
								0f6c19a1b7 
								
							 
						 
						
							
							
								
								Kernel: Barebones implementation sessions and process groups  
							
							
							
						 
						
							2023-08-22 11:35:40 +03:00  
				
					
						
							
							
								 
						
							
								642929f071 
								
							 
						 
						
							
							
								
								BAN: Add enum class Iteration for for_each loops  
							
							
							
						 
						
							2023-08-22 11:30:53 +03:00  
				
					
						
							
							
								 
						
							
								2746419c8c 
								
							 
						 
						
							
							
								
								BAN: Function call is now const  
							
							
							
						 
						
							2023-08-22 11:30:40 +03:00