Zackys Dumb Kernel banner

Zackys Dumb Kernel

21 devlogs
31h 33m 23s

This si my first C project. DUMB KERNEL is an educational 32bit bare-metal kernel for x86. It boots via GRUB, uses VGA text mode, has IDT/PIC interrupts, timer via PIT, keyboard input, shell, simple in-memory filesystem, fullscreen editor and its …

This si my first C project. DUMB KERNEL is an educational 32bit bare-metal kernel for x86. It boots via GRUB, uses VGA text mode, has IDT/PIC interrupts, timer via PIT, keyboard input, shell, simple in-memory filesystem, fullscreen editor and its own heap allocator for dynamic memory. ALL high level APIS are in documentation.md. FEEL FREE to upgrade my project or work on it with me!

This project uses AI

My only use for AI was to make (finally working) website live demo for people to just click and try. All of the other work is made by soul and flesh

Demo Repository

Loading README...

sebastianfiser2275

Shipped this project!

Hours: 14.39
Cookies: 🍪 193
Multiplier: 13.44 cookies/hr

My kenel does a lots of things, but the processes and scheduler arent done yet, / merged b:)

sebastianfiser2275

NEW COMMANDS ALERT: i added pfind (find processes), and pkill, witch kills process and gives it state ZOMBIE!! scary right??? Well im still working on those commands, and then hookin it up on the actual kernel

Attachment
0
sebastianfiser2275

So i have finishjed processes, wich can be seperated like user, kernl, apps, and i am figuring out subprocess inplementation. new commands added : PS- shows all processes, their numbers, names, and their status
PSPAWN witch spawns anew process with your sellected name

Attachment
0
sebastianfiser2275

Well, function for map pages reaching up to 4GB with every page being 4kb so we can devide virtual addresses and physical, so we can save ram, and switch processes and so on. right now im working on real implementation but the real backend works.

Attachment
0
sebastianfiser2275

DONE: i have made pages and mapping. you can test if part of memmory is mapped or not with command vm like vm 0x88000 VGA buffer input addres

Attachment
0
sebastianfiser2275

FINIDHED: right now i completed mblckdump command, trhat can spit out for you text, and hex data of block you select, right now, i have a big challange before me, witch is cpu pages, so wish me luck ;)

Attachment
0
sebastianfiser2275

Tday i worked on moving MORE things to herap so we dont have static stuff around.
I also rewrorked the memdump function so it desplays tag of what the actual bloc is / from witch function it came
TODO: idk rn man

Attachment
0
sebastianfiser2275

INWORK: Im moving all function from static to dynamic memmory to also have full control over whats happening. Still work in progress.
i also contied work on heavy optimization to help smoother running on low end devces that want to compile the kernel themselves

Attachment
0
sebastianfiser2275

well, i forgot to devlog for a bit but heres what happened.
i spent a LOT of time optimizing everything to run ffaster (around 400% boost)
i made a new output screen, that doesnt work on characters but pixels, so i can now do whatever i want. I added a lot of new APIS whitch i dint document yet

Attachment
0
sebastianfiser2275

Shipped this project!

Hours: 10.95
Cookies: 🍪 197
Multiplier: 18.01 cookies/hr

My kernel is actualy a “moni-OS” i mean not really. see documentation to wiew every working thing

sebastianfiser2275

Well, that was a long day…
DONE: PAGE MMMORY ALLOCATOR??! yeah you read that. from now on we will have task allocated in our memmory, and not scattered. first test shows that it works. m(viz. screenshot) in the screenshot we can see -> allocated 104 bytes of data at 0x0414182c, with its header in front. it has free 0 flag witch shows its occupie. next we have the header of blk 2 at the start of next flag of blg 1. it allocates 1024 bytes of data, at 0x041418a0 and so on. and the blk 3 is the last one (free ram) witch is 64 megabytes minus the 1128 bytes

TODO: being able to get rid of the data

Attachment
1

Comments

btz
btz 15 days ago

this is actually so sick that you got this running in the browser and wrote a simple shell

sebastianfiser2275

