An OS in design.

This forums is for OS project announcements including project openings, new releases, update notices, test requests, and job openings (both paying and volunteer).
User avatar
nekros
Member
Member
Posts: 391
Joined: Wed Mar 05, 2008 9:10 pm
Contact:

An OS in design.

Post by nekros »

I had an epiphany at church, after thinking about the design of my os for a couple months. I came back here and realized the idea is really like a exokernel more or less. I liked the idea of having the interface to all the devices in userspace. And completely blocking all userspace applications from accessing kernel functions.


PS. I really hate the way my mind works. Example: discovering parts of calculus on my own before I had even finished pre-alg.
Now realizing that I came up with something already in existence.
Working On:Bootloader, RWFS Image Program
Leviathan: http://leviathanv.googlecode.com
Kernel:Working on Design Doc
JohnnyTheDon
Member
Member
Posts: 524
Joined: Sun Nov 09, 2008 2:55 am
Location: Pennsylvania, USA

Re: An OS in design.

Post by JohnnyTheDon »

Actually, what you described is a microkernel. An exokernel doesn't have drivers.

But yes, someone has previously come up with it unfortunately.
User avatar
nekros
Member
Member
Posts: 391
Joined: Wed Mar 05, 2008 9:10 pm
Contact:

Re: An OS in design.

Post by nekros »

Yeah, thanks for the correction, didn't know which one to use. Though what I'm thinking of may not actually be drivers. Just need to collect the thing on paper now and see what it is. :D
Working On:Bootloader, RWFS Image Program
Leviathan: http://leviathanv.googlecode.com
Kernel:Working on Design Doc
User avatar
stephenj
Member
Member
Posts: 140
Joined: Wed Jul 23, 2008 1:37 am
Location: Canada

Re: An OS in design.

Post by stephenj »

I really hate the way my mind works... Now realizing that I came up with something already in existence.
In Steven Levy's Hackers, Bill Gosper summarizes your position quite well:
It's your life story if you're a mathematician: every time you discover something neat, you discover that Gauss or Newton knew it in his crib.
Anyway, rediscovering fire isn't necessarily a bad thing, but rediscovering getting burned is. Just make sure you avoid the later in this field as much as possible.
User avatar
nekros
Member
Member
Posts: 391
Joined: Wed Mar 05, 2008 9:10 pm
Contact:

Re: An OS in design.

Post by nekros »

I've already been burned alot. I've been studying lately and I think I can get my hands dirty without an epic fail. :lol:
Working On:Bootloader, RWFS Image Program
Leviathan: http://leviathanv.googlecode.com
Kernel:Working on Design Doc
jal
Member
Member
Posts: 1385
Joined: Wed Oct 31, 2007 9:09 am

Re: An OS in design.

Post by jal »

nekros wrote:I had an epiphany at church
Which goes to show how interesting you find church :)).


JAL
User avatar
nekros
Member
Member
Posts: 391
Joined: Wed Mar 05, 2008 9:10 pm
Contact:

Re: An OS in design.

Post by nekros »

Actually, it was while everyone was singing. Easy to zone out then. :wink:
Working On:Bootloader, RWFS Image Program
Leviathan: http://leviathanv.googlecode.com
Kernel:Working on Design Doc
User avatar
nekros
Member
Member
Posts: 391
Joined: Wed Mar 05, 2008 9:10 pm
Contact:

Re: An OS in design.

Post by nekros »

In my mind it seems to be coming out as an exokernel. I'll post the details when I have my first draft complete.

EDIT: Now I realized, wouldn't it be cool if the OS could rotate between sets of 32 bit and 64 bit libraries?(What I'm thinking of could not be considered a library though.)
Working On:Bootloader, RWFS Image Program
Leviathan: http://leviathanv.googlecode.com
Kernel:Working on Design Doc
Craze Frog
Member
Member
Posts: 368
Joined: Sun Sep 23, 2007 4:52 am

Re: An OS in design.

Post by Craze Frog »

nekros wrote:And completely blocking all userspace applications from accessing kernel functions.
Unless userspace programs aren't protected from destroying each other at will, then they can't communicate with each other nor with the hardware without accessing the kernel. So you'd have programs, but they can't take input and they can't give output. Nice.

