Bananymous 
							
						 
						
							
								c1cac43f28 
								
							 
						 
						
							
							
								
								BuildSystem: Don't build lai with -Wstack-usage  
							
							... 
							
							
							
							Lai has two functions that trigger warnings on gcc. There isn't
really anything I can do about it, so just disable the warning 
							
						 
						
							2023-12-01 01:22:53 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								fdb6dc94ba 
								
							 
						 
						
							
							
								
								Kernel: cast between inheritance with static_cast  
							
							... 
							
							
							
							using reinterpret_cast is not a good idea. preferably we would use
dynamic_cast, but that is not possible since kernel is compiled with
-fno-rtti. 
							
						 
						
							2023-11-29 20:50:57 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								327b330338 
								
							 
						 
						
							
							
								
								Kernel: Make internal framebuffer bpp constexpr defined in libc  
							
							
							
						 
						
							2023-11-29 20:07:33 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								d7a3aca5d4 
								
							 
						 
						
							
							
								
								Kernel: Use the correct bpp when writing to framebuffer  
							
							
							
						 
						
							2023-11-29 00:31:24 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								cc572af390 
								
							 
						 
						
							
							
								
								Kernel: Implement mmaping for framebuffer device  
							
							
							
						 
						
							2023-11-28 23:51:56 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								4275d2ce48 
								
							 
						 
						
							
							
								
								Kernel: Add framebuffer device to devfs  
							
							
							
						 
						
							2023-11-28 23:51:28 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								4a87d6052b 
								
							 
						 
						
							
							
								
								Kernel: Add API for implementing mmappable devices  
							
							
							
						 
						
							2023-11-28 23:50:49 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								d86ecf4f61 
								
							 
						 
						
							
							
								
								Kernel: Reading from negative offset in fb dev gives out info  
							
							
							
						 
						
							2023-11-28 23:50:11 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								09b7cb2f33 
								
							 
						 
						
							
							
								
								Kernel/LibC: Implement pread()  
							
							
							
						 
						
							2023-11-28 23:47:30 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								60e755210c 
								
							 
						 
						
							
							
								
								Kernel/LibC: Implement very basic msync  
							
							
							
						 
						
							2023-11-22 22:44:06 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								ab9954fe73 
								
							 
						 
						
							
							
								
								Kernel: Delete the now obsolete VesaTerminalDriver  
							
							
							
						 
						
							2023-11-22 21:59:11 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								fd18071975 
								
							 
						 
						
							
							
								
								Kernel: Implement TerminalDriver for Framebuffer device  
							
							... 
							
							
							
							Use this new FramebufferTerminalDriver for terminal instead of the
old VesaTerminalDriver. Only drawback with this is that framebuffer
device can only be intialized after DevFS is initialized. 
							
						 
						
							2023-11-22 21:57:17 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								b88a7e0c6b 
								
							 
						 
						
							
							
								
								Kernel: Add more APIs to FramebufferDevice  
							
							
							
						 
						
							2023-11-22 21:56:27 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								cdf53f33f6 
								
							 
						 
						
							
							
								
								Kernel: Implement basic framebuffer device  
							
							... 
							
							
							
							This allows exposing framebuffer to userspace 
							
						 
						
							2023-11-22 20:34:41 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								bc5e8add19 
								
							 
						 
						
							
							
								
								Kernel: Make Ext2 filesystem use BlockDevice instead of Partition  
							
							
							
						 
						
							2023-11-21 15:20:24 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								7a8fd6d04a 
								
							 
						 
						
							
							
								
								Kernel: TmpFS doesn't mark any functions as final  
							
							... 
							
							
							
							I didn't think these would be overloaded, but they are 
							
						 
						
							2023-11-21 15:19:34 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								b749963b62 
								
							 
						 
						
							
							
								
								Kernel: Add common {read,write}_blocks() api to BlockDevice  
							
							
							
						 
						
							2023-11-21 15:19:07 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								6a068fb9f9 
								
							 
						 
						
							
							
								
								Kernel: Move Partition to its own file  
							
							
							
						 
						
							2023-11-21 15:16:04 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								cadb56d8ba 
								
							 
						 
						
							
							
								
								Kernel: ProcFS inodes reflect processes ruid/rgid  
							
							... 
							
							
							
							setgid/setuid did not change the permissions of procfs inodes. This
made Shell launched by init not appear in meminfo. 
							
						 
						
							2023-11-18 14:26:44 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								c9e9cfd361 
								
							 
						 
						
							
							
								
								Bootloader: Implement VESA video mode query and pass it to kernel  
							
							... 
							
							
							
							Kernel now gets framebuffer from bootloader. Framebuffer dimensions
and bpp are hardcoded in bootloader, but will probably be read from
config file at some point. 
							
						 
						
							2023-11-17 22:45:35 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								cb5a5d3ed1 
								
							 
						 
						
							
							
								
								Kernel/Bootloader: banan-os can now be booted with my bootloader :D  
							
							
							
						 
						
							2023-11-17 20:33:02 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								95af728e39 
								
							 
						 
						
							
							
								
								Kernel: Don't calculate divisor in a for loop in ext2 inodes  
							
							
							
						 
						
							2023-11-17 19:02:01 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								24d87acec4 
								
							 
						 
						
							
							
								
								Kernel: Serial now uses random size for some serial ports  
							
							... 
							
							
							
							If the serial port doesn't repond with a size, just use a random
one. There is no reason to ditch the whole output if you cannot
determine its size. 
							
						 
						
							2023-11-17 18:56:02 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								84040e64b8 
								
							 
						 
						
							
							
								
								Kernel: Don't use multiboot2 explicitly. Parse it to common structure  
							
							... 
							
							
							
							This allows support of multiple different bootloaders 
							
						 
						
							2023-11-17 18:54:59 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								c084ce8b01 
								
							 
						 
						
							
							
								
								Kernel/LibC: Implement readlink and readlinkat  
							
							
							
						 
						
							2023-11-11 23:16:52 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								fda0dfec30 
								
							 
						 
						
							
							
								
								Kernel: Make TmpFS enforce max page count.  
							
							
							
						 
						
							2023-11-07 16:13:21 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								d6ae1bcf36 
								
							 
						 
						
							
							
								
								Kernel: Remove now obsolete RamFS  
							
							... 
							
							
							
							Everything is using now the better TmpFS which uses physical pages
for page allocation instead of the static kmalloc memory. 
							
						 
						
							2023-11-07 16:07:11 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								5044810451 
								
							 
						 
						
							
							
								
								Kernel: Make DevFS use the new and better TmpFS instead of RamFS  
							
							
							
						 
						
							2023-11-07 16:05:05 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								147cd93ed3 
								
							 
						 
						
							
							
								
								Kernel: Add method to TmpFS for looping over all (cached) inodes  
							
							
							
						 
						
							2023-11-07 16:04:34 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								07b5920f3f 
								
							 
						 
						
							
							
								
								Kernel: Lock TmpFS in all its methods  
							
							
							
						 
						
							2023-11-07 16:03:52 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								2bcf934389 
								
							 
						 
						
							
							
								
								Kernel: Implement symlinks to TmpFS  
							
							
							
						 
						
							2023-11-07 15:59:50 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								1405712f26 
								
							 
						 
						
							
							
								
								Kernel: Make PS/2 keyboard wait until interrupts are enabled  
							
							
							
						 
						
							2023-11-07 15:58:50 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								885ed218fa 
								
							 
						 
						
							
							
								
								Kernel: Make unlinking from /proc always fail with EPERM  
							
							
							
						 
						
							2023-11-07 02:40:27 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								b1f431d962 
								
							 
						 
						
							
							
								
								Kernel: /tmp is now TmpFS instead of RamFS  
							
							
							
						 
						
							2023-11-07 02:36:22 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								06e176e6b9 
								
							 
						 
						
							
							
								
								Kernel: Make ProcFS use the new TmpFS internally  
							
							
							
						 
						
							2023-11-07 02:35:44 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								b7771e95ac 
								
							 
						 
						
							
							
								
								Kernel: Implement TmpFS Inode unlinking and deletion  
							
							
							
						 
						
							2023-11-06 21:49:12 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								3e33fc156b 
								
							 
						 
						
							
							
								
								Kernel: TmpFS directory inodes now iterate over only valid entries  
							
							
							
						 
						
							2023-11-06 21:41:51 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								438f01a856 
								
							 
						 
						
							
							
								
								Kernel: Fix TmpFS directory entry enumeration early return  
							
							
							
						 
						
							2023-11-06 21:06:10 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								5dd8189048 
								
							 
						 
						
							
							
								
								Kernel: Fix ext2 directory listing for big directories  
							
							
							
						 
						
							2023-11-06 21:05:58 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								ff6b127c3a 
								
							 
						 
						
							
							
								
								Kernel: Implement TmpFS directory listing  
							
							
							
						 
						
							2023-11-06 21:05:58 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								c3ed700324 
								
							 
						 
						
							
							
								
								Kernel: Implement TmpFS inode chmod  
							
							
							
						 
						
							2023-11-06 20:11:34 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								ba2f09a4e6 
								
							 
						 
						
							
							
								
								Kernel: Cleanup TmpFS code and block access doesn't require allocs  
							
							... 
							
							
							
							TmpFS blocks are now accessed with a simple wrapper 
							
						 
						
							2023-11-06 20:07:09 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								c92c1b8e2b 
								
							 
						 
						
							
							
								
								Kernel: TmpInode blocks are on demand allocated  
							
							
							
						 
						
							2023-11-06 10:44:37 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								c27d20abd8 
								
							 
						 
						
							
							
								
								Kernel: Implement read/write/truncate for TmpFileInode  
							
							
							
						 
						
							2023-11-05 02:28:43 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								99d7b0917d 
								
							 
						 
						
							
							
								
								Kernel: Start work on proper TmpFS in Heap instead of kmalloc memory  
							
							
							
						 
						
							2023-11-04 18:18:45 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								8b4e129fc1 
								
							 
						 
						
							
							
								
								Kernel: Add better APIs for fast page  
							
							
							
						 
						
							2023-11-04 18:13:16 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								f6c312a6b3 
								
							 
						 
						
							
							
								
								BuildSystem: using sysroot doesn't need root privileges anymore!  
							
							... 
							
							
							
							Sysroot is now created with fakeroot. This allows root access to be
only needed for disk image creation, since it uses loopback devices. 
							
						 
						
							2023-11-04 17:50:43 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								ca34ece8ef 
								
							 
						 
						
							
							
								
								BAN: Update ASSERT api  
							
							... 
							
							
							
							its now much harder to mix < with <= and > with >= 
							
						 
						
							2023-11-02 00:01:12 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								71ecdd7245 
								
							 
						 
						
							
							
								
								Kernel: Canonicalize vaddr before using it  
							
							
							
						 
						
							2023-10-30 19:20:17 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								b80b59ce24 
								
							 
						 
						
							
							
								
								Kernel: Remove unused externs in kernel.cpp  
							
							
							
						 
						
							2023-10-30 19:09:31 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								640d27748f 
								
							 
						 
						
							
							
								
								Kernel: Temporarily force FileBackedRegion mappings writable  
							
							... 
							
							
							
							Now that write-protect bit is enabled this is neccessary. 
							
						 
						
							2023-10-30 19:08:33 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								42772611ce 
								
							 
						 
						
							
							
								
								Kernel: Add fast page to page table  
							
							... 
							
							
							
							Add "fast page" to KERNEL_OFFSET. This is always present in page
tables and only requires changing the page table entry to map. This
requires no interrupts since it should only be for very operations
like memcpy.
I used to map all temporary mappings to vaddr 0, but this is much
better. C++ standard always says that nullptr access is undefined
and this gets rid of it.
Fixed some bugs I found along the way 
							
						 
						
							2023-10-30 19:02:09 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								6e676ee8c5 
								
							 
						 
						
							
							
								
								Kernel: Remove GeneralAllocator since it was not used  
							
							
							
						 
						
							2023-10-30 18:13:17 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								066fb44105 
								
							 
						 
						
							
							
								
								Kernel: Allow offsetof with packed fields  
							
							... 
							
							
							
							This is not standard C++ but should be fine with my toolchain. 
							
						 
						
							2023-10-30 17:51:18 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								3f638f125e 
								
							 
						 
						
							
							
								
								Kernel: panic takes arguments as rvalue references  
							
							
							
						 
						
							2023-10-30 16:22:02 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								35f8f44510 
								
							 
						 
						
							
							
								
								Kernel: Fix ext2 small link deallocation  
							
							... 
							
							
							
							Also fix deallocation bug 
							
						 
						
							2023-10-30 16:22:02 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								0c590821ed 
								
							 
						 
						
							
							
								
								Kernel: only map kernel from g_kernel_start onwards  
							
							
							
						 
						
							2023-10-30 16:22:02 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								6ef153b6ca 
								
							 
						 
						
							
							
								
								Kernel: Enable Write Protect. This seems to be good for security  
							
							
							
						 
						
							2023-10-30 12:23:22 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								130a69bac6 
								
							 
						 
						
							
							
								
								Kernel: Fix stack OOB detection  
							
							... 
							
							
							
							I now check both interrupt and normal stack to detect OOB. Processes
are killed if they encouner stack over/under flow. 
							
						 
						
							2023-10-30 12:17:08 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								0b5fcb3f88 
								
							 
						 
						
							
							
								
								Kernel/LibC: Add crt* files to LibC and remove crt0 from kernel  
							
							... 
							
							
							
							There was no reason for libc get crt0 from kernel. 
							
						 
						
							2023-10-30 11:06:13 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								18f61c5427 
								
							 
						 
						
							
							
								
								Kernel: Fix ACPI DSDT address  
							
							... 
							
							
							
							Read x_dsdt address only if fadt's length contains it. Bochs seems
to have version 1 fadt without the x_* fields. 
							
						 
						
							2023-10-29 21:35:11 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								76f48f095c 
								
							 
						 
						
							
							
								
								Kernel: Rewrite a lot of ext2 code  
							
							... 
							
							
							
							This commit consists of multiple big changes
1. blocks for inodes are now allocated on demand
  - reading from non allocated block will just return zeroes
  - writing to non allocated block allocates it
2. code doesn't really use raw pointers anymore
  - all casts to uint32_t or structures are now replaced with
    spans. either as<T> or as_span<T> which both are bounds
	checked
3. code doesn't depend on random macros for accessing indirect blocks
  - i added some recursive functions which take care of this :) 
							
						 
						
							2023-10-28 22:13:28 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								240a687d8f 
								
							 
						 
						
							
							
								
								Kernel: Fix ext2 inode block allocation with triply indirect blocks  
							
							
							
						 
						
							2023-10-28 16:53:00 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								35b46e37bb 
								
							 
						 
						
							
							
								
								Kernel: Fix ext2 inode deletion cleanup  
							
							... 
							
							
							
							I now cleanup all blocks (including direct) in i_block array 
							
						 
						
							2023-10-28 16:52:56 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								38c267b4c8 
								
							 
						 
						
							
							
								
								Kernel: Fix ext2 inode deletion  
							
							... 
							
							
							
							fsck now reports clean filesystem even after deleting files 
							
						 
						
							2023-10-26 02:05:05 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								87ff38664a 
								
							 
						 
						
							
							
								
								Kernel/LibC: Add syscall and wrapper for unlink  
							
							
							
						 
						
							2023-10-25 21:45:04 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								b7007016c0 
								
							 
						 
						
							
							
								
								BAN: Implement Ext2 file unlinking  
							
							... 
							
							
							
							Ext2 inodes can now be unlinked from directories and after last
inode closes (destructor gets called) we check if link count is 0
and cleanup the inode from filesystem 
							
						 
						
							2023-10-25 21:43:36 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								6ee4d10651 
								
							 
						 
						
							
							
								
								Kernel/LibC/Userspace: Implement mkdir and creat  
							
							... 
							
							
							
							Touch now uses creat insteadd of open with O_CREAT flag 
							
						 
						
							2023-10-25 21:07:26 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								e9b7cf332d 
								
							 
						 
						
							
							
								
								Kernel: Implement directory creation for RamFS  
							
							
							
						 
						
							2023-10-25 19:41:34 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								4ee2f0f789 
								
							 
						 
						
							
							
								
								Kernel: Implement Ext2 directory creation  
							
							
							
						 
						
							2023-10-25 19:37:04 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								18e90d305d 
								
							 
						 
						
							
							
								
								Kernel: Add Inode API for creating directories  
							
							
							
						 
						
							2023-10-25 19:36:04 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								fd1b331b86 
								
							 
						 
						
							
							
								
								Kernel: Ext2FS now uses Ext2Inodes as cached values  
							
							
							
						 
						
							2023-10-25 19:34:00 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								5c51d09309 
								
							 
						 
						
							
							
								
								Kernel: Fix read offset of RamFileInode  
							
							
							
						 
						
							2023-10-25 02:53:20 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								627b8cc140 
								
							 
						 
						
							
							
								
								Kernel/LibC: implement chmod syscall + libc wrapper  
							
							
							
						 
						
							2023-10-25 02:35:37 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								2d0da93ac4 
								
							 
						 
						
							
							
								
								Kernel: Add timeout to ACHI commands  
							
							... 
							
							
							
							ACHI commands can now fail from timeouts. 
							
						 
						
							2023-10-24 11:56:25 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								f3d9da9549 
								
							 
						 
						
							
							
								
								Kernel: Rewrite all read/write functions to use BAN::ByteSpan  
							
							... 
							
							
							
							This allows us to not work with raw pointers and use sized containers
for reading and writing. 
							
						 
						
							2023-10-24 11:56:00 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								c17cdb39d5 
								
							 
						 
						
							
							
								
								Kernel: Map multiboot2 memory in PageTable initialization  
							
							... 
							
							
							
							It cannot be assumed that multiboot data lies between kernel_end
and 2 GiB mark, so I properly allocate virtual address space for it. 
							
						 
						
							2023-10-17 01:15:08 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								69a39b7077 
								
							 
						 
						
							
							
								
								Kernel: Start using multiboot2 instead of multiboot  
							
							... 
							
							
							
							This allows better compatibility with (U)EFI and gives RSDP location
instead of me having to scan ram to find it. 
							
						 
						
							2023-10-17 01:06:24 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								19696bdad3 
								
							 
						 
						
							
							
								
								Kernel: TTY doesn't panic if it doesn't find input device  
							
							
							
						 
						
							2023-10-16 16:58:39 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								00dd7d85ce 
								
							 
						 
						
							
							
								
								Kernel: Fix device identification with all bits as ones  
							
							... 
							
							
							
							If device identification sends all ones, don't initialize the device. 
							
						 
						
							2023-10-16 16:57:07 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								0c88c74b76 
								
							 
						 
						
							
							
								
								Kernel: ATABuses are but to compatibility mode if possible  
							
							... 
							
							
							
							I don't support native mode ata bus (irq sharing) so ata buses are
but to compatibility mode if possible. 
							
						 
						
							2023-10-16 16:56:12 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								c4a640bcb6 
								
							 
						 
						
							
							
								
								Kernel: Fix ATADevice naming  
							
							... 
							
							
							
							ATADevice now stores its name instead of using static buffer. Old
static buffer was changing on every name query. I just hadn't noticed
since virtual machine disks were always sda. 
							
						 
						
							2023-10-16 16:52:15 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								0fdf8b6f68 
								
							 
						 
						
							
							
								
								Kernel: Fix PCI bugs  
							
							... 
							
							
							
							IO BarRegion used vaddr instead of the correct paddr. Add API for
memory region iobase query. 
							
						 
						
							2023-10-16 16:50:49 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								37bc52988c 
								
							 
						 
						
							
							
								
								Kernel: Don't require framebuffer  
							
							... 
							
							
							
							Initializes virtual tty only if framebuffer is initialized 
							
						 
						
							2023-10-16 01:44:54 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								1312a9dad2 
								
							 
						 
						
							
							
								
								Kernel: PCI checks if ethernet device is E1000 before initialization  
							
							... 
							
							
							
							I used to treat all ethernet deivices as E1000 but now it is actually
verified before initialization 
							
						 
						
							2023-10-16 01:44:54 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								73b9c28457 
								
							 
						 
						
							
							
								
								Kernel: PCIDevice stores its vendor id and device id  
							
							
							
						 
						
							2023-10-16 01:44:54 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								fc5bfa2cb3 
								
							 
						 
						
							
							
								
								Kernel: Clear TTY when setting as current  
							
							... 
							
							
							
							Actually this should replace from old buffer, but this works
