At it again...
Posted: Wed Feb 25, 2015 2:49 am
After a long hiatus of not actually getting anywhere - I'd started a cleanup a year ago or so but didn't get far enough, and I was again stuck at not having a framebuffer for any functional computer - I've restarted the work on my OS. This time however I decided I would stop trying to get a framebuffer on a PC but rather switch fully to a Raspberry Pi. I'm also going to switch my major design goals, so it's not a rewrite but rather a direction switch for the OS.
I'm now going to start writing functional stuff before any infrastructure. I am good at infra so that's OK, but the other part usually gets me bogged down so if I do that first, the infra cleanup is then easy. No multithreading, memory management and so on until I really need it.
Also, I'm going to develop each part to a "just barely good enough" state and then continue to the next, until I have it at least fully self-hosting. The FAT disk driver won't be taught how to read directories until I have at least one that I need to use; the display driver can't switch banks until there's a reason to have more than one and it can't find out pixel formats because the "assume it'll be fine" is good enough for text.
That said, I've started last friday (ie, 5 days ago!) and it runs well. It has basic memory management, framebuffer, font and debugging support, GPIO control, serial output (on Qemu) and FAT support. I hope to start some basic UI work soon so that I can use the files I read (font, images, UI controls) to draw a simple UI output. Then I need to add MMC support (so it runs on an actual MMC / SD card rather than an initrd) and then bite the bullet called USB and get keyboard input, output and actual MMC support running, after which I can make it fully self hosting.
Anything I've done so far is with x86_64 in my mind, so I can easily port it back to the regular PC.
So my big question is, I'm rewriting it with a completely different goal and method. It's not AtlantisOS. Does anybody have good ideas for names?
Current screenshot in screenshot thread
I'm now going to start writing functional stuff before any infrastructure. I am good at infra so that's OK, but the other part usually gets me bogged down so if I do that first, the infra cleanup is then easy. No multithreading, memory management and so on until I really need it.
Also, I'm going to develop each part to a "just barely good enough" state and then continue to the next, until I have it at least fully self-hosting. The FAT disk driver won't be taught how to read directories until I have at least one that I need to use; the display driver can't switch banks until there's a reason to have more than one and it can't find out pixel formats because the "assume it'll be fine" is good enough for text.
That said, I've started last friday (ie, 5 days ago!) and it runs well. It has basic memory management, framebuffer, font and debugging support, GPIO control, serial output (on Qemu) and FAT support. I hope to start some basic UI work soon so that I can use the files I read (font, images, UI controls) to draw a simple UI output. Then I need to add MMC support (so it runs on an actual MMC / SD card rather than an initrd) and then bite the bullet called USB and get keyboard input, output and actual MMC support running, after which I can make it fully self hosting.
Anything I've done so far is with x86_64 in my mind, so I can easily port it back to the regular PC.
So my big question is, I'm rewriting it with a completely different goal and method. It's not AtlantisOS. Does anybody have good ideas for names?
Current screenshot in screenshot thread