Commit Graph

15 Commits

Author SHA1 Message Date
24272c57ef Almost there! 2022-10-13 21:55:51 +02:00
83982a24e2 add a comment 2022-10-13 21:21:02 +02:00
ee712432bd Some more multiple address space stuff
This page-faults. This is because the memory where the ELF should be is all zeroes, which the CPU tries to interpret.
2022-10-13 21:14:39 +02:00
9cddf9485d ELFLoader: Make check_elf_image return how much memory the executable will use on success 2022-10-12 19:20:14 +02:00
d4c4c0177d compilation fix :) 2022-10-12 18:37:32 +02:00
3ac9fed23a ELFLoader: Add check_elf_image() and check_elf_image_from_filesystem()
These two functions validate an image, without actually loading it. Very useful for exec!
2022-10-12 18:37:00 +02:00
261fc73146 ELFLoader: Read the ELF file header by header using the VFS
Instead of just allocating one big redundant blob of memory and reading into it, then having to free it...
2022-10-12 18:23:52 +02:00
4e3ef9593d Scheduler: Move ELF image freeing to ELFLoader 2022-10-12 17:08:17 +02:00
4768d5fc12 ELFLoader: Consider the offset when calculating how many pages to map
If a section needs to be mapped at 0x50f50 and its size is 0x200, then that address space exceeds one page.
But since 0x200 is less than one page, we only map one page.

If we count the offset, 0xf50 + 0x200 need two pages. So we can map the right amount of memory.
2022-10-12 14:40:06 +02:00
97eacc027e Kernel: Use PAGE_SIZE in more places 2022-10-12 13:05:57 +02:00
0131193379 ELFLoader, Scheduler: Transition to use VFS
We should start to drop the old InitRD API, which only allows for files to be loaded from the initrd, and which forces pathnames to be relative (bin/init)
With VFS, we can load any kind of file from any kind of filesystem, and using paths that make sense (/bin/init)
2022-10-11 19:33:48 +02:00
dc389da74e Implement an ELFImage struct
This struct allows us to keep track of what memory is used by the loaded executable. For some reason, freeing this memory when the task exits triggers a kernel page fault, so I'm not doing that right now.
2022-10-07 17:54:05 +02:00
594d79143e Kernel: enable -Wconversion 2022-10-06 17:13:34 +02:00
c6b044acab ELFLoader: show permissions of loadable segment 2022-10-02 17:10:24 +02:00
6e6cf5b2b0 Add an ELF Loader!! 2022-10-01 12:15:56 +02:00