for now. 
							
						 
						
							2023-10-13 17:20:26 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								f7e38ccfe4 
								
							 
						 
						
							
							
								
								Kernel: Don't crash if header type != 0 in bar region creation  
							
							... 
							
							
							
							Also remove spammy debug printing 
							
						 
						
							2023-10-13 16:32:32 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								128202a55a 
								
							 
						 
						
							
							
								
								Kernel: Cleanup GDT code  
							
							
							
						 
						
							2023-10-13 16:18:22 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								89d74a9088 
								
							 
						 
						
							
							
								
								Kernel: Separate scheduler execution and stack loading  
							
							... 
							
							
							
							Not sure if this is actually needed, but this allows actual
executing function to be in clean environment 
							
						 
						
							2023-10-13 16:17:27 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								63f64619bc 
								
							 
						 
						
							
							
								
								Kernel: add NEVER_INLINE and make Interruptable not constructable  
							
							
							
						 
						
							2023-10-13 16:17:27 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								518fd3fad0 
								
							 
						 
						
							
							
								
								Kernel: Add 16 more irq handlers  
							
							... 
							
							
							
							IDT will now panic if trying to assing handler for non supported
irq. 
							
						 
						
							2023-10-13 16:17:27 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								74b77ba2ac 
								
							 
						 
						
							
							
								
								Kernel: Debug temporary debug print just to beginning when full  
							
							
							
						 
						
							2023-10-13 12:43:52 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								888e44ce0b 
								
							 
						 
						
							
							
								
								Kernel: Allow getting ACPI headers with same signature  
							
							
							
						 
						
							2023-10-13 11:24:21 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								b3b8376cca 
								
							 
						 
						
							
							
								
								Kernel: Fix PhysicalRange mapping size  
							
							
							
						 
						
							2023-10-13 03:45:01 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								9c143d18b9 
								
							 
						 
						
							
							
								
								Kernel: Add temporary terminal output before controlling terminal  
							
							... 
							
							
							
							Starting work on getting this boot on real hardware. 
							
						 
						
							2023-10-13 03:31:36 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								9a6cc0dc2d 
								
							 
						 
						
							
							
								
								Kernel: Check whether ELF address space can be loaded  
							
							... 
							
							
							
							Before reserving address space in SYS_EXEC verify that ELF address
space is actually loadable. For example when trying to execute the
kernel binary in userspace, binarys address space would overlap with
current kernel address space. Now kernel won't crash anymore and
will just send SIGKILL to the process calling exec*(). 
							
						 
						
							2023-10-12 22:59:36 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								adc5ff9e99 
								
							 
						 
						
							
							
								
								Kernel: Implement AHCI driver  
							
							... 
							
							
							
							SATA drives can now be used with banan-os. This allows much faster
disk access (writing 10 MiB from 30s to 1.5s). This can definitely
be optimized but the main slow down is probably the whole disk
structure in the os.
AHCI drive is now the default when running qemu. 
							
						 
						
							2023-10-12 21:53:48 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								bde9ff9319 
								
							 
						 
						
							
							
								
								Kernel: Generalize ATA device and cleanup code  
							
							
							
						 
						
							2023-10-12 21:35:25 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								75fdf4c3c6 
								
							 
						 
						
							
							
								
								Kernel: Add Timer::ns_since_boot()  
							
							
							
						 
						
							2023-10-12 21:16:39 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								b723ed5fd2 
								
							 
						 
						
							
							
								
								Kernel: Add vaddr/paddr conversion functions to DMARegion  
							
							
							
						 
						
							2023-10-12 15:20:05 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								89c975350d 
								
							 
						 
						
							
							
								
								Kernel: PCI can now get interrupts for devices  
							
							
							
						 
						
							2023-10-11 22:18:58 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								f27974dd3c 
								
							 
						 
						
							
							
								
								Kernel: PCI cleanup PCI::Device API  
							
							
							
						 
						
							2023-10-11 21:52:08 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								d4c9f371a6 
								
							 
						 
						
							
							
								
								Kernel: make DMARegion::create static and fix mapping  
							
							
							
						 
						
							2023-10-08 18:18:36 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								2aabf43ace 
								
							 
						 
						
							
							
								
								Kernel: fix some math in physical ranges  
							
							... 
							
							
							
							I allocated 1 bitmap page per 8 data pages. Bitmap page can actually
store 8*PAGE_SIZE data pages.
Also properly set last bits in bitmap. I did not care about endianness
but now we set the bits on unsigned long longs instead of bytes. 
							
						 
						
							2023-10-08 13:25:34 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								a6ca9fd453 
								
							 
						 
						
							
							
								
								Kernel: Implement bare boness DMA Region  
							
							... 
							
							
							
							This does nothing but allocate contiguous physical and virtual memory
and map it as CacheDisable. Also memory is automatically freed RAII style. 
							
						 
						
							2023-10-08 02:57:22 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								799aab02f5 
								
							 
						 
						
							
							
								
								Kernel: Add API for getting contiguous physcial pages  
							
							... 
							
							
							
							This will be used to create DMA regions. 
							
						 
						
							2023-10-08 02:57:22 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								0fae2c7309 
								
							 
						 
						
							
							
								
								Kernel: Rework physical memory allocation  
							
							... 
							
							
							
							PhysicalRange is now much simpler bitmap. This makes expanding
PhysicalRange API much easier. 
							
						 
						
							2023-10-08 02:50:23 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								7ba72b1507 
								
							 
						 
						
							
							
								
								Kernel: Fix PCI BarRegion offsets  
							
							... 
							
							
							
							Calculations accidentally assumed bar registers are 8 byte instead
of 4. 
							
						 
						
							2023-10-08 02:50:23 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								f21d4e794c 
								
							 
						 
						
							
							
								
								Kernel: Rework whole ATA driver structure  
							
							... 
							
							
							
							Make ATA driver more compatible when we are adding SATA support 
							
						 
						
							2023-10-08 02:50:23 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								27eb5af6f0 
								
							 
						 
						
							
							
								
								Kernel: Rework interrupt mechanism  
							
							... 
							
							
							
							All interruptrable classes now inherit from Interruptable which
has methdo handle_irq which is called on a interrupt. 
							
						 
						
							2023-10-05 18:53:45 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								68a913c838 
								
							 
						 
						
							
							
								
								BuildSystem: Don't strip kernel  
							
							
							
						 
						
							2023-10-05 18:52:44 +03:00  
				
					
						
							
							
								 
						
							
								39bc6c43dc 
								
							 
						 
						
							
							
								
								Kernel: Expose command line and environment to /proc  
							
							
							
						 
						
							2023-09-30 23:01:33 +03:00  
				
					
						
							
							
								 
						
							
								5ee3506474 
								
							 
						 
						
							
							
								
								Kernel: Add physical memory info to /proc/{pid}/meminfo  
							
							
							
						 
						
							2023-09-30 22:11:45 +03:00  
				
					
						
							
							
								 
						
							
								785de5f9b9 
								
							 
						 
						
							
							
								
								Kernel: /proc/{pid}/meminfo now reports per process memory usage  
							
							
							
						 
						
							2023-09-30 21:20:18 +03:00  
				
					
						
							
							
								 
						
							
								8f630a97df 
								
							 
						 
						
							
							
								
								Kernel: Add procfs that contains only pids  
							
							
							
						 
						
							2023-09-30 21:19:36 +03:00  
				
					
						
							
							
								 
						
							
								56bb419884 
								
							 
						 
						
							
							
								
								Kernel: All process' memory areas can report their virtual mem usage  
							
							
							
						 
						
							2023-09-30 21:15:46 +03:00  
				
					
						
							
							
								 
						
							
								9f0797047f 
								
							 
						 
						
							
							
								
								Kernel/LibC: dirent now contains file type  
							
							
							
						 
						
							2023-09-30 20:46:57 +03:00  
				
					
						
							
							
								 
						
							
								e8a0eeb0b4 
								
							 
						 
						
							
							
								
								Kernel: RamInode verifies that you have not specified mode type  
							
							... 
							
							
							
							This is kinda weird behaviour, but it ensures the user cannot
create e.g. CharacterDevice with mode having IFLNK.
The Inode overrider is the only one setting the mode. 
							
						 
						
							2023-09-30 20:46:57 +03:00  
				
					
						
							
							
								 
						
							
								3e5645d453 
								
							 
						 
						
							
							
								
								Kernel: Add API for RamDirectoryInodes to delete containing inodes  
							
							
							
						 
						
							2023-09-30 19:22:30 +03:00  
				
					
						
							
							
								 
						
							
								2301654c4e 
								
							 
						 
						
							
							
								
								Kernel: Rework RamInode API  
							
							... 
							
							
							
							RamInode is now a general RamInode with no data. RamFileInode is now
a inode for regular files. This is much cleaner and more intuitive
since there is no reason for most non-regular inodes to hold data
Vector. 
							
						 
						
							2023-09-30 19:22:30 +03:00  
				
					
						
							
							
								 
						
							
								43c23db4a6 
								
							 
						 
						
							
							
								
								Kernel: Implement MAP_SHARED for regular files  
							
							... 
							
							
							
							Every inode holds a weak pointer to shared file data. This contains
physical addresses of pages for inode file data. Physical addresses
are allocated and read on demand.
When last shared mapping is unmapped. The inodes shared data is freed
and written to the inode. 
							
						 
						
							2023-09-29 18:59:20 +03:00  
				
					
						
							
							
								 
						
							
								8ff4e1f8c8 
								
							 
						 
						
							
							
								
								Kernel: Don't write to stat_loc on SYS_WAIT if it is null  
							
							
							
						 
						
							2023-09-29 18:31:44 +03:00  
				
					
						
							
							
								 
						
							
								7b1c573ad0 
								
							 
						 
						
							
							
								
								Kernel: Implement MAP_PRIVATE file mappings  
							
							... 
							
							
							
							mmap() now supports mapping files with MAP_PRIVATE. 
							
						 
						
							2023-09-29 17:23:42 +03:00  
				
					
						
							
							
								 
						
							
								4ee759aa3b 
								
							 
						 
						
							
							
								
								Kernel: Implement new abstract MemoryRegion  
							
							... 
							
							
							
							MemoryBackedRegion now inherits from this and is used for private
anonymous mappigs. This will make shared mappings and file backed
mappings much easier to implement. 
							
						 
						
							2023-09-29 16:18:23 +03:00  
				
					
						
							
							
								 
						
							
								16eb055737 
								
							 
						 
						
							
							
								
								Kernel: Add some sanity assertions/functions  
							
							
							
						 
						
							2023-09-29 02:03:19 +03:00  
				
					
						
							
							
								 
						
							
								a34f2e6e0d 
								
							 
						 
						
							
							
								
								Kernel: Use the new on demand ELF structure  
							
							... 
							
							
							
							All executable files are now read from disk and paged on demand.
This was a big rewrite of the old ELF library but in the end
everything seems much cleaner, since all the old functionality was
not actually needed for execution.
I have to do some measurements, but I feel like memory usage dropped
quite a bit after this change. 
							
						 
						
							2023-09-29 02:00:10 +03:00  
				
					
						
							
							
								 
						
							
								5b6569f2c9 
								
							 
						 
						
							
							
								
								Kernel: Fix off by one error when calculating pages in range  
							
							
							
						 
						
							2023-09-29 01:56:15 +03:00  
				
					
						
							
							
								 
						
							
								58f4ed22c4 
								
							 
						 
						
							
							
								
								Kernel: Don't map interrupt stack as userspace accessable  
							
							
							
						 
						
							2023-09-28 21:58:24 +03:00  
				
					
						
							
							
								 
						
							
								245f58cc3a 
								
							 
						 
						
							
							
								
								Kernel: mmap regions are now demand paged  
							
							... 
							
							
							
							mmap will not actually take any memory unless you use the given
memory. 
							
						 
						
							2023-09-28 21:07:14 +03:00  
				
					
						
							
							
								 
						
							
								d9a5e471f5 
								
							 
						 
						
							
							
								
								Kernel: Remove duplicate code in VirtualRange::create_to_vaddr_range  
							
							
							
						 
						
							2023-09-28 13:59:49 +03:00  
				
					
						
							
							
								 
						
							
								d7ecf94347 
								
							 
						 
						
							
							
								
								Kernel: Reboot will now always succeed  
							
							... 
							
							
							
							If acpi reset fails, we forcefully trigger a triple fault to restart
the system. 
							
						 
						
							2023-09-28 13:53:03 +03:00  
				
					
						
							
							
								 
						
							
								6eda65eea6 
								
							 
						 
						
							
							
								
								Kernel/LibC/Userspace: Add SYS_POWEROFF + cli tool  
							
							... 
							
							
							
							You can now shutdown/reboot banan-os with the poweroff cli tool.
Reboot doesn't seem to work on qemu. 
							
						 
						
							2023-09-28 12:36:47 +03:00  
				
					
						
							
							
								 
						
							
								d45bf363f1 
								
							 
						 
						
							
							
								
								Kernel: Enter ACPI mode with lai  
							
							
							
						 
						
							2023-09-28 12:30:27 +03:00  
				
					
						
							
							
								 
						
							
								3b283cb860 
								
							 
						 
						
							
							
								
								Kernel: Make tty overload correct has_data() function  
							
							... 
							
							
							
							This allows snake game to work again :) 
							
						 
						
							2023-09-28 11:54:12 +03:00  
				
					
						
							
							
								 
						
							
								cb76f1ea75 
								
							 
						 
						
							
							
								
								Kernel: Add some functionality to disable TTY input/output  
							
							... 
							
							
							
							Userspace programs can call tty_ctrl() to disable/enable tty from
handling input and displaying output.
This API is probably going to change in the future to ioctl calls
but I'm not sure how ioctl is used and what functionality should it
have. I decided to create whole new function and syscall for now.
Next I will expose framebuffer in /dev/fb0 and then I can start work
on graphical environment! :D 
							
						 
						
							2023-09-27 15:44:05 +03:00  
				
					
						
							
							
								 
						
							
								459afef89e 
								
							 
						 
						
							
							
								
								Kernel: Disable DiskCache sync messages  
							
							
							
						 
						
							2023-09-27 14:12:21 +03:00  
				
					
						
							
							
								 
						
							
								1c26a402b0 
								
							 
						 
						
							
							
								
								Kernel: Add missing TRY() to font loading  
							
							
							
						 
						
							2023-09-27 00:49:53 +03:00  
				
					
						
							
							
								 
						
							
								1e6930a3bc 
								
							 
						 
						
							
							
								
								Kernel: SYS_SYNC now schedules sync to happen soon  
							
							... 
							
							
							
							You can pass non-zero argument to the syscall to block until the
sync has finished. 
							
						 
						
							2023-09-27 00:34:00 +03:00  
				
					
						
							
							
								 
						
							
								11db49e2d3 
								
							 
						 
						
							
							
								
								Kernel: DiskCache now requires sync to be called from kernel thread  
							
							... 
							
							
							
							This disables the scenario where user interrupts sync operation
possibly leaving the syncing in invalid state. 
							
						 
						
							2023-09-27 00:32:13 +03:00  
				
					
						
							
							
								 
						
							
								c33e658f98 
								
							 
						 
						
							
							
								
								Kernel: Allow creationg of empty processes and manual registration  
							
							... 
							
							
							
							You can now create kernel processes without any threads, add the
needed threads and only then register the process and its threads
to the scheduler. 
							
						 
						
							2023-09-27 00:29:45 +03:00  
				
					
						
							
							
								 
						
							
								22252cfcf0 
								
							 
						 
						
							
							
								
								Kernel: All syscalls now validate users pointers  
							
							... 
							
							
							
							We now validate pointers passed by the user, to forbid arbitary
memory read/write. Now the user is only allowed to pass in pointers
in their own mapped memory space (or null). 
							
						 
						
							2023-09-25 22:07:12 +03:00  
				
					
						
							
							
								 
						
							
								976114fde1 
								
							 
						 
						
							
							
								
								Kernel: Print more detailed output on ISR  
							
							
							
						 
						
							2023-09-25 20:33:07 +03:00  
				
					
						
							
							
								 
						
							
								9d55cf1d80 
								
							 
						 
						
							
							
								
								Kernel: Ext2 inodes are now stored in cache  
							
							... 
							
							
							
							This allows faster inode access and ensures working inodes when
opened in multiple places. 
							
						 
						
							2023-09-25 20:31:40 +03:00  
				
					
						
							
							
								 
						
							
								669b2ace4e 
								
							 
						 
						
							
							
								
								Kernel: Ext2 filesystem now holds 10 preallocated block buffers  
							
							... 
							
							
							
							Inodes can query blocks from this buffer. This allows allocation of
blocks to not fail during normal operations. Also less stress on
kmalloc. 
							
						 
						
							2023-09-25 14:32:25 +03:00  
				
					
						
							
							
								 
						
							
								0e67c6318b 
								
							 
						 
						
							
							
								
								Kernel: Fix ext2 block allocation  
							
							... 
							
							
							
							Redo ext2 block allocation. This is now much "cleaner" although
I'm not too fond of the macros. 
							
						 
						
							2023-09-25 13:17:44 +03:00  
				
					
						
							
							
								 
						
							
								ffa80d0466 
								
							 
						 
						
							
							
								
								Kernel: Hacky kmalloc quick fix  
							
							... 
							
							
							
							Remove GeneralAllocator from kmalloc as it is not CriticalScope safe.
This requires increasing kmalloc memory. 
							
						 
						
							2023-09-25 13:13:57 +03:00  
				
					
						
							
							
								 
						
							
								e7ca83ecb2 
								
							 
						 
						
							
							
								
								Kernel: VirtualRange doesn't store physical addresses of pages  
							
							... 
							
							
							
							This was unnecessarry allocation, since the page table allready
contains virtual address -> physical address mappings. 
							
						 
						
							2023-09-24 01:29:34 +03:00  
				
					
						
							
							
								 
						
							
								f6261e5dc9 
								
							 
						 
						
							
							
								
								Kernel: all mapped ranges are now stored in one container  
							
							... 
							
							
							
							We just now have a flag if a mapping is unmappable 
							
						 
						
							2023-09-23 23:45:26 +03:00  
				
					
						
							
							
								 
						
							
								d1bbbf48f6 
								
							 
						 
						
							
							
								
								Kernel: Fully remove sys_alloc and sys_free  
							
							... 
							
							
							
							I could delete the whole FixedWidthAllocator as it was now obsolete.
GeneralAllocator is still used by kmalloc. Kmalloc cannot actually
use it since, GeneralAllocator depends on SpinLock and kmalloc runs
without interrupts. 
							
						 
						
							2023-09-23 03:53:30 +03:00  
				
					
						
							
							
								 
						
							
								3ba15b41a3 
								
							 
						 
						
							
							
								
								Kernel/LibC: remove PATH resoltion from kernel  
							
							... 
							
							
							
							I have no idea why I had made PATH environment variable parsing
to be part of the kernel. Now the shell does the parsing and
environment syscall is no longer needed. 
							
						 
						
							2023-09-23 03:08:14 +03:00  
				
					
						
							
							
								 
						
							
								7a7c5e433e 
								
							 
						 
						
							
							
								
								Kernel/LibC: add flag to enable/disable sse support  
							
							... 
							
							
							
							SSE support is very experimental and causes GP. I decided to make
SSE not default until I get to fixing it :) 
							
						 
						
							2023-09-23 02:28:25 +03:00  
				
					
						
							
							
								 
						
							
								6bb2c80bdd 
								
							 
						 
						
							
							
								
								Kernel/LibC: userspace malloc now uses mmap to get memory  
							
							... 
							
							
							
							We could remove syscalls to allocate more memory. This was not
something the kernel should have done. 
							
						 
						
							2023-09-23 02:26:23 +03:00  
				
					
						
							
							
								 
						
							
								af4af1cae9 
								
							 
						 
						
							
							
								
								Kernel/LibC: add mmap for private anonymous mappings  
							
							... 
							
							
							
							This will be used by the userspace to get more memory. Currently
kernel handles all allocations, which is not preferable. 
							
						 
						
							2023-09-22 23:01:14 +03:00  
				
					
						
							
							
								 
						
							
								83b165ebb0 
								
							 
						 
						
							
							
								
								Kernel: Add constexpr conditional debug prints  
							
							
							
						 
						
							2023-09-22 17:20:35 +03:00  
				
					
						
							
							
								 
						
							
								c5f9f0c307 
								
							 
						 
						
							
							
								
								Kernel: Add LAI as a dependency  
							
							... 
							
							
							
							I did not feel like implementing AML interpreter now, and wanted
