Over at the Motley Fool there is an article called
"Expectations for MacOS X"
by Investosaurus. The gist of the article is that there are four common
myths
about operating systems and the author goes on to show that these myths
don't
pertain to the various flavors of Unix, one of which MacOS X is based
on. The
problem I have about the article is that the myths do apply to Unix,
just in a
different way than to microcomputer operating systems.
Myth 1: If you run too many applications, you can "overload" the OS and
it will
crash. Investosaurus goes on to say that Windows and MacOS 9 don't have
memory
protection, which Unix has in the form of a Memory Management Unit
(MMU) usually
implemented in hardware. In his words: "UNIX systems rarely crash and
it will be
nice to bring the desktop to parity with this."
At least he added that last sentence, because you can overload a Unix
system.
It's called thrashing, a case when there are too many applications
running, the
OS can't keep up and is constantly context switching, resulting in the
whole
system practically stopping in its tracks. Granted, it takes a lot of
processes
to bring a Unix system to its knees, but keep in mind that most Unix
programs
are small and fast. A whole class of students trying to compile their
Spice
designs at the same time can have the same effect with less processes.
Myth 2: Be careful about which program you run, you can crash the OS if
you run
the wrong one. Investosaurus points to a well-defined API and a
separate kernel
as reasons why that can't happen in Unix. Again, he has a good point
but he's
sidestepping the issue. The kernel is not the only way to crash an OS,
just the
best and most effective way to do so. I've seen bad programs mess up a
Unix
machine enough that you have to reboot because you can't get a console
session
to kill the application. Sure, the OS is still running, but you can't
do
anything with it. It's not easy to do and Unix is very resistant to bad
applications, but it can still be done.
Myth 3: If you don't have enough memory, your applications won't run,
or will
run slowly. Investosaurus points to the awesome Unix Virtual Memory
system
which is quite fast and efficient and makes good use of less RAM than
other
operating systems. And it works well because Unix is built on small
applications
that each take very little memory. Even big applications can be
partitioned
efficiently so that they don't slow down much.
But lets take a look at really big applications. I just can't imagine a
64 MB
Unix machine efficiently processing a 100 MB Photoshop file, or running
any
Enterprise application like a database or an order processing system.
Every
OS breaks and slows down if you throw enough big things at it. I don't
like
someone saying that these are myths because Unix is resistant to them.
It's
all a matter of scale. The more powerful the tools, the more likely
you'll
scale up your usage until the tool is doing it's maximum.
|
Myth 4: An OS has to be big to provide all the most
useful features.
Investosaurus says that the Unix kernel is small (which it is, but not
many
people today would call a bare kernel an OS). Most Unix distributions
come on
one or several CDs, and a full install can take several hundred MBs of
space.
True, you get a lot of applications that Windows and the Mac OS don't
provide
out of the box. But a comparable Unix installation will be smaller.
Investosaurus then goes on to comment on how big a Netscape or Internet
Explorer install is on Windows. Let's tie this back to the last
paragraph. One
reason that Windows and Mac OS programs are bigger than their
corresponding
Unix equivalents is graphics. GUI programs need to define windows and
draw
routines and a host of other things that CLI programs don't need. I've
written
GUI programs and the GUI space overhead is huge. Either the application
has to
do all that stuff itself (which makes the application big) or it uses
some
rather extensive system libraries (which makes the OS big).
Unix doesn't have good high-level GUI APIs. Everything is too low
level. Even
with X-windows, the graphic libraries make you do a lot of work. This
does tend
to make everything take less space overall, but it's harder to program.
You
can look at Netscape on Unix which I doubt is that big, versus on
Windows or
the Mac, where Netscape tries to do everything itself, not leveraging
the OS
facilities. Netscape is a poor example to use; heck, cross-platform
applications
are poor examples because they tend to be big in some OSs and smaller
in others.
Compare a good web browser for Unix versus one for the Mac versus one
for
Windows. For the Mac I can say that iCab is small, fast, and has
comparable
features to Netscape because it leverages the underlying OS facilities
better.
On the Windows side I hear that Opera is small, fast, and
full-featured. I'm
sure there's something similar on Unix.
Let me finish by saying that Windows, the Mac OS, and Unix were created
for
different purposes. Unix was designed to be a robust research OS that
allowed
lots of people to run misbehaving programs on the same expensive piece
of
hardware. The Mac OS was designed for ease of use computing on a rather
limited
machine. Windows was designed to give Microsoft leverage to promote
their other
products. They all have their strengths and weaknesses and none of them
is
perfect for everyone. I didn't like the tone of the article and so
that's why
I wrote this little piece. I'm sure I'm not totally correct, but I
think I'm
reasonably close.
|