c1cac43f28
BuildSystem: Don't build lai with -Wstack-usage
...
Lai has two functions that trigger warnings on gcc. There isn't
really anything I can do about it, so just disable the warning
2023-12-01 01:22:53 +02:00
8564b59e14
image: Remove inheritance from Netbpm
...
This inheritance made no sense
2023-11-29 20:56:05 +02:00
fdb6dc94ba
Kernel: cast between inheritance with static_cast
...
using reinterpret_cast is not a good idea. preferably we would use
dynamic_cast, but that is not possible since kernel is compiled with
-fno-rtti.
2023-11-29 20:50:57 +02:00
327b330338
Kernel: Make internal framebuffer bpp constexpr defined in libc
2023-11-29 20:07:33 +02:00
7090388c70
cp: allow copying all files except directories
...
The old condition seemed odd. This allows taking screen shots by
copying the /dev/fb0.
2023-11-29 16:13:40 +02:00
ff550785a7
Userspace: Implement basic image rendering for Netbpm
...
You can now render Netbpm (P6) format image to framebuffer using
`image` command. I added basic test image to
/usr/share/images/sample.ppm
2023-11-29 16:11:35 +02:00
d7a3aca5d4
Kernel: Use the correct bpp when writing to framebuffer
2023-11-29 00:31:24 +02:00
056586486d
Shell: make clear use \e[2J instead of \e[J
...
This makes kernel to actually clear the full screen. If framebuffer
did not fit font exactly last row would be left partially uncleared
2023-11-28 23:55:37 +02:00
42a1d26d5b
Userspace: Implement basic test for framebuffer mmap
2023-11-28 23:52:22 +02:00
cc572af390
Kernel: Implement mmaping for framebuffer device
2023-11-28 23:51:56 +02:00
4275d2ce48
Kernel: Add framebuffer device to devfs
2023-11-28 23:51:28 +02:00
4a87d6052b
Kernel: Add API for implementing mmappable devices
2023-11-28 23:50:49 +02:00
d86ecf4f61
Kernel: Reading from negative offset in fb dev gives out info
2023-11-28 23:50:11 +02:00
09b7cb2f33
Kernel/LibC: Implement pread()
2023-11-28 23:47:30 +02:00
4c3da66c92
mmap-shared-test: Add test case for msync
2023-11-22 22:45:16 +02:00
60e755210c
Kernel/LibC: Implement very basic msync
2023-11-22 22:44:06 +02:00
ab9954fe73
Kernel: Delete the now obsolete VesaTerminalDriver
2023-11-22 21:59:11 +02:00
fd18071975
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
b88a7e0c6b
Kernel: Add more APIs to FramebufferDevice
2023-11-22 21:56:27 +02:00
cdf53f33f6
Kernel: Implement basic framebuffer device
...
This allows exposing framebuffer to userspace
2023-11-22 20:34:41 +02:00
25485069e6
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
f80bd040c8
Bootloader: add missing size directive
2023-11-21 19:11:48 +02:00
bc5e8add19
Kernel: Make Ext2 filesystem use BlockDevice instead of Partition
2023-11-21 15:20:24 +02:00
7a8fd6d04a
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
b749963b62
Kernel: Add common {read,write}_blocks() api to BlockDevice
2023-11-21 15:19:07 +02:00
6a068fb9f9
Kernel: Move Partition to its own file
2023-11-21 15:16:04 +02:00
19ed0cb9bf
BAN: Add basic GUID data structure
2023-11-21 15:11:50 +02:00
d08e876319
BuildSystem: Check value of BANAN_UEFI_BOOT with if ((...)); then
2023-11-21 11:53:50 +02:00
f2a6f213dd
BuildSystem: Add missing bootloader install script
2023-11-20 14:19:07 +02:00
f7a5bfbccd
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
6624821f55
BuildSystem: image sh
...
mount in build dir
Signed-off-by: Sinipelto <sinipelto@noreply.bananymous.com >
2023-11-20 14:12:35 +02:00
328acd894f
BuildSystem: image create sh
...
use banan build dir
Signed-off-by: Sinipelto <sinipelto@noreply.bananymous.com >
2023-11-20 14:11:29 +02:00
01b17eaadc
Update script/image.sh
...
mount dir default value
Signed-off-by: Sinipelto <sinipelto@noreply.bananymous.com >
2023-11-20 13:28:53 +02:00
fd16d6802c
Update script/image-create.sh
...
custom mount dir
Signed-off-by: Sinipelto <sinipelto@noreply.bananymous.com >
2023-11-20 13:28:10 +02:00
fed2738805
Update script/image.sh
...
handle custom mount dir
Signed-off-by: Sinipelto <sinipelto@noreply.bananymous.com >
2023-11-20 13:24:15 +02:00
9ad2ea8205
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
f8f7e2208f
BuildSystem: Remove old bootloader target
...
And creating image now builds the bootloader
2023-11-20 00:56:06 +02:00
8630f71f0c
Toolchain: Build full toolchain with one call to toolchain/build.sh
2023-11-20 00:56:06 +02:00
9e44e8be75
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
cadb56d8ba
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
cd646a1ab7
Bootloader do some directory restructuring
2023-11-18 13:59:45 +02:00
c9e9cfd361
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
ac96ea3370
Bootloader: Fix kernel memset to zero
2023-11-17 21:05:02 +02:00
ef53aab24a
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
cb5a5d3ed1
Kernel/Bootloader: banan-os can now be booted with my bootloader :D
2023-11-17 20:33:02 +02:00
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
95af728e39
Kernel: Don't calculate divisor in a for loop in ext2 inodes
2023-11-17 19:02:01 +02:00
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
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
641a2dec00
Bootloader: Load kernel to memory and jump to it!
2023-11-17 16:36:29 +02:00