everything AML has to offer. I will be writing my own AML interperter
at some point. 
							
						 
						
							2023-09-22 17:20:35 +03:00  
				
					
						
							
							
								 
						
							
								9d827037ca 
								
							 
						 
						
							
							
								
								Kernel: Fix timer includes  
							
							
							
						 
						
							2023-09-22 17:20:35 +03:00  
				
					
						
							
							
								 
						
							
								58506c5bd1 
								
							 
						 
						
							
							
								
								Kernel: Add config read/write api to PCI  
							
							
							
						 
						
							2023-09-22 17:20:35 +03:00  
				
					
						
							
							
								 
						
							
								dd0b8c4140 
								
							 
						 
						
							
							
								
								Kernel: Add pointer validation API to page table  
							
							
							
						 
						
							2023-09-22 17:20:35 +03:00  
				
					
						
							
							
								 
						
							
								11717f90c1 
								
							 
						 
						
							
							
								
								Kernel: PCI devices can now create region for BAR  
							
							... 
							
							
							
							This creates either MEM or IO region for read/write access to PCI
device. 
							
						 
						
							2023-09-22 17:20:35 +03:00  
				
					
						
							
							
								 
						
							
								a740bf8df4 
								
							 
						 
						
							
							
								
								1000th COMMIT: Kernel: Add basic E1000 driver  
							
							... 
							
							
							
							This driver is only capable to read mac address and enable and read
link status 
							
						 
						
							2023-09-22 17:20:28 +03:00  
				
					
						
							
							
								 
						
							
								63dc2b6aa6 
								
							 
						 
						
							
							
								
								Kernel: Implement SYS_SYNC and add sync executable to userspace  
							
							... 
							
							
							
							You can (and have to) manually sync disk after writes to it. 
							
						 
						
							2023-09-11 01:26:27 +03:00  
				
					
						
							
							
								 
						
							
								eee0537053 
								
							 
						 
						
							
							
								
								Kernel: Writes to disk are not synchronous anymore  
							
							... 
							
							
							
							Implement "proper" DiskCache syncing 
							
						 
						
							2023-09-11 01:25:16 +03:00  
				
					
						
							
							
								 
						
							
								7ec860a3d4 
								
							 
						 
						
							
							
								
								Kernel: Print stack trace on isr  
							
							
							
						 
						
							2023-09-11 01:20:55 +03:00  
				
					
						
							
							
								 
						
							
								9b9a6b2cfc 
								
							 
						 
						
							
							
								
								Kernel: Fix ext2 file write  
							
							
							
						 
						
							2023-09-11 01:20:39 +03:00  
				
					
						
							
							
								 
						
							
								8fb5f97a18 
								
							 
						 
						
							
							
								
								Kernel: Improve open() POSIX compatability  
							
							... 
							
							
							
							Also rename Process::sys_creat -> create_file since it is not
actually a syscall and only used by open as a healper. 
							
						 
						
							2023-09-10 00:31:42 +03:00  
				
					
						
							
							
								 
						
							
								921d95d18f 
								
							 
						 
						
							
							
								
								All: Clear lines with only whitspace in them  
							
							
							
						 
						
							2023-09-10 00:31:42 +03:00  
				
					
						
							
							
								 
						
							
								1fcf122c50 
								
							 
						 
						
							
							
								
								Kernel: Add basic ZeroDevice to /dev/zero  
							
							
							
						 
						
							2023-09-10 00:31:42 +03:00  
				
					
						
							
							
								 
						
							
								dd9af56e21 
								
							 
						 
						
							
							
								
								Kernel: Start work on making inodes more thread safe  
							
							... 
							
							
							
							All inode operations are now locked and thread blocked 
							
						 
						
							2023-09-10 00:31:42 +03:00  
				
					
						
							
							
								 
						
							
								39a5c52088 
								
							 
						 
						
							
							
								
								Kernel: Fix directory permissions  
							
							... 
							
							
							
							We did not care about X bit in directories and instead used only the
R bit for search/read. 
							
						 
						
							2023-09-08 11:46:53 +03:00  
				
					
						
							
							
								 
						
							
								660f7cbfeb 
								
							 
						 
						
							
							
								
								Kernel: Ext2 directories can allocate new blocks if needed  
							
							
							
						 
						
							2023-09-08 10:29:26 +03:00  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								04cfbca336 
								
							 
						 
						
							
							
								
								Kernel: Add ANSI support for hiding/showing cursor to TTY  
							
							
							
						 
						
							2023-09-04 14:30:09 +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  
				
					
						
							
							
								 
						
							
								073edd0b8e 
								
							 
						 
						
							
							
								
								Kernel: Stack trace dumping validates pointers before using them  
							
							
							
						 
						
							2023-08-31 21:36:23 +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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								79f3aa5419 
								
							 
						 
						
							
							
								
								Kernel/LibC: add dup() syscall and function  
							
							
							
						 
						
							2023-08-17 12:03:29 +03:00  
				
					
						
							
							
								 
						
							
								871c792976 
								
							 
						 
						
							
							
								
								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  
				
					
						
							
							
								 
						
							
								8480ffe108 
								
							 
						 
						
							
							
								
								Kernel: open() now validates file access mode  
							
							
							
						 
						
							2023-08-11 11:53:38 +03:00  
				
					
						
							
							
								 
						
							
								e1400f9680 
								
							 
						 
						
							
							
								
								Kernel: Remove unused syscall  
							
							
							
						 
						
							2023-08-11 11:43:48 +03:00  
				
					
						
							
							
								 
						
							
								6e5bce3c57 
								
							 
						 
						
							
							
								
								Kernel: Zero initialize threads sse_storage  
							
							
							
						 
						
							2023-08-11 00:26:43 +03:00  
				
					
						
							
							
								 
						
							
								f75adab9d8 
								
							 
						 
						
							
							
								
								Kernel: Move structures in boot.S to .data section  
							
							
							
						 
						
							2023-08-11 00:26:12 +03:00  
				
					
						
							
							
								 
						
							
								5d0a6e7b08 
								
							 
						 
						
							
							
								
								Kernel: HPET is now used in legacy mode when PIC is forced  
							
							
							
						 
						
							2023-08-10 22:01:30 +03:00  
				
					
						
							
							
								 
						
							
								b0c8a9cdc4 
								
							 
						 
						
							
							
								
								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  
				
					
						
							
							
								 
						
							
								ebe0adb3b5 
								
							 
						 
						
							
							
								
								Kernel: HPET doesn't use the legacy mapping anymore  
							
							
							
						 
						
							2023-08-10 21:08:32 +03:00  
				
					
						
							
							
								 
						
							
								4842d5e2b9 
								
							 
						 
						
							
							
								
								Kernel: APIC now uses MMIO namespace functions for mmio  
							
							
							
						 
						
							2023-08-10 21:07:23 +03:00  
				
					
						
							
							
								 
						
							
								0b8396b1a6 
								
							 
						 
						
							
							
								
								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  
				
					
						
							
							
								 
						
							
								55ef793a74 
								
							 
						 
						
							
							
								
								Kernel: Validate HPET tick period  
							
							
							
						 
						
							2023-08-09 09:50:38 +03:00  
				
					
						
							
							
								 
						
							
								96c0ad0d3d 
								
							 
						 
						
							
							
								
								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  
				
					
						
							
							
								 
						
							
								6fcb191ca0 
								
							 
						 
						
							
							
								
								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  
				
					
						
							
							
								 
						
							
								3df97c36e6 
								
							 
						 
						
							
							
								
								Kerne: SystemTimer can now output the current real time  
							
							
							
						 
						
							2023-08-04 16:06:47 +03:00  
				
					
						
							
							
								 
						
							
								c732297623 
								
							 
						 
						
							
							
								
								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  
				
					
						
							
							
								 
						
							
								ca5a097ef5 
								
							 
						 
						
							
							
								
								Kernel: Add function to retrieve boot time as timespec  
							
							
							
						 
						
							2023-08-04 16:06:47 +03:00  
				
					
						
							
							
								 
						
							
								1f8a5f0ce5 
								
							 
						 
						
							
							
								
								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  
				
					
						
							
							
								 
						
							
								1fa7a1cac4 
								
							 
						 
						
							
							
								
								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  
				
					
						
							
							
								 
						
							
								ea4a70c3b3 
								
							 
						 
						
							
							
								
								Kernel: Move sleep() implementation to TimerHandler  
							
							
							
						 
						
							2023-08-04 15:15:00 +03:00  
				
					
						
							
							
								 
						
							
								aa0929614a 
								
							 
						 
						
							
							
								
								Kernel: Add more structures to ACPI  
							
							
							
						 
						
							2023-08-04 15:13:47 +03:00  
				
					
						
							
							
								 
						
							
								3c31fc9c4b 
								
							 
						 
						
							
							
								
								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  
				
					
						
							
							
								 
						
							
								7eb2c140fe 
								
							 
						 
						
							
							
								
								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  
				
					
						
							
							
								 
						
							
								659adb89a6 
								
							 
						 
						
							
							
								
								Kernel: Start work on abstracting Timers  
							
							
							
						 
						
							2023-08-04 10:29:42 +03:00  
				
					
						
							
							
								 
						
							
								dd17124c77 
								
							 
						 
						
							
							
								
								Kernel: Remove unnecessary timer check from Scheduler  
							
							
							
						 
						
							2023-08-04 10:29:42 +03:00  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								20eafb4cc4 
								
							 
						 
						
							
							
								
								Kernel: align userspace stacks  
							
							... 
							
							
							
							I was getting #GP on sse instructions 
							
						 
						
							2023-08-03 18:09:48 +03:00  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								a78a7ed156 
								
							 
						 
						
							
							
								
								Kernel: Cleanup returns from any kind on interrupts  
							
							
							
						 
						
							2023-08-01 14:23:50 +03:00  
				
					
						
							
							
								 
						
							
								2a851b52f1 
								
							 
						 
						
							
							
								
								BuildSystem: Edit build flags regarding sse and warnings  
							
							
							
						 
						
							2023-07-31 22:31:17 +03:00  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								c4f6c859c1 
								
							 
						 
						
							
							
								
								Kernel: Generally improve signals  
							
							
							
						 
						
							2023-07-31 22:28:18 +03:00  
				
					
						
							
							
								 
						
							
								1a6100f083 
								
							 
						 
						
							
							
								
								Kernel: Cleanup signal trampoline  
							
							
							
						 
						
							2023-07-30 15:58:35 +03:00  
				
					
						
							
							
								 
						
							
								de927b6b05 
								
							 
						 
						
							
							
								
								Kernel: Remove is_in_syscall from Thread  
							
							
							
						 
						
							2023-07-30 14:49:51 +03:00  
				
					
						
							
							
								 
						
							
								1d7795e22c 
								
							 
						 
						
							
							
								
								Kernel: Hardware exceptions  now sends signals to userspace  
							
							
							
						 
						
							2023-07-30 14:34:15 +03:00  
				
					
						
							
							
								 
						
							
								abe8810d47 
								
							 
						 
						
							
							
								
								Kernel: raise() now force sends signal  
							
							
							
						 
						
							2023-07-30 14:17:07 +03:00  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								9279bbbd19 
								
							 
						 
						
							
							
								
								Kernel: TTY now sends SIGINT on ^C to foreground process  
							
							
							
						 
						
							2023-07-28 18:10:09 +03:00  
				
					
						
							
							
								 
						
							
								9fd9a8b5b1 
								
							 
						 
						
							
							
								
								Kernel: Mark reading section from StorageDevice as terminate critical  
							
							
							
						 
						
							2023-07-28 18:09:35 +03:00  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								7b4a2fe3d1 
								
							 
						 
						
							
							
								
								Kernel: Process::exit() unblocks the whole lock before blocking  
							
							
							
						 
						
							2023-07-24 22:29:59 +03:00  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								b9dd1895bb 
								
							 
						 
						
							
							
								
								Kernel: add Thread::queue_signal()  
							
							
							
						 
						
							2023-07-24 22:26:10 +03:00  
				
					
						
							
							
								 
						
							
								be47743dfa 
								
							 
						 
						
							
							
								
								Kernel: Scheduler can now block threads based on tid  
							
							
							
						 
						
							2023-07-24 22:24:21 +03:00  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								cd64c1cfec 
								
							 
						 
						
							
							
								
								Kernel: add is_tty() to inode  
							
							
							
						 
						
							2023-07-24 22:19:59 +03:00  
				
					
						
							
							
								 
						
							
								f76d921e25 
								
							 
						 
						
							
							
								
								Kernel: you can now ask process if it is userspace process  
							
							
							
						 
						
							2023-07-23 18:54:10 +03:00  
				
					
						
							
							
								 
						
							
								a2bf474013 
								
							 
						 
						
							
							
								
								Kernel: OpenFileDesctiptor can now return inode of fd  
							
							
							
						 
						
							2023-07-23 18:52:33 +03:00  
				
					
						
							
							
								 
						
							
								9729e5a05b 
								
							 
						 
						
							
							
								
								Kernel: Change signal kernel API  
							
							... 
							
							
							
							return rsp and rip are now stored per thread 
							
						 
						
							2023-07-23 18:33:10 +03:00  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								d560137ae6 
								
							 
						 
						
							
							
								
								Kernel/LibC: add SYS_SIGNAL/signal()  
							
							
							
						 
						
							2023-07-21 20:08:13 +03:00  
				
					
						
							
							
								 
						
							
								c12f4fb40f 
								
							 
						 
						
							
							
								
								Kernel: Make signals more POSIX  
							
							
							
						 
						
							2023-07-21 20:01:12 +03:00  
				
					
						
							
							
								 
						
							
								10169d773d 
								
							 
						 
						
							
							
								
								Kernel/LibC: Add SYS_KILL/kill()  
							
							
							
						 
						
							2023-07-21 19:27:38 +03:00  
				
					
						
							
							
								 
						
							
								b78596dcf4 
								
							 
						 
						
							
							
								
								Kernel: Scheduler now sends queued signals  
							
							
							
						 
						
							2023-07-21 19:27:10 +03:00  
				
					
						
							
							
								 
						
							
								40f7c6b8fa 
								
							 
						 
						
							
							
								
								Kernel: Make signals thread specific  
							
							
							
						 
						
							2023-07-21 19:00:59 +03:00  
				
					
						
							
							
								 
						
							
								8063700d7b 
								
							 
						 
						
							
							
								
								Kernel: add default signal actions  
							
							
							
						 
						
							2023-07-21 18:02:35 +03:00  
				
					
						
							
							
								 
						
							
								70f89ed1fc 
								
							 
						 
						
							
							
								
								BuildSystem: Strip kernel. We will add the map once we use it  
							
							
							
						 
						
							2023-07-21 15:47:31 +03:00  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								a1db032ba9 
								
							 
						 
						
							
							
								
								Kernel: kernel memory takes now full pml4e  
							
							... 
							
							
							
							This allows flags to work properly 
							
						 
						
							2023-07-21 13:47:05 +03:00  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								c0029a2fa2 
								
							 
						 
						
							
							
								
								Kernel: Don't map kernel executable memory as writable  
							
							
							
						 
						
							2023-07-21 11:17:39 +03:00  
				
					
						
							
							
								 
						
							
								4e35b8b49d 
								
							 
						 
						
							
							
								
								Kernel: Syscalls now get the interrupt stack  
							
							
							
						 
						
							2023-07-21 11:04:16 +03:00  
				
					
						
							
							
								 
						
							
								b02c486ad0 
								
							 
						 
						
							
							
								
								Kernel: add NullDevice to /dev/null  
							
							
							
						 
						
							2023-07-20 00:06:22 +03:00  
				
					
						
							
							
								 
						
							
								08cd285ca6 
								
							 
						 
						
							
							
								
								Kernel: move Device.h to its own directory  
							
							
							
						 
						
							2023-07-19 23:55:38 +03:00  
				
					
						
							
							
								 
						
							
								94af856db0 
								
							 
						 
						
							
							
								
								Kernel: cleanup sys_exec()  
							
							... 
							
							
							
							We now scope everyting so desctructors get called 
							
						 
						
							2023-07-19 23:20:39 +03:00  
				
					
						
							
							
								 
						
							
								bf5d74b8bc 
								
							 
						 
						
							
							
								
								Kernel: fix memory leak in PageTable  
							
							... 
							
							
							
							PageTable used to leak 2 pages on creation and other two on deletion 
							
						 
						
							2023-07-19 23:17:39 +03:00  
				
					
						
							
							
								 
						
							
								fd9210ba9e 
								
							 
						 
						
							
							
								
								Kernel: FixedWidthAllocator creation can now fail  
							
							
							
						 
						
							2023-07-19 18:07:24 +03:00  
				
					
						
							
							
								 
						
							
								66d9260257 
								
							 
						 
						
							
							
								
								Kernel: VirtualRange creation can fail  
							
							
							
						 
						
							2023-07-19 17:56:26 +03:00  
				
					
						
							
							
								 
						
							
								5d2bfc858e 
								
							 
						 
						
							
							
								
								Kernel: SYS_FORK can now fail instead of panicing on error  
							
							
							
						 
						
							2023-07-19 17:47:12 +03:00  
				
					
						
							
							
								 
						
							
								8b34880064 
								
							 
						 
						
							
							
								
								Kernel: Fix bug which made bochs unbootable  
							
							... 
							
							
							
							We could not boot if ATABus did not have valid primary device. 
							
						 
						
							2023-07-13 15:53:09 +03:00  
				
					
						
							
							
								 
						
							
								98c698d9ec 
								
							 
						 
						
							
							
								
								Kernel: Enable global bit on kernel pages  
							
							
							
						 
						
							2023-07-13 15:23:25 +03:00  
				
					
						
							
							
								 
						
							
								9ea2c1d932 
								
							 
						 
						
							
							
								
								Kernel: Support execute disable bit  
							
							... 
							
							
							
							We will now map executable memory explicitly as executable. 
							
						 
						
							2023-07-13 14:28:53 +03:00  
				
					
						
							
							
								 
						
							
								297e65f19a 
								
							 
						 
						
							
							
								
								Kernel: CPUID can detect wether cpu supports nxe bit  
							
							
							
						 
						
							2023-07-13 14:24:58 +03:00  
				
					
						
							
							
								 
						
							
								65559a3e44 
								
							 
						 
						
							
							
								
								Kernel: Fix multiple bugs with terminal  
							
							
							
						 
						
							2023-07-13 13:09:52 +03:00  
				
					
						
							
							
								 
						
							
								c3a71e94a9 
								
							 
						 
						
							
							
								
								Kernel: Fix ATA disk and partition numbering  
							
							
							
						 
						
							2023-07-13 12:12:47 +03:00  
				
					
						
							
							
								 
						
							
								00409ffa60 
								
							 
						 
						
							
							
								
								Kernel: Ext2Inode::create_file actually sets the inode data  
							
							... 
							
							
							
							We used to just create inode without touching its memory. 
							
						 
						
							2023-07-13 10:20:56 +03:00  
				
					
						
							
							
								 
						
							
								9bcfb34524 
								
							 
						 
						
							
							
								
								Kernel: Rewrite whole device structure  
							
							... 
							
							
							
							We now have DevFileSystem which is derived from RamFileSystem. All
devices are RamInodes. We don't have separate DeviceManager anymore.
To iterate over devices, you can loop througn every inode in devfs. 
							
						 
						
							2023-07-10 23:17:14 +03:00  
				
					
						
							
							
								 
						
							
								ee4ef6638c 
								
							 
						 
						
							
							
								
								Kenrel: RamInode now implements truncate()  
							
							
							
						 
						
							2023-07-10 16:07:09 +03:00  
				
					
						
							
							
								 
						
							
								0910958c04 
								
							 
						 
						
							
							
								
								Kernel: OpenFileDescriptors can now store more than 8 bits of flags  
							
							
							
						 
						
							2023-07-10 16:06:36 +03:00  
				
					
						
							
							
								 
						
							
								d6408bcf17 
								
							 
						 
						
							
							
								
								Kernel: add O_TRUNC  
							
							... 
							
							
							
							this is not supported by anything yet 
							
						 
						
							2023-07-10 15:48:18 +03:00  
				
					
						
							
							
								 
						
							
								178fc00905 
								
							 
						 
						
							
							
								
								Kernel: creat() mode now has to be access mode  
							
							... 
							
							
							
							We provide the S_IFREG in creat 
							
						 
						
							2023-07-10 15:34:41 +03:00  
				
					
						
							
							
								 
						
							
								89d4fa4d9b 
								
							 
						 
						
							
							
								
								Kernel: Ext2 fill now return ENOTSUP on write  
							
							... 
							
							
							
							We used to crash the kernel 
							
						 
						
							2023-07-10 15:34:25 +03:00  
				
					
						
							
							
								 
						
							
								46e1419e70 
								
							 
						 
						
							
							
								
								Kernel: O_APPEND is now supported  
							
							
							
						 
						
							2023-07-10 15:11:27 +03:00  
				
					
						
							
							
								 
						
							
								f7c4bc908e 
								
							 
						 
						
							
							
								
								Kernel: open() and openat() now take mode as parameter  
							
							... 
							
							
							
							O_CREAT now tries to create file if O_CREAT is specified 
							
						 
						
							2023-07-10 15:08:54 +03:00  
				
					
						
							
							
								 
						
							
								a0ecbed726 
								
							 
						 
						
							
							
								
								Kernel: You can now read/write to RamInodes  
							
							... 
							
							
							
							RamFS should be stored on physical pages and not in kmalloc, but