What you probably mean is that only a few functions (like sending a message to the root task) is permissible for userspace applications.

And also, most people who say they are making an exokernel are really making microkernels. But they can't say they are making microkernels because most people who say they are making microkernels actually end up making normal, modular kernels because it's easier. So to sum it up: The exokernel guy wants to make a microkernel, but sees the task as too complex and gives up. The microkernel guy wants to make a microkernel, follows the tutorials for a standard unix kernel, and ends up with a standard unix kernel.
User avatar
nekros
Member
Member
Posts: 391
Joined: Wed Mar 05, 2008 9:10 pm
Contact:

Re: An OS in design.

Post by nekros »

Actually, I mean having different security levels on certain applications. Having drivers run as if they were applications but having a lower security level than user applications. Making all system calls made by the driver-libraries(hehe). The plan is to have all IPC go on in user level. I might be missing something, so feel free to point anything in here that is infeasible.
Working On:Bootloader, RWFS Image Program
Leviathan: http://leviathanv.googlecode.com
Kernel:Working on Design Doc
User avatar
Troy Martin
Member
Member
Posts: 1686
Joined: Fri Apr 18, 2008 4:40 pm
Location: Langley, Vancouver, BC, Canada
Contact:

Re: An OS in design.

Post by Troy Martin »

Craze Frog wrote:So to sum it up: The exokernel guy wants to make a microkernel, but sees the task as too complex and gives up. The microkernel guy wants to make a microkernel, follows the tutorials for a standard unix kernel, and ends up with a standard unix kernel.
And I fit in there like this: I want to make a Unix-style kernel in assembly but I end up with some combination of Unix, DOS, and MikeOS. Therefore, it's all gone from a normal state to a crazy state.
Image
Image
Solar wrote:It keeps stunning me how friendly we - as a community - are towards people who start programming "their first OS" who don't even have a solid understanding of pointers, their compiler, or how a OS is structured.
I wish I could add more tex
JohnnyTheDon
Member
Member
Posts: 524
Joined: Sun Nov 09, 2008 2:55 am
Location: Pennsylvania, USA

Re: An OS in design.

Post by JohnnyTheDon »

nekros wrote:Actually, I mean having different security levels on certain applications. Having drivers run as if they were applications but having a lower security level than user applications. Making all system calls made by the driver-libraries(hehe). The plan is to have all IPC go on in user level. I might be missing something, so feel free to point anything in here that is infeasible.
Still a microkernel. But that doesn't make it a bad idea (I'm making one myself).

If it has drivers, abstractions (like files, threads, etc.) or any of that stuff most people have come to expect from an OS, its not an exokernel. Exokernels essentially do a sort of para-virtualization: they allow each "process" access to certain hardware, keep it from screwing with other "processes", and then let it have fun.
Craze Frog
Member
Member
Posts: 368
Joined: Sun Sep 23, 2007 4:52 am

Re: An OS in design.

Post by Craze Frog »

nekros wrote:Making all system calls made by the driver-libraries(hehe). The plan is to have all IPC go on in user level. I might be missing something, so feel free to point anything in here that is infeasible.
You're missing something: IPC can't be done entirely in userland. There must be some kernel support. That means a syscall accessible to all processes doing IPC.
Take a look at Sartoris. It's a microkernel with security on syscalls, so not any process can call any syscall (which is mostly necessary for all serious microkernels).
User avatar
nekros
Member
Member
Posts: 391
Joined: Wed Mar 05, 2008 9:10 pm
Contact:

Re: An OS in design.

Post by nekros »

I don't seem how IPC couldn't be done by some sort of driver. But that might make it slower , I'll have to think more about it.
Working On:Bootloader, RWFS Image Program
Leviathan: http://leviathanv.googlecode.com
Kernel:Working on Design Doc
Craze Frog
Member
Member
Posts: 368
Joined: Sun Sep 23, 2007 4:52 am

Re: An OS in design.

Post by Craze Frog »

I don't seem how IPC couldn't be done by some sort of driver.
And how would you talk to the driver? IPC, which must already be in place! Or, the driver may run in the kernel, which means a kernel call.

You can have IPC without using a kernel call by using a shared memory page. However, how do you make a shared page? A kernel call!
I'll have to think more about it.
Good idea.
Post Reply