Bananymous
d4aa33b18b
Kernel: Implement TerminalDriver for Framebuffer device
...
Use this new FramebufferTerminalDriver for terminal instead of the
old VesaTerminalDriver. Only drawback with this is that framebuffer
device can only be intialized after DevFS is initialized.
2023-11-22 21:57:17 +02:00
Bananymous
4ba3a17af3
Kernel: Add more APIs to FramebufferDevice
2023-11-22 21:56:27 +02:00
Bananymous
e9d762892c
Kernel: Implement basic framebuffer device
...
This allows exposing framebuffer to userspace
2023-11-22 20:34:41 +02:00
Bananymous
d98782a10c
Bootloader: Add cache to ext2 inode data block indices
...
This reduces the number of read calls with current kernel size from
~1700 to ~700 (60% performance boots). Loading the kernel is now alot
faster.
2023-11-22 13:54:53 +02:00
Bananymous
f86c9584f9
Bootloader: add missing size directive
2023-11-21 19:11:48 +02:00
Bananymous
52807366bf
Kernel: Make Ext2 filesystem use BlockDevice instead of Partition
2023-11-21 15:20:24 +02:00
Bananymous
b437d4eb41
Kernel: TmpFS doesn't mark any functions as final
...
I didn't think these would be overloaded, but they are
2023-11-21 15:19:34 +02:00
Bananymous
8b7f3f1fb2
Kernel: Add common {read,write}_blocks() api to BlockDevice
2023-11-21 15:19:07 +02:00
Bananymous
c607f5385e
Kernel: Move Partition to its own file
2023-11-21 15:16:04 +02:00
Bananymous
543a8bd7c6
BAN: Add basic GUID data structure
2023-11-21 15:11:50 +02:00
Bananymous
5e9b21bdce
BuildSystem: Check value of BANAN_UEFI_BOOT with `if ((...)); then`
2023-11-21 11:53:50 +02:00
Bananymous
07b70ea7b4
BuildSystem: Add missing bootloader install script
2023-11-20 14:19:07 +02:00
Oskari Alaranta
0563643e1c
Merge pull request 'BuildSystem: custom mount directory for bananos image to avoid conflicts' ( #4 ) from Sinipelto/banan-os:main into main
...
Reviewed-on: #4
2023-11-20 14:16:58 +02:00
Sinipelto
d72db1f81c
BuildSystem: image sh
...
mount in build dir
Signed-off-by: Sinipelto <sinipelto@noreply.bananymous.com>
2023-11-20 14:12:35 +02:00
Sinipelto
6cfa56dcec
BuildSystem: image create sh
...
use banan build dir
Signed-off-by: Sinipelto <sinipelto@noreply.bananymous.com>
2023-11-20 14:11:29 +02:00
Sinipelto
f97922a2b5
Update script/image.sh
...
mount dir default value
Signed-off-by: Sinipelto <sinipelto@noreply.bananymous.com>
2023-11-20 13:28:53 +02:00
Sinipelto
566724d986
Update script/image-create.sh
...
custom mount dir
Signed-off-by: Sinipelto <sinipelto@noreply.bananymous.com>
2023-11-20 13:28:10 +02:00
Sinipelto
a7b1810aa2
Update script/image.sh
...
handle custom mount dir
Signed-off-by: Sinipelto <sinipelto@noreply.bananymous.com>
2023-11-20 13:24:15 +02:00
Sinipelto
a6a5c00763
Merge pull request 'update main' ( #1 ) from Bananymous/banan-os:main into main
...
Reviewed-on: Sinipelto/banan-os#1
2023-11-20 13:20:51 +02:00
Bananymous
f2397b775c
BuildSystem: Remove old bootloader target
...
And creating image now builds the bootloader
2023-11-20 00:56:06 +02:00
Bananymous
8b81406b81
Toolchain: Build full toolchain with one call to toolchain/build.sh
2023-11-20 00:56:06 +02:00
Bananymous
e2515c1109
Buildsystem: default bootloader is not my custom one
...
You can set BANAN_BOOTLOADER=GRUB to use grub instead. Image creation
does not convert disk image now automatically between bootloaders and
calling ./bos image-full is now required.
2023-11-18 17:18:03 +02:00
Bananymous
5293ae070d
Kernel: ProcFS inodes reflect processes ruid/rgid
...
setgid/setuid did not change the permissions of procfs inodes. This
made Shell launched by init not appear in meminfo.
2023-11-18 14:26:44 +02:00
Bananymous
6e2443ca72
Bootloader do some directory restructuring
2023-11-18 13:59:45 +02:00
Bananymous
a312d75bb2
Bootloader: Implement VESA video mode query and pass it to kernel
...
Kernel now gets framebuffer from bootloader. Framebuffer dimensions
and bpp are hardcoded in bootloader, but will probably be read from
config file at some point.
2023-11-17 22:45:35 +02:00
Bananymous
a554bd0fd8
Bootloader: Fix kernel memset to zero
2023-11-17 21:05:02 +02:00
Bananymous
f0d2a211ea
Bootloader add temporary initial command line
...
This will probably be read from some config file at some point
2023-11-17 20:38:38 +02:00
Bananymous
065eec430e
Kernel/Bootloader: banan-os can now be booted with my bootloader :D
2023-11-17 20:33:02 +02:00
Bananymous
5f4d81a502
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
41065d2f9a
Kernel: Don't calculate divisor in a for loop in ext2 inodes
2023-11-17 19:02:01 +02:00
Bananymous
3daf3d53a3
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
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