Bananymous
cb5a5d3ed1
Kernel/Bootloader: banan-os can now be booted with my bootloader :D
2023-11-17 20:33:02 +02:00
Bananymous
d1444761a3
Bootloader: Clear screen, better memcpy
...
Clear screen before jumping to kernel. Memcpy now uses ebx as offset
register, so only one register has to updated every loop
2023-11-17 20:31:42 +02:00
Bananymous
95af728e39
Kernel: Don't calculate divisor in a for loop in ext2 inodes
2023-11-17 19:02:01 +02:00
Bananymous
24d87acec4
Kernel: Serial now uses random size for some serial ports
...
If the serial port doesn't repond with a size, just use a random
one. There is no reason to ditch the whole output if you cannot
determine its size.
2023-11-17 18:56:02 +02:00
Bananymous
84040e64b8
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
641a2dec00
Bootloader: Load kernel to memory and jump to it!
2023-11-17 16:36:29 +02:00
Bananymous
9e69053e64
Bootloader enter unreal mode at the start of stage2
2023-11-17 14:22:21 +02:00
Bananymous
1a415a380a
Bootloader: Fix getting command line
2023-11-17 13:17:44 +02:00
Bananymous
a19c5c672b
Bootloader: implement reading from inode
2023-11-17 13:17:44 +02:00
Bananymous
3bcbc7c018
Bootloader: add support for indirect inode blocks
2023-11-16 13:34:21 +02:00
Bananymous
b371abade5
Bootloader: Add helpers for printing n bit hexadecimal numbers
2023-11-16 13:30:01 +02:00
Bananymous
9d4101e0c5
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
c791a1c200
Bootloader: Build with cmake instead of custom script
2023-11-14 03:44:47 +02:00
Bananymous
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
Bananymous
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
Bananymous
cbb9422ee0
Bootloader: installer now uses banan os elf headers intead of Linux's
2023-11-13 21:40:15 +02:00
Bananymous
2c2ee6636f
fixup
2023-11-13 21:39:48 +02:00
Bananymous
3beebd721f
LibELF: Remove 2 32 bit types that don't exist
2023-11-13 21:39:39 +02:00
Bananymous
048bbf874a
Bootloader: Find root partition from GPT header
2023-11-13 18:55:48 +02:00
Bananymous
d2970b5b8d
Bootloader: installer now patches GPT GUID's
2023-11-13 18:53:55 +02:00
Bananymous
0004d3b435
Bootloader: Add API to create GUID from string
2023-11-13 18:52:41 +02:00
Bananymous
d5aa08baa5
BuildSystem: add bootloader target
...
Use this target to run banan-os with custom bootloader
2023-11-12 01:50:30 +02:00
Bananymous
5362962d9a
BuildSystem: add proper clean target
2023-11-12 01:14:42 +02:00
Bananymous
bfe6d60e9e
ls: print link targets when listing files
2023-11-11 23:17:18 +02:00
Bananymous
c084ce8b01
Kernel/LibC: Implement readlink and readlinkat
2023-11-11 23:16:52 +02:00
Bananymous
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
Bananymous
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
Bananymous
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
Bananymous
8e5224ef53
Toolchain: add em=gnu to gas. This allows using / in expressions
2023-11-09 21:43:13 +02:00
Bananymous
fda0dfec30
Kernel: Make TmpFS enforce max page count.
2023-11-07 16:13:21 +02:00
Bananymous
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
Bananymous
5044810451
Kernel: Make DevFS use the new and better TmpFS instead of RamFS
2023-11-07 16:05:05 +02:00
Bananymous
147cd93ed3
Kernel: Add method to TmpFS for looping over all (cached) inodes
2023-11-07 16:04:34 +02:00
Bananymous
07b5920f3f
Kernel: Lock TmpFS in all its methods
2023-11-07 16:03:52 +02:00
Bananymous
2bcf934389
Kernel: Implement symlinks to TmpFS
2023-11-07 15:59:50 +02:00
Bananymous
1405712f26
Kernel: Make PS/2 keyboard wait until interrupts are enabled
2023-11-07 15:58:50 +02:00
Bananymous
a8ffe6b3a6
BuildSystem: Fix temporary sysroot creation in toolchain compilation
2023-11-07 14:16:49 +02:00
Bananymous
613d6640fe
meminfo: better format for files without permissions
2023-11-07 02:41:01 +02:00
Bananymous
885ed218fa
Kernel: Make unlinking from /proc always fail with EPERM
2023-11-07 02:40:27 +02:00
Bananymous
b1f431d962
Kernel: /tmp is now TmpFS instead of RamFS
2023-11-07 02:36:22 +02:00
Bananymous
06e176e6b9
Kernel: Make ProcFS use the new TmpFS internally
2023-11-07 02:35:44 +02:00
Bananymous
b7771e95ac
Kernel: Implement TmpFS Inode unlinking and deletion
2023-11-06 21:49:12 +02:00
Bananymous
3e33fc156b
Kernel: TmpFS directory inodes now iterate over only valid entries
2023-11-06 21:41:51 +02:00
Bananymous
438f01a856
Kernel: Fix TmpFS directory entry enumeration early return
2023-11-06 21:06:10 +02:00
Bananymous
5dd8189048
Kernel: Fix ext2 directory listing for big directories
2023-11-06 21:05:58 +02:00
Bananymous
ff6b127c3a
Kernel: Implement TmpFS directory listing
2023-11-06 21:05:58 +02:00
Bananymous
c3ed700324
Kernel: Implement TmpFS inode chmod
2023-11-06 20:11:34 +02:00
Bananymous
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
Bananymous
c92c1b8e2b
Kernel: TmpInode blocks are on demand allocated
2023-11-06 10:44:37 +02:00
Bananymous
c27d20abd8
Kernel: Implement read/write/truncate for TmpFileInode
2023-11-05 02:28:43 +02:00