|
January 17, 1999
An MRD for Linux on the Desktop
In the last issue
of this newsletter, I made the case that while Linux on the back-end
has thus far been a great success, Linux on the desktop has yet to reach
critical mass. This issue, I want to look at this topic in more detail,
and explore some of the things that I think need to happen before Linux
can become a contender for any significant portion of the desktop market.
I think these reasons are fairly consistent with the rest of the populace.
As such, maybe this list should be treated as a sort of Market Requirements
Document for Linux vendors to use whenever they do decide to get around
to this market. Maybe not. I'm still going to give my reasons, though.
 |
Device Drivers
Perhaps more than anything else, this is the number one challenge
facing Linux today. A lack of device drivers for networking, video,
audio and storage cards is keeping me and many other users from running
Linux on a daily basis. I might actually try to use Linux on the
desktop more often if I could get a freaking video driver for the NeoMagic
MagicMedia 256AV video card in my Toshiba
Tecra 8000, for example. As it stands, I can only get 640x480
resolution in 16 colors, which is simply unusable for any real work.
Try writing a book and managing a web site in that mode and you'll
see what I mean.
There are really several issues involved with this problem. First
of all, while there are a lot of drivers out there for many common
components, there aren't but a handful of vendors who are actually
writing device drivers for their products directly. Rather, most
of the device drivers out there now are the result of end-users having
to figure this stuff out for themselves. Sometimes these drivers
work really well, but sometimes
they don't.
Obviously, the best solution to this problem would be for vendors
to write their own drivers, and to ship them on the same floppies
that also hold the drivers for Windows 3.x, NT and OS/2. This is
true for everything, from SoundBlaster
cards to 3Com
NICs to Adaptec
SCSI cards to all of the different video cards. Without vendor-developed
and supported drivers, Linux on the desktop will eventually suffer
the same fate as OS/2 Warp: "I can't use it, so I won't" will
be its epitaph.
However -- and this is where things get tricky -- the biggest advantage
that Linux has over every other operating system is the fact that
end-users can write their own device drivers. In turn, the
drivers that are available are typically available in source code
form, allowing them to be used on alternative architectures. So even
though some of the user-written drivers may be weak, they are usable
on Alpha and PowerPC versions of the operating system (and not just
the platform that the vendor chooses to support), which is a huge
advantage over every other operating system on the market.
Therefore, if the Linux vendors are able to convince hardware vendors
to write device drivers, those drivers need to be made available
in source code form whenever possible, allowing them to be used on
as wide a variety of different platforms as possible. Granted, this
won't always be possible, but it should be the considered the bulls-eye
of the target. Getting vendors to write device drivers in the first
place would be a huge win; getting them to release the source code
for their drivers would be the golden ring.
I think that the best way to sell this idea to those vendors is
to pitch the bazaar
development model as a way for the vendors to capitalize on the
eager development community that's out there, similar to the way
in which Netscape opened Mozilla.
Rather than asking each of the vendors to do all the work themselves,
ask them to champion the development of their drivers, hosting the
source tree for the efforts, and accepting modifications and enhancements
from end-users. To be sure, vendors will also have to guide the development
of the drivers (and ship them with the hardware), but this is a lot
less work than doing everything themselves. This, I think, is a more
viable sell than the cost-laden, limited-return development model
that prevented Warp from ever reaching critical mass.
Of course, us end-users also have to needle the vendors for driver
support. I know that I've been bothering 3Com, Creative Labs and
NeoMagic (with no results, unfortunately). Everybody needs to get
in on the act before anything will happen in this space. |
 |
Simplified Configuration
Apart from device drivers, the biggest problem for all of the UNIX
platforms out there today is that they're just too damned hard to
configure. Every little application or system service has its own
configuration file with its own special syntax, which is just impossible
for somebody like my mom. As such, she'll never use Linux, I guarantee
it.
As can be expected, this is also a multidimensional issue. On the
one hand, we need a simple configuration engine with well-documented
APIs that is similar to the Windows registry. While that model has
problems, it is also a tremendous improvement over the schizophrenic
model of individual configuration files for every service on the
system. Simple APIs for configuration information make it easier
for developers to read/write configuration information, protect the
user from misconfiguration, and are generally easier to work with.
I personally would like to see such an engine divided into two
forks: one for the system-specific settings (where is WordPerfect
installed? what are the settings for the network card?), and another
for user-specific settings (where are my document templates? what
are my PPP settings?). In a perfect world, the user-specific settings
could even get stored in LDAP or NIS or some other network-based
repository, getting copied to the local host whenever a user logs
in. I don't think this would be hard to handle if applications just
talked to a few well-documented APIs, while the configuration service
itself did all the legwork.
There are also portability concerns here, of course. Many of the
services that are used on Linux come from other UNIX platforms (which
wouldn't have such an engine), and developers don't want to code
for each system specifically. One way around this would be to make
the code for the configuration engine widely available, and even
port it to those other UNIX platforms if necessary. If the APIs are
documented well enough and are easy to use -- and if there are end-user
tools for managing the data -- then I bet that developers would eventually
start making such a service the default, and making individual configuration
files the secondary choice.
Another problem here is that drivers, services and applications
would have to provide an interface to the configuration services.
This means providing graphical (or textual) configuration tools that
are also easy to use. Just as most of the common add-on cards have
some sort of DOS-based or GUI configuration tools, the same needs
to start happening for Linux. This can be a problem when you don't
know what interface is in use, but I think this particular issue
is resolvable through TCL-based tools. Maybe not entirely, but it'll
get us closer.
Regardless of the implementation details, the thing to focus on
is to make configuration simple enough for Mom to use. She's just
not going to hack at PCMCIA, XFree86 and PPP configuration files.
And this isn't a shot at Mom (mine's a PhD),
but rather a wake-up call for the Linux community; end-users shouldn't
be required to know these details in order to use it. |
 |
Application Availability
In many regards, the general-purpose productivity applications market
for Linux today already surpasses the same markets for most of the
other operating systems. There are more word processors available
for Linux -- with greater levels of competition -- than there are
for the MacOS, OS/2, and maybe even for Windows. Other bright spots
include programs like Gimp and Communicator which,
when used with KDE, make living
in Linux easy.
But there's a huge number of holes here, too. Where's the Notes
client, for example? Where are the Norton
Utilities and the Reflection
terminal emulators? This list could go on for miles, and we
haven't even started talking about the applications that have long
been associated with UNIX, like FrameMaker and AutoCAD.
Heck, even companies like Corel who are pushing the market with
their port of WordPerfect aren't
following through with ports of CorelDRAW, Paradox or Quattro
Pro. This has all got to change.
So in many ways, Linux already has a lot of applications going
for it. But in many ways it doesn't have nearly enough. As long as
folks like me still have to dual-boot to load another OS so that
we can get real work done, then it just isn't going to become our
primary OS for everyday use. I'd also like to point out that I don't think
that these vendors should open up their ports of these products.
Indeed, they need to be financially motivated to do the hard work
of porting these applications over to the Linux community. In addition,
users have to buy them if they want to see more vendors bring more
applications into this market. |
The List Goes On
There are of course lots of other issues that need to be addressed,
but I think that these are the top three challenges keeping Linux off
the desktop for most users. Drivers aren't available, it's too hard to
configure all of the system services, and there just aren't enough applications
to choose from.
I'd be interested to know what's going on in the vendor camps in these
areas, if anybody knows.
Regards,
Eric A. Hall
President, EHS Company
Written by Eric
A. Hall.
Copyright © 1998, EHS Company. net.Opinion is a trademark of EHS
Company. All rights reserved.
|