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 
							
						 
						
							
								b5d873dfae 
								
							 
						 
						
							
							
								
								Kernel/LibELF: Map pages always as RW so kernel can write to them  
							
							... 
							
							
							
							Kernel doesn't seem to require W permissions to a page without UEFI
so this had not been found earlier. 
							
						 
						
							2023-10-30 12:14:12 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								d5e0900cbb 
								
							 
						 
						
							
							
								
								BAN: String now uses union for its sso storage  
							
							... 
							
							
							
							This allows String to shrink by 8 bytes since Variant's 8 index is
no longer stored in here.
This required me to make Strings max size one bit less, but that
should still be fine. There should never be strings with size of
over half of the computer's address space. 
							
						 
						
							2023-10-30 11:13:16 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								a63006afaf 
								
							 
						 
						
							
							
								
								Userspace: Add quick test for global ctors and dtors  
							
							
							
						 
						
							2023-10-30 11:11:10 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								7c6832cee4 
								
							 
						 
						
							
							
								
								LibC: implement and call __cxa_finalize() on exit()  
							
							... 
							
							
							
							This allows global destructors to be actually called 
							
						 
						
							2023-10-30 11:10: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 
							
						 
						
							
								f33c0bad99 
								
							 
						 
						
							
							
								
								Toolchain: Clone GCC and Binutils from git  
							
							... 
							
							
							
							This feels much cleaner than just downloading tar balls from
pregiven urls. Also patching works much better like this!
I added --disable-initfini-array since global constructors were
not called. 
							
						 
						
							2023-10-30 11:02:57 +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 
							
						 
						
							
								229082a1b2 
								
							 
						 
						
							
							
								
								BAN: Rewrite String with small string optimizations  
							
							... 
							
							
							
							String now holds a 15 byte sso buffer. I'm not sure what the size
should actually be but 15 will work for now. Maybe the sso buffer
should be contained in an union with one bit flag in size instead of
variant that uses extra 8 bytes for type index.
This patch buffs sizeof(String) from 24 bytes to 32 bytes on 64 bit.
I assume this is much better version than the old which had to make
allocation even for empty strings :D. 
							
						 
						
							2023-10-29 03:11:13 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								0db17e9d39 
								
							 
						 
						
							
							
								
								BAN: Add variant to ForwardList  
							
							... 
							
							
							
							I should be using the forward list more 
							
						 
						
							2023-10-29 02:28:55 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								2d34b2b8a3 
								
							 
						 
						
							
							
								
								BuildSystem: Add bos short hand for building with zsh completions :)  
							
							
							
						 
						
							2023-10-28 22:23:29 +03: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 
							
						 
						
							
								d98f84f9d3 
								
							 
						 
						
							
							
								
								BAN: Update ByteSpan API  
							
							... 
							
							
							
							Add ByteSpan::as_span<T> and const versions of as() and as_span()
require T to be const. 
							
						 
						
							2023-10-28 22:10:47 +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 
							
						 
						
							
								14d24bce98 
								
							 
						 
						
							
							
								
								All: Remove read only from ext2 filesystem :)  
							
							
							
						 
						
							2023-10-26 13:26:10 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								ea0d7156a4 
								
							 
						 
						
							
							
								
								rm: add option to remove recursively  
							
							
							
						 
						
							2023-10-26 02:32:49 +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 
							
						 
						
							
								81228d3401 
								
							 
						 
						
							
							
								
								Userspace: implement basic rm command  
							
							
							
						 
						
							2023-10-25 21:45:27 +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 
							
						 
						
							
								3566ddab00 
								
							 
						 
						
							
							
								
								BAN: ByteSpan can be sliced without specified size  
							
							... 
							
							
							
							This will give span with all remaining size after offset 
							
						 
						
							2023-10-25 21:41:11 +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 
							
						 
						
							
								c445ea6266 
								
							 
						 
						
							
							
								
								cp: abort copy if write fails  
							
							
							
						 
						
							2023-10-25 02:43:02 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								e685f38fd1 
								
							 
						 
						
							
							
								
								Userspace: Add basic chmod command  
							
							
							
						 
						
							2023-10-25 02:37:19 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								627b8cc140 
								
							 
						 
						
							
							
								
								Kernel/LibC: implement chmod syscall + libc wrapper  
							
							
							
						 
						
							2023-10-25 02:35:37 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								657f95d3f0 
								
							 
						 
						
							
							
								
								Userspace: Implement basic cp  
							
							... 
							
							
							
							This does not support any meaningful command line arguments but
is a good start. 
							
						 
						
							2023-10-25 00:07:25 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								07f8c972b3 
								
							 
						 
						
							
							
								
								Shell: Set get old termios earlier  
							
							... 
							
							
							
							I sourced the config file before getting old termios. Sourcing
updated the termios so old_termios was always in non canonical, non
echoing mode. 
							
						 
						
							2023-10-24 19:10:53 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								fc8a000e46 
								
							 
						 
						
							
							
								
								BAN: Fix bug of size of splice after slice()  
							
							... 
							
							
							
							I have no idea what was I doing before :D 
							
						 
						
							2023-10-24 17:23:45 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								6f6ccbfa04 
								
							 
						 
						
							
							
								
								meminfo: fix g++ warning for oob write  
							
							... 
							
							
							
							g++ doesn't realize that read can only return -1 
							
						 
						
							2023-10-24 16:50:21 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								c71ac588b2 
								
							 
						 
						
							
							
								
								BuildSystem: Fix bugs in new build system  
							
							... 
							
							
							
							I had not tested the new build system with clean toolchain build
but it seems to work now. 
							
						 
						
							2023-10-24 16:48:46 +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 
							
						 
						
							
								fb801044ec 
								
							 
						 
						
							
							
								
								BuildSystem: Match README.md with the new buildsystem  
							
							
							
						 
						
							2023-10-24 11:56:00 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								ce87e0a605 
								
							 
						 
						
							
							
								
								BuildSystem: Rewrite whole build system structure  
							
							... 
							
							
							
							Now you have to use script/build.sh for building and running banan-os 
							
						 
						
							2023-10-24 11:56:00 +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 
							
						 
						
							
								71cad2fc38 
								
							 
						 
						
							
							
								
								BAN: Implement ByteSpan  
							
							... 
							
							
							
							This is a span over exisiting containers/data types. I'm not too
happy with the constructors and assignment operators, but they will
work for now 
							
						 
						
							2023-10-20 04:59:29 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								61c7a68f4a 
								
							 
						 
						
							
							
								
								BAN: add helper to cast Span<T> to Span<const T>  
							
							
							
						 
						
							2023-10-20 04:59:08 +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