Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								3998c5f955 
								
							 
						 
						
							
							
								
								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  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								762d22ed28 
								
							 
						 
						
							
							
								
								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  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								f2362b2b78 
								
							 
						 
						
							
							
								
								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  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								471ac80420 
								
							 
						 
						
							
							
								
								BuildSystem: building for 32-bit works now  
							
							 
							
							
							
						 
						
							2023-04-02 05:03:17 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								e49d3c7bfe 
								
							 
						 
						
							
							
								
								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  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								79090c2648 
								
							 
						 
						
							
							
								
								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  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								7a6b1c8e47 
								
							 
						 
						
							
							
								
								Kernel: Fix traversing back from mount points  
							
							 
							
							
							
						 
						
							2023-04-01 01:54:35 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								8988ce2766 
								
							 
						 
						
							
							
								
								Kernel: Add inodes '.' and '..' to device manager  
							
							 
							
							
							
						 
						
							2023-04-01 01:33:04 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								dcde2ae6b4 
								
							 
						 
						
							
							
								
								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  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								c62849a783 
								
							 
						 
						
							
							
								
								Kernel: Shell cleanup cat command  
							
							 
							
							
							
						 
						
							2023-04-01 00:54:39 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								f453e8e170 
								
							 
						 
						
							
							
								
								Kernel: Shell 'time' prints the time even if command fails  
							
							 
							
							
							
						 
						
							2023-04-01 00:30:33 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								990887891e 
								
							 
						 
						
							
							
								
								Kernel: Process gets absolute paths for mount  
							
							 
							
							
							
						 
						
							2023-04-01 00:30:11 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								5da801d12b 
								
							 
						 
						
							
							
								
								Kernel: fix ext2 failed creation memory leak  
							
							 
							
							
							
						 
						
							2023-04-01 00:22:03 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								3a4557d417 
								
							 
						 
						
							
							
								
								Kernel: Cleanup ATA device initialization  
							
							 
							
							
							
						 
						
							2023-03-31 00:58:57 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								26d9a3e253 
								
							 
						 
						
							
							
								
								Kernel: Move DeviceManager to its own file  
							
							 
							
							
							
						 
						
							2023-03-30 22:39:45 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								eef3631a5a 
								
							 
						 
						
							
							
								
								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  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								88ee35165f 
								
							 
						 
						
							
							
								
								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  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								c8f05b4a7a 
								
							 
						 
						
							
							
								
								Kernel: Add Semaphore to block threads  
							
							 
							
							
							
						 
						
							2023-03-30 18:46:33 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								2995a36942 
								
							 
						 
						
							
							
								
								Kernel: root partition is now passed from the commandline  
							
							 
							
							
							
						 
						
							2023-03-30 18:46:19 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								3e8ab8271d 
								
							 
						 
						
							
							
								
								Kernel: Shell can now mount partitions  
							
							 
							
							
							
						 
						
							2023-03-30 15:06:41 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								5b3a00c64f 
								
							 
						 
						
							
							
								
								Kernel: Inode::Mode is now a struct so we can have functions in it  
							
							 
							
							
							
						 
						
							2023-03-30 14:41:15 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								0ce9fd8597 
								
							 
						 
						
							
							
								
								Kernel: StorageDevices and Controllers are now devices  
							
							 
							
							
							
						 
						
							2023-03-30 14:22:15 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								c9badb5a1c 
								
							 
						 
						
							
							
								
								Kernel: Add IFBLK, IFLNK, IFSOCK to Inode::Mode  
							
							 
							
							
							
						 
						
							2023-03-30 13:15:46 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								a513bc5749 
								
							 
						 
						
							
							
								
								Kernel: All devices have atime, mtime, ctime at their creation  
							
							 
							
							
							
						 
						
							2023-03-30 13:15:46 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								5d5487315f 
								
							 
						 
						
							
							
								
								Kernel: Remove the mount test from VFS  
							
							 
							
							
							
						 
						
							2023-03-30 11:43:24 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								3508df67b1 
								
							 
						 
						
							
							
								
								Kernel: fix stat command and device numbers  
							
							 
							
							
							
						 
						
							2023-03-30 10:43:08 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								06ce1f0667 
								
							 
						 
						
							
							
								
								Kernel: Rewrite mounting code  
							
							 
							
							
							
						 
						
							2023-03-29 21:34:48 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								1fb8c211f0 
								
							 
						 
						
							
							
								
								Kernel: Move Partition out of StorageDevice and rename functions  
							
							 
							
							
							
						 
						
							2023-03-29 13:23:01 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								9c7670847e 
								
							 
						 
						
							
							
								
								Kernel: Shell commands 'ls' and 'stat' recognize character devices  
							
							 
							
							
							
						 
						
							2023-03-29 11:56:33 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								a24c2d9be2 
								
							 
						 
						
							
							
								
								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  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								7f90079ea7 
								
							 
						 
						
							
							
								
								Kernel: Fix keymap numlock behaviour  
							
							 
							
							
							
						 
						
							2023-03-29 03:18:22 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								f4b4987d43 
								
							 
						 
						
							
							
								
								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  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								ac094a48d6 
								
							 
						 
						
							
							
								
								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  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								f9a0412e78 
								
							 
						 
						
							
							
								
								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  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								2f8c9746e3 
								
							 
						 
						
							
							
								
								Kernel: Move ACPI to its own file  
							
							 
							
							
							
						 
						
							2023-03-27 17:30:45 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								f8a2c60c8d 
								
							 
						 
						
							
							
								
								Kernel/BAN: move unix time conversion to BAN and add stat to Shell  
							
							 
							
							
							
						 
						
							2023-03-27 00:49:58 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								770f7716a0 
								
							 
						 
						
							
							
								
								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  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								d67de70126 
								
							 
						 
						
							
							
								
								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  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								6f334756c5 
								
							 
						 
						
							
							
								
								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  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								310713d203 
								
							 
						 
						
							
							
								
								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  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								7d2ab53baa 
								
							 
						 
						
							
							
								
								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  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								2152b8b95f 
								
							 
						 
						
							
							
								
								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  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								4fd21bc303 
								
							 
						 
						
							
							
								
								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  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								15037bfc7a 
								
							 
						 
						
							
							
								
								Kernel: Move get_unix_time to RTC namespace  
							
							 
							
							
							
						 
						
							2023-03-23 18:14:51 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								3572e9794a 
								
							 
						 
						
							
							
								
								BAN: Modify Span constructors to keep constness correctly  
							
							 
							
							
							
						 
						
							2023-03-23 14:26:03 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								6ed9651176 
								
							 
						 
						
							
							
								
								Kernel: StorageDevice and Ext2 "support" writing  
							
							 
							
							
							
						 
						
							2023-03-23 13:04:13 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								3efbe22a1b 
								
							 
						 
						
							
							
								
								Kernel: Shell now prints unix time with 'date' command  
							
							 
							
							
							
						 
						
							2023-03-23 11:13:51 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								96579b88cf 
								
							 
						 
						
							
							
								
								Kernel: Cleanup GPT parsing code  
							
							 
							
							
							
						 
						
							2023-03-23 11:13:14 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								2ec18855f2 
								
							 
						 
						
							
							
								
								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  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								b222581d18 
								
							 
						 
						
							
							
								
								Kernel: Reading from fd verifies that file is opened for reading  
							
							 
							
							
							
						 
						
							2023-03-22 01:55:58 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								a8e3ee6f19 
								
							 
						 
						
							
							
								
								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  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								a083e588ba 
								
							 
						 
						
							
							
								
								Kernel: cksum uses now a different crc32_table to match linux 'cksum'  
							
							 
							
							
							
						 
						
							2023-03-22 01:55:21 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								9b500842a0 
								
							 
						 
						
							
							
								
								Kernel: Ext2 can now read from non-block-size aligned offsets  
							
							 
							
							
							
						 
						
							2023-03-21 19:19:17 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								b21348379f 
								
							 
						 
						
							
							
								
								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  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								633055293e 
								
							 
						 
						
							
							
								
								Kernel: Remove for_each_block from Ext2  
							
							 
							
							
							
						 
						
							2023-03-21 18:14:02 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								ae9d618803 
								
							 
						 
						
							
							
								
								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  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								faf1b661bb 
								
							 
						 
						
							
							
								
								Kernel: prefs font does not allocate extra buffer  
							
							 
							
							
							
						 
						
							2023-03-20 19:48:01 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								22e45278a2 
								
							 
						 
						
							
							
								
								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  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								43f4657566 
								
							 
						 
						
							
							
								
								Kernel: Font parsing uses Spans now  
							
							 
							
							
							
						 
						
							2023-03-20 13:35:54 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								39b560fde3 
								
							 
						 
						
							
							
								
								Kernel: Add basic mounting to VFS.  
							
							 
							
							
							
						 
						
							2023-03-19 05:51:25 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								76d5364a55 
								
							 
						 
						
							
							
								
								Kernel: Add comparison operator for inodes  
							
							 
							
							
							
						 
						
							2023-03-19 03:34:23 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								1f2ceeb329 
								
							 
						 
						
							
							
								
								Kernel: VFS caches currently open inodes  
							
							 
							
							
							
						 
						
							2023-03-16 15:31:33 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								c012822d49 
								
							 
						 
						
							
							
								
								BAN: Rename StringView suffix from _sv to sv  
							
							 
							
							
							
						 
						
							2023-03-16 12:15:16 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								8b8e3cbbf0 
								
							 
						 
						
							
							
								
								Kernel/Userspace: Start initial work on userspace and syscalls  
							
							 
							
							
							
						 
						
							2023-03-13 15:32:46 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								8dbece9119 
								
							 
						 
						
							
							
								
								Kernel: kmalloc minimum align is forced to s_kmalloc_min_align  
							
							 
							
							
							
						 
						
							2023-03-09 14:37:25 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								fc58baf54d 
								
							 
						 
						
							
							
								
								Kernel: if VFS initialization does not find root, we fail  
							
							 
							
							
							
						 
						
							2023-03-09 02:17:42 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								2e6e0d0ef5 
								
							 
						 
						
							
							
								
								Kernel: FIX ubsan complaining about unaligned addresses for STDHeaders  
							
							 
							
							
							
						 
						
							2023-03-08 22:55:44 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								371dfe8ef3 
								
							 
						 
						
							
							
								
								BAN: Formatter now uses perfect forwarding on its arguments  
							
							 
							
							
							
						 
						
							2023-03-08 21:31:26 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								a068d828fe 
								
							 
						 
						
							
							
								
								Kernel: ATA reads go through the ata controller and not only device  
							
							 
							
							
							
						 
						
							2023-03-08 03:26:25 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								1dabe7a222 
								
							 
						 
						
							
							
								
								Kernel: More rework on Scheduler  
							
							 
							
							
							
						 
						
							2023-03-08 03:26:25 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								e7a577f54a 
								
							 
						 
						
							
							
								
								Kernel: fix includes  
							
							 
							
							
							
						 
						
							2023-03-08 03:26:25 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								23b3028e15 
								
							 
						 
						
							
							
								
								Kernel: Rename RefCounted -> RefPtr and implement RefCounted  
							
							 
							
							
							
						 
						
							2023-03-08 03:26:25 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								f7ebda3bf1 
								
							 
						 
						
							
							
								
								Kernel: Move interrupt related functions to InterruptController  
							
							 
							
							
							
						 
						
							2023-03-08 03:16:51 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								b5673278c4 
								
							 
						 
						
							
							
								
								Kernel: Disable color after Debug::dump_stack_trace  
							
							 
							
							
							
						 
						
							2023-03-08 02:41:44 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								b8ee77eb78 
								
							 
						 
						
							
							
								
								Kernel: Initial work on new scheduler with queues  
							
							 
							
							... 
							
							
							
							Sleeping is definately broken 
							
						 
						
							2023-03-08 02:41:44 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								a9acf1f6dc 
								
							 
						 
						
							
							
								
								Kernel: PCIDevice is now class with getters and constructor  
							
							 
							
							
							
						 
						
							2023-03-08 02:41:44 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								df8811fc1a 
								
							 
						 
						
							
							
								
								Kernel: Remove "a" from .section .text  
							
							 
							
							
							
						 
						
							2023-03-07 01:57:09 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								8a52c0f9d7 
								
							 
						 
						
							
							
								
								Kernel: Cleanup RSDP parsing code  
							
							 
							
							
							
						 
						
							2023-03-07 00:41:13 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								d5f302a68b 
								
							 
						 
						
							
							
								
								Kernel: kmalloc now uses two locks  
							
							 
							
							... 
							
							
							
							One for fixed allocations and one for general allocations 
							
						 
						
							2023-03-06 12:40:35 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								f1f5e76636 
								
							 
						 
						
							
							
								
								Kernel: kmalloc requires alignment to be power of two  
							
							 
							
							
							
						 
						
							2023-03-02 22:31:13 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								90a7268e5a 
								
							 
						 
						
							
							
								
								BAN: Rewrite RefCounted to return ErrorOr  
							
							 
							
							
							
						 
						
							2023-03-02 12:30:11 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								1dd61e93b6 
								
							 
						 
						
							
							
								
								Kernel: Threads cannot take arguments anymore  
							
							 
							
							
							
						 
						
							2023-03-02 01:56:09 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								4d8bdec16d 
								
							 
						 
						
							
							
								
								Kernel: fix i386 MMU  
							
							 
							
							
							
						 
						
							2023-03-02 00:47:29 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								7fcbb869e1 
								
							 
						 
						
							
							
								
								Kernel: Initialize GDT in kernel code  
							
							 
							
							... 
							
							
							
							We dont use the boot GDT only while booting 
							
						 
						
							2023-03-01 21:21:56 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								7f8cad83b1 
								
							 
						 
						
							
							
								
								Kernel: x86_64 boot script now makes GDT with null, kernel code and data  
							
							 
							
							
							
						 
						
							2023-03-01 21:21:56 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								ba8c4dbc7f 
								
							 
						 
						
							
							
								
								Kernel: panic now disables interrupts as the first thing  
							
							 
							
							
							
						 
						
							2023-03-01 21:21:56 +02:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								9756de02ef 
								
							 
						 
						
							
							
								
								Kernel: MMU now takes flags when allocating pages  
							
							 
							
							
							
						 
						
							2023-03-01 21:21:56 +02:00