OSDev.org

The Place to Start for Operating System Developers
It is currently Tue Apr 23, 2024 1:34 am

All times are UTC - 6 hours




Post new topic Reply to topic  [ 30 posts ]  Go to page 1, 2  Next
Author Message
 Post subject: An OS in design.
PostPosted: Sun Jan 25, 2009 6:36 pm 
Offline
Member
Member
User avatar

Joined: Wed Mar 05, 2008 9:10 pm
Posts: 391
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


Top
 Profile  
 
 Post subject: Re: An OS in design.
PostPosted: Sun Jan 25, 2009 6:49 pm 
Offline
Member
Member

Joined: Sun Nov 09, 2008 2:55 am
Posts: 524
Location: Pennsylvania, USA
Actually, what you described is a microkernel. An exokernel doesn't have drivers.

But yes, someone has previously come up with it unfortunately.


Top
 Profile  
 
 Post subject: Re: An OS in design.
PostPosted: Sun Jan 25, 2009 6:52 pm 
Offline
Member
Member
User avatar

Joined: Wed Mar 05, 2008 9:10 pm
Posts: 391
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


Top
 Profile  
 
 Post subject: Re: An OS in design.
PostPosted: Sun Jan 25, 2009 7:04 pm 
Offline
Member
Member
User avatar

Joined: Wed Jul 23, 2008 1:37 am
Posts: 140
Location: Canada
Quote:
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:
Quote:
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.


Top
 Profile  
 
 Post subject: Re: An OS in design.
PostPosted: Sun Jan 25, 2009 7:37 pm 
Offline
Member
Member
User avatar

Joined: Wed Mar 05, 2008 9:10 pm
Posts: 391
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


Top
 Profile  
 
 Post subject: Re: An OS in design.
PostPosted: Mon Jan 26, 2009 5:50 am 
Offline
Member
Member

Joined: Wed Oct 31, 2007 9:09 am
Posts: 1385
nekros wrote:
I had an epiphany at church


Which goes to show how interesting you find church :)).


JAL


Top
 Profile  
 
 Post subject: Re: An OS in design.
PostPosted: Mon Jan 26, 2009 10:21 am 
Offline
Member
Member
User avatar

Joined: Wed Mar 05, 2008 9:10 pm
Posts: 391
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


Top
 Profile  
 
 Post subject: Re: An OS in design.
PostPosted: Mon Jan 26, 2009 2:58 pm 
Offline
Member
Member
User avatar

Joined: Wed Mar 05, 2008 9:10 pm
Posts: 391
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


Top
 Profile  
 
 Post subject: Re: An OS in design.
PostPosted: Mon Jan 26, 2009 4:53 pm 
Offline
Member
Member

Joined: Sun Sep 23, 2007 4:52 am
Posts: 368
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.


Top
 Profile  
 
 Post subject: Re: An OS in design.
PostPosted: Mon Jan 26, 2009 5:30 pm 
Offline
Member
Member
User avatar

Joined: Wed Mar 05, 2008 9:10 pm
Posts: 391
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


Top
 Profile  
 
 Post subject: Re: An OS in design.
PostPosted: Mon Jan 26, 2009 7:10 pm 
Offline
Member
Member
User avatar

Joined: Fri Apr 18, 2008 4:40 pm
Posts: 1686
Location: Langley, Vancouver, BC, Canada
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


Top
 Profile  
 
 Post subject: Re: An OS in design.
PostPosted: Mon Jan 26, 2009 10:13 pm 
Offline
Member
Member

Joined: Sun Nov 09, 2008 2:55 am
Posts: 524
Location: Pennsylvania, USA
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.


Top
 Profile  
 
 Post subject: Re: An OS in design.
PostPosted: Tue Jan 27, 2009 6:04 am 
Offline
Member
Member

Joined: Sun Sep 23, 2007 4:52 am
Posts: 368
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).


Top
 Profile  
 
 Post subject: Re: An OS in design.
PostPosted: Tue Jan 27, 2009 9:20 am 
Offline
Member
Member
User avatar

Joined: Wed Mar 05, 2008 9:10 pm
Posts: 391
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


Top
 Profile  
 
 Post subject: Re: An OS in design.
PostPosted: Tue Jan 27, 2009 9:43 am 
Offline
Member
Member

Joined: Sun Sep 23, 2007 4:52 am
Posts: 368
Quote:
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!

Quote:
I'll have to think more about it.
Good idea.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 30 posts ]  Go to page 1, 2  Next

All times are UTC - 6 hours


Who is online

Users browsing this forum: No registered users and 47 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group