|
|
Warp wrote:
> I remember we having this same conversation years ago.
Nice dodge! With the number of statements you've made disclaiming any need
to actually answer the question, you could have answered the question. That
said, I'm going to keep going, because I feel like it. You don't have to
believe that anything in this post is addressing you or anything you've
said. Feel free to also get annoyed if you think I'm lying about the
immediately preceding sentence also.
There's a logical falacy wherein you use argument ad absurdum, where one
says "If X, then Y, and Y is clearly not acceptable, so not X." Except for
that to work, one actually needs that logical implication there. It doesn't
work to say "If it were raining, then everyone would want to be dead, which
is clearly untrue, so it must not be raining." This flaw is usually pretty
obvious in religious arguments, as well, along the lines of "If there were
no God, then nobody would have a reason to be good or even want to live, so
obviously there must be a God." It does of course work in some places, like
the proof that every lossless compressor must increase the size of some
inputs. It also seems to work in some cases but fails due to implicit
assumptions, like Aristotle's proof that the universe is infinite, when what
he actually proved was that the universe is unbounded.
Getting back to operating systems, after thinking about it a bit (because
what else am I going to do while stairmastering?), I think the determinant
is whether the "OS" manages resources between different applications (either
concurrently or consecutively).
If there's only one possible application, and it runs without maintaining
any state between runs, then whatever it's on top of isn't an OS, but just a
library (or BIOS, which is a special case). Disregarding the built-in wall
clock, my microwave oven is back to the same state it shipped from the
factory every time it finishes cooking something. There's nothing carrying
over from "run" to "run", so it has one application, and that application
never interacts with anything else, including later executions of itself.
In this sense, neither GRUB nor a BIOS is an operating system. Every time
you run GRUB, it starts from scratch without regard for what happened
before, and it interacts with nothing except its own data (the OS it's
loading). The BIOS also doesn't share resources between applications - it
runs one application at a time (such as Windows or MS-DOS or Linux) and it
gives that OS complete control over the hardware without providing any
mechanisms for (for example) reserving space on a floppy for one boot and
not the other.
The partition tables on a HD are the very first step of turning a boot
loader into a "operating system". However, again, there's nothing "managed".
The BIOS doesn't use the partition table, nor does it create or enforce it.
The boot record stored on the hard disk uses the partition table, and the
operating systems by convention respect it, but those aren't part of the BIOS.
I also think it doesn't make sense to talk about an operating system
"managing resources for an application" if it's not around while the
application is running. Hence, things like GRUB, which are overwritten as
part of the boot process and are gone until you reset the machine, don't
count as operating systems.
If the "OS" is linked into every application, which is loaded into memory
and then overwritten when the next application is run, that may or may not
be an "operating system" depending on what it does, IMO. That is, of course,
more open to interpretation. I don't think FORTH counts as an operating
system, as there's no "application" outside the FORTH system that manages
the sharing of any resources - instead, there are conventions where one
manually notes which blocks of disk space belong to which files, for
example. This is about as close to an "operating system" as you can get
without actually being one, I think.
MS-DOS (and Classic Mac, Amiga OS, MS Xenix, CP/M, TRS-DOS, etc) would all
be operating systems because they manage the disk space for applications (if
nothing else). Two independent applications can have the space they used
managed without interference, even if they can't run at the same time.
Given that people are calling things "operating systems" in 1956 in the IBM
704, long before a computer was even capable of running two programs at
once, I think it's pretty obvious that most of the world (including those
who invented the term) think that "operating system" doesn't require
concurrent execution, preemptive scheduling, or support of multiple users.
Otherwise, we wouldn't have the more specialized terms "batch processing
OS", "multi-user OS", "timeshare OS", or "preemptive multitasking OS".
--
Darren New, San Diego CA, USA (PST)
Why is there a chainsaw in DOOM?
There aren't any trees on Mars.
Post a reply to this message
|
|