Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								d09310f388 
								
							 
						 
						
							
							
								
								Kernel: Fix ext2 inode deletion  
							
							 
							
							... 
							
							
							
							fsck now reports clean filesystem even after deleting files 
							
						 
						
							2023-10-26 02:05:05 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								74bfb930f2 
								
							 
						 
						
							
							
								
								Kernel/LibC: Add syscall and wrapper for unlink  
							
							 
							
							
							
						 
						
							2023-10-25 21:45:04 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								091c5b6a66 
								
							 
						 
						
							
							
								
								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 
							
						 
						
							 
							
							
							
							
								
							
							
								8bb47aee02 
								
							 
						 
						
							
							
								
								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 
							
						 
						
							 
							
							
							
							
								
							
							
								1f794e4ac0 
								
							 
						 
						
							
							
								
								Kernel: Implement directory creation for RamFS  
							
							 
							
							
							
						 
						
							2023-10-25 19:41:34 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								e85f9ac6a1 
								
							 
						 
						
							
							
								
								Kernel: Implement Ext2 directory creation  
							
							 
							
							
							
						 
						
							2023-10-25 19:37:04 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								6ee5576dcc 
								
							 
						 
						
							
							
								
								Kernel: Add Inode API for creating directories  
							
							 
							
							
							
						 
						
							2023-10-25 19:36:04 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								b890e2fc14 
								
							 
						 
						
							
							
								
								Kernel: Ext2FS now uses Ext2Inodes as cached values  
							
							 
							
							
							
						 
						
							2023-10-25 19:34:00 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								15bb1804ef 
								
							 
						 
						
							
							
								
								Kernel/LibC: implement chmod syscall + libc wrapper  
							
							 
							
							
							
						 
						
							2023-10-25 02:35:37 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								00ee86920a 
								
							 
						 
						
							
							
								
								Kernel: Add timeout to ACHI commands  
							
							 
							
							... 
							
							
							
							ACHI commands can now fail from timeouts. 
							
						 
						
							2023-10-24 11:56:25 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								5bfeb9f3ca 
								
							 
						 
						
							
							
								
								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 
							
						 
						
							 
							
							
							
							
								
							
							
								be3efb0b92 
								
							 
						 
						
							
							
								
								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 
							
						 
						
							 
							
							
							
							
								
							
							
								48980b56ab 
								
							 
						 
						
							
							
								
								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 
							
						 
						
							 
							
							
							
							
								
							
							
								b767317a7a 
								
							 
						 
						
							
							
								
								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 
							
						 
						
							 
							
							
							
							
								
							
							
								6f8fce94a0 
								
							 
						 
						
							
							
								
								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 
							
						 
						
							 
							
							
							
							
								
							
							
								5977341610 
								
							 
						 
						
							
							
								
								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 
							
						 
						
							 
							
							
							
							
								
							
							
								76f17bd569 
								
							 
						 
						
							
							
								
								Kernel: PCIDevice stores its vendor id and device id  
							
							 
							
							
							
						 
						
							2023-10-16 01:44:54 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								dafc016293 
								
							 
						 
						
							
							
								
								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 
							
						 
						
							 
							
							
							
							
								
							
							
								6b180da4e8 
								
							 
						 
						
							
							
								
								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 
							
						 
						
							 
							
							
							
							
								
							
							
								cf4f5f64a5 
								
							 
						 
						
							
							
								
								Kernel: add NEVER_INLINE and make Interruptable not constructable  
							
							 
							
							
							
						 
						
							2023-10-13 16:17:27 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								f842a9255f 
								
							 
						 
						
							
							
								
								Kernel: Allow getting ACPI headers with same signature  
							
							 
							
							
							
						 
						
							2023-10-13 11:24:21 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								a2b5e71654 
								
							 
						 
						
							
							
								
								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 
							
						 
						
							 
							
							
							
							
								
							
							
								d3e5c8e0aa 
								
							 
						 
						
							
							
								
								Kernel: Generalize ATA device and cleanup code  
							
							 
							
							
							
						 
						
							2023-10-12 21:35:25 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								f4b901a646 
								
							 
						 
						
							
							
								
								Kernel: Add Timer::ns_since_boot()  
							
							 
							
							
							
						 
						
							2023-10-12 21:16:39 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								790064d248 
								
							 
						 
						
							
							
								
								Kernel: Add vaddr/paddr conversion functions to DMARegion  
							
							 
							
							
							
						 
						
							2023-10-12 15:20:05 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								ab8b77406d 
								
							 
						 
						
							
							
								
								Kernel: PCI can now get interrupts for devices  
							
							 
							
							
							
						 
						
							2023-10-11 22:18:58 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								1b9e14a53b 
								
							 
						 
						
							
							
								
								Kernel: PCI cleanup PCI::Device API  
							
							 
							
							
							
						 
						
							2023-10-11 21:52:08 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								521513bed2 
								
							 
						 
						
							
							
								
								Kernel: make DMARegion::create static and fix mapping  
							
							 
							
							
							
						 
						
							2023-10-08 18:18:36 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								211cad03ff 
								
							 
						 
						
							
							
								
								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 
							
						 
						
							 
							
							
							
							
								
							
							
								8a9816d6e0 
								
							 
						 
						
							
							
								
								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 
							
						 
						
							 
							
							
							
							
								
							
							
								03d2bf4002 
								
							 
						 
						
							
							
								
								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 
							
						 
						
							 
							
							
							
							
								
							
							
								27364f64a6 
								
							 
						 
						
							
							
								
								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 
							
						 
						
							 
							
							
							
							
								
							
							
								bcf62c5f2e 
								
							 
						 
						
							
							
								
								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
							
						 
						
							 
							
							
							
							
								
							
							
								b712c70c75 
								
							 
						 
						
							
							
								
								Kernel: Expose command line and environment to /proc  
							
							 
							
							
							
						 
						
							2023-09-30 23:01:33 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								797ca65c66 
								
							 
						 
						
							
							
								
								Kernel: Add physical memory info to /proc/{pid}/meminfo  
							
							 
							
							
							
						 
						
							2023-09-30 22:11:45 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								a511441f7e 
								
							 
						 
						
							
							
								
								Kernel: /proc/{pid}/meminfo now reports per process memory usage  
							
							 
							
							
							
						 
						
							2023-09-30 21:20:18 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								cd61d710df 
								
							 
						 
						
							
							
								
								Kernel: Add procfs that contains only pids  
							
							 
							
							
							
						 
						
							2023-09-30 21:19:36 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								f88ad7efcd 
								
							 
						 
						
							
							
								
								Kernel: All process' memory areas can report their virtual mem usage  
							
							 
							
							
							
						 
						
							2023-09-30 21:15:46 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								d883d212b1 
								
							 
						 
						
							
							
								
								Kernel/LibC: dirent now contains file type  
							
							 
							
							
							
						 
						
							2023-09-30 20:46:57 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								dedb2a2399 
								
							 
						 
						
							
							
								
								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  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								8604c55de8 
								
							 
						 
						
							
							
								
								Kernel: Add API for RamDirectoryInodes to delete containing inodes  
							
							 
							
							
							
						 
						
							2023-09-30 19:22:30 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								e949e8550c 
								
							 
						 
						
							
							
								
								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  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								f953f3d3ff 
								
							 
						 
						
							
							
								
								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  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								db5d6a7f80 
								
							 
						 
						
							
							
								
								Kernel: Implement MAP_PRIVATE file mappings  
							
							 
							
							... 
							
							
							
							mmap() now supports mapping files with MAP_PRIVATE. 
							
						 
						
							2023-09-29 17:23:42 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								4a92f44cf6 
								
							 
						 
						
							
							
								
								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  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								603fc200e6 
								
							 
						 
						
							
							
								
								Kernel: Add some sanity assertions/functions  
							
							 
							
							
							
						 
						
							2023-09-29 02:03:19 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								c11e84b248 
								
							 
						 
						
							
							
								
								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  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								f4049be975 
								
							 
						 
						
							
							
								
								Kernel: Fix off by one error when calculating pages in range  
							
							 
							
							
							
						 
						
							2023-09-29 01:56:15 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								b51d2f5295 
								
							 
						 
						
							
							
								
								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  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								547eabb403 
								
							 
						 
						
							
							
								
								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