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  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								7ba72b1507 
								
							 
						 
						
							
							
								
								Kernel: Fix PCI BarRegion offsets  
							
							... 
							
							
							
							Calculations accidentally assumed bar registers are 8 byte instead
of 4. 
							
						 
						
							2023-10-08 02:50:23 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								f21d4e794c 
								
							 
						 
						
							
							
								
								Kernel: Rework whole ATA driver structure  
							
							... 
							
							
							
							Make ATA driver more compatible when we are adding SATA support 
							
						 
						
							2023-10-08 02:50:23 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								27eb5af6f0 
								
							 
						 
						
							
							
								
								Kernel: Rework interrupt mechanism  
							
							... 
							
							
							
							All interruptrable classes now inherit from Interruptable which
has methdo handle_irq which is called on a interrupt. 
							
						 
						
							2023-10-05 18:53:45 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								68a913c838 
								
							 
						 
						
							
							
								
								BuildSystem: Don't strip kernel  
							
							
							
						 
						
							2023-10-05 18:52:44 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								a084db6817 
								
							 
						 
						
							
							
								
								BuildSystem: Try to set compiler only if it exists  
							
							
							
						 
						
							2023-10-05 18:52:05 +03:00  
				
					
						
							
							
								 
						
							
								bc4d272c4f 
								
							 
						 
						
							
							
								
								cat: Use write() instead of puts to print file contents  
							
							... 
							
							
							
							This allows printing files that contain null bytes behave more like
you would expect 
							
						 
						
							2023-10-04 22:16:19 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								57605c2b3e 
								
							 
						 
						
							
							
								
								meminfo: Print allocated physical memory percentage  
							
							
							
						 
						
							2023-10-03 10:39:27 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								1cd99631e1 
								
							 
						 
						
							
							
								
								Shell: source $HOME/.shellrc if found on Shell startup  
							
							
							
						 
						
							2023-10-03 10:39:27 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								f67ed9a66e 
								
							 
						 
						
							
							
								
								Shell: Implement sourcing scripts  
							
							
							
						 
						
							2023-10-03 10:24:10 +03:00  
				
					
						
							
							
								 
						
							
								6c11dac113 
								
							 
						 
						
							
							
								
								meminfo: Add process command line to the output  
							
							
							
						 
						
							2023-09-30 23:17:31 +03:00  
				
					
						
							
							
								 
						
							
								39bc6c43dc 
								
							 
						 
						
							
							
								
								Kernel: Expose command line and environment to /proc  
							
							
							
						 
						
							2023-09-30 23:01:33 +03:00  
				
					
						
							
							
								 
						
							
								5ee3506474 
								
							 
						 
						
							
							
								
								Kernel: Add physical memory info to /proc/{pid}/meminfo  
							
							
							
						 
						
							2023-09-30 22:11:45 +03:00  
				
					
						
							
							
								 
						
							
								c5119cda97 
								
							 
						 
						
							
							
								
								Userspace: Add meminfo command that parses /proc/{pid}/meminfo  
							
							
							
						 
						
							2023-09-30 21:20:53 +03:00  
				
					
						
							
							
								 
						
							
								785de5f9b9 
								
							 
						 
						
							
							
								
								Kernel: /proc/{pid}/meminfo now reports per process memory usage  
							
							
							
						 
						
							2023-09-30 21:20:18 +03:00  
				
					
						
							
							
								 
						
							
								8f630a97df 
								
							 
						 
						
							
							
								
								Kernel: Add procfs that contains only pids  
							
							
							
						 
						
							2023-09-30 21:19:36 +03:00  
				
					
						
							
							
								 
						
							
								56bb419884 
								
							 
						 
						
							
							
								
								Kernel: All process' memory areas can report their virtual mem usage  
							
							
							
						 
						
							2023-09-30 21:15:46 +03:00  
				
					
						
							
							
								 
						
							
								d7a00e8cc2 
								
							 
						 
						
							
							
								
								LibC: Implement stpcpy since gcc seems to need it  
							
							... 
							
							
							
							gcc seems to optimize some calls to strcpy to stpcpy 
							
						 
						
							2023-09-30 20:58:19 +03:00  
				
					
						
							
							
								 
						
							
								9f0797047f 
								
							 
						 
						
							
							
								
								Kernel/LibC: dirent now contains file type  
							
							
							
						 
						
							2023-09-30 20:46:57 +03:00  
				
					
						
							
							
								 
						
							
								e8a0eeb0b4 
								
							 
						 
						
							
							
								
								Kernel: RamInode verifies that you have not specified mode type  
							
							... 
							
							
							
							This is kinda weird behaviour, but it ensures the user cannot
