What is the correct terminology?

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!
Post Reply
polas
Posts: 5
Joined: Fri Sep 04, 2009 2:23 am

What is the correct terminology?

Post by polas »

Hi all, I thought this topic would probably best lie in here (mod please move it if it does not.)

Basically, I have research interests in parallel computing and operating systems. I am currently writing a system which runs on top of the machine's OS (some GNU Linux or Solaris) to implement a parallel operating system over many machines. This system is designed like an OS (kernel and all), making it appear that the collection of machines is infact only one, and will allow for code to be run "under" it etc.

The whole point of the system I am writing is for research - the design I have adopted allows for it (quite) easily to be constructed and then it will be possible to use it to test and develop ideas promoting reliability, resiliance etc nice and quickly. The whole idea being that in the long run these tested concepts could be used in a real parallel OS. Having said that, there is no reason why it could not be used to run and support real parallel applications.

The question I have is what to refer to it as. I am uneasy calling it an OS - although it does implement many of the functions of an OS, it is not one (as it runs on top of the machine's OS.) On the other hand it is not an emulator either, there is no emulation involved. Has anyone come across one of these designs before?

Nick
whowhatwhere
Member
Member
Posts: 199
Joined: Sat Jun 28, 2008 6:44 pm

Re: What is the correct terminology?

Post by whowhatwhere »

polas wrote:Hi all, I thought this topic would probably best lie in here (mod please move it if it does not.)

Basically, I have research interests in parallel computing and operating systems. I am currently writing a system which runs on top of the machine's OS (some GNU Linux or Solaris) to implement a parallel operating system over many machines. This system is designed like an OS (kernel and all), making it appear that the collection of machines is infact only one, and will allow for code to be run "under" it etc.

The whole point of the system I am writing is for research - the design I have adopted allows for it (quite) easily to be constructed and then it will be possible to use it to test and develop ideas promoting reliability, resiliance etc nice and quickly. The whole idea being that in the long run these tested concepts could be used in a real parallel OS. Having said that, there is no reason why it could not be used to run and support real parallel applications.

The question I have is what to refer to it as. I am uneasy calling it an OS - although it does implement many of the functions of an OS, it is not one (as it runs on top of the machine's OS.) On the other hand it is not an emulator either, there is no emulation involved. Has anyone come across one of these designs before?

Nick
Something like this?
User avatar
JamesM
Member
Member
Posts: 2935
Joined: Tue Jul 10, 2007 5:27 am
Location: York, United Kingdom
Contact:

Re: What is the correct terminology?

Post by JamesM »

syntropy wrote:
polas wrote:Hi all, I thought this topic would probably best lie in here (mod please move it if it does not.)

Basically, I have research interests in parallel computing and operating systems. I am currently writing a system which runs on top of the machine's OS (some GNU Linux or Solaris) to implement a parallel operating system over many machines. This system is designed like an OS (kernel and all), making it appear that the collection of machines is infact only one, and will allow for code to be run "under" it etc.

The whole point of the system I am writing is for research - the design I have adopted allows for it (quite) easily to be constructed and then it will be possible to use it to test and develop ideas promoting reliability, resiliance etc nice and quickly. The whole idea being that in the long run these tested concepts could be used in a real parallel OS. Having said that, there is no reason why it could not be used to run and support real parallel applications.

The question I have is what to refer to it as. I am uneasy calling it an OS - although it does implement many of the functions of an OS, it is not one (as it runs on top of the machine's OS.) On the other hand it is not an emulator either, there is no emulation involved. Has anyone come across one of these designs before?

Nick
Something like this?
Well not really: plan9 is an actual full-on OS, with kernel and all.

@OP: Personally I'd describe it as a higher-level hardware abstraction layer.
AUsername
Member
Member
Posts: 54
Joined: Sun Feb 01, 2009 9:07 pm

Re: What is the correct terminology?

Post by AUsername »

So you mean have a program run on top of another OS, say, Windows?

That's called a SubOS.
User avatar
Brynet-Inc
Member
Member
Posts: 2426
Joined: Tue Oct 17, 2006 9:29 pm
Libera.chat IRC: brynet
Location: Canada
Contact:

Re: What is the correct terminology?

Post by Brynet-Inc »

AUsername wrote:That's called a SubOS.
No, that's called a program.
Image
Twitter: @canadianbryan. Award by smcerm, I stole it. Original was larger.
User avatar
neon
Member
Member
Posts: 1567
Joined: Sun Feb 18, 2007 7:28 pm
Contact:

Re: What is the correct terminology?

Post by neon »

polas wrote:Basically, I have research interests in parallel computing and operating systems. I am currently writing a system which runs on top of the machine's OS (some GNU Linux or Solaris) to implement a parallel operating system over many machines.
...Sounds like generic software to me. ie, programs. If you want to go fancy, name it a Virtual OS ;)

*edit: or an Operating Environment. IIRC thats what Windows was before Windows 95.
Last edited by neon on Fri Sep 04, 2009 7:35 pm, edited 1 time in total.
OS Development Series | Wiki | os | ncc
char c[2]={"\x90\xC3"};int main(){void(*f)()=(void(__cdecl*)(void))(void*)&c;f();}
AUsername
Member
Member
Posts: 54
Joined: Sun Feb 01, 2009 9:07 pm

Re: What is the correct terminology?

Post by AUsername »

Brynet-Inc wrote:
AUsername wrote:That's called a SubOS.
No, that's called a program.
What would you call Win3?
It's an OS but it runs on top of DOS.
User avatar
Brynet-Inc
Member
Member
Posts: 2426
Joined: Tue Oct 17, 2006 9:29 pm
Libera.chat IRC: brynet
Location: Canada
Contact:

Re: What is the correct terminology?

Post by Brynet-Inc »

AUsername wrote:What would you call Win3?
It's an OS but it runs on top of DOS.
No.. it's a glorified DOS program, it is no more an operating system than Firefox is.
Image
Twitter: @canadianbryan. Award by smcerm, I stole it. Original was larger.
User avatar
Firestryke31
Member
Member
Posts: 550
Joined: Sat Nov 29, 2008 1:07 pm
Location: Throw a dart at central Texas
Contact:

Re: What is the correct terminology?

Post by Firestryke31 »

I'd have said "It's no more an OS than explorer.exe."
Owner of Fawkes Software.
Wierd Al wrote: You think your Commodore 64 is really neato,
What kind of chip you got in there, a Dorito?
User avatar
Brendan
Member
Member
Posts: 8561
Joined: Sat Jan 15, 2005 12:00 am
Location: At his keyboard!
Contact:

Re: What is the correct terminology?

Post by Brendan »

Hi,
polas wrote:The question I have is what to refer to it as. I am uneasy calling it an OS - although it does implement many of the functions of an OS, it is not one (as it runs on top of the machine's OS.) On the other hand it is not an emulator either, there is no emulation involved. Has anyone come across one of these designs before?
There are operating systems that can be compiled to run on top of another OS. One example is Linux (where you can compile it as "user space Linux" and run it as an application on top of a "bare metal" Linux). Plan9 is also capable of doing this (e.g. can be run on bare metal, or run as an application on top of a Unix-like OS). In these cases, I think the correct terminology is "hosted OS" (when it's running on top of another OS).

In some ways, running on top of another OS is like porting the OS to a different architecture. For example, an OS could be written for 80x86, then ported to PowerPC, then ported to run on top of Linux, then ported to Itanium, then ported to run on top of Windows. In the same way, an OS could be written to run on top of Linux or Solaris, then ported to 80x86.

Therefore, IMHO: If you're writing something that runs on top of Linux or Solaris, and maybe some time in the future someone could port it to run on bare metal, then in this case it's a hosted OS (even if it hasn't been ported to bare metal yet, and even if you don't intend to port it to bare metal). However, if for some reason it'd be silly to port it to bare metal, then it's an application and not a hosted OS (even if someone attempts to port it to bare metal).

From what you described it sounds to me that it's not an OS and not an application, but it is a hosted OS.


Cheers,

Brendan
For all things; perfection is, and will always remain, impossible to achieve in practice. However; by striving for perfection we create things that are as perfect as practically possible. Let the pursuit of perfection be our guide.
User avatar
geomagas
Posts: 12
Joined: Wed Feb 27, 2008 6:01 am
Location: Iraklion,Crete,Greece
Contact:

Re: What is the correct terminology?

Post by geomagas »

Hi,

PVM, iirc, has a similar concept (and goals?)
So you might as well call it a Virtual Machine.

Regards
I was... delayed... - Gandalf
User avatar
Troy Martin
Member
Member
Posts: 1686
Joined: Fri Apr 18, 2008 4:40 pm
Location: Langley, Vancouver, BC, Canada
Contact:

Re: What is the correct terminology?

Post by Troy Martin »

Brynet-Inc wrote:
AUsername wrote:What would you call Win3?
It's an OS but it runs on top of DOS.
No.. it's a glorified DOS program, it is no more an operating system than Firefox is.
I respectfully disagree. Firefox doesn't provide an full-fledged graphical user interface API and lower-level routines that Windows 3.x did. 3.x wasn't really an OS as it required DOS, but it was more of an OS than a userspace program like Firefox.
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
User avatar
NickJohnson
Member
Member
Posts: 1249
Joined: Tue Mar 24, 2009 8:11 pm
Location: Sunnyvale, California

Re: What is the correct terminology?

Post by NickJohnson »

Troy Martin wrote:
Brynet-Inc wrote:
AUsername wrote:What would you call Win3?
It's an OS but it runs on top of DOS.
No.. it's a glorified DOS program, it is no more an operating system than Firefox is.
I respectfully disagree. Firefox doesn't provide an full-fledged graphical user interface API and lower-level routines that Windows 3.x did. 3.x wasn't really an OS as it required DOS, but it was more of an OS than a userspace program like Firefox.
Except that Firefox pretty much does have a fully-fledged GUI API and engine, just short of a full windowing engine, not to mention a whole language with which the engine interfaces (XUL). Firefox is surprisingly like an OS within an OS - plugins = drivers, addons and web pages = programs, tabs and windows = multitasking, etc. It's at least as much of an OS as Emacs :twisted: <flameshield>.
polas
Posts: 5
Joined: Fri Sep 04, 2009 2:23 am

Re: What is the correct terminology?

Post by polas »

Thanks for all the replies - some good information in there. I have played with Plan 9 before and it seems PVM do share similar goals to mine - which is all good :)

I am thinking "hosted OS" In designing the system I have taken the underlying OS to be a sort of HAL, the whole idea being to promote portability as much as possible
Post Reply