https://gitlab.com/utcq/meow
started as a joke because I wanted to get back to osdev but it's my 4th kernel and the best one at the moment, I thought "what if I keep a nice file and code structure" so there It is, I'm actually studying every wiki article instead of copying and pasting code and it gives me satisfaction. Early stage tho.
I don't even have a term emulator (who needs it when I have serial)
There's libm (lib meow) instead of libc (it's just libc).
I have "@details: " for most of the functions.
I have a RNG that uses rdtsc as seed
logger, paging (took 2 days), gdt, serial and I'm doing idt rn.
#Meow :3
1 messages · Page 1 of 1 (latest)
cool
it is the standard "x86_64 + monolithic + limine" kernel tho so nothing too special
why x86_64? i require aarch64
I mean the file arch/arch.h is:
#ifdef __x86_64
#include <arch/x86_64/arch/arch.h>
#endif
so feel free to add your aarch64 implementation
you reminded me that I have to put a different init for each cpu arch
idt
I want to make an init system btw :3
How complex of one
I never wrote an init system so idk
My os's one is pretty simple, it just sets up the starting env variables, runs /etc/rc which mounts things such as /dev and then either runs x and fvwm or just drops to a shell in the system console
Itd be interesting to see someone do something more complex
I was thinking to read sinit source and make it simpler
maybe .service files
or something easier than .service
just:
exec = /bin/xx
description = "Service 00"
once you have a RW filesystem everything is possible
very clean looking kernel
idt, initrd, working on apic
meow now supports new cpu architectures (i386 and aarch64). What I mean with "support" is that now you can build the kernel by using the env variable ARCH that can be x86_64 | aarch64 | i386 but the i386 version and the aarch64 are very basic and support just kernel boot, so feel free contribute to the project
I'm having some problems with interrupts (I nono wanna) so I might take a little break or focus on more of the kernel
oh and new PMM + Heap management, now it's cool and I can free allocations
- the PMM it's now using the entire memory instead of a specified number of bytes