Bananymous
ec56e9c6f1
Kernel: Don't use multiboot2 explicitly. Parse it to common structure
...
This allows support of multiple different bootloaders
2023-11-17 18:54:59 +02:00
Bananymous
07ae1bbf34
Bootloader: Load kernel to memory and jump to it!
2023-11-17 16:36:29 +02:00
Bananymous
03b80ed113
Bootloader enter unreal mode at the start of stage2
2023-11-17 14:22:21 +02:00
Bananymous
407a7b80c5
Bootloader: Fix getting command line
2023-11-17 13:17:44 +02:00
Bananymous
8b4f169d0f
Bootloader: implement reading from inode
2023-11-17 13:17:44 +02:00
Bananymous
6f9b3ab5de
Bootloader: add support for indirect inode blocks
2023-11-16 13:34:21 +02:00
Bananymous
aa7a8124ce
Bootloader: Add helpers for printing n bit hexadecimal numbers
2023-11-16 13:30:01 +02:00
Bananymous
a9412aa741
Bootloader: Implement basic ext2 filesystem
...
This can search for files in an ext2 filesystem. Only 12 blocks
are currently supported.
Now only ELF loading is missing for loading the actual kernel!
2023-11-15 16:58:26 +02:00
Bananymous
8aab3a62cc
Bootloader: Build with cmake instead of custom script
2023-11-14 03:44:47 +02:00
Bananymous
b0b39c56ba
Bootloader: Split bootloader into multiple files
...
This cleans up the code since bootloader is starting to near 1k lines
2023-11-14 03:27:52 +02:00
Bananymous
055b1a2a1a
Bootloader move bootloader code from arch directory
...
The os itself only supports x86 so this won't matter. x86_64 and i386
use the same bootloader assembly.
2023-11-13 21:42:58 +02:00
Bananymous
d99ef11e48
Bootloader: installer now uses banan os elf headers intead of Linux's
2023-11-13 21:40:15 +02:00
Bananymous
732eb9da41
fixup
2023-11-13 21:39:48 +02:00
Bananymous
8faad47843
LibELF: Remove 2 32 bit types that don't exist
2023-11-13 21:39:39 +02:00
Bananymous
aa4f3046ff
Bootloader: Find root partition from GPT header
2023-11-13 18:55:48 +02:00
Bananymous
b4775fbe75
Bootloader: installer now patches GPT GUID's
2023-11-13 18:53:55 +02:00
Bananymous
8a5753b0fe
Bootloader: Add API to create GUID from string
2023-11-13 18:52:41 +02:00
Bananymous
1a75262b04
BuildSystem: add bootloader target
...
Use this target to run banan-os with custom bootloader
2023-11-12 01:50:30 +02:00
Bananymous
39801e51da
BuildSystem: add proper clean target
2023-11-12 01:14:42 +02:00
Bananymous
6e3f176457
ls: print link targets when listing files
2023-11-11 23:17:18 +02:00
Bananymous
447da99f0b
Kernel/LibC: Implement readlink and readlinkat
2023-11-11 23:16:52 +02:00
Bananymous
a3a287f5ca
Bootloader: Continue work on bootloader
...
Bootloader can now get the memory map and read cmdline from user.
Now 'just' video mode query, ext2 and ELF parsing are needed :D
2023-11-11 22:49:00 +02:00
Bananymous
c47f6a78bc
Bootloader: Start work on bootloader
...
I wrote a fast first stage bootloader and a installer to put it into
a disk image.
2023-11-09 22:42:47 +02:00
Bananymous
430a006acf
Toolchain: Fix typo when setting make flags
...
I defaultet MAKEFLAGS to -j which will launch processes in parallel
without any limit.
2023-11-09 21:57:45 +02:00
Bananymous
845ed66e5e
Toolchain: add em=gnu to gas. This allows using / in expressions
2023-11-09 21:43:13 +02:00
Bananymous
2191ca46bb
Kernel: Make TmpFS enforce max page count.
2023-11-07 16:13:21 +02:00
Bananymous
cec04a2858
Kernel: Remove now obsolete RamFS
...
Everything is using now the better TmpFS which uses physical pages
for page allocation instead of the static kmalloc memory.
2023-11-07 16:07:11 +02:00
Bananymous
b87351f6d5
Kernel: Make DevFS use the new and better TmpFS instead of RamFS
2023-11-07 16:05:05 +02:00
Bananymous
464737fbe9
Kernel: Add method to TmpFS for looping over all (cached) inodes
2023-11-07 16:04:34 +02:00
Bananymous
8b4f661acb
Kernel: Lock TmpFS in all its methods
2023-11-07 16:03:52 +02:00
Bananymous
27963febc0
Kernel: Implement symlinks to TmpFS
2023-11-07 15:59:50 +02:00
Bananymous
6d4b684219
Kernel: Make PS/2 keyboard wait until interrupts are enabled
2023-11-07 15:58:50 +02:00
Bananymous
670c787af3
BuildSystem: Fix temporary sysroot creation in toolchain compilation
2023-11-07 14:16:49 +02:00
Bananymous
a0fbf18d3b
meminfo: better format for files without permissions
2023-11-07 02:41:01 +02:00
Bananymous
1acc0abf2e
Kernel: Make unlinking from /proc always fail with EPERM
2023-11-07 02:40:27 +02:00
Bananymous
c20f773c5d
Kernel: /tmp is now TmpFS instead of RamFS
2023-11-07 02:36:22 +02:00
Bananymous
a46b2f43d9
Kernel: Make ProcFS use the new TmpFS internally
2023-11-07 02:35:44 +02:00
Bananymous
a20f8607de
Kernel: Implement TmpFS Inode unlinking and deletion
2023-11-06 21:49:12 +02:00
Bananymous
af330f7b8e
Kernel: TmpFS directory inodes now iterate over only valid entries
2023-11-06 21:41:51 +02:00
Bananymous
e33b3bcdff
Kernel: Fix TmpFS directory entry enumeration early return
2023-11-06 21:06:10 +02:00
Bananymous
181d139c7d
Kernel: Fix ext2 directory listing for big directories
2023-11-06 21:05:58 +02:00
Bananymous
639fd8804c
Kernel: Implement TmpFS directory listing
2023-11-06 21:05:58 +02:00
Bananymous
cbb2c37e00
Kernel: Implement TmpFS inode chmod
2023-11-06 20:11:34 +02:00
Bananymous
ab4f033385
Kernel: Cleanup TmpFS code and block access doesn't require allocs
...
TmpFS blocks are now accessed with a simple wrapper
2023-11-06 20:07:09 +02:00
Bananymous
1ed08f62d3
Kernel: TmpInode blocks are on demand allocated
2023-11-06 10:44:37 +02:00
Bananymous
8164c15b6c
Kernel: Implement read/write/truncate for TmpFileInode
2023-11-05 02:28:43 +02:00
Bananymous
f9bf47ab30
Kernel: Start work on proper TmpFS in Heap instead of kmalloc memory
2023-11-04 18:18:45 +02:00
Bananymous
e5ffadb109
Kernel: Add better APIs for fast page
2023-11-04 18:13:16 +02:00
Bananymous
061d10e635
BAN: Update bytespan -> span API
2023-11-04 18:12:46 +02:00
Bananymous
6d899aa6ce
BuildSystem: using sysroot doesn't need root privileges anymore!
...
Sysroot is now created with fakeroot. This allows root access to be
only needed for disk image creation, since it uses loopback devices.
2023-11-04 17:50:43 +02:00