[Tfug] Partition Second Drive
Bexley Hall
bexley401 at yahoo.com
Fri Oct 27 14:54:44 MST 2006
Hi, Stephen,
--- Stephen Hooper <stephen.hooper at gmail.com> wrote:
> > Technically, an Operating System doesn't have to
> > run on bare metal. All it has to do is provide
> > certain services to it's applications. You can
> > argue as to whether or not something like Windows
> > 3.1 qualifies as an OS (vs. a GUI *on* an OS)
> > until you start looking at how those services
> > are provided and by whom (which is where W3.1
> > falls down).
>
> I think that you are on a slippery slope: you can
> now argue that everything up to, and including
> Microsoft Word is an Operating System.
Yes. And, equally, argue that anything that calls
on a BIOS is NOT an OS (for similar reasons).
I try not to be pedantic about these things as it
is hard to quantify where the line lies. E.g.,
everyone can make *some* argument that even
balancing a checkbook is a "real-time" application
(since the results *do* have timeliness criteria)
yet anyone skilled in the art would laugh at such
an argument.
Roughly speaking, an operating system:
- provides some degree of abstraction from the metal
- manages resources
i.e. an OS facilitates the developers' and users'
activities.
A wonderful NON-definition! :>
It does allow MS-Word to be considered as an OS...
TO MS-WORD DOCUMENTS (programs). Your "document"
relies on Word to manage the resources that it needs.
It benefits from a degree of abstraction afforded
to it *by* MS-Word to hide the vagaries of the
underlying metal from it, etc.
I doubt many folks would consider this a SERIOUS
"OS" :-/
I try to draw the 0-th order distinction between
OS/NonOS by noting if the thing claiming to be an
OS at the very least provides a consistent API
through which access to *all* resources is made.
I.e. if you call malloc directly from your
application and that "goes around" the "OS",
then that "OS" clearly isn't even *trying* to
look like it manages THAT resource.
OTOH, if the "OS" provides an "allocate()" hook
and simply forwards that directly to the underlying
OS, how does that differ from letting something
like a microkernel *beneath* an "real" OS provide
the real memory management service? I.e. if
OS X passes memory management requests to the
underlying microkernel, does that make OS X a
"non OS"? Or, do you rationalize that the microkernel
is *part* of OS X? (in which case, can someone
claim that DOS is part of W3.1 and, thus, W3.1 is
a *real* OS??)
> Maybe I should ask instead, does Inferno always rely
> on third party code to manage its memory allocation,
> its disk access, or its scheduling. Can it do any
> of those things natively on any hardware.
I believe all of the existing 4th Ed. distributions
are hosted on other OS's. But, the design of the
system is such that you could put the equivalent of
a "hardware abstraction layer" under Inferno and
get rid of the hosting OS and things would run just
fine. (though this is nontrivial -- and, non
portable!)
I think there was a bare metal port of 3rd Ed. but
I am not sure if that was available to the "general
public" (I can dig through my email archives and
see -- but that would take a fair bit of effort :< ).
So, you can opt to consider it as an OS or as a
non-OS, however you see fit on any given day. :>
> If it can't then it is not an Operating System.
>
> > E.g., MULTICS supported different OS's layered in
> > this (Inferno) manner.
>
> Yes, but the question then becomes did those OS's
> have direct access to the hardware which Multics
> allocated to them (ala VMWare, or HP/UX
> virtual partitions, Xen, etc.). If they do then
> Multics wasn't really performing memory management,
> or disk management for the Operating System that
> were running on it, but instead building up a
> containment area in which those Operating Systems
> can play.
I don't view access to the hardware as a prerequisite.
I.e. if I malloc 1GB of memory and then govern how
that memory is doled out to *my* applications (even
if there isn't real PHYSICAL memory behind that 1GB
allocation!), why can't I also be considered an OS?
Even though I relied on the hosting OS to make that
1GB of memory available to me in the first place?
As I (and you!) said, it's a slippery slope.
That's why I like my "if you always have to go
*through* 'this' to get at resources..." criteria.
It helps sort out those things that are NOT
OS's (though it still leaves many others in a
gr[ae]y area.
> I got the impression that Inferno basically just
> called malloc, open, etc. The same as any other
> virtual machine would do.
As I said, I think that is what the current releases
do. But, I haven't looked at Inferno's new codebase
(due to the new license terms). I guess I would
have to look at it from the flip side -- could you
run Java, Squak, etc. on bare metal *without*
changing any applications (assuming those applications
took whatever liberties the "OS-candidate" allowed
them to take)? I.e., do the little Sun Java boxes
run Java on bare metal (with some little abstraction
layer in between?) or do they run a stripped down
version of Solaris to host them? (I am asking out
of ignorance... I know the boxes *exist* but I have
never played with one to know what they look like
under the hood)
> > I believe you can run Inferno on x86 metal --
> though
> > I haven't tried. I was looking at doing a port to
> > ARM but the v4 license made such an effort
> infeasible
> > from an economic point of view. :<
>
> You see... that is what I was looking to do! Just
> never could figure out if it was even possible.
The short answer is: "it's not *easy*" :-/
But, yes, if you play by the rules, you can
write applications that run entirely within
Inferno and can then be hosted on bare metal.
Inferno has much/all? of the infrastructure in
place to do so -- but it isn't fleshed out
"behind the scenes", much. I.e. their /dev/mouse
is almost ludicrous in it's implementation :<
I am reasonably sure there was a bare metal x86
implementation available (though perhaps through
unofficial channels -- since they probably
would NOT want to have to deal with people
complaining that it didn't run on their XYZ-2000
or Gonkulator Mega-Plus machine with oddball
I/O's). Or, some *other* platform that was not
appealing to me (which is why x86 comes to mind).
I had done a fair bit of work developing applications
and then was dsappointed to see the license terms
for the newer release. :<
And, I got bit by Jaluna for similar reasons. :< :<
(Jaluna *will* run on bare metal; I dont think a
hosted version is available)
Inferno is worth a look as it offers many interesting
new concepts (rehashed?). It definitely has a very
different "feel" to it than most systems.
--don
____________________________________________________________________________________
Everyone is raving about the all-new Yahoo! Mail
(http://advision.webevents.yahoo.com/mailbeta/)
More information about the tfug
mailing list