create e.g. CharacterDevice with mode having IFLNK.
The Inode overrider is the only one setting the mode. 
							
						 
						
							2023-09-30 20:46:57 +03:00  
				
					
						
							
							
								 
						
							
								3e5645d453 
								
							 
						 
						
							
							
								
								Kernel: Add API for RamDirectoryInodes to delete containing inodes  
							
							
							
						 
						
							2023-09-30 19:22:30 +03:00  
				
					
						
							
							
								 
						
							
								2301654c4e 
								
							 
						 
						
							
							
								
								Kernel: Rework RamInode API  
							
							... 
							
							
							
							RamInode is now a general RamInode with no data. RamFileInode is now
a inode for regular files. This is much cleaner and more intuitive
since there is no reason for most non-regular inodes to hold data
Vector. 
							
						 
						
							2023-09-30 19:22:30 +03:00  
				
					
						
							
							
								 
						
							
								0b93fce923 
								
							 
						 
						
							
							
								
								BAN: Remove endianness functions from Math  
							
							... 
							
							
							
							There is now a Endianness.h for these. The functions were super slow. 
							
						 
						
							2023-09-29 19:38:07 +03:00  
				
					
						
							
							
								 
						
							
								6304388100 
								
							 
						 
						
							
							
								
								Shell: Quick fix to not freeze for multiple seconds  
							
							... 
							
							
							
							When sync is writing to disk, it reserves whole disk to itself.
This commit makes Shell to read username only once from getpwuid().
We used to get username every time prompt was printed. 
							
						 
						
							2023-09-29 19:20:48 +03:00  
				
					
						
							
							
								 
						
							
								96b1186c19 
								
							 
						 
						
							
							
								
								Userspace: Implement basic test for MAP_SHARED  
							
							
							
						 
						
							2023-09-29 18:59:37 +03:00  
				
					
						
							
							
								 
						
							
								43c23db4a6 
								
							 
						 
						
							
							
								
								Kernel: Implement MAP_SHARED for regular files  
							
							... 
							
							
							
							Every inode holds a weak pointer to shared file data. This contains
physical addresses of pages for inode file data. Physical addresses
are allocated and read on demand.
When last shared mapping is unmapped. The inodes shared data is freed
and written to the inode. 
							
						 
						
							2023-09-29 18:59:20 +03:00  
				
					
						
							
							
								 
						
							
								8ff4e1f8c8 
								
							 
						 
						
							
							
								
								Kernel: Don't write to stat_loc on SYS_WAIT if it is null  
							
							
							
						 
						
							2023-09-29 18:31:44 +03:00  
				
					
						
							
							
								 
						
							
								b57811b371 
								
							 
						 
						
							
							
								
								Userspace: Implement cat-mmap  
							
							... 
							
							
							
							This behaves exactly as cat, but uses mmap to read the file. 
							
						 
						
							2023-09-29 17:24:55 +03:00  
				
					
						
							
							
								 
						
							
								23f429e23b 
								
							 
						 
						
							
							
								
								LibC: Fix mmap()  
							
							... 
							
							
							
							mmap() did not pass fildes to the syscall structure. 
							
						 
						
							2023-09-29 17:24:21 +03:00  
				
					
						
							
							
								 
						
							
								7b1c573ad0 
								
							 
						 
						
							
							
								
								Kernel: Implement MAP_PRIVATE file mappings  
							
							... 
							
							
							
							mmap() now supports mapping files with MAP_PRIVATE. 
							
						 
						
							2023-09-29 17:23:42 +03:00  
				
					
						
							
							
								 
						
							
								4ee759aa3b 
								
							 
						 
						
							
							
								
								Kernel: Implement new abstract MemoryRegion  
							
							... 
							
							
							
							MemoryBackedRegion now inherits from this and is used for private
