11 Commits

Author SHA1 Message Date
kaguya b28a6bcf29 major refactorings
Signed-off-by: kaguya3311 <kaguya3311@national.shitposting.agency>
2026-05-18 04:02:59 -04:00
kaguya f7aa6f913a libc: add linux headers
Yeah

Signed-off-by: kaguya <vpshinomiya@protonmail.com>
2026-05-03 00:48:24 -04:00
kaguya ef14a52b49 rand: Add ChaCha20-based CSPRNG, among other things
We now have RNG!

- Implement ChaCha20-based cryptographically secure random number generator (CSPRNG) in `src/drivers/rand/random.c` and its header in `src/drivers/rand/random.h`.
- Modify VFS to support directory operations, including opening directories and reading directory entries.
- Update syscall interface to include new syscalls for directory handling: `SYS_OPEN_DIR` and `SYS_READ_ENTRIES`.
- Enhance file creation in EXT2 to allow specifying file modes.
- Refactor VFS file handling to accommodate new flags and modes.
- Update user-space application in `user/include/mlibc/helloworld.c` to demonstrate file operations including `touch`, `ls`, and `cat`.
- Clean up debug print statements in EXT2 file system code.
- Worked on proper error handling and return codes across VFS and syscall implementations.

It's only a small step but we're getting closer to making error codes standardized

We also setup SSE exactly as we should've the first time we introduced it in commit 9a9b91c

We have added it correctly to the user stack trampoline (hopefully), so there shouldn't be any issues now.

Signed-off-by: kaguya <vpshinomiya@protonmail.com>
2026-05-03 00:46:59 -04:00
kaguya 9a9b91c940 user: implement mlibc as the libc, finally.
It's finally done..

Signed-off-by: kaguya <vpshinomiya@protonmail.com>
2026-05-02 03:31:49 -04:00
kaguya 2fa39ad85a input: Implement console input handling and add shell for real this time
Self explanatory, we finally have a working ish shell

Now we need to do some more stuff or something, probably work on a fork or something

Signed-off-by: kaguya <vpshinomiya@protonmail.com>

Co-authored-by: Copilot <copilot@github.com>
2026-04-28 01:31:21 -04:00
kaguya 7d99745ff9 sched: Implement basic scheduling and signal handling system
Note: this is probably 25% broken, but it works right now as written, so I hope it all works.

- Added a new scheduler header file (scheduler.h) defining task structures, scheduling policies, and signal handling mechanisms.
- Integrated scheduling functions into the syscall interface, including SYS_GETPID, SYS_GETPPID, SYS_EXIT, SYS_SCHED_YIELD, SYS_NICE, SYS_KILL, SYS_SIGACTION, SYS_SIGPROCMASK, SYS_SCHED_GETSCHEDULER, and SYS_SCHED_SETSCHEDULER.
- Updated syscall handler to manage new scheduling-related syscalls and signal actions.

Signed-off-by: kaguya <vpshinomiya@protonmail.com>
2026-04-26 22:46:28 -04:00
kaguya e6e8b1209b sys: Refactor GDT initialization, enhance syscall handling, and improve user mode entry
Finally we got usermode working again, It took awhile but we got it done. A few things we did in this commit:

- Simplified GDT entry initialization in gdt.c for kernel and user segments.
- Fixed TSS structure for task switching.
- Implemented cr2 handling in a page fault.
- Enhanced user stack setup in usermode.c to return the correct RSP.
- Improved syscall implementation in syscall.c, including new syscall numbers.
- Updated syscall entry to correctly handle context switching and argument passing.
- Refactored init.c to demonstrate file operations using syscalls.
- Added new syscalls for file operations in syscalls.h.
- Modified VFS to handle leading slashes in paths correctly.

Signed-off-by: kaguya <vpshinomiya@protonmail.com>
2026-04-26 02:06:28 -04:00
kaguya 3b6e68bc16 sys: Implement LAPIC and IOAPIC support, add PS/2 keyboard driver
- Added LAPIC implementation in `apic.c` and `apic.h`, including initialization and basic operations.
- Introduced IOAPIC (I/O Advanced Programmable Interrupt Controller) support in `ioapic.c` and `ioapic.h`, parsing the ACPI MADT to locate IOAPICs and manage redirection entries.
- Implemented PS/2 keyboard driver in `ps2.c` and `ps2.h`, handling keyboard interrupts and translating scancodes to ASCII.
- Attempted to make usermode work again (it failed, coming soon)
- Cleaned up comments in `time.c` and `render.c` for clarity.

Signed-off-by: kaguya <vpshinomiya@protonmail.com>
2026-04-24 01:59:33 -04:00
kaguya 016ee32987 feat: update .gitignore and enhance ext2 file timestamps
Added back g_Unixseconds to the ext2 driver

Signed-off-by: kaguya <vpshinomiya@protonmail.com>
2026-04-16 00:37:30 -04:00
kaguya bd77c7a2b9 sound: HDA support with PCM and wav playback
- Implemented HDA driver in src/sound/hda.c, providing initialization, codec enumeration, and playback functionality.
- Defined HDA register offsets and structures in src/sound/hda.h.
- Added WAV file parsing and playback capabilities in src/sound/pcm.c, supporting both WAV and raw PCM formats.
- Created header file src/sound/pcm.h for PCM playback functions and WAV header structures.
- Integrated memory management for DMA buffers during audio playback.

Yes we played Charlie Charlie Kirky as the first sound on KirkOS

Signed-off-by: kaguya <vpshinomiya@protonmail.com>
2026-04-16 00:08:56 -04:00
kaguya 426ad76676 Initial Commit 2026-04-14 22:52:24 -04:00