DONE: i cleard up unused code
ADDED: tiumer, i can count ticks, and have some runtime stuff
ALSO i added an FPS counter, works well

TODO: IDK at this poin gonna brainstorm

Attachment
1

Comments

yucchun
yucchun 18 days ago

100FPS on a kernel hey!
Not sure if that’s good or bad.. :P

sebastianfiser2275

DONE: I added directories! there was a lot of bugs, but it wasnt too bad!
ADDED: In cell text colouring done

TO DO: planning to remove decaped APIS, and rework some stuff

Attachment
0
sebastianfiser2275

2.5 hours later… i have done it
DONE: MEOWIN editor: a basic editor openable with edit , includes scrolable space, change close protectioon, cool stuff and lots more of cool stuf
NEW FILESYSTEM basic ram fs living in your memmory, iľl be making directories soon

TODO: directories (idk how)

Attachment
0
sebastianfiser2275

Well this is last quick devlog before a huge upcoming work
DONE: I created a cursor like interface with wich you can move around and manipulate your written text. Neat right ?

TODO: Huge thig. Fake filesystem, stored in ram. its the next big step before the real thing.
Iĺl make 2 hardcoded file where you can read them, and give user space to make few on their own. Atr the end io want mtop implement, configs, binaries , folders

Attachment
0
sebastianfiser2275

Done: I addedd a high level API so the keyboard doesnt instantly comunicate with the shell. Now it goes trough buffer. For better UI, i added a visible cursor. ECHO command now works. You dont write with “ “ but instantly after echo comand. -> Echo hello world, writes out hello world

TO DO: i dont know but i have to think of something

Attachment
0
sebastianfiser2275

Woah,m lots of changes guys!!
DONE: all text going to VGA buffer, allowing to SCROLL in terminal if you have more stuff that fits in with keys PGup a PGdown. Added a shell!! Added a shell command map, optimalized for complexity O(n), neat right!? Finished ‘help’command that writes out all avaible commands!!

TO DO: You are now the definition of sudo so, were starting with more general commands that write out stuff, but dont worry, we have lots coming up!!

Attachment
0
sebastianfiser2275

DONE/ADDED: I was very effective and integrated whole keyboard input / writing engine. i HARDCODED signmap that takles hexcode and corverts them to Ascii. The keyboard layout is sadly qwertz so you have to live with it

UPCOMING: since we can write now, i decided shell is the next practical idea to integrate. stay tuned to see how it works !

Attachment
0
sebastianfiser2275

WORK DONE: New trap handler, can call interrupts, panic to catch out crashes like GPF (general protective fault) or Division by zero protection !

WORK STARTED: Iam using remapped pic, so keyboard inputs trigger trap 33! neat right? then we read register for the hex value (letter has to be converted to ascii” and print it OUT!!
i still have to do some debugging becaser GNF is getting constantly triggered,l and hardcode hex to ascii conversion. After that we can start work on our shell !!

Attachment
0
sebastianfiser2275

I finally made a working web emulator, and Kernel panic that outputs the line + file where was panic initiated! -> WISIBLE in screenshot -> line, and file of origin

->UPCOMING WORK
-sceenflow manager : lines wont get written ower themselves and so on,

Attachment
0
sebastianfiser2275

Shipped this project!

Hours: 6.21
Cookies: 🍪 20
Multiplier: 3.21 cookies/hr

I build a kernel that writes Messages and does math in the VGA output im working on shell like interface ut wait for that !!

sebastianfiser2275

Helllo! for my past 6 hours of existence i made the following!!!
->Boot wise:

  1. Project uses grub to initialize to 32-bit mode!
    2)Project compiles directly to .iso file!
  2. We have basic VGA operations like writing to screen, changing background, basic string and memmory operations
    -> PR wise
  3. I sadly had to use AI top try and make demo website for me (In progress)
  4. Updated README.md to show how to play project yourself !!
Attachment
Attachment
0
sebastianfiser2275

I’m working on my first project! This is so exciting. I can’t wait to share more updates as I build.

Attachment
0