bd3f2bb61c
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
7ca9a961b3
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
cbb9422ee0
Bootloader: installer now uses banan os elf headers intead of Linux's
2023-11-13 21:40:15 +02:00
2c2ee6636f
fixup
2023-11-13 21:39:48 +02:00
3beebd721f
LibELF: Remove 2 32 bit types that don't exist
2023-11-13 21:39:39 +02:00
048bbf874a
Bootloader: Find root partition from GPT header
2023-11-13 18:55:48 +02:00
d2970b5b8d
Bootloader: installer now patches GPT GUID's
2023-11-13 18:53:55 +02:00
0004d3b435
Bootloader: Add API to create GUID from string
2023-11-13 18:52:41 +02:00
d5aa08baa5
BuildSystem: add bootloader target
...
Use this target to run banan-os with custom bootloader
2023-11-12 01:50:30 +02:00
5362962d9a
BuildSystem: add proper clean target
2023-11-12 01:14:42 +02:00
bfe6d60e9e
ls: print link targets when listing files
2023-11-11 23:17:18 +02:00
c084ce8b01
Kernel/LibC: Implement readlink and readlinkat
2023-11-11 23:16:52 +02:00
381cfdad77
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
cfc7313451
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
bc8fd1285f
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
8e5224ef53
Toolchain: add em=gnu to gas. This allows using / in expressions
2023-11-09 21:43:13 +02:00
fda0dfec30
Kernel: Make TmpFS enforce max page count.
2023-11-07 16:13:21 +02:00
d6ae1bcf36
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
5044810451
Kernel: Make DevFS use the new and better TmpFS instead of RamFS
2023-11-07 16:05:05 +02:00
147cd93ed3
Kernel: Add method to TmpFS for looping over all (cached) inodes
2023-11-07 16:04:34 +02:00
07b5920f3f
Kernel: Lock TmpFS in all its methods
2023-11-07 16:03:52 +02:00
2bcf934389
Kernel: Implement symlinks to TmpFS
2023-11-07 15:59:50 +02:00
1405712f26
Kernel: Make PS/2 keyboard wait until interrupts are enabled
2023-11-07 15:58:50 +02:00
a8ffe6b3a6
BuildSystem: Fix temporary sysroot creation in toolchain compilation
2023-11-07 14:16:49 +02:00
613d6640fe
meminfo: better format for files without permissions
2023-11-07 02:41:01 +02:00
885ed218fa
Kernel: Make unlinking from /proc always fail with EPERM
2023-11-07 02:40:27 +02:00
b1f431d962
Kernel: /tmp is now TmpFS instead of RamFS
2023-11-07 02:36:22 +02:00
06e176e6b9
Kernel: Make ProcFS use the new TmpFS internally
2023-11-07 02:35:44 +02:00
b7771e95ac
Kernel: Implement TmpFS Inode unlinking and deletion
2023-11-06 21:49:12 +02:00
3e33fc156b
Kernel: TmpFS directory inodes now iterate over only valid entries
2023-11-06 21:41:51 +02:00
438f01a856
Kernel: Fix TmpFS directory entry enumeration early return
2023-11-06 21:06:10 +02:00
5dd8189048
Kernel: Fix ext2 directory listing for big directories
2023-11-06 21:05:58 +02:00
ff6b127c3a
Kernel: Implement TmpFS directory listing
2023-11-06 21:05:58 +02:00
c3ed700324
Kernel: Implement TmpFS inode chmod
2023-11-06 20:11:34 +02:00
ba2f09a4e6
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
c92c1b8e2b
Kernel: TmpInode blocks are on demand allocated
2023-11-06 10:44:37 +02:00
c27d20abd8
Kernel: Implement read/write/truncate for TmpFileInode
2023-11-05 02:28:43 +02:00
99d7b0917d
Kernel: Start work on proper TmpFS in Heap instead of kmalloc memory
2023-11-04 18:18:45 +02:00
8b4e129fc1
Kernel: Add better APIs for fast page
2023-11-04 18:13:16 +02:00
240d57f4b4
BAN: Update bytespan -> span API
2023-11-04 18:12:46 +02:00
f6c312a6b3
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
ca34ece8ef
BAN: Update ASSERT api
...
its now much harder to mix < with <= and > with >=
2023-11-02 00:01:12 +02:00
71ecdd7245
Kernel: Canonicalize vaddr before using it
2023-10-30 19:20:17 +02:00
b80b59ce24
Kernel: Remove unused externs in kernel.cpp
2023-10-30 19:09:31 +02:00
640d27748f
Kernel: Temporarily force FileBackedRegion mappings writable
...
Now that write-protect bit is enabled this is neccessary.
2023-10-30 19:08:33 +02:00
42772611ce
Kernel: Add fast page to page table
...
Add "fast page" to KERNEL_OFFSET. This is always present in page
tables and only requires changing the page table entry to map. This
requires no interrupts since it should only be for very operations
like memcpy.
I used to map all temporary mappings to vaddr 0, but this is much
better. C++ standard always says that nullptr access is undefined
and this gets rid of it.
Fixed some bugs I found along the way
2023-10-30 19:02:09 +02:00
6e676ee8c5
Kernel: Remove GeneralAllocator since it was not used
2023-10-30 18:13:17 +02:00
066fb44105
Kernel: Allow offsetof with packed fields
...
This is not standard C++ but should be fine with my toolchain.
2023-10-30 17:51:18 +02:00
3f638f125e
Kernel: panic takes arguments as rvalue references
2023-10-30 16:22:02 +02:00
35f8f44510
Kernel: Fix ext2 small link deallocation
...
Also fix deallocation bug
2023-10-30 16:22:02 +02:00