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  
				
					
						
							
							
								
								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 
							
						 
						
							
								29db8d0d40 
								
							 
						 
						
							
							
								
								BuildSystem: add cmake variable UEFI_BOOT  
							
							... 
							
							
							
							If this variable is defined in cmake, image will be build with esp
and booted with uefi. 
							
						 
						
							2023-10-16 01:44:54 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								5bf0f9742a 
								
							 
						 
						
							
							
								
								Toolchain: Build grub with efi capabilities  
							
							
							
						 
						
							2023-10-16 01:37:12 +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 
							
						 
						
							
								8c792f9c6d 
								
							 
						 
						
							
							
								
								Shell: Fix parsing $ with unknown character  
							
							
							
						 
						
							2023-10-12 22:24:27 +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 
							
						 
						
							
								744ff40ba0 
								
							 
						 
						
							
							
								
								BAN: Optional can now be constructed from another Optional  
							
							... 
							
							
							
							Also fix bug in release_value() where we did not call the
destructor. 
							
						 
						
							2023-10-11 20:10:06 +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