Love the test case "but can you run Doom on it?" Great work!
Personally I'd like to see a homebrew OS that attempts some kind of compatibility with 16-bit Windows, with some modern design/conveniences (sortof a ReactOS for the 3.11 world). It seems like people make either 8 bit or 32 bit OSes. Maybe I'm not searching the right terms. Anyone know of anything, or a starting point?
I wasn't asking about an emulator or how to pirate Windows. I was asking if there are any 16 bit homebrew OSes (with Windows compatibility a plus). Emulation might be a starting point, though. Do you have a link to any?
Nice. Why 32bit, not 64bit? I don't program much assembler - but after seeing how much simpler (sane) 64bit is (amd64), I'd have to be really motivated to do a hobby project in 16 or 32bit (for x86). So curious about that choice in today's hw world, where you'd have to hunt for real 32bit x86 hw.
That makes sense. It's been so long since I've seen a 32bit x86 (apart from single board industrial type stuff) - that I didn't really consider anyone would keep one around... Then again, we do have our old commodore vic 20 in a cupboard somewhere...
By using 4Mb pages, we can skip one step which is page tables.
In other words, Page Directory points directly to a 4Mb Page Frame. In 4Kb mechanism, Page Directory points to a Page Table which then points to a 4Kb Page Frame.
Nice work! But one question, what’s up with the naming scheme? Some functions are camel case, other are not. It seems like variables are camel case, but not all of them. And types are whatever it’s called when you capitalize each word, but some have underscores. What’s the reasoning?
Thanks! In fact, I prefer camel case for functions. You must be saying this for HashTable and List functions. I came from C++ world (where i name classes Pascal case and functions camel case). I wanted to group HashTable functions together like a class and named them that way. Yeah, it ended up being inconsistent unfortunately.
I named structs in PascalCase.
Thanks. I think it would take 8 months night works. But it took longer because of breaks.
I was always interested in low-level stuff especially about syscalls (how they jump to kernel from userspace). So, I was familiar with syscall internals and memory protection. But I learnt all including how paging is done in x86 when I was writing Soso thanks to OSDev.
This looks like awesome work. Will be studying the source to learn about how it works. Serious code envy for people who take the time and effort to build OS'es like this.
Could see this having potential on SBCs and usage in IOT/PLC applications.
Personally I'd like to see a homebrew OS that attempts some kind of compatibility with 16-bit Windows, with some modern design/conveniences (sortof a ReactOS for the 3.11 world). It seems like people make either 8 bit or 32 bit OSes. Maybe I'm not searching the right terms. Anyone know of anything, or a starting point?