#Pricks: A kernel

1 messages · Page 1 of 1 (latest)

fierce kindle
#

https://codeberg.org/somerandomratz/pricks-os
I’m hoping to make this a microkernel that I can include as a part of a OS in a separate repo. My current goal is facilitating drivers for the Chromebook EC (For keyboard/mouse functionality and maybe the hinge sensor) which should be at least possible since the EC firmware is open source.

#

Basically: I want to make this compatible with emulators and my old Samsung Chromebook 3 (Celes) with a custom UEFI rom installed

#

I already have stuff like the PIT and Serial working and the GDT set up

meager crystal
#

incredible name

#

truly astonishing

fierce kindle
#

I’m going to implement a ps/2 keyboard driver next so I can implement some kind of command line later

#

Btw rn the program is able to run on my Chromebook bare metal and behavior is consistent with the emulator 60% of the time (sometimes the sleep function runs too quick, I have to figure that out)

#

But it will probably be a while until I can test it on a Chromebook since I have to manually set the keyboard to emulate PS/2 though the EC which I can’t really do yet

#

I also want to be able to move some of these drivers into userspace

#

But I’m not up to that point yet so they’re going to be in the kernel for now

onyx flame
alpine tinsel
fierce kindle
onyx flame
fierce kindle
#

Oh

#

Ig I might just implement a memory manager first

#

And some other stuff so I can implement a shell in userspace

#

Like a scheduler

fierce kindle
#

I keep randomly triple faulting (i think) like 10% of the time and I have no idea why

#

idk I can look at that later

#

because it eventually runs fine anyway

#

like most of the time it starts fine but then there will be that one time where it triple faults

fierce kindle
#

I removed nanoprintf, the graphical terminal, and initialized the serial port earlier in an attempt to try and find out where these faults where happening

#

One thing I noticed when doing that is that when the kernel triple faults it’s before the GDT

#

But it was working fine before so idk

#

It’s pretty hard to debug since it seems to be random

#

Maybe it’s a qemu thing

fierce kindle
#

I should probably implement age verification too…/jk

fierce kindle
#

I also realized that I was popping saved registers off the stack in the wrong order

#

Fixing that will probably solve the problem with page faults that happen after the IDT is initialized

onyx flame
#

also please organize your sources

fierce kindle
#

Yeah I should have done that earlier X/

fierce kindle
#

uggggh codeberg is being slow today

fierce kindle
fierce kindle
#

I did absolutely nothing today

#

I will implement some kind of malloc function next

#

And then a VMM

onyx flame
fierce kindle
#

I worked a bit on a VMM yesterday

#

But I can only really (in theory) map physical memory in a page table

#

I need to make the part that allocates memory and then maps it