I often see people mentioning their own hobby OS (and may have done so myself, on occasion). I'm curious about other people's OSs (but not to the extent that I want to wade through their code--unless it's really interesting, of course )
a) what would you say yours most resembles in the Real World(TM)?
A LISP Machine
Plan 9 (a hobby-OS name, if ever there was one)
Not remotely like anything else on the planet
b) Why are you putting (or have put) effort into this?
Because I can
Because everything else is rubbish. My OS is better than any and everything out there.
Best way to learn about OSs is to design one onself.
c) Are you most interested in
d) What sort of things does it have?
C/Java/Lisp runtime environment
e) Does it have a cool name?
For example, my OS, provisionally called Naive OS (so that one can say, "The naive user might expect..."), is inspired by a dislike of the prevalent lack of respect for resources (CPU cycles and memory) together with a disdain for the exigencies of commercialism. It's a hobby. I'd like my code to be elegant. It doesn't matter how much time (within reason) it takes me to get a routine right.
I suspect that some programming stock phrases such as "an optimising compiler will always beat a human...", "using X facilitates code reuse", "maintainability" etc. may not be 100% correct. I dislike management buzzwords.
I've often noticed that one can rewrite plodding, ugly (aka "stupid") code to make it shorter, faster and clearer (aka "better"). It's odd: you start off with some code. Then you add a feature and it ends up using less space (while doing more, faster). And one can repeat this. In the limit, the code would take up no space at all and do everything(*) infinitely quickly. Strange. One of my (long term) goals is to write less stupid code...
(*) The mu-byte takes up no space and represents the integer 42.
The entire thing is written in assembler, because I like knowing what the machine is actually doing, and reading gcc-produced stuff is depressing. Portability is not an issue.
What I have so far is:
16-bit framebuffer graphics:
dots, lines, rectangles, rectangle fills & blits
windows, text/graphics scrolling
PS/2 keyboard/mouse driver / UART serial IO
terminal, (command)line-editor and "visual" editor
alloc/free, hash, a digital storage oscilloscope app (every OS should have one).
Conspicuously absent are a filesystem or processes. They just don't seem to be pressing concerns yet At the moment I'm playing with the editor. Then I'll do a (dis)assembler/debugger (not that my code ever needs debugging). Then a database, regexs, (de)compression, images.
C++, Java and USB support will come after the end of the universe.