Begining of BareMetal

Discussions on more advanced topics such as monolithic vs micro-kernels, transactional memory models, and paging vs segmentation should go here. Use this forum to expand and improve the wiki!
User avatar
nekros
Member
Member
Posts: 391
Joined: Wed Mar 05, 2008 9:10 pm
Contact:

Begining of BareMetal

Post 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.
Attachments
design.txt
Start of the design
(56.16 KiB) Downloaded 205 times
Working On:Bootloader, RWFS Image Program
Leviathan: http://leviathanv.googlecode.com
Kernel:Working on Design Doc
Paw
Member
Member
Posts: 34
Joined: Fri Mar 07, 2008 11:20 am

Post 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" :?
User avatar
nekros
Member
Member
Posts: 391
Joined: Wed Mar 05, 2008 9:10 pm
Contact:

Post by nekros »

as stable as possible in ring 0. The idea behind singularity I think. :D
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:

Post by nekros »

Rename to PDF
Attachments
design.txt
(57.45 KiB) Downloaded 139 times
Working On:Bootloader, RWFS Image Program
Leviathan: http://leviathanv.googlecode.com
Kernel:Working on Design Doc
User avatar
piranha
Member
Member
Posts: 1391
Joined: Thu Dec 21, 2006 7:42 pm
Location: Unknown. Momentum is pretty certain, however.
Contact:

Post by piranha »

Kind of like an exokernel?

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

-JL
SeaOS: Adding VT-x, networking, and ARM support
dbittman on IRC, @danielbittman on twitter
https://dbittman.github.io
User avatar
nekros
Member
Member
Posts: 391
Joined: Wed Mar 05, 2008 9:10 pm
Contact:

Post by nekros »

As few as possible, though enough to allow the full power of the hardware to be used.
Working On:Bootloader, RWFS Image Program
Leviathan: http://leviathanv.googlecode.com
Kernel:Working on Design Doc
User avatar
Dex
Member
Member
Posts: 1444
Joined: Fri Jan 27, 2006 12:00 am
Contact:

Post by Dex »

Its sounds like a 64bit ver of DexOS, From the design so far.
User avatar
nekros
Member
Member
Posts: 391
Joined: Wed Mar 05, 2008 9:10 pm
Contact:

Post by nekros »

Wait for the next part in the design, slightly different. :D
Working On:Bootloader, RWFS Image Program
Leviathan: http://leviathanv.googlecode.com
Kernel:Working on Design Doc
xyzzy
Member
Member
Posts: 391
Joined: Wed Jul 25, 2007 8:45 am
Libera.chat IRC: aejsmith
Location: London, UK
Contact:

Post 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?
cyr1x
Member
Member
Posts: 207
Joined: Tue Aug 21, 2007 1:41 am
Location: Germany

Post 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?
User avatar
Dex
Member
Member
Posts: 1444
Joined: Fri Jan 27, 2006 12:00 am
Contact:

Post 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.
User avatar
nekros
Member
Member
Posts: 391
Joined: Wed Mar 05, 2008 9:10 pm
Contact:

Post by nekros »

No preemptive multitasking, processes will give up the cpu when they get past their critical regions.
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:

Post by nekros »

Here is the new one, rename to .pdf as the extension.
Attachments
design.txt
(62.52 KiB) Downloaded 117 times
Working On:Bootloader, RWFS Image Program
Leviathan: http://leviathanv.googlecode.com
Kernel:Working on Design Doc
User avatar
Zenith
Member
Member
Posts: 224
Joined: Tue Apr 10, 2007 4:42 pm

Post 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.
"Sufficiently advanced stupidity is indistinguishable from malice."
User avatar
nekros
Member
Member
Posts: 391
Joined: Wed Mar 05, 2008 9:10 pm
Contact:

Post 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.
Working On:Bootloader, RWFS Image Program
Leviathan: http://leviathanv.googlecode.com
Kernel:Working on Design Doc
Post Reply