that will be implemented later :) 
							
						 
						
							2023-07-10 14:09:35 +03:00  
				
					
						
							
							
								 
						
							
								74fc0aa308 
								
							 
						 
						
							
							
								
								Kernel: Inode::create_file() now takes uid and gid as parameters  
							
							
							
						 
						
							2023-07-10 13:32:10 +03:00  
				
					
						
							
							
								 
						
							
								d5f0448e48 
								
							 
						 
						
							
							
								
								Kernel: start work on ram file system  
							
							
							
						 
						
							2023-07-10 13:26:14 +03:00  
				
					
						
							
							
								 
						
							
								d713f252aa 
								
							 
						 
						
							
							
								
								Kenrel: Fix inode comparison  
							
							... 
							
							
							
							We should not compare rdevs 
							
						 
						
							2023-07-10 11:48:11 +03:00  
				
					
						
							
							
								 
						
							
								5ec2d85081 
								
							 
						 
						
							
							
								
								Kernel: Inode rename directory functions  
							
							
							
						 
						
							2023-07-10 11:48:11 +03:00  
				
					
						
							
							
								 
						
							
								0d132ee518 
								
							 
						 
						
							
							
								
								Kernel: Mark Ext2 classes final  
							
							
							
						 
						
							2023-07-10 11:48:11 +03:00  
				
					
						
							
							
								 
						
							
								80c8d52dc5 
								
							 
						 
						
							
							
								
								Kernel: add more functionality to PCI  
							
							
							
						 
						
							2023-07-09 23:04:11 +03:00  
				
					
						
							
							
								 
						
							
								b6c4a2dbf1 
								
							 
						 
						
							
							
								
								Kernel: Edit lock scopes and make string copy able to fail  
							
							
							
						 
						
							2023-07-07 23:12:19 +03:00  
				
					
						
							
							
								 
						
							
								a2f5ad7bed 
								
							 
						 
						
							
							
								
								Kernel: Move open file descriptors to their own class  
							
							... 
							
							
							
							This simplifies code a lot :) 
							
						 
						
							2023-07-07 23:11:37 +03:00  
				
					
						
							
							
								 
						
							
								07fec6e211 
								
							 
						 
						
							
							
								
								Kernel/LibC: add basic dup2  
							
							
							
						 
						
							2023-07-06 23:17:54 +03:00  
				
					
						
							
							
								 
						
							
								4cd72992c8 
								
							 
						 
						
							
							
								
								Kernel/LibC: Add basic pipe() syscall and command  
							
							... 
							
							
							
							You can now create pipes :) 
							
						 
						
							2023-07-06 22:16:26 +03:00  
				
					
						
							
							
								 
						
							
								5a8eb51968 
								
							 
						 
						
							
							
								
								Kernel: TTY now unblocks semaphore after read  
							
							... 
							
							
							
							This allows concurrent reads not fully reading the buffer not block
indefinately. 
							
						 
						
							2023-07-06 21:32:34 +03:00  
				
					
						
							
							
								 
						
							
								a74422281f 
								
							 
						 
						
							
							
								
								Kernel: Add O_CLOEXEC  
							
							
							
						 
						
							2023-07-06 20:00:33 +03:00  
				
					
						
							
							
								 
						
							
								a45f9ee76b 
								
							 
						 
						
							
							
								
								Kernel: Remove spammy process/thread exit printing  
							
							
							
						 
						
							2023-07-06 10:34:46 +03:00  
				
					
						
							
							
								 
						
							
								1fb305fa45 
								
							 
						 
						
							
							
								
								Kernel/LibC: add clock_gettime() for CLOCK_MONOTONIC  
							
							... 
							
							
							
							This gets the number of milliseconds since boot 
							
						 
						
							2023-07-06 00:38:29 +03:00  
				
					
						
							
							
								 
						
							
								4086d7c3be 
								
							 
						 
						
							
							
								
								Kernel: rework the whole PageTable structure  
							
							... 
							
							
							
							We now have page table structure for kernel memory which is shared
between all processes. 
							
						 
						
							2023-07-05 23:41:35 +03:00  
				
					
						
							
							
								 
						
							
								7d254c26bc 
								
							 
						 
						
							
							
								
								Kernel: Rewrite and optimize DiskCache  
							
							... 
							
							
							
							DiskCache now consists of PageCaches which are caches of contiguous
sectors. This allows the disk cache to be ordered and faster traversal.
We seem to have a problem somewhere during reading. The stack gets
corrupted. 
							
						 
						
							2023-06-19 10:31:47 +03:00  
				
					
						
							
							
								 
						
							
								9a7b2587af 
								
							 
						 
						
							
							
								
								Kernel: kmalloc has now somewhat dynamic storage  
							
							... 
							
							
							
							Allocations bigger than PAGE_SIZE and those not forced to be identity
mapped are now done on a GeneralAllocator. This allows us to use kmalloc
for big allocations; bigger than the fixed 1 MiB storage.
This is still a hack and the whole kmalloc will have to be rewritten at
some point, but for now this does the job :D 
							
						 
						
							2023-06-18 23:27:00 +03:00  
				
					
						
							
							
								 
						
							
								09c824b90e 
								
							 
						 
						
							
							
								
								Kernel: Add GeneralAllocator::paddr_of  
							
							... 
							
							
							
							Yoy can now query physical address of a virtual address for general
allocator allocation 
							
						 
						
							2023-06-18 23:25:51 +03:00  
				
					
						
							
							
								 
						
							
								57e59d998f 
								
							 
						 
						
							
							
								
								Kernel: Add enum for ISR name to number  
							
							
							
						 
						
							2023-06-18 23:24:27 +03:00  
				
					
						
							
							
								 
						
							
								44fb3945df 
								
							 
						 
						
							
							
								
								Kernel: General allocator takes first valid vaddr as parameter  
							
							
							
						 
						
							2023-06-17 22:23:34 +03:00  
				
					
						
							
							
								 
						
							
								95c4e608de 
								
							 
						 
						
							
							
								
								Kernel: Move print during boot  
							
							
							
						 
						
							2023-06-12 23:45:36 +03:00  
				
					
						
							
							
								 
						
							
								5dcc53bcf2 
								
							 
						 
						
							
							
								
								Kernel: Make disk IO blocking thread safe  
							
							... 
							
							
							
							This was causing a lot of deadlocks on vms without kvm accel 
							
						 
						
							2023-06-12 18:57:47 +03:00  
				
					
						
							
							
								 
						
							
								23543b15ca 
								
							 
						 
						
							
							
								
								Kernel: Rework syscall calling  
							
							... 
							
							
							
							I removed the intermediate function when calling syscalls. Now syscall
handler calls the current process automatically. Only exception is
sys_fork, since it needs a assembly trampoline for the new thread. 
							
						 
						
							2023-06-12 14:16:48 +03:00  
				
					
						
							
							
								 
						
							
								2253c45feb 
								
							 
						 
						
							
							
								
								Kernel: Remove Shell from kernel  
							
							... 
							
							
							
							This is now obsolete since we have a userspace Shell. 
							
						 
						
							2023-06-12 02:04:52 +03:00  
				
					
						
							
							
								 
						
							
								f09b82c4b5 
								
							 
						 
						
							
							
								
								Kernel/LibC: add SYS_{SET,GET}_PWD and chdir, getpwd  
							
							
							
						 
						
							2023-06-12 02:02:52 +03:00  
				
					
						
							
							
								 
						
							
								7aeb8e4d36 
								
							 
						 
						
							
							
								
								Kernel: allocate thread stacks from 0x300000 onwards  
							
							... 
							
							
							
							I had a problem where thread stack was overlapping with elf loading 
							
						 
						
							2023-06-12 01:02:19 +03:00  
				
					
						
							
							
								 
						
							
								58ec4d6a31 
								
							 
						 
						
							
							
								
								Kernel: Fix bug in elf loading  
							
							... 
							
							
							
							We were allocating one extra page 
							
						 
						
							2023-06-12 00:59:19 +03:00  
				
					
						
							
							
								 
						
							
								11b68f6a53 
								
							 
						 
						
							
							
								
								Kernel: Add SYS_GET_{,E}{UID,GID}  
							
							
							
						 
						
							2023-06-11 22:37:00 +03:00  
				
					
						
							
							
								 
						
							
								3fe67e4882 
								
							 
						 
						
							
							
								
								Kernel: Add syscalls for set{,e,re}{uid,gid}  
							
							
							
						 
						
							2023-06-11 22:37:00 +03:00  
				
					
						
							
							
								 
						
							
								78536f9678 
								
							 
						 
						
							
							
								
								Kernel/Userspace: Add basic init process  
							
							... 
							
							
							
							This process parses /etc/passwd and promps login screen.
When an username is entered, it will launch that users shell 
							
						 
						
							2023-06-11 22:37:00 +03:00  
				
					
						
							
							
								 
						
							
								c7ec19c25c 
								
							 
						 
						
							
							
								
								Kernel: Add basic Credentials for the system  
							
							... 
							
							
							
							Now filesystem access/open, etc confirm that you have access for rwxs 
							
						 
						
							2023-06-11 20:06:06 +03:00  
				
					
						
							
							
								 
						
							
								3181ea7b4d 
								
							 
						 
						
							
							
								
								Kernel: GeneralAllocator and FixedWidth allocator invalidate TLB caches  
							
							... 
							
							
							
							We were getting random exceptions when reallocating same addressess and
this fixes that problem :) 
							
						 
						
							2023-06-11 15:57:48 +03:00  
				
					
						
							
							
								 
						
							
								83a6e6f637 
								
							 
						 
						
							
							
								
								LibC: Reorder some syscalls  
							
							
							
						 
						
							2023-06-11 03:29:22 +03:00  
				
					
						
							
							
								 
						
							
								64890bb640 
								
							 
						 
						
							
							
								
								Kernel: Add SYS_OPENAT  
							
							
							
						 
						
							2023-06-11 03:29:22 +03:00  
				
					
						
							
							
								 
						
							
								caca6dc701 
								
							 
						 
						
							
							
								
								Kernel: Exceptions will now enable interrupts before calling exit()  
							
							... 
							
							
							
							this allows scheduler verification on reschedule() not panic 
							
						 
						
							2023-06-11 03:29:22 +03:00  
				
					
						
							
							
								 
						
							
								aa86125f2b 
								
							 
						 
						
							
							
								
								Kernel: Implement SYS_FSTAT  
							
							
							
						 
						
							2023-06-11 03:29:22 +03:00  
				
					
						
							
							
								 
						
							
								14aeb8de10 
								
							 
						 
						
							
							
								
								Kernel: we don't panic anymore on unrecognized syscall  
							
							
							
						 
						
							2023-06-11 00:18:48 +03:00  
				
					
						
							
							
								 
						
							
								691b17e0cc 
								
							 
						 
						
							
							
								
								Kernel: allow open() call with O_SEARCH  
							
							
							
						 
						
							2023-06-11 00:18:34 +03:00  
				
					
						
							
							
								 
						
							
								eae6119039 
								
							 
						 
						
							
							
								
								Kernel: Add syscall for reading directory entries  
							
							
							
						 
						
							2023-06-11 00:18:08 +03:00  
				
					
						
							
							
								 
						
							
								01311b470f 
								
							 
						 
						
							
							
								
								Kernel: Rewrite directory listing so it can be integrated to libc  
							
							
							
						 
						
							2023-06-11 00:17:18 +03:00  
				
					
						
							
							
								 
						
							
								4cdeb98897 
								
							 
						 
						
							
							
								
								Kernel: We now store the  processes exit code  
							
							
							
						 
						
							2023-06-10 17:31:56 +03:00  
				
					
						
							
							
								 
						
							
								c0fe4756cb 
								
							 
						 
						
							
							
								
								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  
				
					
						
							
							
								 
						
							
								5032e79be3 
								
							 
						 
						
							
							
								
								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  
				
					
						
							
							
								 
						
							
								1aec3fcedd 
								
							 
						 
						
							
							
								
								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  
				
					
						
							
							
								 
						
							
								aec63081e2 
								
							 
						 
						
							
							
								
								Kenrel: Rename Scheduler::reschedule -> Scheduler::timer_reschedule  
							
							
							
						 
						
							2023-06-09 00:41:43 +03:00  
				
					
						
							
							
								 
						
							
								801025ad7b 
								
							 
						 
						
							
							
								
								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  
				
					
						
							
							
								 
						
							
								59b10c4d25 
								
							 
						 
						
							
							
								
								Kernel: PageTableScope locks the PageTable before disabling interrupts  
							
							... 
							
							
							
							This allows replacing some PageTableScopes with PageTable::lock() 
							
						 
						
							2023-06-09 00:34:41 +03:00  
				
					
						
							
							
								 
						
							
								841584ccbd 
								
							 
						 
						
							
							
								
								Kernel: get_free_contiguous_pages works with non-page aligned addresses  
							
							... 
							
							
							
							also fix bug in ordering 
							
						 
						
							2023-06-06 02:03:23 +03:00  
				
					
						
							
							
								 
						
							
								24993f6020 
								
							 
						 
						
							
							
								
								LibC: implement setenv, unsetenv, putenv  
							
							
							
						 
						
							2023-06-05 22:51:02 +03:00  
				
					
						
							
							
								 
						
							
								55ea5c5488 
								
							 
						 
						
							
							
								
								Kernel: add basic support for environment variables  
							
							... 
							
							
							
							exec functions will search files from PATH 
							
						 
						
							2023-06-05 22:51:02 +03:00  
				
					
						
							
							
								 
						
							
								c6b5cc1e07 
								
							 
						 
						
							
							
								
								Kernel: exec now has better posix errors  
							
							
							
						 
						
							2023-06-05 21:12:08 +03:00  
				
					
						
							
							
								 
						
							
								896b919c9d 
								
							 
						 
						
							
							
								
								Kernel/LibC: pass environ pointer to process  
							
							
							
						 
						
							2023-06-05 21:12:08 +03:00  
				
					
						
							
							
								 
						
							
								6b73f4d187 
								
							 
						 
						
							
							
								
								Kernel: TTY now actually flushes on ^D  
							
							
							
						 
						
							2023-06-05 20:21:46 +03:00  
				
					
						
							
							
								 
						
							
								08a806e75d 
								
							 
						 
						
							
							
								
								Kernel: verify that loaded elfs are executable  
							
							
							
						 
						
							2023-06-05 19:29:32 +03:00  
				
					
						
							
							
								 
						
							
								cf88142856 
								
							 
						 
						
							
							
								
								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  
				
					
						
							
							
								 
						
							
								d1ad38c8d4 
								
							 
						 
						
							
							
								
								Kernel/LibC: add SYS_STAT and stat(), lstat()  
							
							
							
						 
						
							2023-06-05 14:37:14 +03:00  
				
					
						
							
							
								 
						
							
								9fbb2b9369 
								
							 
						 
						
							
							
								
								Kernel: Add SYS_WAIT  
							
							... 
							
							
							
							This syscall waits for a given pid. 
							
						 
						
							2023-06-04 18:00:52 +03:00  
				
					
						
							
							
								 
						
							
								a3aca67eef 
								
							 
						 
						
							
							
								
								Kernel: fork() now clones current thread  
							
							... 
							
							
							
							This is how posix specifies thread cloning during fork 
							
						 
						
							2023-06-04 17:40:37 +03:00  
				
					
						
							
							
								 
						
							
								977652ad57 
								
							 
						 
						
							
							
								
								Kernel: Process FixedWidthAllocators come now in 4 sizes  
							
							
							
						 
						
							2023-06-04 01:26:43 +03:00  
				
					
						
							
							
								 
						
							
								5bf7ca1c80 
								
							 
						 
						
							
							
								
								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  
				
					
						
							
							
								 
						
							
								1b1f22c35e 
								
							 
						 
						
							
							
								
								Kernel: make load_elf() its own function  
							
							
							
						 
						
							2023-06-04 01:24:11 +03:00  
				
					
						
							
							
								 
						
							
								479817231a 
								
							 
						 
						
							
							
								
								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  
				
					
						
							
							
								 
						
							
								e3c5477df4 
								
							 
						 
						
							
							
								
								Kernel: reorder process exit steps  
							
							
							
						 
						
							2023-06-04 01:19:04 +03:00  
				
					
						
							
							
								 
						
							
								b403155ca9 
								
							 
						 
						
							
							
								
								Kernel: You can specify first vaddr for getting free pages  
							
							
							
						 
						
							2023-06-04 01:15:48 +03:00  
				
					
						
							
							
								 
						
							
								5f339d585c 
								
							 
						 
						
							
							
								
								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  
				
					
						
							
							
								 
						
							
								b168462b43 
								
							 
						 
						
							
							
								
								Kernel: PageTable now has debug_dump  
							
							... 
							
							
							
							This dumps all the mapped pages and their flags 
							
						 
						
							2023-06-03 20:08:13 +03:00  
				
					
						
							
							
								 
						
							
								68691faca1 
								
							 
						 
						
							
							
								
								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  
				
					
						
							
							
								 
						
							
								9228df0f23 
								
							 
						 
						
							
							
								
								Kernel: Inode/Device detection is done with overridden bool functions  
							
							
							
						 
						
							2023-06-03 13:28:15 +03:00  
				
					
						
							
							
								 
						
							
								402ad85583 
								
							 
						 
						
							
							
								
								Kernel: Heap will return 0 if no free page is available  
							
							
							
						 
						
							2023-06-03 02:55:31 +03:00  
				
					
						
							
							
								 
						
							
								53e91ba98a 
								
							 
						 
						
							
							
								
								Kernel: DiskCache will try to shrink_to_fit after cache cleanup  
							
							
							
						 
						
							2023-06-03 02:55:22 +03:00  
				
					
						
							
							
								 
						
							
								fd153f3762 
								
							 
						 
						
							
							
								
								Kernel: DiskCache won't crash when running out of kmalloc memory  
							
							
							
						 
						
							2023-06-03 02:36:20 +03:00  
				
					
						
							
							
								 
						
							
								813d0f1b5f 
								
							 
						 
						
							
							
								
								Kernel: add basic disk cache  
							
							... 
							
							
							
							ATADevices now add disk cache to themselves 
							
						 
						
							2023-06-03 02:23:14 +03:00  
				
					
						
							
							
								 
						
							
								2b901abfb1 
								
							 
						 
						
							
							
								
								Kernel: Shell 'memory' now prints heap memory usage  
							
							
							
						 
						
							2023-06-03 02:22:18 +03:00  
				
					
						
							
							
								 
						
							
								8645c4c653 
								
							 
						 
						
							
							
								
								Kernel: Shell ls and stat now properly show symlinks  
							
							
							
						 
						
							2023-06-02 18:22:56 +03:00  
				
					
						
							
							
								 
						
							
								7aea8c45f7 
								
							 
						 
						
							
							
								
								Kernel: VFS now has max link depth of 100  
							
							
							
						 
						
							2023-06-02 12:50:40 +03:00  
				
					
						
							
							
								 
						
							
								7bbdee6cc4 
								
							 
						 
						
							
							
								
								Kernel: Symlinks are now working  
							
							... 
							
							
							
							We still have to implement loop or depth detection 
							
						 
						
							2023-06-02 11:43:46 +03:00  
				
					
						
							
							
								 
						
							
								ff548bd898 
								
							 
						 
						
							
							
								
								Kernel: Shell can now list symlinks  
							
							
							
						 
						
							2023-06-01 00:25:53 +03:00  
				
					
						
							
							
								 
						
							
								835d32814d 
								
							 
						 
						
							
							
								
								Kernel: add basic support for symlinks  
							
							
							
						 
						
							2023-06-01 00:24:45 +03:00  
				
					
						
							
							
								 
						
							
								79d1f665f2 
								
							 
						 
						
							
							
								
								Kernel: Shell opens standard files  
							
							
							
						 
						
							2023-05-31 23:14:15 +03:00  
				
					
						
							
							
								 
						
							
								1daa1f5611 
								
							 
						 
						
							
							
								
								Kernel: Cleanup exec code  
							
							
							
						 
						
							2023-05-31 22:36:05 +03:00  
				
					
						
							
							
								 
						
							
								24a190d1f7 
								
							 
						 
						
							
							
								
								Kernel: Add SYS_EXEC syscall  
							
							
							
						 
						
							2023-05-31 20:57:33 +03:00  
				
					
						
							
							
								 
						
							
								b48b239882 
								
							 
						 
						
							
							
								
								Kernel: Implement Process::exec()  
							
							
							
						 
						
							2023-05-31 20:56:29 +03:00  
				
					
						
							
							
								 
						
							
								5fb69300ca 
								
							 
						 
						
							
							
								
								Kernel: Move userspace entry functions to Process instead of Thread  
							
							
							
						 
						
							2023-05-31 19:31:10 +03:00  
				
					
						
							
							
								 
						
							
								dcb23f686f 
								
							 
						 
						
							
							
								
								Kernel: boot.S maps GiB as single pdpte  
							
							
							
						 
						
							2023-05-31 00:51:15 +03:00  
				
					
						
							
							
								 
						
							
								650570e57d 
								
							 
						 
						
							
							
								
								Kernel: Fix comment  
							
							
							
						 
						
							2023-05-31 00:51:15 +03:00  
				
					
						
							
							
								 
						
							
								1f5a36f074 
								
							 
						 
						
							
							
								
								Kernel: PageTable destructor works now  
							
							... 
							
							
							
							we are successfully booting higher half kernel now :) 
							
						 
						
							2023-05-31 00:44:14 +03:00  
				
					
						
							
							
								 
						
							
								aeaf2cd3f1 
								
							 
						 
						
							
							
								
								Kernel: PageTable::create_userspace() now works  
							
							
							
						 
						
							2023-05-31 00:44:14 +03:00  
				
					
						
							
							
								 
						
							
								959c0fc572 
								
							 
						 
						
							
							
								
								Kernel: kmalloc free error prints the pointer  
							
							
							
						 
						
							2023-05-31 00:34:56 +03:00  
				
					
						
							
							
								 
						
							
								e3d3788f28 
								
							 
						 
						
							
							
								
								Kernel: RSDP location is now done with virtual addresses  
							
							
							
						 
						
							2023-05-31 00:34:21 +03:00  
				
					
						
							
							
								 
						
							
								850b7f27a2 
								
							 
						 
						
							
							
								
								Kernel: Physical range now calculates RAM with physical addresses  
							
							
							
						 
						
							2023-05-31 00:33:44 +03:00  
				
					
						
							
							
								 
						
							
								0939f23b04 
								
							 
						 
						
							
							
								
								Kernel: Heap gets multiboot pointer with P2V  
							
							
							
						 
						
							2023-05-30 23:57:44 +03:00  
				
					
						
							
							
								 
						
							
								67886b0c5a 
								
							 
						 
						
							
							
								
								Kernel: Move V2P and P2V to Memory/Types.h  
							
							
							
						 
						
							2023-05-30 23:57:03 +03:00  
				
					
						
							
							
								 
						
							
								56eb6fb4ce 
								
							 
						 
						
							
							
								
								Kernel: PageTable::map_range_at maps correctly the last page  
							
							
							
						 
						
							2023-05-30 23:56:07 +03:00  
				
					
						
							
							
								 
						
							
								81cf389754 
								
							 
						 
						
							
							
								
								Kernel: Booting with higher half kernel gets to Heap initialization  
							
							
							
						 
						
							2023-05-30 22:21:12 +03:00  
				
					
						
							
							
								 
						
							
								0907965dc5 
								
							 
						 
						
							
							
								
								Kernel: start work on higher half kernel  
							
							
							
						 
						
							2023-05-30 08:00:17 +03:00  
				
					
						
							
							
								 
						
							
								210d90ec79 
								
							 
						 
						
							
							
								
								Kernel: We now identity map full GiB in boot.S  
							
							... 
							
							
							
							The paging structure is pre-built so no unnecessary calculations are done 
							
						 
						
							2023-05-30 00:08:52 +03:00  
				
					
						
							
							
								 
						
							
								8bea18a6f2 
								
							 
						 
						
							
							
								
								Kernel: Remove unused includes of CriticalScope  
							
							
							
						 
						
							2023-05-29 21:15:55 +03:00  
				
					
						
							
							
								 
						
							
								861966eed6 
								
							 
						 
						
							
							
								
								Kernel: Remove unnecessary usages of PageTableScope  
							
							... 
							
							
							
							This should be used as few times as possible since it calls 'cli' 
							
						 
						
							2023-05-29 21:11:29 +03:00  
				
					
						
							
							
								 
						
							
								5bb1f2a48c 
								
							 
						 
						
							
							
								
								Kernel: Rename MMU to PageTable  
							
							... 
							
							
							
							This is more descriptive name for what it actually represents 
							
						 
						
							2023-05-29 21:06:09 +03:00  
				
					
						
							
							
								 
						
							
								fb17af4844 
								
							 
						 
						
							
							
								
								Kernel/LibC: opening standard files is done in libc  
							
							
							
						 
						
							2023-05-29 20:21:19 +03:00  
				
					
						
							
							
								 
						
							
								b8ec8918b7 
								
							 
						 
						
							
							
								
								Kernel: We can't lock the MMU lock in load()  
							
							... 
							
							
							
							It needs to be callable always by scheduler 
							
						 
						
							2023-05-29 19:39:35 +03:00  
				
					
						
							
							
								 
						
							
								ff83f967d8 
								
							 
						 
						
							
							
								
								Kernel: Make RecursiveSpinLock thread safe  
							
							... 
							
							
							
							also SpinLock is now implemented with gcc builtins 
							
						 
						
							2023-05-29 19:38:09 +03:00  
				
					
						
							
							
								 
						
							
								998999a755 
								
							 
						 
						
							
							
								
								Kernel: Add SYS_SLEEP  
							
							
							
						 
						
							2023-05-28 22:34:48 +03:00  
				
					
						
							
							
								 
						
							
								09666adc53 
								
							 
						 
						
							
							
								
								Kernel: fork() now copies allocations through FixedWidthAllocator  
							
							
							
						 
						
							2023-05-28 21:34:35 +03:00  
				
					
						
							
							
								 
						
							
								ec73db0057 
								
							 
						 
						
							
							
								
								Kernel: Move page macros to Types.h  
							
							
							
						 
						
							2023-05-28 21:03:08 +03:00  
				
					
						
							
							
								 
						
							
								833642d405 
								
							 
						 
						
							
							
								
								Kernel: ISR will now crash userspace process instead of panicing kernel  
							
							
							
						 
						
							2023-05-28 20:53:10 +03:00  
				
					
						
							
							
								 
						
							
								f04399c3a0 
								
							 
						 
						
							
							
								
								Kernel: fork() now copies allocation done through GeneralAllocator  
							
							
							
						 
						
							2023-05-28 20:37:39 +03:00  
				
					
						
							
							
								 
						
							
								f2d767b799 
								
							 
						 
						
							
							
								
								Kernel: Add bareboness fork() function  
							
							
							
						 
						
							2023-05-28 18:08:49 +03:00  
				
					
						
							
							
								 
						
							
								3e93dae53c 
								
							 
						 
						
							
							
								
								Kernel: Add invalidate() to MMU  
							
							
							
						 
						
							2023-05-28 18:05:49 +03:00  
				
					
						
							
							
								 
						
							
								187bb046aa 
								
							 
						 
						
							
							
								
								Kernel: fix MMU::map_page_at()  
							
							... 
							
							
							
							We used to only reassign if flags changed 
							
						 
						
							2023-05-28 17:57:05 +03:00  
				
					
						
							
							
								 
						
							
								b021d3eebd 
								
							 
						 
						
							
							
								
								Kernel: Processes and Threads use VirtualRange memory allocations  
							
							
							
						 
						
							2023-05-28 17:48:34 +03:00  
				
					
						
							
							
								 
						
							
								15842db83e 
								
							 
						 
						
							
							
								
								Kernel: Move PhysicalRange to its own file and add VirtualRange  
							
							
							
						 
						
							2023-05-28 17:48:34 +03:00  
				
					
						
							
							
								 
						
							
								869de7283f 
								
							 
						 
						
							
							
								
								Kernel: MMU::get() is now MMU::kernel  
							
							... 
							
							
							
							MMU is can now be locked with RecursiveSpinLock.
