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
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