anonymous mappigs. This will make shared mappings and file backed
mappings much easier to implement. 
							
						 
						
							2023-09-29 16:18:23 +03:00  
				
					
						
							
							
								 
						
							
								48096b18c2 
								
							 
						 
						
							
							
								
								LibC: mmap returns MAP_FAILED instead of NULL  
							
							
							
						 
						
							2023-09-29 10:38:08 +03:00  
				
					
						
							
							
								 
						
							
								06af9f3187 
								
							 
						 
						
							
							
								
								LibELF: Optimize LoadableELF::clone() memory usage  
							
							... 
							
							
							
							We only clone mapped pages that have been marked as writeble.
Read/execute only pages will be exactly as in the file itself and
can be demand paged also :D 
							
						 
						
							2023-09-29 02:05:12 +03:00  
				
					
						
							
							
								 
						
							
								16eb055737 
								
							 
						 
						
							
							
								
								Kernel: Add some sanity assertions/functions  
							
							
							
						 
						
							2023-09-29 02:03:19 +03:00  
				
					
						
							
							
								 
						
							
								a34f2e6e0d 
								
							 
						 
						
							
							
								
								Kernel: Use the new on demand ELF structure  
							
							... 
							
							
							
							All executable files are now read from disk and paged on demand.
This was a big rewrite of the old ELF library but in the end
everything seems much cleaner, since all the old functionality was
not actually needed for execution.
I have to do some measurements, but I feel like memory usage dropped
quite a bit after this change. 
							
						 
						
							2023-09-29 02:00:10 +03:00  
				
					
						
							
							
								 
						
							
								8357dd7b3d 
								
							 
						 
						
							
							
								
								LibELF: Implement new ELF structure  
							
							... 
							
							
							
							This structure is used for demand pagable execution. It handles all
memory allocation and file reading. 
							
						 
						
							2023-09-29 01:58:03 +03:00  
				
					
						
							
							
								 
						
							
								5bdf7d313f 
								
							 
						 
						
							
							
								
								LibELF: Add types for native executable  
							
							
							
						 
						
							2023-09-29 01:56:57 +03:00  
				
					
						
							
							
								 
						
							
								5b6569f2c9 
								
							 
						 
						
							
							
								
								Kernel: Fix off by one error when calculating pages in range  
							
							
							
						 
						
							2023-09-29 01:56:15 +03:00  
				
					
						
							
							
								 
						
							
								58f4ed22c4 
								
							 
						 
						
							
							
								
								Kernel: Don't map interrupt stack as userspace accessable  
							
							
							
						 
						
							2023-09-28 21:58:24 +03:00  
				
					
						
							
							
								 
						
							
								245f58cc3a 
								
							 
						 
						
							
							
								
								Kernel: mmap regions are now demand paged  
							
							... 
							
							
							
							mmap will not actually take any memory unless you use the given
memory. 
							
						 
						
							2023-09-28 21:07:14 +03:00  
				
					
						
							
							
								 
						
							
								15cd59b8ce 
								
							 
						 
						
							
							
								
								LibC: Fix a bug in malloc  
							
							... 
							
							
							
							You could not allocate with size equal to one of the pool sizes. 
							
						 
						
							2023-09-28 21:05:27 +03:00