Begining of BareMetal
Begining of BareMetal
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.
Rename the extension to PDF.
- Attachments
-
- design.txt
- Start of the design
- (56.16 KiB) Downloaded 215 times
Working On:Bootloader, RWFS Image Program
Leviathan: http://leviathanv.googlecode.com
Kernel:Working on Design Doc
Leviathan: http://leviathanv.googlecode.com
Kernel:Working on Design Doc
as stable as possible in ring 0. The idea behind singularity I think.
Working On:Bootloader, RWFS Image Program
Leviathan: http://leviathanv.googlecode.com
Kernel:Working on Design Doc
Leviathan: http://leviathanv.googlecode.com
Kernel:Working on Design Doc
Rename to PDF
- Attachments
-
- design.txt
- (57.45 KiB) Downloaded 143 times
Working On:Bootloader, RWFS Image Program
Leviathan: http://leviathanv.googlecode.com
Kernel:Working on Design Doc
Leviathan: http://leviathanv.googlecode.com
Kernel:Working on Design Doc
- piranha
- Member
- Posts: 1391
- Joined: Thu Dec 21, 2006 7:42 pm
- Location: Unknown. Momentum is pretty certain, however.
- Contact:
Kind of like an exokernel?
Are you going to implement lots/some/none syscalls?
-JL
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
dbittman on IRC, @danielbittman on twitter
https://dbittman.github.io
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
Leviathan: http://leviathanv.googlecode.com
Kernel:Working on Design Doc
Wait for the next part in the design, slightly different.
Working On:Bootloader, RWFS Image Program
Leviathan: http://leviathanv.googlecode.com
Kernel:Working on Design Doc
Leviathan: http://leviathanv.googlecode.com
Kernel:Working on Design Doc
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?
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?
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.
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
Leviathan: http://leviathanv.googlecode.com
Kernel:Working on Design Doc
Here is the new one, rename to .pdf as the extension.
- Attachments
-
- design.txt
- (62.52 KiB) Downloaded 121 times
Working On:Bootloader, RWFS Image Program
Leviathan: http://leviathanv.googlecode.com
Kernel:Working on Design Doc
Leviathan: http://leviathanv.googlecode.com
Kernel:Working on Design Doc
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.
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."
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
Leviathan: http://leviathanv.googlecode.com
Kernel:Working on Design Doc