From the ashes rise the... new project!
Posted: Wed Mar 21, 2007 12:28 pm
Some of the people that know me from Mega-Tokyo might have noticed I've started spending more time with this (now merged/relocated) forum. Some might even remember my old project, which in it's previous iteration was called µNeon...
Well, around 16 hours ago I started a new project, from the ashes of my megalomanick old microkernel project, realizing I'd love to hack together an OS, but if I actually try to write an RTOS for general purpose desktop use which distributes transparently over network and serves as it's own virtualizer, with drivers and memory management in userspace... well... as funny as it sounds, problem with such a system wasn't the amount of code that would be required, rather the problem was that writing any code was damn hard because at any point there was very little substance to build anything.
So. My new project currently boots, has working paging, catches exceptions (though gracefully panics on most of them), can create and kill threads, print to screen in colors, handle interrupts and ... a few other random things. Most of it basicly lifted from µNeon, and rewriten a bit to get rid of the excess abstractness and generality of everything.
Next things to do would be to write some event-queueing to allow something like "WaitForMultipleObjects", then make few different types of objects (like mm... pipes?), some system calls, malloc (kernel is currently using morecore directly with just placeholder wrappers), virtual memory manager and some such simple things (yes, simple compared to what I've designed for my previous project).
I call it VOIX.
Don't assume that means it's very close to Unix or POSIX in any sense. In a lot of senses my design is actually quite a bit closer to NT. Name is explained: the first half of my last name is "voi" (the other half being "pio") but that means "butter" in finnish, so I added an "x" 'cos "x" is a nice character and everything, and obvious makes operating systems better (except when being used as a substitute for a user interface).
I have a rather simple list of things I want in this iteration:
1. system that can run several processes at once, where those processes can allocate memory, access files (and hopefully network), talk to each other and draw nice pictures in pretty windows
2. system where everything is asynchronous as much as possible, rest of it non-blocking, and where you can wait for 10k different things at once, and if user moving mouse and hitting cancel is the first thing that happens, then cancel the whole thing, still without waiting for anything
I mentioned my language based, self-replacing project as well some time ago, but that shall have to wait, because I'm feeling like some real OS dev, and not just endless pages of logic in my notebook...
Anyway, I actually thought of uploading an image as well, but I think I'll write the event-queue code and a minimal virtual memory manager first, so I can actually have an userspace process running.
Finally, it is my intention to release my current work eventually under a license no more restrictive than MIT license... but I want to have it to the point that I can call it an OS first.
Well, around 16 hours ago I started a new project, from the ashes of my megalomanick old microkernel project, realizing I'd love to hack together an OS, but if I actually try to write an RTOS for general purpose desktop use which distributes transparently over network and serves as it's own virtualizer, with drivers and memory management in userspace... well... as funny as it sounds, problem with such a system wasn't the amount of code that would be required, rather the problem was that writing any code was damn hard because at any point there was very little substance to build anything.
So. My new project currently boots, has working paging, catches exceptions (though gracefully panics on most of them), can create and kill threads, print to screen in colors, handle interrupts and ... a few other random things. Most of it basicly lifted from µNeon, and rewriten a bit to get rid of the excess abstractness and generality of everything.
Next things to do would be to write some event-queueing to allow something like "WaitForMultipleObjects", then make few different types of objects (like mm... pipes?), some system calls, malloc (kernel is currently using morecore directly with just placeholder wrappers), virtual memory manager and some such simple things (yes, simple compared to what I've designed for my previous project).
I call it VOIX.
Don't assume that means it's very close to Unix or POSIX in any sense. In a lot of senses my design is actually quite a bit closer to NT. Name is explained: the first half of my last name is "voi" (the other half being "pio") but that means "butter" in finnish, so I added an "x" 'cos "x" is a nice character and everything, and obvious makes operating systems better (except when being used as a substitute for a user interface).
I have a rather simple list of things I want in this iteration:
1. system that can run several processes at once, where those processes can allocate memory, access files (and hopefully network), talk to each other and draw nice pictures in pretty windows
2. system where everything is asynchronous as much as possible, rest of it non-blocking, and where you can wait for 10k different things at once, and if user moving mouse and hitting cancel is the first thing that happens, then cancel the whole thing, still without waiting for anything
I mentioned my language based, self-replacing project as well some time ago, but that shall have to wait, because I'm feeling like some real OS dev, and not just endless pages of logic in my notebook...
Anyway, I actually thought of uploading an image as well, but I think I'll write the event-queue code and a minimal virtual memory manager first, so I can actually have an userspace process running.
Finally, it is my intention to release my current work eventually under a license no more restrictive than MIT license... but I want to have it to the point that I can call it an OS first.