Scheduler now has get_current_tid() that works before the Scheduler
is initialized. This allows RecursiveSpinLock usage early on. 
							
						 
						
							2023-05-28 16:18:18 +03:00  
				
					
						
							
							
								 
						
							
								eb24d32383 
								
							 
						 
						
							
							
								
								Kernel: Directory listing is working again  
							
							
							
						 
						
							2023-05-26 22:31:21 +03:00  
				
					
						
							
							
								 
						
							
								565e3db22d 
								
							 
						 
						
							
							
								
								Kernel: kmalloc debug_dump is marked [[maybe_unused]]  
							
							
							
						 
						
							2023-05-26 22:31:21 +03:00  
				
					
						
							
							
								 
						
							
								faf14b880e 
								
							 
						 
						
							
							
								
								LibC: Rewrite all the headers.  
							
							... 
							
							
							
							We now have more or less posix issue 2018 conforming libc headers.
This was a really time consuming and boring operation but it had to
be done.
Now we get to actually start implementing libc :) 
							
						 
						
							2023-05-26 22:31:21 +03:00  
				
					
						
							
							
								 
						
							
								27147790fd 
								
							 
						 
						
							
							
								
								Userspace: Start work on shell  
							
							
							
						 
						
							2023-05-26 22:31:21 +03:00  
				
					
						
							
							
								 
						
							
								1658e925f2 
								
							 
						 
						
							
							
								
								Kernel: Add bareboness possibility to set termios  
							
							
							
						 
						
							2023-05-26 22:31:21 +03:00  
				
					
						
							
							
								 
						
							
								80d9f6131b 
								
							 
						 
						
							
							
								
								Kernel/LibC: move file offset back to kernel  
							
							... 
							
							
							
							This makes keeping track of offsets easier and more proper 
							
						 
						
							2023-05-26 22:31:21 +03:00  
				
					
						
							
							
								 
						
							
								e0a72defa2 
								
							 
						 
						
							
							
								
								Kernel: Add argc and argv to process entry  
							
							
							
						 
						
							2023-05-16 00:27:49 +03:00  
				
					
						
							
							
								 
						
							
								e0a7e242f8 
								
							 
						 
						
							
							
								
								Kernel: Add MMUScope  
							
							... 
							
							
							
							This disables interrupts and loads specified mmu for the
scope it lives in 
							
						 
						
							2023-05-16 00:26:39 +03:00  
				
					
						
							
							
								 
						
							
								6acb86c14b 
								
							 
						 
						
							
							
								
								Kernel: MMU keeps track of the current  
							
							
							
						 
						
							2023-05-16 00:26:39 +03:00  
				
					
						
							
							
								 
						
							
								ec316391c5 
								
							 
						 
						
							
							
								
								Kernel: argc is passed as zero to userspace  
							
							
							
						 
						
							2023-05-11 18:28:32 +03:00  
				
					
						
							
							
								 
						
							
								177b205c48 
								
							 
						 
						
							
							
								
								BuildSystem: userspace has cmake target  
							
							
							
						 
						
							2023-05-11 16:19:53 +03:00  
				
					
						
							
							
								 
						
							
								729ff267d7 
								
							 
						 
						
							
							
								
								LibC: add function declarations to sys/stat.h  
							
							
							
						 
						
							2023-05-11 15:11:33 +03:00  
				
					
						
							
							
								 
						
							
								ff2e2937a5 
								
							 
						 
						
							
							
								
								Kernel: Remove offset from OpenFileDescriptor  
							
							... 
							
							
							
							This is now handled on the libc side. There might be reasons to
have it in kernel side, but for simplicity's sake I'm moving it
to libc for now :) 
							
						 
						
							2023-05-09 20:31:22 +03:00  
				
					
						
							
							
								 
						
							
								512be884ed 
								
							 
						 
						
							
							
								
								Kernel: Add barebones GeneralAllocator for >4096B  
							
							
							
						 
						
							2023-05-08 22:10:49 +03:00  
				
					
						
							
							
								 
						
							
								f1667b398a 
								
							 
						 
						
							
							
								
								Kernel: FixedWidthAllocator operates on MMU  
							
							... 
							
							
							
							Instead of Process* we use MMU& in FixedWidthAllocator since it is
everything it actually needs :) 
							
						 
						
							2023-05-08 00:06:56 +03:00  
				
					
						
							
							
								 
						
							
								b0ec0f1a1a 
								
							 
						 
						
							
							
								
								Kernel: We add FixedWidthAllocators on demand  
							
							... 
							
							
							
							On SYS_ALLOC we will add a new FixedWidthAllocator if the old ones
are already full or we don't have one with proper size. This allows
arbitary number of allocations as long as you have enough memory
available :)
Next I will be writing a general allocator for allocations larger
than 4096 bytes which should make SYS_ALLOC syscall complete :) 
							
						 
						
							2023-05-07 23:57:01 +03:00  
				
					
						
							
							
								 
						
							
								12e42f40c5 
								
							 
						 
						
							
							
								
								Kernel/LibC: add free function for FixedWidthAllocator  
							
							... 
							
							
							
							I have to rework the syscall API and allocators in process. For
now this works well enough :) 
							
						 
						
							2023-05-07 01:21:50 +03:00  
				
					
						
							
							
								 
						
							
								890aa9aa15 
								
							 
						 
						
							
							
								
								BuildSystem: linker -O2 doesn't do anything? hopefully  
							
							
							
						 
						
							2023-05-06 19:58:08 +03:00  
				
					
						
							
							
								 
						
							
								bcfd838131 
								
							 
						 
						
							
							
								
								Kernel: Add basic fixed width allocator for userspace  
							
							... 
							
							
							
							We have to move process stacks to the general heap and maybe map
kernel to higher half. 
							
						 
						
							2023-05-06 19:58:08 +03:00  
				
					
						
							
							
								 
						
							
								9c07add00f 
								
							 
						 
						
							
							
								
								Kernel: Invalid physical addresses from heap are specified now by 0  
							
							
							
						 
						
							2023-05-06 17:34:22 +03:00  
				
					
						
							
							
								 
						
							
								ab8aac7dcf 
								
							 
						 
						
							
							
								
								Kernel: GDT tss selector is now 16 bit value  
							
							
							
						 
						
							2023-05-06 17:34:22 +03:00  
				
					
						
							
							
								 
						
							
								f36b94d039 
								
							 
						 
						
							
							
								
								Kernel: MMU can now provide info about virtual address space  
							
							
							
						 
						
							2023-05-06 17:34:22 +03:00  
				
					
						
							
							
								 
						
							
								92daa831d1 
								
							 
						 
						
							
							
								
								Kernel: ISRs now print pid and tid  
							
							
							
						 
						
							2023-05-06 00:10:15 +03:00  
				
					
						
							
							
								 
						
							
								e7a170c89f 
								
							 
						 
						
							
							
								
								Kernel: 64 bit MMU now properly identity maps kernel  
							
							
							
						 
						
							2023-05-05 14:19:28 +03:00  
				
					
						
							
							
								 
						
							
								3c5d3eb8ad 
								
							 
						 
						
							
							
								
								Kernel: TTY input process is now single instance  
							
							... 
							
							
							
							Process sends key events to the active (currently only) tty 
							
						 
						
							2023-04-30 16:11:14 +03:00  
				
					
						
							
							
								 
						
							
								55bb0084aa 
								
							 
						 
						
							
							
								
								Kernel: namespace and function renames  
							
							... 
							
							
							
							MMU moved to namespace kernel
Kernel::Memory::Heap moved to just Kernel
MMU::map_{page,range} renamed to identity_map_{page,range}
Add MMU::get_page_flags 
							
						 
						
							2023-04-28 14:48:38 +03:00  
				
					
						
							
							
								 
						
							
								acf5660090 
								
							 
						 
						
							
							
								
								Kernel: Add set_tss_stack() to 32 bit  
							
							
							
						 
						
							2023-04-28 14:44:23 +03:00  
				
					
						
							
							
								 
						
							
								9d7530662f 
								
							 
						 
						
							
							
								
								Kernel: dprintln file name is now relative  
							
							... 
							
							
							
							This makes file names much shorter 
							
						 
						
							2023-04-28 14:43:19 +03:00  
				
					
						
							
							
								 
						
							
								a22caa38d2 
								
							 
						 
						
							
							
								
								Kernel: Scheduler updates tss stack on thread execution  
							
							
							
						 
						
							2023-04-25 14:49:50 +03:00  
				
					
						
							
							
								 
						
							
								dc0f8b383f 
								
							 
						 
						
							
							
								
								Kernel: Usespace threads now have an interrupt stack  
							
							
							
						 
						
							2023-04-25 14:49:18 +03:00  
				
					
						
							
							
								 
						
							
								f1a0625b61 
								
							 
						 
						
							
							
								
								Kernel: TSS stack can be set after initialization  
							
							
							
						 
						
							2023-04-25 14:48:12 +03:00  
				
					
						
							
							
								 
						
							
								02b961fd7e 
								
							 
						 
						
							
							
								
								Kernel: Stack pointer out of bounds now panics with a message  
							
							
							
						 
						
							2023-04-25 13:40:55 +03:00  
				
					
						
							
							
								 
						
							
								6e01e04922 
								
							 
						 
						
							
							
								
								Kernel: Fix bug in Process::create_userspace()  
							
							... 
							
							
							
							We used to write more than we needed to. This could lead to unwanted
page faults 
							
						 
						
							2023-04-25 13:21:28 +03:00  
				
					
						
							
							
								 
						
							
								b7c2ea8d46 
								
							 
						 
						
							
							
								
								Kernel: Fix possible dead lock in Process::read()  
							
							
							
						 
						
							2023-04-23 14:46:18 +03:00  
				
					
						
							
							
								 
						
							
								cd74b2167d 
								
							 
						 
						
							
							
								
								LibC: Write mostly functioning stdio  
							
							
							
						 
						
							2023-04-23 14:32:37 +03:00  
				
					
						
							
							
								 
						
							
								9b2a577fc3 
								
							 
						 
						
							
							
								
								Kernel: Add ASSERTion to Process::exit()  
							
							... 
							
							
							
							This is just so I don't forget that exit can currently only
be called on the executing thread itself 
							
						 
						
							2023-04-22 19:05:27 +03:00  
				
					
						
							
							
								 
						
							
								2dd09163e6 
								
							 
						 
						
							
							
								
								Kernel: Process can now load 32 bit elf files on i386  
							
							... 
							
							
							
							We are page faulting on process exit but I'm investigating
the reason. 
							
						 
						
							2023-04-22 19:03:30 +03:00  
				
					
						
							
							
								 
						
							
								fb6add2b4a 
								
							 
						 
						
							
							
								
								Kernel: Fix 32 bit MMU  
							
							
							
						 
						
							2023-04-22 18:22:39 +03:00  
				
					
						
							
							
								 
						
							
								48445f12ac 
								
							 
						 
						
							
							
								
								Kernel: More proper paging in Elf loading  
							
							
							
						 
						
							2023-04-22 18:17:44 +03:00  
				
					
						
							
							
								 
						
							
								792fad2a03 
								
							 
						 
						
							
							
								
								Kernel: d{print,warn,error}ln(...) now has a spinlock  
							
							
							
						 
						
							2023-04-22 17:58:51 +03:00  
				
					
						
							
							
								 
						
							
								cc04990ce3 
								
							 
						 
						
							
							
								
								Kernel: Process now frees up its pages on destruction  
							
							
							
						 
						
							2023-04-22 16:54:46 +03:00  
				
					
						
							
							
								 
						
							
								7530482cc2 
								
							 
						 
						
							
							
								
								Kernel: Cleanup process creation for userspace  
							
							
							
						 
						
							2023-04-22 16:51:50 +03:00  
				
					
						
							
							
								 
						
							
								33d8c518e9 
								
							 
						 
						
							
							
								
								Kernel: Fix some deadlocks in the Process  
							
							
							
						 
						
							2023-04-22 16:19:57 +03:00  
				
					
						
							
							
								 
						
							
								e0ce2394fe 
								
							 
						 
						
							
							
								
								Kernel: Remove obsolete userspace stuff from kernel  
							
							
							
						 
						
							2023-04-22 15:38:45 +03:00  
				
					
						
							
							
								 
						
							
								fadce063a7 
								
							 
						 
						
							
							
								
								Kernel: Usespace programs are now ran through ELF files  
							
							... 
							
							
							
							only 64 bit elf files are supported for now. 
							
						 
						
							2023-04-22 15:35:32 +03:00  
				
					
						
							
							
								 
						
							
								26fe6ad898 
								
							 
						 
						
							
							
								
								Kernel: kmalloc does not dump stack trace  
							
							... 
							
							
							
							dump_stack_trace() page faults and i dont feel like debugging this
