b74812d669
Kernel: Remove unnused features from VirtualRange
...
On-demand paging has not been used ever since I made userspace stack be
a normal MemoryRegion.
2026-04-21 19:58:09 +03:00
ac6e6f3ec1
Kernel: Add ioctl to sync rectangular areas in framebuffer
...
msync is not really the best API for framebuffer synchronization
2026-04-11 08:29:10 +03:00
d16f07a547
Kernel: Print thread id when writing to /dev/debug
2026-02-27 19:12:35 +02:00
9537922acc
Kernel: Implement proper memory region splitting
...
Memory regions are now splitted when they get munmapped, mprotected, or
mmapped with MAP_FIXED. This is used by couple of ports, and without
this we were just leaking up memory or straight up crashing programs.
2025-11-13 04:20:53 +02:00
f519cb2cc0
Kernel: Expose boot framebuffer device
2025-10-28 05:50:19 +02:00
f1369c8fd6
Kernel/LibC: Implement mprotect
...
There may be some race conditions with this but i think this is good
enough to start with
2025-08-05 03:09:24 +03:00
6084aae603
Kernel: Add guard pages to kernel and userspace stacks
2025-07-02 23:12:36 +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
994713d04c
Kernel: Implement FramebufferDevice::get_pixel()
2025-04-18 02:35:28 +03:00
554b13ac50
Kernel: Restructure terminal initialization
...
This is still very ugly and will be rewritten in the future :D
2025-04-18 01:19:59 +03:00
95f262b3e6
Kernel: Print process pid through /dev/debug
2025-04-01 23:09:30 +03:00
5e8fdc997a
Kernel: Prevent userspace from overwriting CPU load memory
2024-11-17 20:15:28 +02:00
2b43569927
Kernel: Use enums in boot info instead of magic values
2024-10-14 11:36:51 +03:00
c77ad5fb34
Kernel: Implement copy-on-write memory for file backed mmaps
2024-09-11 19:33:50 +03:00
23194d1f53
Kernel: Implement basic random device to /dev/random
2024-08-22 14:02:26 +03:00
0578d41500
Kernel: Implement WriteCombining memory
...
This makes framebuffer much faster on real hardware
2024-07-15 22:09:09 +03:00
1a844426c3
Kernel: Add fast path for framembuffer sync if bpp == 32
2024-06-28 23:34:11 +03:00
42237a3bc8
Kernel: Implement fast scrolling for TTY
2024-06-28 23:15:03 +03:00
67dfe0bcf3
BAN: Allow String::formatted to fail
2024-06-25 11:04:03 +03:00
b5aae34d86
Kernel: Specify template paramenters where they cannot be deduced
2024-03-22 15:41:15 +02:00
d94f6388b7
Kernel: Fix all broken locks from new mutexes
2024-02-28 22:45:34 +02:00
9594ee8e47
Kernel: Start making device numbers unique for each device
2024-02-22 15:53:48 +02:00
692cec8458
Kernel/Userspace/LibC: Implement basic dprintln for userspace
2024-02-05 01:24:09 +02:00
dfe5a2d665
All: Cleanup all files
...
Add newline to end of files and remove whitespace from end of lines
2024-01-24 15:53:38 +02:00
9fa13079f2
Kernel: Implement supplementary groups
...
This code has very ugly file parsing code. I have to create API
for reading files line by line in kernel space...
This allows users to open framebuffer/input files without root.
Mounting has to be moved to userspace soon. It makes no sense to
hard code permissions for every (device) file.
2024-01-02 23:24:32 +02:00
6cd5763361
Kernel: Allow cloning of mmapped framebuffer regions
2023-12-14 10:54:06 +02:00
9b841cb823
BuildSystem/Kernel: Enable -Wextra and -Werror in kernel
...
Only needed to fix some unused variable bugs
2023-12-01 01:22:53 +02:00
327b330338
Kernel: Make internal framebuffer bpp constexpr defined in libc
2023-11-29 20:07:33 +02:00
d7a3aca5d4
Kernel: Use the correct bpp when writing to framebuffer
2023-11-29 00:31:24 +02:00
cc572af390
Kernel: Implement mmaping for framebuffer device
2023-11-28 23:51:56 +02:00
d86ecf4f61
Kernel: Reading from negative offset in fb dev gives out info
2023-11-28 23:50:11 +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
5044810451
Kernel: Make DevFS use the new and better TmpFS instead of RamFS
2023-11-07 16:05:05 +02:00
f3d9da9549
Kernel: Rewrite all read/write functions to use BAN::ByteSpan
...
This allows us to not work with raw pointers and use sized containers
for reading and writing.
2023-10-24 11:56:00 +03:00
2301654c4e
Kernel: Rework RamInode API
...
RamInode is now a general RamInode with no data. RamFileInode is now
a inode for regular files. This is much cleaner and more intuitive
since there is no reason for most non-regular inodes to hold data
Vector.
2023-09-30 19:22:30 +03:00
921d95d18f
All: Clear lines with only whitspace in them
2023-09-10 00:31:42 +03:00
1fcf122c50
Kernel: Add basic ZeroDevice to /dev/zero
2023-09-10 00:31:42 +03:00
323de3c866
Kernel: Rework whole Terminal structure
...
Serial monitors can now be used as a output. This requires editing
init code for the stdio opening. Serial input is not supported, so qemu
still needs graphical window for ps/2 keyboard.
2023-09-04 19:34:18 +03:00
b02c486ad0
Kernel: add NullDevice to /dev/null
2023-07-20 00:06:22 +03:00
08cd285ca6
Kernel: move Device.h to its own directory
2023-07-19 23:55:38 +03:00