A rose by any other name would be known as a runtime platform or environment. See also Erlang/OTP.
A hosted operating system punts on all the distracting/interesting/useful parts of OS stuff in order to focus on the aesthetic of the programming environment.
A hosted operating system punts on all the distracting/interesting/useful parts of OS stuff in order to focus on the aesthetic of the programming environment.
This might an appropriate description of a virtual machine.
Inferno is a distributed operating system.
It’s rather different from a mainframe OS, such as Windows or Linux: all services of a network are served to the user with a uniform interface and programs can be distributed over the network transparently, moving data or computations as required.
The network as a whole is your computing device.
Now, once you understand this, you might wonder if it’s really so important who write the drivers for a single node.
Turns out it doesn’t matter that much: as long as the interface is uniform the system works as a whole.
Now I agree that an OS running on top of an OS is weird. Much more an OS running on top of a browser!
But sadly, it’s what your cloud vps do. And what any OS that target WASM want to do.
Guess what? Inferno did both things several years ago!
And better, with an uniform interface.
I’m not sure what you mean by mainframe OS, though it seems like it’s an attempt at derision?
Virtual machines like those you might rent from a cloud provider are much more a partitioning technology these days. Though there is another operating system running on the same hardware (in the “hypervisor” role), the guest operating system is also interacting directly with quite a lot of CPU management, and increasingly other hardware devices via passthrough mechanisms. Critically, that same software can also run outside the emulation/hypervisor environment: it can take control of an entire computer, providing services to other software, and is thus an operating system.
In the case of software that isn’t able to (or perhaps even intended to) run on a computer directly without other scaffolding, it’s really not an operating system. If it’s really a network service or programming environment built to run on top of other things (“hosted”, if you will!) it would be less confusing to call it that. There’s obviously no shame in building an amazing new platform for constructing distributed applications – it’d just be best to avoid hijacking existing terminology while doing so.
I’m not sure what you mean by mainframe OS, though it seems like it’s an attempt at derision?
Absolutely no!
I was trying to distingush the OSes that are designed for a single computer (thus in the ancient and noble tradiction of mainframes) from the OSes that are designed for a network of eterogenous computers.
When we talk about distributed operating systems, the focus is not in the control of the hardware of a single pc, but in the control of a whole network.
In the case of Inferno, you can run it on bare metal, on Windows, on Linux, on Plan9, on some game platforms and on IE8 (if I remember correctly).
This covers a variety of architectures that few mainstream OS could compete with.
Without an hardware emulator.
it’d just be best to avoid hijacking existing terminology while doing so
I’m afraid Inferno was defined as a distributed operating system before “existing terminology” was conceived.
So one might argue that existing terminology was designed by people either ignoring previous art or meaning something different.
I’m afraid Inferno was defined as a distributed operating system before “existing terminology” was conceived.
I don’t think that’s true at all. Even the Wikipedia page for Inferno suggests it was released in 1996, and links to at least one paper from the authors from around that time. I think we’d kind of settled on an operating system being a body of software chiefly responsible for controlling an actual machine and providing services to software and users by then.
By way of contrast, the Amoeba distributed operating system is another attempt (and seemingly prior to Inferno!) that is both distributed (providing network transparency as a core system primitive) and an operating system (Amoeba includes a microkernel base which runs on all of the machines throughout a deployment). Sprite is another similar project, also late 1980s to early 1990s, in which some level of network transparency was achieved in addition to the base job of an operating system: controlling the machine.
Fine, Amoeba and Sprite are distributed operating systems.
Plan 9 is a distributed operating system too. So is Inferno, that can run on bare metal AND hosted by another OS.
You mean different from a centralized mainframe. The CTOS system looks pretty close to a distributed OS. Customers were loving it, too.
Far as OS on an OS, IBM invented that (I think…) in VM/370 in the 1970’s. VM could even run itself mainly for debugging. Mainframes also supported multiple users and metered CPU/memory. The cloud reinvents mainframes on cheaper hardware with more flexible software. The core concepts were a mainframe advantage, though.
Right, it definitely doesn’t feel like an especially appropriate use of the term until it’s also in control of the actual machine. If it’s a runtime environment and library, it seems clearer to just call it that.
The point at which services are provided to programs by “the operating system” versus other programs present but not considered part of the “operating system” is blurry, and getting blurrier all the time in a distributed world. “Control of the actual machine” sounds like the definition of a kernel, which can certainly be part of an operating system, but isn’t the whole thing.
tl;dr: what you’re referring to as Linux is actually GNU/Linux,,,
Not all of the control of the machine is in the hands of the kernel in every operating system. For instance, in illumos we perform some amount of interrupt configuration from a privileged process running in usermode (intrd(1M)) – but it’s still part of the operating system.
Words have a meaning, and I think eroding the term operating system does us a terrible disservice. There are already loads of other terms that better describe a program that runs on top of an operating system and provides services to other programs, whether over local IPC mechanisms or through some network protocol.
It’s true that a distribution of Linux may include quite a lot of software that isn’t really “operating system” software per se; e.g., chat clients or drawing software. But if your software doesn’t have the ability to take a computer from cold start up to running some other workload, it’s really not, itself, an operating system.
I think eroding the term operating system does us a terrible disservice.
I’m totally for a precise and clear technical language!
But, why we write hardware emulators like qemu, xen, virtual box and so on… if we cannot run operating systems on them?
And if what run on qemu is an operating system when it provides the user all the tools she needs, why a software that does the same but run without the hardware emulator is that different?
Because they mention Inferno on the description they probably mean that in addition to running on ‘bare metal’ it can also run in an emulator inside another OS. Same as Inferno.
They usually add them when something is submitted a lot on Lobsters. That way it can be filtered by some or highlighted by others. Really just need an OS tag. I tried. There was a lot of interest but not added.
I don’t see that we get many Plan9 stories, but the procedure is to make a meta thread linking to untagged stories and inviting discussion. If there’s a strong consensus, I’ll add it.
I just wanted to notice that the issue we face here is more general.
Hackers love challenging mainstream wisdom and operating systems are definitely not a solved problem.
Node9 is a heavily inspired by Plan 9 through Inferno.
But, for example, the more I work on Jehanne the more heretic it becomes: in the long run, when I will complete the replacement of 9P2000, many will argue that it’s not a Plan 9 anymore even if I actually forked a well known Plan 9 kernel!
What exactly is a “hosted” operating system?
A rose by any other name would be known as a runtime platform or environment. See also Erlang/OTP.
A hosted operating system punts on all the distracting/interesting/useful parts of OS stuff in order to focus on the aesthetic of the programming environment.
This might an appropriate description of a virtual machine.
Inferno is a distributed operating system.
It’s rather different from a mainframe OS, such as Windows or Linux: all services of a network are served to the user with a uniform interface and programs can be distributed over the network transparently, moving data or computations as required.
The network as a whole is your computing device.
Now, once you understand this, you might wonder if it’s really so important who write the drivers for a single node.
Turns out it doesn’t matter that much: as long as the interface is uniform the system works as a whole.
Now I agree that an OS running on top of an OS is weird. Much more an OS running on top of a browser!
But sadly, it’s what your cloud vps do. And what any OS that target WASM want to do.
Guess what? Inferno did both things several years ago!
And better, with an uniform interface.
Try this on your mainframe of choice! ;-)
I’m not sure what you mean by mainframe OS, though it seems like it’s an attempt at derision?
Virtual machines like those you might rent from a cloud provider are much more a partitioning technology these days. Though there is another operating system running on the same hardware (in the “hypervisor” role), the guest operating system is also interacting directly with quite a lot of CPU management, and increasingly other hardware devices via passthrough mechanisms. Critically, that same software can also run outside the emulation/hypervisor environment: it can take control of an entire computer, providing services to other software, and is thus an operating system.
In the case of software that isn’t able to (or perhaps even intended to) run on a computer directly without other scaffolding, it’s really not an operating system. If it’s really a network service or programming environment built to run on top of other things (“hosted”, if you will!) it would be less confusing to call it that. There’s obviously no shame in building an amazing new platform for constructing distributed applications – it’d just be best to avoid hijacking existing terminology while doing so.
Absolutely no!
I was trying to distingush the OSes that are designed for a single computer (thus in the ancient and noble tradiction of mainframes) from the OSes that are designed for a network of eterogenous computers.
When we talk about distributed operating systems, the focus is not in the control of the hardware of a single pc, but in the control of a whole network.
In the case of Inferno, you can run it on bare metal, on Windows, on Linux, on Plan9, on some game platforms and on IE8 (if I remember correctly).
This covers a variety of architectures that few mainstream OS could compete with.
Without an hardware emulator.
I’m afraid Inferno was defined as a distributed operating system before “existing terminology” was conceived.
So one might argue that existing terminology was designed by people either ignoring previous art or meaning something different.
In both cases, I will keep calling Inferno an OS.
I don’t think that’s true at all. Even the Wikipedia page for Inferno suggests it was released in 1996, and links to at least one paper from the authors from around that time. I think we’d kind of settled on an operating system being a body of software chiefly responsible for controlling an actual machine and providing services to software and users by then.
By way of contrast, the Amoeba distributed operating system is another attempt (and seemingly prior to Inferno!) that is both distributed (providing network transparency as a core system primitive) and an operating system (Amoeba includes a microkernel base which runs on all of the machines throughout a deployment). Sprite is another similar project, also late 1980s to early 1990s, in which some level of network transparency was achieved in addition to the base job of an operating system: controlling the machine.
I’m not sure if this count as an objection. :-)
Fine, Amoeba and Sprite are distributed operating systems.
Plan 9 is a distributed operating system too. So is Inferno, that can run on bare metal AND hosted by another OS.
You mean different from a centralized mainframe. The CTOS system looks pretty close to a distributed OS. Customers were loving it, too.
Far as OS on an OS, IBM invented that (I think…) in VM/370 in the 1970’s. VM could even run itself mainly for debugging. Mainframes also supported multiple users and metered CPU/memory. The cloud reinvents mainframes on cheaper hardware with more flexible software. The core concepts were a mainframe advantage, though.
Right, it definitely doesn’t feel like an especially appropriate use of the term until it’s also in control of the actual machine. If it’s a runtime environment and library, it seems clearer to just call it that.
The point at which services are provided to programs by “the operating system” versus other programs present but not considered part of the “operating system” is blurry, and getting blurrier all the time in a distributed world. “Control of the actual machine” sounds like the definition of a kernel, which can certainly be part of an operating system, but isn’t the whole thing.
tl;dr: what you’re referring to as Linux is actually GNU/Linux,,,
Not all of the control of the machine is in the hands of the kernel in every operating system. For instance, in illumos we perform some amount of interrupt configuration from a privileged process running in usermode (intrd(1M)) – but it’s still part of the operating system.
Words have a meaning, and I think eroding the term operating system does us a terrible disservice. There are already loads of other terms that better describe a program that runs on top of an operating system and provides services to other programs, whether over local IPC mechanisms or through some network protocol.
It’s true that a distribution of Linux may include quite a lot of software that isn’t really “operating system” software per se; e.g., chat clients or drawing software. But if your software doesn’t have the ability to take a computer from cold start up to running some other workload, it’s really not, itself, an operating system.
I’m totally for a precise and clear technical language!
But, why we write hardware emulators like qemu, xen, virtual box and so on… if we cannot run operating systems on them?
And if what run on qemu is an operating system when it provides the user all the tools she needs, why a software that does the same but run without the hardware emulator is that different?
Because they mention Inferno on the description they probably mean that in addition to running on ‘bare metal’ it can also run in an emulator inside another OS. Same as Inferno.
While I agree that unix is the best tag you have here, it’s rather inappropriate for something related or derived from Plan 9 from Bell Labs.
Maybe we should have a plan9 tag, but then people might argue about what is really a Plan9 and what not.
Also I saw enough posts related to research operating systems lately to think there should be a dedicated tag.
What is your opinion @pushcx?
They usually add them when something is submitted a lot on Lobsters. That way it can be filtered by some or highlighted by others. Really just need an OS tag. I tried. There was a lot of interest but not added.
I just tag them CompSci, Programming, or Release.
I don’t see that we get many Plan9 stories, but the procedure is to make a
metathread linking to untagged stories and inviting discussion. If there’s a strong consensus, I’ll add it.Done. Let see if it gains traction.
People will argue about what’s really plan9 and what’s not, but I’m sure they could at least agree that this is more plan9 than not.
For sure!
I just wanted to notice that the issue we face here is more general.
Hackers love challenging mainstream wisdom and operating systems are definitely not a solved problem.
Node9 is a heavily inspired by Plan 9 through Inferno.
But, for example, the more I work on Jehanne the more heretic it becomes: in the long run, when I will complete the replacement of 9P2000, many will argue that it’s not a Plan 9 anymore even if I actually forked a well known Plan 9 kernel!
Lua seems a bit limited in this kind of job. Perhaps common lisp would truly shine.