now :) 
							
						 
						
							2023-04-21 13:45:13 +03:00  
				
					
						
							
							
								 
						
							
								fc71d2f7c4 
								
							 
						 
						
							
							
								
								Kernel: Don't call 'cli' on interrupt  
							
							... 
							
							
							
							This is automatically done because we are using interrupt gates
in the IDT 
							
						 
						
							2023-04-21 11:18:08 +03:00  
				
					
						
							
							
								 
						
							
								35e949ef5e 
								
							 
						 
						
							
							
								
								Kernel: Fix syscall return value in 32 bit  
							
							
							
						 
						
							2023-04-21 11:08:02 +03:00  
				
					
						
							
							
								 
						
							
								9c506ef85b 
								
							 
						 
						
							
							
								
								Kernel: Stack pointer is validated when updated  
							
							... 
							
							
							
							This allows us not to fail stack pointer when in syscall since
interrupts use their own stack 
							
						 
						
							2023-04-21 10:40:24 +03:00  
				
					
						
							
							
								 
						
							
								b1c7af38d0 
								
							 
						 
						
							
							
								
								Kernel: Add barebones per process virtual addresses  
							
							... 
							
							
							
							We now assign every (userspace) process its own MMU which we load
in scheduler. This allows every process to have separate virtual
address space.
This is very hackish implementations but it works for now 
							
						 
						
							2023-04-20 00:45:41 +03:00  
				
					
						
							
							
								 
						
							
								ea0c9b639f 
								
							 
						 
						
							
							
								
								Kernel: Add some bareboness functionality to map virtual addresses  
							
							
							
						 
						
							2023-04-19 23:51:36 +03:00  
				
					
						
							
							
								 
						
							
								0030f035be 
								
							 
						 
						
							
							
								
								Kernel: Rename MMU::{un,}allocate... to MMU::{un,}map  
							
							... 
							
							
							
							This is more appropriate name for the behaviour :D 
							
						 
						
							2023-04-19 21:50:30 +03:00  
				
					
						
							
							
								 
						
							
								c26529ae86 
								
							 
						 
						
							
							
								
								Kernel: kmalloc will always print debug on failed alloc  
							
							
							
						 
						
							2023-04-19 18:05:01 +03:00  
				
					
						
							
							
								 
						
							
								e8a0df54b1 
								
							 
						 
						
							
							
								
								Kernel: ATAController will fail to initialize in native mode  
							
							
							
						 
						
							2023-04-19 17:29:36 +03:00  
				
					
						
							
							
								 
						
							
								33393335c8 
								
							 
						 
						
							
							
								
								Kernel: PCI devices now report their prog_if  
							
							
							
						 
						
							2023-04-19 16:43:05 +03:00  
				
					
						
							
							
								 
						
							
								c5b02bb9f5 
								
							 
						 
						
							
							
								
								Kernel: Shell fix file reading  
							
							... 
							
							
							
							We were reading 8 bytes at a time instead of the 1024 we were
supposed to :DD 
							
						 
						
							2023-04-19 14:09:23 +03:00  
				
					
						
							
							
								 
						
							
								a1047918d2 
								
							 
						 
						
							
							
								
								Kernel: Shell now has exit() command  
							
							
							
						 
						
							2023-04-19 12:53:09 +03:00  
				
					
						
							
							
								 
						
							
								fd81e31050 
								
							 
						 
						
							
							
								
								Kernel: Fix Process::exit() and where it is called from  
							
							... 
							
							
							
							cksum doesn't seem to work anymore on big files. I have to look
into this. It locks up after couple of seconds... 
							
						 
						
							2023-04-19 12:52:21 +03:00  
				
					
						
							
							
								 
						
							
								dcce18799f 
								
							 
						 
						
							
							
								
								Kernel: We now launch Shell again on boot  
							
							... 
							
							
							
							Adding this just before push :D 
							
						 
						
							2023-04-19 00:41:24 +03:00  
				
					
						
							
							
								 
						
							
								a9a15ea2c0 
								
							 
						 
						
							
							
								
								Kernel: init2 is now launched as a process instead of thread  
							
							... 
							
							
							
							Also only process can now add threads to scheduler. Nobody should
have raw access to scheduler and everything should be through
Process::current() or irqs (reschedules) 
							
						 
						
							2023-04-19 00:39:06 +03:00  
				
					
						
							
							
								 
						
							
								d63716db96 
								
							 
						 
						
							
							
								
								Kernel: Process is not reference counted any more  
							
							... 
							
							
							
							This was not necessary and it made things needlessly complicated 
							
						 
						
							2023-04-19 00:34:18 +03:00  
				
					
						
							
							
								 
						
							
								96ac072166 
								
							 
						 
						
							
							
								
								Kernel: Heap allows us to take free pages.  
							
							... 
							
							
							
							The API is kinda weird and will probably be reworked in near future
but this will work for now :) 
							
						 
						
							2023-04-18 10:18:15 +03:00  
				
					
						
							
							
								 
						
							
								295a27f16a 
								
							 
						 
						
							
							
								
								Kernel: Panic wont print stacktrace if it has already paniced  
							
							... 
							
							
							
							This prevents stack trace dump to panic and loop 
							
						 
						
							2023-04-18 10:18:15 +03:00  
				
					
						
							
							
								 
						
							
								88f60b5e41 
								
							 
						 
						
							
							
								
								Kernel: Map all ACPI tables on initialization  
							
							... 
							
							
							
							This makes their usage much easier and less error prone
They won't mapped be processes when we get to there, so this won't be
a problem 
							
						 
						
							2023-04-18 10:18:15 +03:00  
				
					
						
							
							
								 
						
							
								d23604b0d5 
								
							 
						 
						
							
							
								
								Kernel: Handle some Heap edge cases  
							
							
							
						 
						
							2023-04-18 10:18:15 +03:00  
				
					
						
							
							
								 
						
							
								c5347e6707 
								
							 
						 
						
							
							
								
								Kernel: Reorder boot initialization  
							
							... 
							
							
							
							We now create the TTY as soon as possible so we can show console
output without serial port. 
							
						 
						
							2023-04-18 10:18:15 +03:00  
				
					
						
							
							
								 
						
							
								bf0c7b9ae8 
								
							 
						 
						
							
							
								
								Kernel: Heap implementation can now give free pages from all of RAM  
							
							
							
						 
						
							2023-04-18 10:18:15 +03:00  
				
					
						
							
							
								 
						
							
								0374b68fa1 
								
							 
						 
						
							
							
								
								Kernel: Remove unused file  
							
							
							
						 
						
							2023-04-18 10:18:15 +03:00  
				
					
						
							
							
								 
						
							
								633929629c 
								
							 
						 
						
							
							
								
								Kernel: Start working on heap  
							
							
							
						 
						
							2023-04-18 10:18:15 +03:00  
				
					
						
							
							
								 
						
							
								6a3b3213cf 
								
							 
						 
						
							
							
								
								Kernel: Kmalloc now has its memory statically allocated  
							
							... 
							
							
							
							We don't use the memory map given by bootloader since this automatically
maps the memory to a available space. 
							
						 
						
							2023-04-18 10:18:15 +03:00  
				
					
						
							
							
								 
						
							
								fdb4eb6042 
								
							 
						 
						
							
							
								
								Kernel: Move kmalloc and MMU to Memory directory  
							
							
							
						 
						
							2023-04-18 10:18:15 +03:00  
				
					
						
							
							
								 
						
							
								998ae511a3 
								
							 
						 
						
							
							
								
								LibELF: Start implementing elf library  
							
							
							
						 
						
							2023-04-18 10:18:15 +03:00  
				
					
						
							
							
								 
						
							
								3f9d6f0311 
								
							 
						 
						
							
							
								
								LibC: add needed stubs to build executables with our compiler  
							
							
							
						 
						
							2023-04-12 17:53:02 +03:00  
				
					
						
							
							
								 
						
							
								8ee63f8264 
								
							 
						 
						
							
							
								
								Kernel: We can create basic userspace processes  
							
							... 
							
							
							
							These are still allocated on the kernel memory 
							
						 
						
							2023-04-12 17:52:36 +03:00  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								3fbee2c835 
								
							 
						 
						
							
							
								
								BuildSystem: remove now obsolete include directories from kernel build  
							
							
							
						 
						
							2023-04-07 02:25:47 +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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								46d65471d9 
								
							 
						 
						
							
							
								
								Kernel: ATA now uses irqs instead of polling  
							
							... 
							
							
							
							Reading is now much slower at ~500 kB/s it was around 3 MB/s.
This is probably mostly due semaphore blocking taking atleast
until next reschedule (1 ms itervals). This will be a problem
as long as we are using only single processor.
I could try to use {READ/WRITE}_MULTIPLE commands, but since
most of the disk reads are 2 sectors (inode block size) this
will at most double the speed.
Most efficient speed up would of course be caching disk access
data and inodes overall. 
							
						 
						
							2023-04-03 00:03:38 +03:00  
				
					
						
							
							
								 
						
							
								dcc174b62e 
								
							 
						 
						
							
							
								
								Kernel: Move ATADevice to its own file from ATAController  
							
							... 
							
							
							
							The API is kinda weird since device reads/writes go from
ATADevice -> ATAController -> ATADevice
but this is for now atleast necessary since ATAController has(?)
to keep all devices from using the disks at the same time 
							
						 
						
							2023-04-02 18:26:19 +03:00  
				
					
						
							
							
								 
						
							
								bdc7a99c59 
								
							 
						 
						
							
							
								
								Kernel: ATA controller waits now before read/write until disk is ready  
							
							... 
							
							
							
							Qemu used to freeze on disk writes but now it seems fine 
							
						 
						
							2023-04-02 05:37:17 +03:00  
				
					
						
							
							
								 
						
							
								2aad357c18 
								
							 
						 
						
							
							
								
								BuildSystem: building for 32-bit works now  
							
							
							
						 
						
							2023-04-02 05:03:17 +03:00  
				
					
						
							
							
								 
						
							
								4c5176f751 
								
							 
						 
						
							
							
								
								BuildSystem: We are now using cmake instead of plain make  
							
							... 
							
							
							
							I have been annoyed for a while since I had to build everything
when running the os since the buildsystem was really bad.
I wanted to rewrite the whole build system and changed to using cmake
:) 
							
						 
						
							2023-04-02 04:07:27 +03:00  
				
					
						
							
							
								 
						
							
								cbb0f6be9a 
								
							 
						 
						
							
							
								
								Kernel: cleanup includes  
							
							... 
							
							
							
							I went quickly went through all files since I found some weird
includes :D 
							
						 
						
							2023-04-01 02:14:49 +03:00  
				
					
						
							
							
								 
						
							
								a60f8098ee 
								
							 
						 
						
							
							
								
								Kernel: Fix traversing back from mount points  
							
							
							
						 
						
							2023-04-01 01:54:35 +03:00  
				
					
						
							
							
								 
						
							
								8bffbf64b9 
								
							 
						 
						
							
							
								
								Kernel: Add inodes '.' and '..' to device manager  
							
							
							
						 
						
							2023-04-01 01:33:04 +03:00  
				
					
						
							
							
								 
						
							
								d91a5bccf4 
								
							 
						 
						
							
							
								
								Kernel: Reads return 0 bytes read at the end of device  
							
							... 
							
							
							
							We used to not have any idea if we where already at the end of device.
Also fixed couple of copy-paste errors from read->write 
							
						 
						
							2023-04-01 00:55:07 +03:00  
				
					
						
							
							
								 
						
							
								1ca0d3a3c1 
								
							 
						 
						
							
							
								
								Kernel: Shell cleanup cat command  
							
							
							
						 
						
							2023-04-01 00:54:39 +03:00  
				
					
						
							
							
								 
						
							
								653f688567 
								
							 
						 
						
							
							
								
								Kernel: Shell 'time' prints the time even if command fails  
							
							
							
						 
						
							2023-04-01 00:30:33 +03:00  
				
					
						
							
							
								 
						
							
								8b5d8d9f8a 
								
							 
						 
						
							
							
								
								Kernel: Process gets absolute paths for mount  
							
							
							
						 
						
							2023-04-01 00:30:11 +03:00  
				
					
						
							
							
								 
						
							
								c45ada6ccb 
								
							 
						 
						
							
							
								
								Kernel: fix ext2 failed creation memory leak  
							
							
							
						 
						
							2023-04-01 00:22:03 +03:00  
				
					
						
							
							
								 
						
							
								db65cfeb8a 
								
							 
						 
						
							
							
								
								Kernel: Cleanup ATA device initialization  
							
							
							
						 
						
							2023-03-31 00:58:57 +03:00  
				
					
						
							
							
								 
						
							
								a3ba6da6f3 
								
							 
						 
						
							
							
								
								Kernel: Move DeviceManager to its own file  
							
							
							
						 
						
							2023-03-30 22:39:45 +03:00  
				
					
						
							
							
								 
						
							
								b048630e5b 
								
							 
						 
						
							
							
								
								Kernel: Improve locking in Process, VFS and ATAController  
							
							... 
							
							
							
							We used to block on all process access. This meant that shell
reading the keyboard input would block all VFS access making disk
accesses practically impossible. We now block only when it is
necessary :) 
							
						 
						
							2023-03-30 22:02:16 +03:00  
				
					
						
							
							
								 
						
							
								dcee92a6bc 
								
							 
						 
						
							
							
								
								Kernel: Thread is no longer RefCounted  
							
							... 
							
							
							
							This makes developement with Scheduler much easier against compiler
optimizations. I could now remove the pragma GCC optimize stuff. 
							
						 
						
							2023-03-30 19:16:51 +03:00  
				
					
						
							
							
								 
						
							
								c2e3b422cc 
								
							 
						 
						
							
							
								
								Kernel: Add Semaphore to block threads  
							
							
							
						 
						
							2023-03-30 18:46:33 +03:00  
				
					
						
							
							
								 
						
							
								d4c03d3939 
								
							 
						 
						
							
							
								
								Kernel: root partition is now passed from the commandline  
							
							
							
						 
						
							2023-03-30 18:46:19 +03:00  
				
					
						
							
							
								 
						
							
								8e68d2e3ea 
								
							 
						 
						
							
							
								
								Kernel: Shell can now mount partitions  
							
							
							
						 
						
							2023-03-30 15:06:41 +03:00  
				
					
						
							
							
								 
						
							
								30c33b55e3 
								
							 
						 
						
							
							
								
								Kernel: Inode::Mode is now a struct so we can have functions in it  
							
							
							
						 
						
							2023-03-30 14:41:15 +03:00  
				
					
						
							
							
								 
						
							
								e2791e5260 
								
							 
						 
						
							
							
								
								Kernel: StorageDevices and Controllers are now devices  
							
							
							
						 
						
							2023-03-30 14:22:15 +03:00  
				
					
						
							
							
								 
						
							
								88a8bd659d 
								
							 
						 
						
							
							
								
								Kernel: Add IFBLK, IFLNK, IFSOCK to Inode::Mode  
							
							
							
						 
						
							2023-03-30 13:15:46 +03:00  
				
					
						
							
							
								 
						
							
								f9cc114907 
								
							 
						 
						
							
							
								
								Kernel: All devices have atime, mtime, ctime at their creation  
							
							
							
						 
						
							2023-03-30 13:15:46 +03:00  
				
					
						
							
							
								 
						
							
								9a4d603a62 
								
							 
						 
						
							
							
								
								Kernel: Remove the mount test from VFS  
							
							
							
						 
						
							2023-03-30 11:43:24 +03:00  
				
					
						
							
							
								 
						
							
								78ea4b2207 
								
							 
						 
						
							
							
								
								Kernel: fix stat command and device numbers  
							
							
							
						 
						
							2023-03-30 10:43:08 +03:00  
				
					
						
							
							
								 
						
							
								ab3cdea548 
								
							 
						 
						
							
							
								
								Kernel: Rewrite mounting code  
							
							
							
						 
						
							2023-03-29 21:34:48 +03:00  
				
					
						
							
							
								 
						
							
								dd84a2175f 
								
							 
						 
						
							
							
								
								Kernel: Move Partition out of StorageDevice and rename functions  
							
							
							
						 
						
							2023-03-29 13:23:01 +03:00  
				
					
						
							
							
								 
						
							
								ae05ad3f38 
								
							 
						 
						
							
							
								
								Kernel: Shell commands 'ls' and 'stat' recognize character devices  
							
							
							
						 
						
							2023-03-29 11:56:33 +03:00  
				
					
						
							
							
								 
						
							
								62fb233eb1 
								
							 
						 
						
							
							
								
								Kernel: DeviceManager is now a 'FileSystem' so it can expose devices  
							
							... 
							
							
							
							Shell reads keyboard through /dev/input :) 
							
						 
						
							2023-03-29 11:50:46 +03:00  
				
					
						
							
							
								 
						
							
								426b1482dd 
								
							 
						 
						
							
							
								
								Kernel: Fix keymap numlock behaviour  
							
							
							
						 
						
							2023-03-29 03:18:22 +03:00  
				
					
						
							
							
								 
						
							
								16d9d29971 
								
							 
						 
						
							
							
								
								Kernel: Remove obsolete KeyboardLayout/  
							
							... 
							
							
							
							This was used by the old input system. Currently keyboard layout is
hardcoded to finnish. But it will be reworked as something read from
the filesystem 
							
						 
						
							2023-03-29 03:09:14 +03:00  
				
					
						
							
							
								 
						
							
								fa8e921ee8 
								
							 
						 
						
							
							
								
								Kernel: Rework the whole input system  
							
							... 
							
							
							
							We now use Device abstraction that will allow us to provide devices
to userspace through /dev. Currently Shell reads from first and only
device (it being PS/2 Keyboard). 
							
						 
						
							2023-03-29 03:05:16 +03:00  
				
					
						
							
							
								 
						
							
								ea900ad744 
								
							 
						 
						
							
							
								
								Kernel: ACPI unmap_header does not do anything  
							
							... 
							
							
							
							We have to work with MMU mapping/unmapping to be user friendly 
							
						 
						
							2023-03-28 02:56:44 +03:00  
				
					
						
							
							
								 
						
							
								c7286396d8 
								
							 
						 
						
							
							
								
								Kernel: Move ACPI to its own file  
							
							
							
						 
						
							2023-03-27 17:30:45 +03:00  
				
					
						
							
							
								 
						
							
								666051fd34 
								
							 
						 
						
							
							
								
								Kernel/BAN: move unix time conversion to BAN and add stat to Shell  
							
							
							
						 
						
							2023-03-27 00:49:58 +03:00  
				
					
						
							
							
								 
						
							
								e55860eb6b 
								
							 
						 
						
							
							
								
								Kernel: Rework processes and VFS so we don't expose inodes  
							
							... 
							
							
							
							Everything is now done through a file descriptor. 
							
						 
						
							2023-03-26 04:30:57 +03:00  
				
					
						
							
							
								 
						
							
								1fade1aa9e 
								
							 
						 
						
							
							
								
								Kernel: Process::working_directory() is now thread safe  
							
							... 
							
							
							
							I realized you cannot return a stirng view and it to be thread safe 
							
						 
						
							2023-03-24 01:46:25 +02:00  
				
					
						
							
							
								 
						
							
								814f0b215d 
								
							 
						 
						
							
							
								
								Kernel: Create RecursiveSpinLock and add it to Process  
							
							... 
							
							
							
							We now lock every function within Proccess, just to be sure.
Recursive lock allows us to use lock from the same thread even if
we already have the spinlock locked 
							
						 
						
							2023-03-24 01:32:35 +02:00  
				
					
						
							
							
								 
						
							
								5fd26b4ea8 
								
							 
						 
						
							
							
								
								Kernel: Lock process functions instead of the ata controller  
							
							... 
							
							
							
							Process has to use locks at least on some functions so multithreaded
