d27891c79f
Kernel: Fix correct IOAPIC lookup based on gsi
2025-07-18 19:09:20 +03:00
5874fd640e
Kernel: Fix TmpFS for 32 bit target
...
There was a problem when sizeof(size_t) != sizeof(PageInfo)
2025-07-18 19:07:32 +03:00
11ae220dbe
LibImage: Optimize image resizing algorithms
2025-07-18 18:20:37 +03:00
22542a3a71
BuildSystem: Enable sse and sse2 for all programs and libraries
...
This is default on x86_64 but not on the 32 bit target. banan-os
already requires the CPU to support SSE even on 32 bit platforms.
2025-07-18 18:20:37 +03:00
e16fb6a8e9
Kernel: Don't validate allowed null pointers on syscalls
2025-07-17 22:14:04 +03:00
d941e6d70b
General: Update README features and environment variables
2025-07-17 21:45:48 +03:00
b65068dc7d
BuildSystem: Add support for building initrd image
...
This is nice for testing when there isn't xhci controller available or
my usb stack fails :)
2025-07-17 21:45:48 +03:00
d5301508ec
Kernel: Increase kernel thread stack size
...
HACK HACK HACK
This is just to make banan-os boot on one razer laptop where AML
triggers a stack overflow :)
2025-07-17 21:21:14 +03:00
793cca423b
Kernel: Fix system timer disabling
...
I was actually not disabling system timer (HPET, PIT) when using lapic
timers for scheduling. This made BSB get too many timer interrupts :D
2025-07-16 20:02:04 +03:00
3960687f9d
Kernel: Parse PCIConfig opregion address on read/write
...
I was testing on some hardware and _ADR does not have to exist in the
namespace when opregion is parsed :)
2025-07-16 15:34:36 +03:00
3ec7aad432
Kernel: Increase PS/2 timeout and detect more keyboards
...
I was testing on a old T61
2025-07-16 15:29:27 +03:00
84f1ad4f26
ports: Fix doom compilation with the new toolchain
2025-07-15 16:12:03 +03:00
6b9dbf625d
userspace: Add audio utility to play audio files
2025-07-15 16:12:03 +03:00
3aea2c007d
Userspace: Add simple AudioServer and LibAudio
2025-07-15 16:12:03 +03:00
85d195212a
BuildSystem: Update qemu script and add ac97
2025-07-15 14:17:49 +03:00
8a663cb94f
Kernel: Implement basic AC97 driver
2025-07-15 14:17:49 +03:00
674e194a91
Kernel: Don't fail PCI interrupt allocation with PCIe and no PCI
2025-07-15 14:17:49 +03:00
c57f0abb56
BuildSystem: Order source list alphabetically
2025-07-15 14:17:49 +03:00
163fdcd582
LibC: Fix exec family function path resolution
2025-07-15 14:17:49 +03:00
3be17c6117
BAN: Add clear and access by index to CircularQueue
2025-07-10 17:24:40 +03:00
995dfa1455
Kernel: Fix AML PCIConfig OpRegion accesses
...
Apparently I'm not supposted to calculate device/function from the
offset, but parse them from the acpi namespace :)
This allows PCI PIN interrupt routing actually work
2025-07-04 13:21:02 +03:00
544c8dbc13
Kernel: Optimize AML interpreter stack usage
...
There is a very hacky no-inline hack that I am not proud of but it drops
the stack usage of few functions A LOT.
Previously Virtual Box could not boot with our 8 page stack, but these
changes allow it to boot on 5!
2025-07-03 00:49:23 +03:00
8da4f80453
Kernel: Add custom stack to double fault handler
...
This prevents triple faults!
2025-07-02 23:14:52 +03:00
6084aae603
Kernel: Add guard pages to kernel and userspace stacks
2025-07-02 23:12:36 +03:00
e1319a06f2
Kernel: Remove accidentally commited debug prints
2025-07-02 23:09:57 +03:00
51fd7a607d
Kernel: Fix IDE controller waiting
...
We did not correctly wait until controller is ready to receive data on
write command. Also remove possible kernel panic if controller sends
unexpected interrupts
2025-07-02 22:04:41 +03:00
8aff315c7b
LibC: fflush file in setvbuf before updating the buffer
2025-07-02 01:54:03 +03:00
8e0d79f301
ports: Fix make compilation with new toolchain
2025-07-02 01:54:03 +03:00
8a0269d29e
Kernel: Remove kernel processes
...
Kernel can just use raw threads, pretty muchs the only thing that
process provides is syscalls which kernel threads of course don't
need.
Also this makes init process have pid 1 :D
2025-07-02 01:54:03 +03:00
892e16dfb1
Kernel: Increase PS2 timeout to 300 ms, load PS2 in separate thread
...
PS/2 seems to hit command timeout sometimes on slow emulation so
increase the timeouts.
Also move PS/2 device initialization to a different thread because
device indentification waits for timeouts.
2025-07-02 00:17:42 +03:00
92e4078287
Kernel: Rewrite ThreadBlocker
...
This gets rid of a very old bug where kernel panics when thread is being
woken up and unblocked at the same time on different cores. This
required adding a new lock to SchedulerQueue::Node and adding a cap to
how many threads a threadblocker can simultaneously block. I don't think
I ever block more than five threads on the same ThreadBlocker so this
should be fine.
2025-07-02 00:17:42 +03:00
41e1819072
Kernel: Align argv and envp to pointer boundary
...
This bug was found with ubsan
2025-07-02 00:17:42 +03:00
fb7e9719a1
Kernel: Add fast fill method to framebuffer device
...
This makes `clear` much faster when running without kvm!
2025-07-02 00:17:42 +03:00
c2d09b64ca
Kernel: Drop 24 bpp support from double buffer
...
I don't even know why this was supported, I am not planning on making
the fb anything other than 32 bpp
2025-07-02 00:17:42 +03:00
1b2aa6c2da
Kernel: Fix unaligned access in AML
...
Found with ubsan
2025-07-02 00:17:42 +03:00
a5b4cee298
Kernel: Load USTAR from a boot module if loading root partition fails
...
This allows banan-os to boot on hardware where we don't have working
storage driver or the storage driver fails (pretty common with my usb
mass storage drivers...)
2025-07-02 00:17:42 +03:00
17f1ac10e3
Kernel: Don't ignore modules passed with multiboot2
2025-07-02 00:17:42 +03:00
c67198032f
Kernel: Rewrite TmpFS block and inode allocation
...
This makes creating files and appending to then A LOT faster. Some code
I tested took 40 seconds in the previous implementation and less than a
second on the new one!
This code is really sketcy, I hope I'll never have to touch it again :)
2025-07-02 00:17:42 +03:00
107b092982
Kernel: Allow arbitrary sized tmpfs files
...
The 2 block limit started to get annoying :D
2025-07-02 00:17:42 +03:00
bac06e45a4
Kernel: Fix TmpSymlinkInode target getting/setting
2025-07-02 00:17:42 +03:00
0e8a68831c
Kernel: Fix TmpInode chmod not preserving file type
2025-07-02 00:17:42 +03:00
5912abd541
Kernel: Add error reporting for readonly mounted filesystems
2025-07-02 00:17:42 +03:00
13d33995cb
Kernel: Make sure PageTable::fast_page gets passed page aligned addr
2025-06-30 01:48:47 +03:00
c8c05f62b4
Kernel: Remove unused FileSystem::dev
2025-06-29 00:29:03 +03:00
944b045885
Toolchain: Set CMAKE_STAGING_PREFIX in toolchain file
2025-06-28 23:34:11 +03:00
19897ffa26
userspace: Compile test utility :D
2025-06-28 22:40:00 +03:00
42a10b21c7
userspace: Implement true and false utilities
2025-06-28 22:39:19 +03:00
5df0e25c1f
userspace: Implement chown utility
2025-06-28 21:32:59 +03:00
ebf2b16d09
Kernel: Implement chown to ext2 and tmpfs
2025-06-28 21:28:54 +03:00
f2eaab6e43
ports: Add tuxracer port
...
THIS IS SUPER SLOW
2025-06-28 20:54:45 +03:00