

Heather: Windows Equivalence on Linux
You can read my philosophy, what some might call methodology, about
the comparison, or just jump down to the details.
One thing I've noticed in several of
SVLUG's Installfests is the
appearance of a fairly common question:
I'm familiar with MS Windows... how is this similar?
Show me what I'm used to, but in Linux.
Now, I have to admit that since one of the local computer shows started
inviting us to do Installfests as one of the booth spaces, that we
have a lot more opportunity to encounter folks who do not already
know what Linux is, and therefore have their own ideas of what they
want in a system. In fact, they may be at the show to buy their first
computer, after comparing a bunch of them at a big show. Our visitors
have probably seen a few ads about computers, though.
Many Linux'ers unfortunately don't want to even talk about
Windows, much less compare them... and are perfectly aware that
comparing them without understanding what the visitor really wants
doesn't make much sense. To find out what sort of comparison they
want with MSwin requires continuing to talk about it.
Unlike my brethren, I don't mind talking about Windows. I used to
support customizing software for it. I used to support utility
software for it. Say what you like about a geeky college dropout
with an inferiority complex but big cujones and lots of
marketing savvy... you know who I mean... he has made the interface
of the Xerox Star a bright moment in hostory. "Everyone" (as defined
by the trade press) loves those little icons and menubars.
On to the goodies! I have a laptop I purchased recently so I could
work while at SF conventions and coffee shops. It happens to have
come with MSwin, and a handful of extra toys provided by IBM. Basically,
it arrived ready to use. So, if I rephrase the "comparison" to:
What would it take, on a Linux box, to have the same features
as I saw when I received this machine?
...pure marketing... but a worthy question, because as Linux grows
past its technical early adopters, the non-technical early adopters,
who are willing to try the leading edge but just want to use working
systems, will want to know if it's ready for them yet.
The Comparison
Subjective impressions of "faster" are based on usage of a VARstation
with a Pentium II CPU and 64 MB of memory. It came preloaded with Win95
and RedHat Linux, but I haven't used
the Windows side in a while (I broke it
:( ) and the Linux has been
updated twice. So your mileage may vary!
The OS was preloaded
-- I didn't need to install it myself. There are
plenty of companies who will preload a hard drive with your desired
distribution of Linux. Some will sell you the whole system, which is
nice because at least you know the hardware all works together under
Linux. Do any sell laptops? Good question!
When I turn the box on, it does a few graphics, then reads its startup
files, and launches Windows. Knowing MSwin as deeply as I do, I know
perfectly well that there are non-graphical things that are going on
before Windows gets going... they're just pretty fast these days.
- Linux boots pretty quick, but unlike MSwin, you see the startup sequence
messages. Printing them onscreen may be slowing it down a little. I
have heard that it is possible to make NT's startup sequence more
verbose, as Linux is.
- Part of Linux' normal sequence runs fsck against the disks
before it mounts them; in MSwin you would need to add SCANDISK
into your autoexec.bat, unless it spots that you didn't shut
down properly last time. In most UNIX variants rebooting is so rare
that doing this basic check every time is a good idea. It's a good
idea in the MS world too... but most people just haven't got the
patience for it. Thankfully, fsck seems much faster than
SCANDISK.
Wonder which files in Linux' startup are like
the MS ones?
- The kernel, often called merely zimage, is roughly equivalent
to MSDOS.SYS -- it contains the core behavior of the base OS.
- Since it contains a minimum of hardware drivers in order to read the
disks, it handles many IO.SYS equivalent functions too. But
the first process, responsible for reading the startup files and really
launching more programs, is Linux' init.
- Just as you may have specialty drivers loaded to access a CD-ROM drive
or sound card, special hardware drivers may be compiled into the kernel,
or loaded and unloaded as modules. Anything that is an
experimental kernel feature usually started its life as a module.
- The splash screen... I have seen a patch to show a penguin during the
startup. Unfortunately it scrolls offscreen
:)
- CONFIG.SYS and AUTOEXEC.BAT: init reads
/etc/inittab, so I guess it counts as CONFIG.SYS.
But it just launches some console prompts so you can login, and
another script (usually /etc/init.d/boot though sometimes it's
not in /etc ) to do al the rest of the work depending on your
runlevel. Those might include loading driver modules and setting up
networking, which in MSwin would almost certainly involve
CONFIG.SYS, AUTOEXEC.BAT, and some registry entries.
- runlevel... do you have one of those custom menus, wher you have an
alternate configuration for your kids to play Doom with sound and all
under DOS, and another for surfing the internet? Then you have the
right idea. Only instead of making your autoexec have to make all sorts
of decisions, you just pick a runlevel, and it has its own subdirectory
of scripts to launch. You could do this with batch files in DOS too.
- WIN.COM -- getting into graphics mode: Most Linux distributions
come with a networking environment called "X-windows". Several GUI
front-ends are available for it, and I've heard of a couple of very
weird non-graphical ones, but basically, it's what you'll think of.
- The registry: In order to get the data that MSwin likes to keep in its
registry all in one place, it would probably be necessary to run a small
database system during the startup sequence. This isn't to say it's
impossible... but it explains why a Win95 box with a ruined registry can
be literally easier to just scrap and reinstall, than to try to repair
the registry.
- HKEY_LOCAL_MACHINE information can usually be found
somewhere in the /proc filesystem.
- Possible device interfaces are stored in /dev
(for example LPT1: is /dev/lp0)
- People allowed to login are described in /etc/passwd.
This mentions what command shell they like to use; in MSwin
that's normally COMMAND.COM, but you can change it
with a SHELL= line in CONFIG.SYS. Of course
that affects everyone, but it's hard for more than one person
to use Windows at a time, so it works out. My favorite
COMMAND.COM replacement is
JP Software's 4DOS, but
there a couple of others available, including a version of
bash, the default Linux shell.
- User profiles are controlled by a handful of "dot files" in
your home directory. In UNIX a file or directory name is
"hidden" if it begins with a period (a perfectly legal filename
character in UNIX), so they don't clutter your normal view of
files you create.
- HKEY_CLASSES_ROOT covers "associations" -- what the
machine is supposed to do when you launch files of a particular
type. In Linux this is handled by the kernel's "magic number"
table. But printing isn't handled by entries here; it's
lpr, lpd, and the magicfilter that
are supposed to handle that.
- Most applications won't have kernel tweaks, just a dot-directory
in your home where they can keep special information. But,
default options are probably stored near wherever the application
is kept. For example, if an application is installed in
/usr/local/bin then its default options, special
code modules, and helpfiles will be in other directories under
/usr/local (lib, include, and
man respectively).
- There is something like a registry editor called
The Dotfile Generator.
It still needs a lot of work though. Most control files are
easier to modify with a text editor.
-
Once you're up and running,
you login to use your system. In fact, on a Linux box, lots of people can
be logged in, and you could login to it several times to keep personal
tasks seperate. Prompts that are not doing anything at any particular
time (they're waiting for you to type on them) will be put to sleep,
saving CPU (and possibly memory, as they can be swapped out easily) for
the important tasks you are working on.
- It is common to have a runlevel set up which graphically prompts you
(using xdm) -- you can work in a completely graphical setup.
I have seen some very beautiful customized xdm setups, so I
guess you can consider it a kind of splash screen.
- If you do a lot of text editing, it may be more comfortable to take
advantage of "virtual consoles" -- multiple text screens available to
you. Just use Alt-F1 (or F2, F3 etc.) to switch between them.
To switch away from a graphical console, use Shift-Alt-F1 etc.
(Makes sense, really; it saves the Alt key for normal applications.)
You could easily switch between 24 of them, using first the Left Alt,
and then the Right Alt... but most systems only start with 6 to 10 text
v-consoles. The "text splash" seen during a normal login is usually
/etc/issue for local users and /etc/issue.net for
folks logging in across the network.
- You can keep graphical apps in seperate screen spaces, but the same GUI,
with programs designed to give you "virtual desktops". For MSwin,
personally I've always been fond of BigDesk, though it's a Win16 program,
so it acts a little strange sometimes. (In fact it predates the
popularity of the World Wide Web so the most amazing thing is that it
still works.) X has a virtual desktop tool too, usually already set
up (I think it's called pager).
There's a nice GUI frontend for X-windows called Fvwm95.
You guessed it;
it looks an awful lot like the Win95 interface. Prefer a Mac or a Next
interface? Use MLWM or AfterStep instead. I haven't
tried Enlightenment, but I've heard you can spend hours customizing it.
- Because of its networked nature, X makes it easy to swap GUIs. All the
common trimmings (scroll bars, title bar) are controlled by the Window
Manager. You can tell it to load another Window Manager instead, or if
it is a very simple one, you can keep a command prompt open, close the
WM, then use the command prompt to launch a different one. To do this
in MSwin, you'd probably have to replace a couple of DLLs and reboot.
It also doesn't make it very easy to uninstall a different interface if
you decide you didn't like it.
- It is easy to change the picture on your "root window" so your backdrop
looks nice.
- You can change the regular cursors to any of a few hundred that come
with X-windows, but they aren't colorful like MSwin cursors, and I
haven't seen a way to animate them. But, a really fancy Window Manager
might have fancier cursors.
- For something like Themes, you're going to want the Enlightenment WM.
Of course it comes with applications... lots of them...
what good is a computer without programs to run?
- Solitaire: Oh wow, have we got solitaire. There are lots of games
in /usr/games or /usr/local/games. If their names
start with an x they are generally X-windows graphical
games, and if the names start with vga they probably are
SVGAlib games, which should be run from a text console. The
first build of Doom for Linux was an SVGAlib game. Any other games
might have an X interface, but probably should just be run at a text
console or in a xterm prompt.
- Notepad: Use vi. It has a few more features but pretty much
you have the right idea.
- Wordpad: For WYSIWYG editing, your distribution may have a copy of
LyX (pronounced "lick"). It generates LaTex files,
(pronounced "la tech") which are often used in publishing. LaTex
has a lot more power than LyX can manage to put in a document,
just like the MSword format. However, since it is basically
text with lots of weird text markup (feels like HTML, if HTML was \{}
instead of >lt;), a broken LaTeX file can often be fixed by
a knowledgeable user using vi.
- HyperTerm: I've heard there's a modem app called seyon that's
very good for graphical users. Not everybody has kind comments about
it though, and there are a bunch of plain "dialup terminal" programs
for Linux. All the distributions I've seen come with minicom
but my husband and I prefer kermit (yes, it's a terminal
program, not just a protocol).
You'll need to make sure your /dev/modem entry is correct;
it's the only way your modem applications know that your modem is
plugged in.
- Internet apps: telnet definitely. For ftp I sincerely
recommend ncftp rather than ftp even though a Linux
box probably has both. For browsing netscape and lynx
are the most common (a system usually has both), but there are others:
I've seen Red Baron, Grail, HotJava, and Kfm. For email there
are lots of options too: elm, pine (stands for "Pine
Is Not Elm"), MH...
Of course your networking needs to be set up, but a decent distribution
asks you your host details during the install and you shouldn't have to
touch it very often.
- Explorer: I personally favor Midnight Commander although it's designed
for a text interface (it looks a lot like Norton Commander, if you
remember it). They have been working on an X interface and you should
definitely check it out. Compare it to Kfm or xfm.
- Productivity apps: these may well be what you're thinking when you
want to compare the two. You can try
Corel's Office Suite, WordPerfect,
StarOffice from StarDivision,
Applixware, and maybe others if
you want a commercial product. If you like to see source available,
check out the work of the Gnome Project;
their rivalry will certainly make both stabler, more complete products
as they vie for our attention.
Or you could use emacs... if there's anything it doesn't
have in it, someone has probably already written a lisp package to add it.
- Multimedia: Mounting CD-ROMs is easy. Plenty of types of sound can be
played. I'm not as certain about video, but there are X drivers for
a handful of TV tuner cards, and certainly players for plain MPEG. Also
there are RealAudio plugins for Linux.
Make sure your soundcard's driver module is either compiled into your
kernel or loaded in memory.
We don't have singing, dancing, spinning demo apps to show off how
wonderful it is, though. If you want to write one I will definitely
check it out!
- Easy installs: Anything shipped in an rpm format installs in
a quick commandline:
- rpm -i name-of-package
If it's an upgrade to an existing app you can say so (-U
instead of -i) and you can always uninstall with -e
(think "erase"). The Redhat Package Manager is way more
powerful than the MSwin Install/Remove Programs feature; if you're
curious, run man rpm for the details.
However, many applications are published as source, so you run
tar xzvf to unpack them, and a couple of make commands
(one liners! really!) to compile them and install it. This isn't as
hard as it sounds -- I "installed" WINE (Wine Is Not an Emulator; it
runs MSwin apps, but it isn't nearly done yet) in about 20 minutes with
only a few commands:
tar xzvf Wine-980628.tar.gz
make depend; make
make install
Most of those 20 minutes, I spent editing my web pages. Most MSwin
installs take over the entire machine for a little while and ask you
a few questions. Sometimes they make you reboot at the end. Linux
apps almost never make you reboot -- though you might stop and
start a service, even that is extremely uncommon. On the other hand,
MSwin apps usually add themselves to your GUI menus, and most Linux apps
don't... but they'd have to second-guess which GUI you chose to do a
good job at that one. They could, but most authors assume you want to
customize your own GUI rather than have an app go in there and maybe
break it.
- Networking: "Shares" are great stuff. Linux, like most UNIX variants,
is great at networking! You can actually provide
MSwin compatible shares with
SaMBa, Macintosh compatible
shares with netatalk, Netware compatible file services with
mars, or Sun-style file services with nfs. You can
also definitely share your Linux printer using SaMBa.
- CompuServe, AOL, and other online services: Unfortunately, they haven't
seen fit to issue clients for Linux yet. However, Compuserve had a
plain-terminal interface at one time, and if it still exists it can
certainly be used with your terminal program. I have read that the
Win95 version of AOL 3.0 works, if somewhat rockliy, under WINE if
you avoid some features. As WINE improves that probably will. The
DOS form (based on GeoWorks) might run under dosemu
successfully first. (Yeah, the DOS client, which they never plan to
upgrade. *sigh*) It's kind of a bummer, really... they might
never come out with a real client for X.
(more to come...)