disk io is safe. This seemed to fix corrupted reads from disk 
							
						 
						
							2023-03-24 01:17:39 +02:00  
				
					
						
							
							
								 
						
							
								e5eab8bae4 
								
							 
						 
						
							
							
								
								Kernel: Ext2FS now does allocations better  
							
							... 
							
							
							
							We only have to allocate at the beginning of the all functions and
can properly exit before any disk reads if we run out of memory.
This makes development little bit 'harder' since the {read,write}_block
user must allocate a buffer of atleast block_size bytes.
I also made disk access to cause kernel panic on error since the error
handling during file write is something I don't want to think now.
The filesystem can easily corrupt so, I feel like when disk io starts
to fail I'll come back to this. 
							
						 
						
							2023-03-23 23:22:31 +02:00  
				
					
						
							
							
								 
						
							
								75c4f35e85 
								
							 
						 
						
							
							
								
								Kernel: Add possibiliity to create empty files on Ext2  
							
							... 
							
							
							
							Big rewrite for Ext2 for more easy and optimized code 
							
						 
						
							2023-03-23 22:26:06 +02:00  
				
					
						
							
							
								 
						
							
								633414bd20 
								
							 
						 
						
							
							
								
								Kernel: Remove block group descriptor cache from ext2fs  
							
							... 
							
							
							
							This will make improving the fs easier since we need to only update
the values on the disk 
							
						 
						
							2023-03-23 18:52:58 +02:00  
				
					
						
							
							
								 
						
							
								7ca6cd61be 
								
							 
						 
						
							
							
								
								Kernel: Move get_unix_time to RTC namespace  
							
							
							
						 
						
							2023-03-23 18:14:51 +02:00  
				
					
						
							
							
								 
						
							
								3ef72e8a7b 
								
							 
						 
						
							
							
								
								BAN: Modify Span constructors to keep constness correctly  
							
							
							
						 
						
							2023-03-23 14:26:03 +02:00  
				
					
						
							
							
								 
						
							
								9b56801c3d 
								
							 
						 
						
							
							
								
								Kernel: StorageDevice and Ext2 "support" writing  
							
							
							
						 
						
							2023-03-23 13:04:13 +02:00  
				
					
						
							
							
								 
						
							
								5f6c58ffd2 
								
							 
						 
						
							
							
								
								Kernel: Shell now prints unix time with 'date' command  
							
							
							
						 
						
							2023-03-23 11:13:51 +02:00  
				
					
						
							
							
								 
						
							
								74949401bd 
								
							 
						 
						
							
							
								
								Kernel: Cleanup GPT parsing code  
							
							
							
						 
						
							2023-03-23 11:13:14 +02:00  
				
					
						
							
							
								 
						
							
								4ffc69a6e4 
								
							 
						 
						
							
							
								
								Kernel: TTY buffer is resized on font size change  
							
							... 
							
							
							
							Shell also has better line wrapping. You still can't visually go
back to previous line, but atleas we now write from the beginning
of the line 
							
						 
						
							2023-03-22 02:09:22 +02:00  
				
					
						
							
							
								 
						
							
								61ac9833be 
								
							 
						 
						
							
							
								
								Kernel: Reading from fd verifies that file is opened for reading  
							
							
							
						 
						
							2023-03-22 01:55:58 +02:00  
				
					
						
							
							
								 
						
							
								dbf7d9f19e 
								
							 
						 
						
							
							
								
								Kernel: Ext2 directory functions now fail on invalid blocks  
							
							... 
							
							
							
							Invalid blocks should only happen while writing to a file and
I think in that case we should just bail out instead of giving
you incomlete inode list or search result. 
							
						 
						
							2023-03-22 01:55:57 +02:00  
				
					
						
							
							
								 
						
							
								a6e5a0b704 
								
							 
						 
						
							
							
								
								Kernel: cksum uses now a different crc32_table to match linux 'cksum'  
							
							
							
						 
						
							2023-03-22 01:55:21 +02:00  
				
					
						
							
							
								 
						
							
								337463ec16 
								
							 
						 
						
							
							
								
								Kernel: Ext2 can now read from non-block-size aligned offsets  
							
							
							
						 
						
							2023-03-21 19:19:17 +02:00  
				
					
						
							
							
								 
						
							
								072954480d 
								
							 
						 
						
							
							
								
								Kernel: Remove obsolete Ext2FS::ext2_root_inode()  
							
							... 
							
							
							
							This was not used by anyone and the cast was wrong anyway 
							
						 
						
							2023-03-21 18:19:48 +02:00  
				
					
						
							
							
								 
						
							
								3652d11059 
								
							 
						 
						
							
							
								
								Kernel: Remove for_each_block from Ext2  
							
							
							
						 
						
							2023-03-21 18:14:02 +02:00  
				
					
						
							
							
								 
						
							
								54824aec74 
								
							 
						 
						
							
							
								
								Kernel: Cleanup font parsing  
							
							... 
							
							
							
							We use now the LittleEndian<> wrapper for PSF2 header and no more
magic constants in code 
							
						 
						
							2023-03-20 19:48:08 +02:00  
				
					
						
							
							
								 
						
							
								75e85def83 
								
							 
						 
						
							
							
								
								Kernel: prefs font does not allocate extra buffer  
							
							
							
						 
						
							2023-03-20 19:48:01 +02:00  
				
					
						
							
							
								 
						
							
								f9ae1f0023 
								
							 
						 
						
							
							
								
								Kernel: Fix PC Screen font parsing  
							
							... 
							
							
							
							I had misread the format and the parsing code was incorrect. I also
changed fonts to store unicode codepoints as 32 bit integers, so
every character can be represented 
							
						 
						
							2023-03-20 14:52:42 +02:00  
				
					
						
							
							
								 
						
							
								896b4c280c 
								
							 
						 
						
							
							
								
								Kernel: Font parsing uses Spans now  
							
							
							
						 
						
							2023-03-20 13:35:54 +02:00  
				
					
						
							
							
								 
						
							
								e4bcd98904 
								
							 
						 
						
							
							
								
								Kernel: Add basic mounting to VFS.  
							
							
							
						 
						
							2023-03-19 05:51:25 +02:00  
				
					
						
							
							
								 
						
							
								3570764448 
								
							 
						 
						
							
							
								
								Kernel: Add comparison operator for inodes  
							
							
							
						 
						
							2023-03-19 03:34:23 +02:00  
				
					
						
							
							
								 
						
							
								b41491e205 
								
							 
						 
						
							
							
								
								Kernel: Add cksum to Shell for file read testing  
							
							... 
							
							
							
							I also removed the 'using namespace BAN' 
							
						 
						
							2023-03-18 03:50:24 +02:00  
				
					
						
							
							
								 
						
							
								8236598f9d 
								
							 
						 
						
							
							
								
								Kernel: Optimize Ext2 disk reads  
							
							... 
							
							
							
							We used to read whole file until we reached the asked offset.
Now we can calculate the appropriate block and read just the asked data. 
							
						 
						
							2023-03-18 03:47:59 +02:00  
				
					
						
							
							
								 
						
							
								1a26a318a4 
								
							 
						 
						
							
							
								
								Kernel: Rework filesystem reading  
							
							... 
							
							
							
							We now read from a filesystem to user provided buffer.
Read sizes are determined by read call.
You should now get file descriptors and do reading through Process::current() 
							
						 
						
							2023-03-17 21:18:41 +02:00  
				
					
						
							
							
								 
						
							
								1f2ceeb329 
								
							 
						 
						
							
							
								
								Kernel: VFS caches currently open inodes  
							
							
							
						 
						
							2023-03-16 15:31:33 +02:00  
				
					
						
							
							
								 
						
							
								1b7625581d 
								
							 
						 
						
							
							
								
								Kernel: Add basic concept of Processes  
							
							... 
							
							
							
							We now create Shell as a process that has its own threads 
							
						 
						
							2023-03-16 12:17:04 +02:00  
				
					
						
							
							
								 
						
							
								c012822d49 
								
							 
						 
						
							
							
								
								BAN: Rename StringView suffix from _sv to sv  
							
							
							
						 
						
							2023-03-16 12:15:16 +02:00  
				
					
						
							
							
								 
						
							
								8b8e3cbbf0 
								
							 
						 
						
							
							
								
								Kernel/Userspace: Start initial work on userspace and syscalls  
							
							
							
						 
						
							2023-03-13 15:32:46 +02:00  
				
					
						
							
							
								 
						
							
								af854ec9e1 
								
							 
						 
						
							
							
								
								Kernel: Thread creation now takes void(*)() as entry and void* as data  
							
							... 
							
							
							
							This simplifies threading for the future and gets rid of (undefined?)
cast of member function pointer to address 
							
						 
						
							2023-03-09 15:33:42 +02:00  
				
					
						
							
							
								 
						
							
								8dbece9119 
								
							 
						 
						
							
							
								
								Kernel: kmalloc minimum align is forced to s_kmalloc_min_align  
							
							
							
						 
						
							2023-03-09 14:37:25 +02:00  
				
					
						
							
							
								 
						
							
								8940ff8002 
								
							 
						 
						
							
							
								
								Kernel: You don't have to check whether VFS is initialized or not  
							
							... 
							
							
							
							VFS now returns Error when attempting to traverse inodes if it did
not find root partition 
							
						 
						
							2023-03-09 02:31:24 +02:00  
				
					
						
							
							
								 
						
							
								fc58baf54d 
								
							 
						 
						
							
							
								
								Kernel: if VFS initialization does not find root, we fail  
							
							
							
						 
						
							2023-03-09 02:17:42 +02:00  
				
					
						
							
							
								 
						
							
								2e6e0d0ef5 
								
							 
						 
						
							
							
								
								Kernel: FIX ubsan complaining about unaligned addresses for STDHeaders  
							
							
							
						 
						
							2023-03-08 22:55:44 +02:00  
				
					
						
							
							
								 
						
							
								371dfe8ef3 
								
							 
						 
						
							
							
								
								BAN: Formatter now uses perfect forwarding on its arguments  
							
							
							
						 
						
							2023-03-08 21:31:26 +02:00  
				
					
						
							
							
								 
						
							
								7458f68c38 
								
							 
						 
						
							
							
								
								BAN: Error can now be constructed from c_string or format string  
							
							... 
							
							
							
							If the resulting string would overflow, we just truncate it to fit
the error message buffer (128) bytes 
							
						 
						
							2023-03-08 17:05:37 +02:00  
				
					
						
							
							
								 
						
							
								d90aba0963 
								
							 
						 
						
							
							
								
								Kernel: Create CriticalScope and fix kmalloc  
							
							... 
							
							
							
							This disables interrupts for the current scope and restores them
after the scope. This is used in kmalloc, since scheduler might
call into kmalloc/kfree, but deadlock if some thread is currently
trying to allocate. This allows us to use kmalloc in Scheduler. 
							
						 
						
							2023-03-08 13:55:53 +02:00  
				
					
						
							
							
								 
						
							
								a068d828fe 
								
							 
						 
						
							
							
								
								Kernel: ATA reads go through the ata controller and not only device  
							
							
							
						 
						
							2023-03-08 03:26:25 +02:00  
				
					
						
							
							
								 
						
							
								1dabe7a222 
								
							 
						 
						
							
							
								
								Kernel: More rework on Scheduler  
							
							
							
						 
						
							2023-03-08 03:26:25 +02:00  
				
					
						
							
							
								 
						
							
								e7a577f54a 
								
							 
						 
						
							
							
								
								Kernel: fix includes  
							
							
							
						 
						
							2023-03-08 03:26:25 +02:00  
				
					
						
							
							
								 
						
							
								23b3028e15 
								
							 
						 
						
							
							
								
								Kernel: Rename RefCounted -> RefPtr and implement RefCounted  
							
							
							
						 
						
							2023-03-08 03:26:25 +02:00  
				
					
						
							
							
								 
						
							
								f7ebda3bf1 
								
							 
						 
						
							
							
								
								Kernel: Move interrupt related functions to InterruptController  
							
							
							
						 
						
							2023-03-08 03:16:51 +02:00  
				
					
						
							
							
								 
						
							
								b5673278c4 
								
							 
						 
						
							
							
								
								Kernel: Disable color after Debug::dump_stack_trace  
							
							
							
						 
						
							2023-03-08 02:41:44 +02:00  
				
					
						
							
							
								 
						
							
								0b62729887 
								
							 
						 
						
							
							
								
								Kernel: Scheduler sleeping is working  
							
							... 
							
							
							
							We have to disable optimization for one function, but I'm working
on a fix 
							
						 
						
							2023-03-08 02:41:44 +02:00  
				
					
						
							
							
								 
						
							
								b8ee77eb78 
								
							 
						 
						
							
							
								
								Kernel: Initial work on new scheduler with queues  
							
							... 
							
							
							
							Sleeping is definately broken 
							
						 
						
							2023-03-08 02:41:44 +02:00  
				
					
						
							
							
								 
						
							
								a9acf1f6dc 
								
							 
						 
						
							
							
								
								Kernel: PCIDevice is now class with getters and constructor  
							
							
							
						 
						
							2023-03-08 02:41:44 +02:00  
				
					
						
							
							
								 
						
							
								42c33ebfb3 
								
							 
						 
						
							
							
								
								Kernel: kmalloc aligns size to s_kmalloc_min_align  
							
							... 
							
							
							
							We don't get unaligned memory anymore from kmalloc 
							
						 
						
							2023-03-08 02:41:44 +02:00  
				
					
						
							
							
								 
						
							
								ed18d86f08 
								
							 
						 
						
							
							
								
								Kernel: Fix spinlock unlocking in x86_64  
							
							... 
							
							
							
							Spinlock unlock used a 64 bit write on 32 bit integer, overwriting
some random memory. This caused some really hard to find bugs 
							
						 
						
							2023-03-08 02:41:44 +02:00  
				
					
						
							
							
								 
						
							
								df8811fc1a 
								
							 
						 
						
							
							
								
								Kernel: Remove "a" from .section .text  
							
							
							
						 
						
							2023-03-07 01:57:09 +02:00  
				
					
						
							
							
								 
						
							
								8a52c0f9d7 
								
							 
						 
						
							
							
								
								Kernel: Cleanup RSDP parsing code  
							
							
							
						 
						
							2023-03-07 00:41:13 +02:00  
				
					
						
							
							
								 
						
							
								06db890d49 
								
							 
						 
						
							
							
								
								Kernel: Add ubsan  
							
							... 
							
							
							
							My brain has been melting since I'm getting very random bugs.
I hope I can debug them better with ubsan :) 
							
						 
						
							2023-03-06 23:38:05 +02:00  
				
					
						
							
							
								 
						
							
								d5f302a68b 
								
							 
						 
						
							
							
								
								Kernel: kmalloc now uses two locks  
							
							... 
							
							
							
							One for fixed allocations and one for general allocations 
							
						 
						
							2023-03-06 12:40:35 +02:00  
				
					
						
							
							
								 
						
							
								f1f5e76636 
								
							 
						 
						
							
							
								
								Kernel: kmalloc requires alignment to be power of two  
							
							
							
						 
						
							2023-03-02 22:31:13 +02:00  
				
					
						
							
							
								 
						
							
								52aa98ba25 
								
							 
						 
						
							
							
								
								Kernel+LibC: Add some errno codes  
							
							... 
							
							
							
							Kernel now returns ENOMEM and other errnos, so we dont have to write
error messages 
							
						 
						
							2023-03-02 21:10:44 +02:00  
				
					
						
							
							
								 
						
							
								90a7268e5a 
								
							 
						 
						
							
							
								
								BAN: Rewrite RefCounted to return ErrorOr  
							
							
							
						 
						
							2023-03-02 12:30:11 +02:00  
				
					
						
							
							
								 
						
							
								1dd61e93b6 
								
							 
						 
						
							
							
								
								Kernel: Threads cannot take arguments anymore  
							
							
							
						 
						
							2023-03-02 01:56:09 +02:00  
				
					
						
							
							
								 
						
							
								4d8bdec16d 
								
							 
						 
						
							
							
								
								Kernel: fix i386 MMU  
							
							
							
						 
						
							2023-03-02 00:47:29 +02:00  
				
					
						
							
							
								 
						
							
								7fcbb869e1 
								
							 
						 
						
							
							
								
								Kernel: Initialize GDT in kernel code  
							
							... 
							
							
							
							We dont use the boot GDT only while booting 
							
						 
						
							2023-03-01 21:21:56 +02:00  
				
					
						
							
							
								 
						
							
								7f8cad83b1 
								
							 
						 
						
							
							
								
								Kernel: x86_64 boot script now makes GDT with null, kernel code and data  
							
							
							
						 
						
							2023-03-01 21:21:56 +02:00  
				
					
						
							
							
								 
						
							
								ba8c4dbc7f 
								
							 
						 
						
							
							
								
								Kernel: panic now disables interrupts as the first thing  
							
							
							
						 
						
							2023-03-01 21:21:56 +02:00  
				
					
						
							
							
								 
						
							
								9756de02ef 
								
							 
						 
						
							
							
								
								Kernel: MMU now takes flags when allocating pages  
							
							
							
						 
						
							2023-03-01 21:21:56 +02:00  
				
					
						
							
							
								 
						
							
								7d84f290a1 
								
							 
						 
						
							
							
								
								Kernel: Add lock to Disk reads before I forget  
							
							
							
						 
						
							2023-02-26 03:48:11 +02:00  
				
					
						
							
							
								 
						
							
								ee5d02aa70 
								
							 
						 
						
							
							
								
								Kernel: Rewrite basically all current disk io stuff  
							
							... 
							
							
							
							This is a big commit that was kinda hard to split to smaller ones.
Essentially we now look at all the mass storage devices from PCI
and initialize (P)ATA devices. This doesn't provide any more functionality
but better abstractions and everything doesn't have to be on its old
default port that might be different for modern computers. 
							
						 
						
							2023-02-26 03:00:29 +02:00  
				
					
						
							
							
								 
						
							
								40cf68a22a 
								
							 
						 
						
							
							
								
								Kernel: Shell now sleeps through Scheduler and doesn't 'hlt'  
							
							... 
							
							
							
							ls doesn't crash when trying to list file 
							
						 
						
							2023-02-26 02:57:27 +02:00  
				
					
						
							
							
								 
						
							
								04bb08d27f 
								
							 
						 
						
							
							
								
								Kernel: Add basic PCI enumeration  
							
							
							
						 
						
							2023-02-26 02:56:53 +02:00  
				
					
						
							
							
								 
						
							
								34f9912a1d 
								
							 
						 
						
							
							
								
								Kernel: Add IO functions inl, outl, and ins{b,w,l} to read into buffer  
							
							
							
						 
						
							2023-02-24 12:39:38 +02:00  
				
					
						
							
							
								 
						
							
								80f9428337 
								
							 
						 
						
							
							
								
								Kernel: Fix prefs font for 32 bit  
							
							
							
						 
						
							2023-02-24 03:19:54 +02:00  
				
					
						
							
							
								 
						
							
								390a747768 
								
							 
						 
						
							
							
								
								Kernel: Add prefs font for terminal output before file system  
							
							
							
						 
						
							2023-02-23 01:22:50 +02:00  
				
					
						
							
							
								 
						
							
								a4980acc88 
								
							 
						 
						
							
							
								
								Kernel: Fonts can now be parsed from the filesystem and set to terminal  
							
							... 
							
							
							
							We currently dont have a fallback font if we cannot get to filesystem
initialization, but that will come later. I can't test on real hardware
for this reason. 
							
						 
						
							2023-02-22 22:29:31 +02:00  
				
					
						
							
							
								 
						
							
								0e668738dc 
								
							 
						 
						
							
							
								
								Kernel: Make some basic bitmap font parsing code  
							
							
							
						 
						
							2023-02-22 22:28:12 +02:00  
				
					
						
							
							
								 
						
							
								a3e9e7d125 
								
							 
						 
						
							
							
								
								Kernel: Fix some shell commands  
							
							
							
						 
						
							2023-02-22 21:55:32 +02:00  
				
					
						
							
							
								 
						
							
								4cd99c71ca 
								
							 
						 
						
							
							
								
								Kernel: kmalloc uses now spinlock and fix kmalloc_fixed()  
							
							
							
						 
						
							2023-02-22 21:49:28 +02:00  
				
					
						
							
							
								 
						
							
								c9ea22f5e2 
								
							 
						 
						
							
							
								
								Kernel: IDT now confirms that it allocated succesfully  
							
							
							
						 
						
							2023-02-22 21:48:40 +02:00  
				
					
						
							
							
								 
						
							
								d9c05b7378 
								
							 
						 
						
							
							
								
								Kernel: rewrite the whole kmalloc (again)  
							
							... 
							
							
							
							Performance of the old kmalloc implementation was terrible.
