Page 1 of 2

Begining of BareMetal

Posted: Mon Mar 17, 2008 4:46 pm
by nekros
This is the start of a design for my OS called BareMetal. It is FAR from complete as you can see, though I thought you might be interested in the proposed layout of the system.(aka. The Diagram)

Rename the extension to PDF.

Posted: Mon Mar 17, 2008 5:22 pm
by Paw
I see a contradiction between "A stable OS that won't crash" (impossible per se) and "All software will run in ring 0" :?

Posted: Mon Mar 17, 2008 5:54 pm
by nekros
as stable as possible in ring 0. The idea behind singularity I think. :D

Posted: Mon Mar 17, 2008 6:19 pm
by nekros
Rename to PDF

Posted: Mon Mar 17, 2008 6:59 pm
by piranha
Kind of like an exokernel?

Are you going to implement lots/some/none syscalls?

-JL

Posted: Mon Mar 17, 2008 7:32 pm
by nekros
As few as possible, though enough to allow the full power of the hardware to be used.

Posted: Mon Mar 17, 2008 7:32 pm
by Dex
Its sounds like a 64bit ver of DexOS, From the design so far.

Posted: Mon Mar 17, 2008 7:47 pm
by nekros
Wait for the next part in the design, slightly different. :D

Posted: Tue Mar 18, 2008 10:50 am
by xyzzy
nekros wrote:as stable as possible in ring 0. The idea behind singularity I think. :D
Have you actually read anything about how Singularity works?

Posted: Tue Mar 18, 2008 12:59 pm
by cyr1x
Singularity runs managed-applications, thus they can be verified and isolated easily (more or less). If you want unmanaged code this is nearly imposible.
Of course there're some exception like singletasking OS's (like the OS from Dex), which can crash too, but I think this isn't an option for you, is it?

Posted: Tue Mar 18, 2008 1:27 pm
by Dex
There's also console OS's like the xbox etc.
While the Xbox kernel is based on the NT/Windows 2000 kernel, it's extremely lean. There's no virtual memory paging, and only a single process is allowed (though that process can spawn multiple threads). The entire kernel fits into 150KB--far less than the 1MB original goal.
The development library is polling-based rather than event driven (unlike Windows). This was due directly to feedback from game developers.
The game owns the hardware--it runs in ring 0, and has direct access to all hardware (including CPU and graphics).
Memory allocation is the responsibility of the app--there's no front-end memory allocation.
While the APIs were familiar (Direct3D, DirectSound), the back ends were different, and highly tuned to the Xbox hardware. However, the input API is different from DirectInput on the PC.

Posted: Tue Mar 18, 2008 2:39 pm
by nekros
No preemptive multitasking, processes will give up the cpu when they get past their critical regions.

Posted: Tue Mar 18, 2008 3:23 pm
by nekros
Here is the new one, rename to .pdf as the extension.

Posted: Tue Mar 18, 2008 4:43 pm
by Zenith
I'm just wondering - How would you force someone to develop their application to run in ring 3?

I mean, let's say you download something from a network, and you run it. According to what you've said, wouldn't that application get to decide which ring it's running on? Or is their some way the OS marks every 'trusted program'?

I think you're just dodging an issue here... Ring 0 vs. Ring 3 - Either developers will opt for the speed and freedom of ring 0 (very, very likely) or the restrictive 'stability' of ring 3 (unlikely). Just stick with one or the other!

Of course, all of this doesn't matter if you plan to be the only developer for your OS from now until forever.

Posted: Tue Mar 18, 2008 6:02 pm
by nekros
No, It doesn't matter if there is network services for ring 0. From a virus point of view the user can choose which one to use. I'd pick non-virus.