The Crux of the Matter
My complaints against the Wintel community can be
summarized into the following points, each of which
I will explain in greater detail below:
- Instability (unreliability)
- Memory management
- Process management
- Remote access/control
- Software costs can still kill you
- Limited or difficult server capabilities
- Software installations that necessitate reboots
- Viruses suck!
More details on the items in the list above:
Instability (unreliability): as I sit writing this
article, I pause, suspend my "vi" session, and type "uptime"
on my Sun UNIX workstation (which I am accessing remotely
over my home network), and I see that my main workstation
has been "up" (operating continuously with no reboot or
other interruption) for 210 days. That's 7 months since
the last time my UNIX machine was rebooted! And if I recall
correctly, it rebooted at that time 7 months ago because
of a memory error, indicating that one of its memory SIMM's
may be bad. Even with this potential hardware problem,
it has been operating flawlessly for the past 7 months,
and continues to perform the functions I have programmed it
to perform, even though many of those functions and
requirements may have been added, changed, or discontinued
over these past months.
Even my 5-year-old Sun SS4 computer has been up and
running for 25 days now (though granted it does not get
as much use as my SS5 or my PC's).
When was the last time you remember your PC being "up"
continuously for even, say, 7 days continuously? Yet
my Sun box has been operating for 30 times that long without so much as
a burp.
The fact of the matter is that any PC owner who uses their
Wintel PC even for tasks as short as a few hours will be a victim
of a frozen screen, a crashing application or other anomalies
that will frequently leave them with no other recourse than
to "start over" by completely rebooting their computer. And
as often as not, that reboot may have to be performed as
a "hard" reboot by resetting the on/off switch on the hardware
because they are likely unable to even perform a graceful reboot.
Memory management: OK; I have to admit right from the
start here that I am not an expert on memory management.
So this section is based more on my own observations
and experience than on any first-hand knowledge.
The point
here is that in my opinion, current releases of Windows 98
have some gigantic memory management problems. It is frequently
the case that even on my desktop PC (which has 96 MB of memory),
if I run an application like Netscape or IE or PowerPoint
for any length of time, then I try to open up another application
simultaneously, I will get a message telling me that I don't
have enough memory and that I have to
close some other applications first in order to run the new
application.
And what I find really interesting and unfortunate
is that even
sometimes if I completely exit my current PC application,
and then try to open the new application, I sometimes
STILL get the same message, that there is not enough
memory for me to run the new application. And like clockwork
it is ONCE AGAIN necessary for me to "start over" and completely
reboot the PC.
From my limited knowledge about memory management, this
tells me that there is something seriously wrong here. When
you run an application on a computer, even if through the
course of using that application you gobble up a tremendous
amount of memory, when you close that application you
ought to free up and regain that now-unused memory for use in other
applications. Yet experience tells me that this is not
the case; that in fact memory management under Windows is
so poor that even exiting a memory-hungry application will
not actually necessarily increase the amount of memory
available to other applications (and that this memory will
not become available again until the machine is completely rebooted!).
Yes, I find this truly interesting; let's compare
this to UNIX. Most UNIX workstations
run a windowing system called "X Windows" that is itself notorious
for memory leaks. And it is true that on such machines,
after you have been up and running for some length of time
(say for a week or a month), you will find by examining
memory usage with tools like "ps" or "top" that indeed
your X server is using a substantial amount of memory and
as such may be causing applications to run slowly or perhaps
not have enough memory to run at all.
But in such a circumstance, the only requirement to regain
full use of the capabilities of your UNIX machine, all you
need to do is exit and re-start the X windowing system. It
is rarely the case that running out of memory in such a way
would actually require you to entirely reboot the computer.
I remember several years ago receiving a complaint from
one of our lab's researchers who was a UNIX/X-windows user;
this particular person rarely complained about anything
so I was surprised to hear from him.
The complaint I was faced with was that he was beginning
to receive errors that he was out of memory and could not
run any more applications. I asked when was the last time he had
logged into X-windows, and he didn't know. So
I investigated (remotely from my own office) and discovered
that he had actually been logged into his computer and had
been running X windows for over a year! And
even so, the solution to the problem he was experiencing did
not involve rebooting his computer. All he had to do was log
out of and restart X-windows (then he was all set for another year!).
If Windows 95/98/NT were as robust, there would be
an awful lot of out-of-work PC administrators.
Process management: if you run the "ps" command on
a UNIX computer, the resulting output you see is a list
of every process that is running on the computer, and
there are lots of processes running. Depending
on your experience level as a UNIX user/administrator, you
may or may not recognize what these processes
do, but usually you can easily discover their purpose by
reading the UNIX documentation.
Under Windows 98, the most common method one uses to access
a similar list of processes is CTRL-ALT-DEL (yikes! Isn't
this the command that used to reboot a PC?).
If you press these three keys simultaneously, you bring up
a window that I think is commonly called the
"Task Manager", and you will be presented
with a list of all the programs that are running on your
computer. It is unceasingly wondrous to me that I have
no idea what any of these processes do. In fact, if I
open up "help" and type the name of any of these running
programs (some of the names of the programs are "Systray",
"Mdm", and "Em_exec"), no information is available. Except that I suspect
these processes are actually doing something, right?
Hmmmm. But if I go through this list and use the "End task"
button for all of them except "Explorer" (which is the name of
the actual windowing process itself), I find that I can close all
of the processes and can then work on my computer with
apparently no ill effect.
Of course, we have already learned that we probably will not
free up any valuable memory by closing these programs anyway, so
it is probably not terribly useful to end these tasks. But
I do find that if I am running a program such as a memory-
and graphics-intensive game that it is useful to exit all
of these programs in advance, or else risk running the application
at a too-slow speed!
Some of these processes seem to be vendor-specific. For example,
whenever I boot my laptop and look at the process list, I see
programs running with names like "Sleepmgr", and "Hotide". Well,
I can probably guess what these programs do, and can further
guess that bad things might happen to my laptop if I do actually
end some of these tasks.
Further, some of these processes that begin upon startup
are apparently related to some sort of anti-virus software
that most PC vendors include for free these days. For example,
my laptop always starts a program called "Webtrap" that I think
supposedly positions itself between the internet and my
web browser and supposedly protects me from any nasty things
I might inadvertently download during a surf session. Of course,
if something like this were actually to happen, it would most
likely occur on a piece of code that Webtrap doesn't know about
(but hey; I can get a subscription to protection from the
most-current-dangerous-web-stuff for only 40 bucks a year...).
Unfortunately, Webtrap also seems to be the thing that
causes my internet surfing to slow down so that it's
eventually unbearably slow
so I end up stopping that program anyway. Sheesh.
And, of course the Task Manager doesn't actually tell you any
other useful information about these programs either (like
how much memory they're using, how much CPU time they have
consumed, what percentage of the CPU they are currently
consuming, etc.).
There might be some as-yet-unknown-to-me
way to actually learn more about, monitor, and manage
these programs
that are running on my PC computers, but it remains a mystery to me.
Similar facetious statements could also possibly be made
about UNIX process lists, but at least under UNIX, users
are given the ability to learn much more about the processes
that are running (and are prevented from killing processes
that would damage the computer).
Remote access/control: I have spent the last 13 years
of my career generally being able to manage and manipulate
the UNIX computers under my care from the comfort and convenience
of my office (yes, occasionally one needs to actually
sit in front of the machine to fix a problem, but this is
generally infrequent).
Yet at the same time, after all these years
that PC's have been on the market, I have been the quizzical
witness to my PC-administrator counterparts running back and
forth between their office and the machine room countless
times per day just because they have to physically sit in
front of the computer to perform such simple tasks as
rebooting a PC server system.
Yes, I am aware that there are all kinds of software products
out there that you can purchase that will allow you to
connect to and perhaps even manage a PC remotely, but
it has been my experience that many of these software
products are expensive, complex to install and use, and
often end up not really solving the problem anyway.
The fact of the matter is that in the UNIX world, accessing,
managing, and controlling a computer remotely
is an integrated feature of the Operating System, not an
expensive and convoluted 3rd-party software "solution".
At the cusp of the 21st century, after PC's have been around
for over 2 decades in our heavily networked world, you would think
that Microsoft would have at least made it possible
by now for a PC administrator to actually perform simple tasks
on a remote computer without having to run into the machine
room 20 times a day or having to purchase additional software.
Software costs can still kill you:
it is difficult
to purchase a PC these days that doesn't include some free or
cheap bundled useful software like "Microsoft Works". That's
a good thing too, because if you were to simply purchase a PC
without any of these bundled packages, you'd be purchasing a
computer that really doesn't do anything. Oh sure
you could type a letter in "Notepad", or create an image with "Paint",
but there is precious little you can only with the tools that
are provided for you in the Operating System itself.
Luckily, the most useful software these days (web browsers
like Netscape and Internet Explorer) are generally free
and often included either with your computer purchase or by
an ISP anxious for your business.
But in general, if you want to do any other basic tasks
such as word processing or creating a spreadsheet, your choice
is pretty much limited to shelling out an additional $500
up front to get the latest version of Microsoft's Office Suite.
In the UNIX world, some software is also quite expensive,
but these days whether you are purchasing a Sun system or
Linux, there is generally enough software bundled for free
with the Operating System to allow you to perform the basic
daily tasks that are part of your computing day. And if the
software isn't bundled, you can generally find a free suite
from either Gnu or directly from your computer vendor that
will let you perform any simple tasks that are not already
included with the OS.
Limited or difficult server capabilities: let's say
that I purchase a Sun workstation running Solaris. Generally,
you are going to purchase that computer from a third-party
vendor (VAR) who will supply the computer to you with the
Operating System already installed on the hard disk.
After you unpack and assemble the hardware, you turn the
computer on, answer a few simple questions, and you are
likely to be mostly all set to use your computer in a networked
environment (some UNIX system administrators such as myself
may have their network specially configured, but generally
they can supply you with a short script you can run after
your machine is on the network that will configure your
computer into the environment immediately).
Furthermore, if you have purchased this Sun computer
to act as an internet server machine, you generally are
also supplied automatically with all the tools you need
to get started. Using programs supplied with the Operating
System, your Sun machine can be set up to be a web server,
to serve a DNS domain, act as an NIS server, be an email
server (even serve pop and imap clients), be a file server
for other UNIX machines or even PC's, etc. In short,
for the most part OUT OF THE BOX your new Sun machine
is going to perform all of the server-oriented tasks that
we normally expect from a "server-level" machine.
Compare this to purchasing a PC. Well, for starters,
you probably can't get your PC running Windows 98 to
perform as this level of internet server anyway. So
forget windows 98, and purchase Windows NT up front instead.
Now, to actually make Windows NT into a server, you're going
to first need to figure out how many machines/users you're
going to act as a server for. Why? You guessed it:
there are actually additional substantial licensing
fees you have to pay to
Microsoft PER USER or GROUP of users in order just to turn
your NT server into a server for multiple machines/users.
The next thing you will realize is that even after you have
purchased NT instead of Windows 98, and even after you have
paid the extra fees to make the machine useful to the number
of other computers/users you have, you're still going to need
to purchase some package that will actually perform the
functions that you need. I think the standard package that
NT folks purchase these days is called "Microsoft Back Office"
and/or "Microsoft Exchange Server".
And oh yeah; I forgot to mention that this software also has
a per-user licensing fee so the more users you need to support,
the more you're going to have to pay.
Now I think that Back Office/Exchange have most if not all of the
general "internet services" that one normally wants: web server,
email, pop/imap, DNS. And to be fair, some companies such
as Apache and Sendmail.com are doing their best to make
their software run under NT for cheap or for free. They deserve
mucho kudos for that.
Nonetheless, when you consider the hassle, time, and expense of trying
to turn an NT box into a full-blown internet server-type machine,
you're looking into an abyss.
Oh yeah; I forgot to mention that if you actually wish to set up
a Microsoft-style NT/PC-based network, you're going to need to
purchase at least a second server machine (which also has to be
licensed to server all your users). This second machine is
going to serve as something called a "BDC" which stands for
"Backup Domain Controller". And from what I've heard, that
machine can't really be used for any additional purpose. Blech.
Software installations that necessitate reboots:
By the way: I have found it to be the case that whenever
I purchase a new piece of software for a PC, whether it
is a server-class PC, or whether it's just an application
for use at home, more often than not, you can plan on the
fact that you're going to have to reboot your machine AT LEAST
ONCE after the software installation is complete.
I can't remember the last time I installed a program on UNIX
that required me to reboot the machine after I installed the program.
Viruses suck! There exists in the PC universe a world
that simply has no parallel in the UNIX universe. And that
world be named VIRUSES!!!
One just doesn't even consider viruses in the UNIX world.
(Well, with the exception of that little incident that pretty
much broke the whole internet back in '88).
And for the life of me I just can't figure this out. A whole
bunch of companies exist solely for the purpose of "watching out for"
and providing fixes for PC viruses that might appear on your computer
(provided you subscribe to their update service).
I must be just incredibly lucky, because I've been using PC's at
work for about 4 years and at home for over 2 years, and I own and
run anti-virus software which has NEVER detected a virus!!! I've
never HAD a virus on my PC! Am I doing something wrong? Seems like
everyone else at work gets infected a couple times a week.
Oh that's right: most of the worst PC viruses the past couple
years have been associated with Microsoft's email programs
called "Outlook" and "Outlook Express" and I don't run those
email programs. And oh yeah; if someone sends me an executable
attachment or a javascript program in my email? I DON'T RUN
THOSE EITHER!
What the Wintel Community can do to convert me to their cause
OK; if you've survived my facetiousness to this point, then you
now understand my disdain for the PC world. But it wouldn't be
fair of me to just voice my complaints without offering possible
solutions, so I'm going to sum up what I think the Wintel world
can do to win me over. I'm going to do this in a single paragraph/list,
basically summarizing the points I have mentioned above.
Do this, Wintel world: create an Operating System that runs
on the inexpensive hardware that we've become used to and also:
- Is stable and reliable. I don't want to have to reboot
the thing 5 times a day just because I'm running a complex java game.
- Fixes all of the memory management problems that currently exist
in Windows. When I exit a program that might have been using
lots of memory, I want ALL of that memory recovered after the
program exits.
- Allows me to easily find out details about what current running
processes are doing on my computer, what the purpose of each
of these process is actually is, and helps me figure out whether
it's OK to stop one or more of these processes (and by the way,
if I do stop one of these processes, I want the memory that it was
sucking up to now be available to other applications).
- Comes with all the tools I need to easily and securely access
and manage the computer remotely over a network or a phone line.
- Allows me to do simple tasks like word processing and
spreadsheets without having to pay an additional large software
fee up front.
- Can be set up as an internet server using basically just
the tools supplied with the OS.
- Doesn't require me to reboot the computer when I install
a simple software application.
- Isn't prone to the silliness of the stupid viruses that
keep cropping up all over the place.
If you can solve those problems and still keep the hardware
cheap and robust, you will have gone a long way toward
converting me to a Wintel proponent instead of opponent.
What the UNIX/Sun community could do to improve
To be fair, I must admit here that life could be a lot
rosier in the Sun world also. It'd be awesome if I could
purchase the latest and greatest workstation for just
a couple thousand instead of $4,000. It'd be cool if
the hardware and OS supported USB and firewire and if I could
purchase inexpensive peripherals
such as color inkjet printers (why spend $4000 on a color
laser printer when you can get 40 inkjet printers for the same price?)
for Suns in computer catalogs.
It'd be awesome if it was as easy for me to attach my Palm Computer
or HP Jornada or my digital camera to my Sun/UNIX box as it is
to attach them to my PC's.
In short, make Suns as inexpensive as PC's and make peripherals
as easy to connect to them and you could very well dominate
the world much as Microsoft dominates it now!
Conclusions (finally)
OK; I think the last two sections have summarized most of what
I want to say. There is one final point I want to cover, though;
this is the thing that ticks me off probably more than any other
single fact about the Wintel world:
You know all of those PC deficiencies that I've been talking
about and that I went over in detail
in this article? You know--the fact that PC's have to be rebooted
so often, have sucky memory and process management, have no built-in
remote access, have outrageous software costs, cannot be easily
or cheaply set up as internet servers, and are prone to viruses.
THERE ARE A HECK OF A LOT OF PEOPLE IN THE WORLD THAT THINK
THIS IS "NORMAL" AND THAT THIS IS WHAT COMPUTING IS ALL ABOUT!
ARGGGGHHHHHHH!!!!!
Postscript 1: So why have I purchased PC's and why
do I still use them at all?
Good question. Basically three answers: (1) I didn't feel I
could survive effectively in the computing/internet/IT world
without having more of a working knowledge of Wintel boxes.
(2) As I mentioned above in the section that starts off with
Why I like PC's, there are enough things about PC's that make
them very practical to use: they're cheap, and lots of inexpensive
peripherals work with them. (3) There are lots of us who have really
been backed into a corner just because of their dominance in
the world, and that in and of itself is probably enough of a
reason for anyone to own and use a Wintel box.
So in other words, I put up with all the shortcomings because
I have no choice. And Microsoft knows it. And they're
not going to do anything about it. SIGH!
Postscript 2: what about "Windows ME"?
I have not to date set up or tried to use Windows Millennium Edition.
The only thing I know about it is that I keep reading that
to run it effectively folks are going to have to either
buy new computers, or drastically upgrade their current
ones (like lots more memory, lots more disk space, and
a faster CPU). I think that sucks. Also, given that Microsoft
has been in existence for 25 years and they still can't make
an Operating System with some of the basic features that UNIX
had 15 years ago, I don't have much confidence that ME is
going to be much different from Win 95/98/NT.
Postscript 3: what about Macs and Linux?
Macs: I know there are a lot of Mac people that would disagree with
me, and I'm very sorry to have to say this, but I think that
Macs are basically dead now and will probably soon be completely dead.
I doubt that Apple can continue to compete effectively against the
low hardware costs that currently proliferate in the Wintel world.
But before they go under, I do hope I have the opportunity to
pick up a cheap iMac and a digital video camera.
Linux:
I remember reading an article around mid-1999 or so about
a Linux company that went public and in doing so created
a potential billionaire-owner. My guess is that his value
has gone down drastically today. Linux isn't a bad solution
for an OS for Intel hardware, but I don't see it as much of
an advantage over Solaris for Intel at this point. I was
extremely surprised by Linux's sudden jump into the limelight
in 1999, was equally surprised to see Linux software for sale
at my local Best Buy store, and I will be even more surprised
to see Linux surviving to have an equal stature 2 years from
now. But thank you, Linus, for your awesome contribution to
the computing industry.