We now use fixed-width linked list allocations for sizes <= 60 bytes.
This is much faster than variable size allocation.
We don't use bitmap scanning anymore since it was probably the slow
part. Instead we use headers that tell allocations size and aligment.
I removed the kmalloc_eternal, even though it was very fast, there is
not really any need for it, since the only place it was used in was IDT.
These changes allowed my psf (font) parsing to go from ~500 ms to ~20 ms.
(coming soon :D) 
							
						 
						
							2023-02-22 16:32:50 +02:00  
				
					
						
							
							
								 
						
							
								5d31e89574 
								
							 
						 
						
							
							
								
								Kernel: Update ErrorOr API and add path find to VFS  
							
							... 
							
							
							
							These two are done on the same commit since Changes to Shell were
annoying to make work with only one change 
							
						 
						
							2023-02-22 01:23:11 +02:00  
				
					
						
							
							
								 
						
							
								038379274e 
								
							 
						 
						
							
							
								
								Kernel: Inode can now return full mode value  
							
							... 
							
							
							
							Kernel::Inode::Mode is an union of bitmasked fields for every
possible bit 
							
						 
						
							2023-02-20 21:39:24 +02:00  
				
					
						
							
							
								 
						
							
								efaca469ee 
								
							 
						 
						
							
							
								
								Kernel: Ext2Inode now supports indirect blocks through for_each_block()  
							
							
							
						 
						
							2023-02-20 10:25:15 +02:00  
				
					
						
							
							
								 
						
							
								80006ea137 
								
							 
						 
						
							
							
								
								Kernel: Initial work on filesystem  
							
							... 
							
							
							
							We support now ext2 directory listing. File reading is not yet supported. 
							
						 
						
							2023-02-20 01:46:00 +02:00  
				
					
						
							
							
								 
						
							
								247f03c79e 
								
							 
						 
						
							
							
								
								BAN: Make ErrorOr<> have attribute [[nodiscard]]  
							
							... 
							
							
							
							We don't have to specify it everytime we make function return ErrorOr 
							
						 
						
							2023-02-19 20:10:30 +02:00  
				
					
						
							
							
								 
						
							
								feaeee11e5 
								
							 
						 
						
							
							
								
								Kernel: fix ARCH() macro and add helper macros for push/pop  
							
							
							
						 
						
							2023-02-19 18:52:25 +02:00  
				
					
						
							
							
								 
						
							
								0506fee34a 
								
							 
						 
						
							
							
								
								Kernel: Shell's thread now uses sleep instead of polling  
							
							... 
							
							
							
							Also added 'sleep' command that just sleeps for 5 seconds 
							
						 
						
							2023-02-19 18:52:25 +02:00  
				
					
						
							
							
								 
						
							
								1bd8b0fe5c 
								
							 
						 
						
							
							
								
								Kernel: Sleep now actually sleeps and allows idling  
							
							
							
						 
						
							2023-02-19 18:52:25 +02:00  
				
					
						
							
							
								 
						
							
								8f1b6da2af 
								
							 
						 
						
							
							
								
								Kernel: Use Vector instead of raw poiters in Disk stuff  
							
							... 
							
							
							
							We now don't have to manually free allocated data 
							
						 
						
							2023-02-16 20:48:41 +02:00  
				
					
						
							
							
								 
						
							
								460fc3a29f 
								
							 
						 
						
							
							
								
								Kernel: Start working on filesystem  
							
							... 
							
							
							
							We have a basic PATA driver (for reading) and gpt parser. 
							
						 
						
							2023-02-16 20:00:31 +02:00  
				
					
						
							
							
								 
						
							
								94cbacc998 
								
							 
						 
						
							
							
								
								Kernel: PIT now has very barebones sleep  
							
							
							
						 
						
							2023-02-16 17:53:25 +02:00  
				
					
						
							
							
								 
						
							
								1b45b4d728 
								
							 
						 
						
							
							
								
								Kernel: Remove unnecessary BOCKS_BREAK()  
							
							
							
						 
						
							2023-02-16 17:52:39 +02:00  
				
					
						
							
							
								 
						
							
								6a133782ed 
								
							 
						 
						
							
							
								
								All: Move to c++20  
							
							
							
						 
						
							2023-02-09 23:05:26 +02:00  
				
					
						
							
							
								 
						
							
								fb7fe73d49 
								
							 
						 
						
							
							
								
								Kernel: Add inw and outw to IO  
							
							
							
						 
						
							2023-02-04 23:37:34 +02:00  
				
					
						
							
							
								 
						
							
								6fab26692b 
								
							 
						 
						
							
							
								
								Kernel: remove unnecessary function from x86_64 Thread.S  
							
							
							
						 
						
							2023-02-02 23:48:18 +02:00  
				
					
						
							
							
								 
						
							
								2161528cb6 
								
							 
						 
						
							
							
								
								Kernel: Shell is now launched as a capturing lambda  
							
							
							
						 
						
							2023-02-02 23:27:51 +02:00  
				
					
						
							
							
								 
						
							
								cdbad56ed7 
								
							 
						 
						
							
							
								
								Kernel: Update shell thread command to run following command as thread  
							
							... 
							
							
							
							'thread echo "Hello World"' runs the command 'echo "Hello World"' after
5 seconds have passed. This was just my test code for threading 
							
						 
						
							2023-02-02 23:26:19 +02:00  
				
					
						
							
							
								 
						
							
								5b5e620d8a 
								
							 
						 
						
							
							
								
								Kernel: Improve multithreading support  
							
							... 
							
							
							
							We can now use arbitary BAN::function<void(...)> as the Thread.
I also implemented multithreading for i386 since it was not done
on the initial multithreading commit. 
							
						 
						
							2023-02-02 23:24:12 +02:00  
				
					
						
							
							
								 
						
							
								777ede328e 
								
							 
						 
						
							
							
								
								Kernel: Add helper functions for reading current rsp and rbp  
							
							
							
						 
						
							2023-02-02 23:19:44 +02:00  
				
					
						
							
							
								 
						
							
								c85b97abee 
								
							 
						 
						
							
							
								
								Kernel: fix some of i368 IDT. This was really broken  
							
							
							
						 
						
							2023-02-02 15:52:06 +02:00  
				
					
						
							
							
								 
						
							
								117d1de038 
								
							 
						 
						
							
							
								
								Kernel: panic does not need to include <kernel/kprint.h>  
							
							... 
							
							
							
							This allows us to not have kprint available literally everywhere 
							
						 
						
							2023-02-02 15:51:15 +02:00  
				
					
						
							
							
								 
						
							
								6cbad718fb 
								
							 
						 
						
							
							
								
								Kernel: Add some more cxxabi functionality  
							
							... 
							
							
							
							We can now declate static variables in functions 
							
						 
						
							2023-02-02 15:50:26 +02:00  
				
					
						
							
							
								 
						
							
								f6b05212e0 
								
							 
						 
						
							
							
								
								Kernel: Add is_locked() to spinlock  
							
							... 
							
							
							
							I think this is atomic read 
							
						 
						
							2023-02-02 15:49:30 +02:00  
				
					
						
							
							
								 
						
							
								01f267a321 
								
							 
						 
						
							
							
								
								Kernel: fix spinlock for i386  
							
							
							
						 
						
							2023-02-02 15:49:00 +02:00  
				
					
						
							
							
								 
						
							
								9b8de5025a 
								
							 
						 
						
							
							
								
								All: rename every function from UpperCamelCase to snake_case  
							
							... 
							
							
							
							This was a mess since I didn't know which to use but now I decided
to go with snake_case :) 
							
						 
						
							2023-02-01 21:05:44 +02:00  
				
					
						
							
							
								 
						
							
								6a9d60a8fb 
								
							 
						 
						
							
							
								
								Kernel: Implement somewhat functioning multithread support  
							
							... 
							
							
							
							This still uses only a single cpu, but we can now have 'parallelization'
This seems to work fine in qemu and bochs, but my own computer did not
like this when I last tried.
I have absolutely no idea how multithreading should actually be
implmemented and I just thought and implemented the most simple one I
could think of. This might not be in any way correct :D 
							
						 
						
							2023-02-01 01:53:35 +02:00  
				
					
						
							
							
								 
						
							
								7d8aafa0b5 
								
							 
						 
						
							
							
								
								Kernel: Add macros for current archutecture  
							
							
							
						 
						
							2023-02-01 01:52:52 +02:00  
				
					
						
							
							
								 
						
							
								337569b0ca 
								
							 
						 
						
							
							
								
								Kernel: Implement basic SpinLock  
							
							
							
						 
						
							2023-02-01 01:52:52 +02:00  
				
					
						
							
							
								 
						
							
								be502ae616 
								
							 
						 
						
							
							
								
								Kernel: Debug stacktrace now detects if it kernel panics itself  
							
							
							
						 
						
							2023-01-31 18:43:09 +02:00  
				
					
						
							
							
								 
						
							
								cb3b62d665 
								
							 
						 
						
							
							
								
								Kernel: Only allocate single GDT entry during boot.S  
							
							... 
							
							
							
							When we need more, we should probably initialize rest of them
in cpp code 
							
						 
						
							2023-01-31 18:43:09 +02:00  
				
					
						
							
							
								 
						
							
								1954f223ad 
								
							 
						 
						
							
							
								
								Kernel: Add no sse and sse2 for kernel code  
							
							
							
						 
						
							2023-01-31 18:43:09 +02:00  
				
					
						
							
							
								 
						
							
								1687028ed5 
								
							 
						 
						
							
							
								
								Kernel: Add constructor and destructor to MMU  
							
							
							
						 
						
							2023-01-30 18:54:04 +02:00  
				
					
						
							
							
								 
						
							
								6dc22b7251 
								
							 
						 
						
							
							
								
								Kernel: Add actual register values to x86_64 kernel panic  
							
							... 
							
							
							
							Very hackish implementation, but we now get actual registers at the
time of the interrupt happening 
							
						 
						
							2023-01-30 18:52:38 +02:00  
				
					
						
							
							
								 
						
							
								bfe3426f6d 
								
							 
						 
						
							
							
								
								Kernel: Add processor dump flag to APIC  
							
							
							
						 
						
							2023-01-26 13:13:46 +02:00  
				
					
						
							
							
								 
						
							
								6418d7cfc3 
								
							 
						 
						
							
							
								
								Kernel: Add Other GDT entries to x86_64  
							
							
							
						 
						
							2023-01-26 12:53:04 +02:00  
				
					
						
							
							
								 
						
							
								f0093ed2fd 
								
							 
						 
						
							
							
								
								Kernel: kmalloc_eternal now updates the used/free values  
							
							... 
							
							
							
							I also improved the kmalloc_dump_info() formatting. We format the
values as 8-digit hex numbers since (atleast for now) the kmalloc
will always be under 4 GiB address and size :) 
							
						 
						
							2023-01-26 03:04:19 +02:00  
				
					
						
							
							
								 
						
							
								e00d18029d 
								
							 
						 
						
							
							
								
								Kernel: rewrite some of APIC since it didn't work with xsdts for some reason  
							
							
							
						 
						
							2023-01-26 02:57:14 +02:00  
				
					
						
							
							
								 
						
							
								35d2e27292 
								
							 
						 
						
							
							
								
								Kernel: Improve MMU  
							
							... 
							
							
							
							We don't have to invalidate page in AllocatePage() if we don't make
any changes. We also should not assert on deallocating non-present
pages, just return early :) 
							
						 
						
							2023-01-26 02:57:14 +02:00  
				
					
						
							
							
								 
						
							
								589f338357 
								
							 
						 
						
							
							
								
								Kernel: Cleanup IDT register dump inline assembly  
							
							
							
						 
						
							2023-01-26 02:57:14 +02:00  
				
					
						
							
							
								 
						
							
								05b48fa71c 
								
							 
						 
						
							
							
								
								Kernel: add gcc option to make sure we have (r/e)bp saved on stack  
							
							
							
						 
						
							2023-01-26 02:57:14 +02:00  
				
					
						
							
							
								 
						
							
								aa0757e135 
								
							 
						 
						
							
							
								
								Kernel: Move dump_stacktrace from panic -> debug  
							
							
							
						 
						
							2023-01-26 02:57:14 +02:00  
				
					
						
							
							
								 
						
							
								e87026f01d 
								
							 
						 
						
							
							
								
								Kernel: I have no idea what this commit does  
							
							... 
							
							
							
							I had committed a change in IDT but reverted it now.
This propably only adds a spurious interrupt detection to common cpp
interrupt handler? 
							
						 
						
							2023-01-26 02:55:37 +02:00  
				
					
						
							
							
								 
						
							
								9c31790359 
								
							 
						 
						
							
							
								
								Kernel: Add option to disable Serial output  
							
							... 
							
							
							
							This makes all debug output to appear on the TTY 
							
						 
						
							2023-01-25 22:51:42 +02:00  
				
					
						
							
							
								 
						
							
								c0bc002ac6 
								
							 
						 
						
							
							
								
								Kernel: Move debug printing to its own file  
							
							... 
							
							
							
							It didn't make sense that dprint was defined in Serial.h.
We also now dump dprint to tty if there is no serial and tty is initialized 
							
						 
						
							2023-01-25 22:51:42 +02:00  
				
					
						
							
							
								 
						
							
								b315fdc27f 
								
							 
						 
						
							
							
								
								Kernel: Finally managed to get 64-bit working  
							
							... 
							
							
							
							I had weird problems with interrupts but everything should work now 
							
						 
						
							2023-01-25 19:19:28 +02:00  
				
					
						
							
							
								 
						
							
								c4670f49d4 
								
							 
						 
						
							
							
								
								Kernel: Refactor some IDT code  
							
							
							
						 
						
							2023-01-25 19:19:28 +02:00  
				
					
						
							
							
								 
						
							
								48348c9e57 
								
							 
						 
						
							
							
								
								Kernel: Cleanup APIC code. Remove unnecessary defines and add consts  
							
							
							
						 
						
							2023-01-25 19:00:41 +02:00  
				
					
						
							
							
								 
						
							
								ba53582f23 
								
							 
						 
						
							
							
								
								Kernel: Rewrite APIC and PIC more OOP friendly  
							
							... 
							
							
							
							x86_64 port is slowly coming together 
							
						 
						
							2023-01-23 20:13:57 +02:00  
				
					
						
							
							
								 
						
							
								b50bb03ed4 
								
							 
						 
						
							
							
								
								Kernel: Panic now halts machine even if we get spurious irqs  
							
							
							
						 
						
							2023-01-23 18:25:48 +02:00  
				
					
						
							
							
								 
						
							
								54043288cb 
								
							 
						 
						
							
							
								
								Kernel: Move CPUID out of arch/  
							
							... 
							
							
							
							CPUID instructions behaves the same on x86 and x86_64. I am not
planning on supporting any non x86 based architectures. 
							
						 
						
							2023-01-23 18:12:52 +02:00  
				
					
						
							
							
								 
						
							
								1b9f7aa815 
								
							 
						 
						
							
							
								
								Kernel: Rewrite the whole VESA driver  
							
							... 
							
							
							
							We dont support vga text mode currently. I might add it later if needed.
I also removed mouse 'support' from Shell since it didn't do anything
and I didn't implement arbitary bitmap rendering to framebuffer 
							
						 
						
							2023-01-23 13:21:53 +02:00  
				
					
						
							
							
								 
						
							
								10c7ef7baa 
								
							 
						 
						
							
							
								
								Kernel: MMU rename weird variable  
							
							
							
						 
						
							2023-01-22 20:16:44 +02:00  
				
					
						
							
							
								 
						
							
								b67bbab083 
								
							 
						 
						
							
							
								
								Kernel: fix dump_stacktrace  
							
							
							
						 
						
							2023-01-22 20:05:24 +02:00  
				
					
						
							
							
								 
						
							
								62469c529f 
								
							 
						 
						
							
							
								
								Kernel: IDT now allocates descriptors with kmalloc_eternal  
							
							
							
						 
						
							2023-01-22 03:18:42 +02:00  
				
					
						
							
							
								 
						
							
								026fdc251c 
								
							 
						 
						
							
							
								
								Kernel: Add kmalloc_eternal back  
							
							
							
						 
						
							2023-01-22 03:10:48 +02:00  
				
					
						
							
							
								 
						
							
								cdd27ae3db 
								
							 
						 
						
							
							
								
								Kernel: rename MMU::m_page_directory_pointer_table -> m_highest_paging_stuct  
							
							... 
							
							
							
							This might not always be pdpt. In x86_64 it is pml4/pml5 
							
						 
						
							2023-01-22 03:03:58 +02:00  
				
					
						
							
							
								 
						
							
								6ec4ba3dc9 
								
							 
						 
						
							
							
								
								Kernel: Move dump_backtrace() out of arch.  
							
							... 
							
							
							
							I discovered __builtin_frame_address() 
							
						 
						
							2023-01-22 03:00:13 +02:00  
				
					
						
							
							
								 
						
							
								fbfb3d6b70 
								
							 
						 
						
							
							
								
								Kernel: IDT cleanup GateDesctiptor usage  
							
							... 
							
							
							
							And move everything to IDT namespace 
							
						 
						
							2023-01-22 02:06:43 +02:00  
				
					
						
							
							
								 
						
							
								558374a47c 
								
							 
						 
						
							
							
								
								Kernel: IDT flush only once in initialization  
							
							
							
						 
						
							2023-01-22 02:06:43 +02:00  
				
					
						
							
							
								 
						
							
								6e24ef8323 
								
							 
						 
						
							
							
								
								Kernel: IDT cleanup Kernel panic messages  
							
							
							
						 
						
							2023-01-22 02:06:43 +02:00  
				
					
						
							
							
								 
						
							
								3e8fbbaabd 
								
							 
						 
						
							
							
								
								Kernel: Fix small typos in IDT  
							
							
							
						 
						
							2023-01-22 01:12:47 +02:00  
				
					
						
							
							
								 
						
							
								491610db2c 
								
							 
						 
						
							
							
								
								Kernel: move GDT initialization to boot.S  
							
							
							
						 
						
							2023-01-22 00:48:12 +02:00  
				
					
						
							
							
								 
						
							
								aac7595a47 
								
							 
						 
						
							
							
								
								Kernel: cleanup boot.S code and enable SSE  
							
							
							
						 
						
							2023-01-21 23:44:23 +02:00  
				
					
						
							
							
								 
						
							
								fdbc04f29d 
								
							 
						 
						
							
							
								
								Kernel: kmalloc now uses the actual kernel end location  
							
							
							
						 
						
							2023-01-21 22:40:23 +02:00  
				
					
						
							
							
								 
						
							
								9088f7b305 
								
							 
						 
						
							
							
								
								Kernel: kmalloc prints addresses on panic  
							
							
							
						 
						
							2023-01-21 22:29:44 +02:00  
				
					
						
							
							
								 
						
							
								b5453fad5c 
								
							 
						 
						
							
							
								
								Kernel: dump_stacktrace uses now "\r\n" line endings for bochs  
							
							
							
						 
						
							2023-01-21 22:21:38 +02:00  
				
					
						
							
							
								 
						
							
								bb051604a1 
								
							 
						 
						
							
							
								
								Kernel: Move dump_stacktrace() to arch folder  
							
							... 
							
							
							
							It uses mov instruction which has different register on x86/x86-64 
							
						 
						
							2023-01-21 22:16:31 +02:00  
				
					
						
							
							
								 
						
							
								9e092c80c0 
								
							 
						 
						
							
							
								
								Kernel: Cleanup boot.S  
							
							
							
						 
						
							2023-01-21 22:16:01 +02:00  
				
					
						
							
							
								 
						
							
								53a5ad3cf9 
								
							 
						 
						
							
							
								
								BAN: Function now properly forward arguments  
							
							
							
						 
						
							2023-01-17 11:16:46 +02:00  
				
					
						
							
							
								 
						
							
								b9a4530e54 
								
							 
						 
						
							
							
								
								Kernel: Kernel::Panic now dumps stacktrace to com1  
							
							
							
						 
						
							2023-01-16 21:50:50 +02:00  
				
					
						
							
							
								 
						
							
								7540fa0385 
								
							 
						 
						
							
							
								
								Kernel: Shell now 'properly' parses commandline  
							
							
							
						 
						
							2023-01-16 20:09:22 +02:00  
				
					
						
							
							
								 
						
							
								e307db47eb 
								
							 
						 
						
							
							
								
								Kernel: Kernel::Panic() will now always print to serial output  
							
							
							
						 
						
							2023-01-16 15:44:27 +02:00