Commit Graph

1284 Commits

Author SHA1 Message Date
Bananymous ab44c60d7e LibC: fix fgets when reading empty line 2023-12-05 07:46:14 +02:00
Bananymous 52309413af Shell: Verify that command exists before executing it
This prevents page fault somewhere when executing non-existing
commands.
2023-12-04 22:57:27 +02:00
Bananymous 657debc8c0 AOC2023: remove unnecessary loop 2023-12-04 17:54:10 +02:00
Bananymous 35999a5ecc AOC2023: implement day4 2023-12-04 17:51:27 +02:00
Bananymous b0ac571abe AOC2023: implement day3
Solution to second puzzle is not optimal, it definately should be
O(1) space, but I didn't want to think about it.
2023-12-03 17:07:09 +02:00
Bananymous ba0981c0e3 AOC2023: implement day2 2023-12-02 16:10:37 +02:00
Bananymous 24c79d72cd AOC2023: Cleanup day1 code 2023-12-01 13:31:55 +02:00
Bananymous 6dcab1491e AOC2023: implement day1 2023-12-01 12:38:01 +02:00
Bananymous 8f3659dcb9 AOC2023: update buildsystem 2023-12-01 12:38:01 +02:00
Bananymous f1c2284512 Kernel: Fix keyboard layout for underscore 2023-12-01 12:31:16 +02:00
Bananymous 2188dc2e1c Userspace: Prepare aoc2023 environment :) 2023-12-01 01:22:53 +02:00
Bananymous ff83c52c89 init: set default termios on every username prompt
Before if e.g. Shell crashed init would have broken termios
2023-12-01 01:22:53 +02:00
Bananymous 1cfab4ae04 BuildSystem/Kernel: Enable -Wextra and -Werror in kernel
Only needed to fix some unused variable bugs
2023-12-01 01:22:53 +02:00
Bananymous 2ac28cba6e 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
Bananymous 547aeb0170 image: Remove inheritance from Netbpm
This inheritance made no sense
2023-11-29 20:56:05 +02:00
Bananymous ebe465e81e 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
Bananymous c10dffd719 Kernel: Make internal framebuffer bpp constexpr defined in libc 2023-11-29 20:07:33 +02:00
Bananymous 21392e34cb 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
Bananymous ea4a45aef2 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
Bananymous 45d8d76e87 Kernel: Use the correct bpp when writing to framebuffer 2023-11-29 00:31:24 +02:00
Bananymous e3890fa7c4 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
Bananymous eeadf5fff1 Userspace: Implement basic test for framebuffer mmap 2023-11-28 23:52:22 +02:00
Bananymous 58be87ba3c Kernel: Implement mmaping for framebuffer device 2023-11-28 23:51:56 +02:00
Bananymous 6d7e61225b Kernel: Add framebuffer device to devfs 2023-11-28 23:51:28 +02:00
Bananymous eb69fc477b Kernel: Add API for implementing mmappable devices 2023-11-28 23:50:49 +02:00
Bananymous 74b3fc2e7c Kernel: Reading from negative offset in fb dev gives out info 2023-11-28 23:50:11 +02:00
Bananymous 4a0bfd08e0 Kernel/LibC: Implement pread() 2023-11-28 23:47:30 +02:00
Bananymous 816f8091a9 mmap-shared-test: Add test case for msync 2023-11-22 22:45:16 +02:00
Bananymous 46ad4f2818 Kernel/LibC: Implement very basic msync 2023-11-22 22:44:06 +02:00
Bananymous 0adb28e23f Kernel: Delete the now obsolete VesaTerminalDriver 2023-11-22 21:59:11 +02:00
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