old-www/LDP/LG/issue31/issue31.txt

15483 lines
588 KiB
Plaintext

Linux Gazette... making Linux just a little more fun!
Copyright © 1996-98 Specialized Systems Consultants, Inc.
_________________________________________________________________
Welcome to Linux Gazette! (tm)
_________________________________________________________________
Published by:
Linux Journal
_________________________________________________________________
Sponsored by:
InfoMagic
S.u.S.E.
Red Hat
LinuxMall
Linux Resources
Mozilla
Our sponsors make financial contributions toward the costs of
publishing Linux Gazette. If you would like to become a sponsor of LG,
e-mail us at sponsor@ssc.com.
Linux Gazette is a non-commercial, freely available publication and
will remain that way. Show your support by using the products of our
sponsors and publisher.
_________________________________________________________________
Table of Contents
August 1998 Issue #31
_________________________________________________________________
* The Front Page
* The MailBag
+ Article Ideas
+ Help Wanted
+ General Mail
* More 2 Cent Tips
+ RE: Photogrammetry tools for Linux? in Issue 30
+ Re: Suggestion for Article, simultaneous versions of Kernels
+ Secondary IDE interface CDROM detection/automounting tip
+ Re ext2 partitions
+ pdf resumes: pdflatex
+ Re: CHAOS
+ Re: 3com network cards
+ ext2 Partitions
+ RE: Searching (somewhat in vain) for sources on shell
scripting
+ Re: $.02 tips on ext2 Partitions
+ LG30 ext2 Partition tip
+ Modem Connecting Speed
+ Short Article on upgrading to SMP
+ Cross-platform Text Conversions
* News Bytes
+ News in General
+ Software Announcements
* The Answer Guy, by James T. Dennis
* Betting on Darwin, Part 2, by Doc Searls
* Copying Red Hat Legalities, by Eric Canal
* EMACSulation, by Eric Marsden
* The Future of Linux, by Greg Roelofs
* Graphics Muse, by Michael J. Hammel
* The Great Linux Revolt of 1998, by Chris Dibona
* How I got my Adaptec AVA 1502 SCSI card to work with Linux and
Sane, by James M. Rogers
* New Release Reviews, by Larry Ayers
+ Debian 2.0
+ Software and Plants
* Open Source's First Six Months by Eric Raymond
* Personal Linux/Alpha System: 64 bits for Under $500 by Russell C.
Pavlicek
* Product Review: The Roxen Challenger Web Server, by Michael
Pelletier
* Selecting a Linux Distribution, by Phil Hughes
* Some History and Other Things, by Marjorie Richardson
* The Standard C Library for Linux, Part Two, by James M. Rogers
* The Back Page
+ About This Month's Authors
+ Not Linux
The Answer Guy
_________________________________________________________________
TWDT 1 (text)
TWDT 2 (HTML)
are files containing the entire issue: one in text format, one in
HTML. They are provided strictly as a way to save the contents as one
file for later printing in the format of your choice; there is no
guarantee of working links in the HTML version.
_________________________________________________________________
Got any great ideas for improvements? Send your comments, criticisms,
suggestions and ideas.
_________________________________________________________________
This page written and maintained by the Editor of Linux Gazette,
gazette@ssc.com
"Linux Gazette...making Linux just a little more fun!"
_________________________________________________________________
The Mailbag!
Write the Gazette at gazette@ssc.com
Contents:
* Help Wanted -- Article Ideas
* General Mail
_________________________________________________________________
Help Wanted -- Article Ideas
_________________________________________________________________
Date: Tue, 30 Jun 1998 17:59:52 -0600
From: Ernesto Vargas, evargas@aisinternational.com
Subject: email to pager gateway
I'm trying to find an e-mail to pager gateway. So for example if I
send a e-mail to 123456@mydomain.com it will send it to the pager
system but if I send and e-mail to evargas@mydomain.com leave the
message in my pop account. Additional to this is not to specify each
pager our company has more then 25,000 and is growing 1,000 per month.
Thanks,
Ernesto Vargas
_________________________________________________________________
Date: Thu, 2 Jul 1998 14:44:52 -0600
From: "MARK C ZOLTON", mcz@wheat.ksu.edu
Subject: SyQuest EZ 135 and Linux...
For quite some time now I've been wondering how to set up my SyQuest
EZ 135 removable disk drive under Linux. If you haven't seen one, it's
kind of like a ZIP drive, but less of an industry standard. I got it
for free, otherwise I don't think it would have been worth it. Anyway,
I have about six 135MB disks for it and I'd like to give some of that
to Linux. Any ideas? I've seen a driver around before, but I don't
remember where to get it.
Mark
_________________________________________________________________
Date: Mon, 06 Jul 1998 17:01:00 +0300
From: admin, admin@jrol.com
Subject: chroot how to?
I have been trying to lookup information on chroot command. i am
trying to see if I can restrict my users to there home directories.
Same concept like anonymous ftp. So each user will have his or hers
own work space. Is there any documentation ? Thank you for your time.
I have Red Hat5.0 and 5.1.
Khriss,
_________________________________________________________________
Date: Sun, 05 Jul 1998 05:32:21 -0700
From: "Wizard Saturn", alexey@mailcity.com
Subject: problem mouse
I have Genius Net Mouse (with a Magic-Button for making browsing easy,
hardware scrolling). I use Read Heat 5.0, but I cannot use
Magic-Button for scrolling in Xwindows.What shall I do for using it.
Thank you in advance.
alexey
_________________________________________________________________
Date: Fri, 3 Jul 1998 17:47:35 +0100 (BST)
From: Sean Kelly, S.Kelly@newcastle.ac.uk
Subject: Recognising the AMD K5-PR166
I'm wondering whether any other readers have used the AMD K5-PR166
with Linux. It's just that my system seems to think it's a K5-PR133
and states that it's running at 100MHz. Also, the BogoMips value
indicates that the processor is running at 100MHz. Anyone any advice?
Thanks in advance,
Sean.
_________________________________________________________________
Date: 08 Jul 98 16:10:03 +0000
From: James Spenceley, creative@create.com.au
Subject: PPP help
I'd like to set my Linux box up as a PPP remote access server. Can you
give me an idea of where i can find some info on how to do this ? Or
maybe someone who has done it with a positive outlook and an email
address. Any help would be great
Thanks
James
_________________________________________________________________
Date: Sat, 18 Jul 1998 02:20:45 +0200
From: silvia ballmann, sballmann@usa.net
Subject: Linux AND Lanprinter
Can I manage 800 lanprinter with one Linux system? Thanks.
bye, Thomas
_________________________________________________________________
Date: Thu, 16 Jul 1998 16:50:41 -0700
From: al00584, al00584@snetsy.cpg.com.au
Subject: DStealth Linux FVWM driver
I have a Diamond Stealth 3D 2000 Virge card. In initial drivers even
16 bit display modes were patchy. Now I'm wondering if there would be
new drivers developed which are stable since. Furthermore I seem to
have trouble installing and uninstalling files. No Uninstallshield
equivalent of windows??
Keep up the great service.
Andrew
(No need for an uninstall with Linux, rm -rf will remove all the
way down a directory tree. Be careful when you use it though. Also,
if you feel the need to write C code to this, there is an article
in the August issue of Linux Journal about how to write a "deltree"
command. --Editor)
_________________________________________________________________
Date: Tue, 21 Jul 1998 10:07:36 -0700 (PDT)
From: dhelm@linknet.kitsap.lib.wa.us
Subject: CHAOS
I would like more information on the CHAOS article in the July (#30)
issue of LG. Are there any HOW-TO's on how to set a thing like that
up? Since I cant afford (OK, to cheap to buy..) one of the new
systems, a little network of cheap PC's sounds fun.
GreatDane
_________________________________________________________________
Date: Wed, 22 Jul 1998 00:08:57 EDT
From: Kilgorecom@aol.com
Subject: notebook
I have an OLD laptop that is probably only good for a doorstop or
running DOS. (I did download DR. DOS, and may give it a try, but am
more interested in putting a Linux system on it if possible. It is a
DTK model DLT-3311 which has a whopping Cx486dlc 33 Mhz processor and
4 MB of ram. It has a monochrome monitor, and runs windows 3.x slow. I
can't find any more ram for it and am interested in finding out if
there is a distribution of Linux, BSD, or something of the like that
would turn this into a suitable companion for sales calls, including a
database, pim, and anything else slick I could get this to do until I
can afford something less paeliolithic.
Any info you could send would be greatly appreciated, as well as being
a big feather in your Karmic hat.
Thanks in advance, Kent
_________________________________________________________________
Date: Wed, 29 Jul 1998 08:18:28 +0000
From: Abduraghmaan Phillips, phillips@srvnac3.nac.ac.za
Subject: Intel Celeron Processor
I would like to know whether Linux will have any problems with the
Intel Celeron Processor.
Thanks, A. Phillips
_________________________________________________________________
General Mail
_________________________________________________________________
Date: Mon, 27 Jul 1998 12:19:00 -0700
From: Antony Chesser, antonyc3@integritas.com
Subject: The Other Side of the Story
In the article, Installing Microsoft & Linux, by Manish P. Pagey, we
were treated to a (possibly justified) diatribe about the difficulties
in integrating Linux and Win95. However, to have a more balanced view,
one might also note the following:
I like Linux thus far. But I never mistake what I like with that is
simpler for the average person out there to use. Linux is as user
friendly as a hurled brick. Installing Linux puts you at a $ or #
prompt with no clue of where to go afterwards. I'm a Novell CNE with
many years experience working with PCs and networks, so I'm not
daunted by a non-intuitive prompt. And I already had a WIN95 machine
set up so I could access the net, download the truly excellent Linux
Journal online, and get support on how to install RPMs, etc. Had that
not been the case, however, I'd have been hard pressed to iron our the
wrinkles in my install, or to know which files to edit, or programs to
run, to do basic configuration. By comparison, win95 starts off in the
gui mode, allowing for rather intuitive productivity immediately. And
yes, I agree...it IS less stable. But crashing once a week (and I
don't, by the way... I applied the service pack to it, and I am very
stable) is still far better than not being able to even find out how
to connect to the net.
When Linux finishes installing, you're left with a # prompt. When
WIN95 finishes installing, you've a fairly intuitive GUI that allows
you to quickly and easily install and run programs, connect to the
net, and **apply updates without re-compiling the kernel**.
So is win95 better than Linux? Nope. But neither is it inferior. Each
tool for the right job. If someone wants to set up their own PC and
get working quickly, the average person without experience in EITHER
of the OS's will have an easier time with win95. The trade off for
that is that yes, it IS less stable in the long run, and yes, you DO
have to pay for it. But considering that for the novice, the
alternative is a PC that he/she cannot use, the answer seems clear
that one should get the more easily installed and usable system. And
that is not yet Linux.
I believe firmly that it one day WILL be. Many of the Linux Accolytes
have decried the attempt to enhance the functionality and ease of use
for Linux as the equivalent of "Starting down the Dark path of the
Force." (shrug) A bit melodramatic, if you ask me. Consider this...
that if we don't make it more user friendly, it will STAY a tiny share
of the home and small business market, which in turn means less
software written for it, and less call for us to support it for a
living. Which, given all it's virtues, seems a shame, doesn't it?
Let's keep the tight, elegant kernel that is Linux, and add ease of
use to it. If we do this, then like IBM's iron fisted dominance of the
PC market that faded, so too will Microsoft be "The Giant That Was."
However, if we insist on keeping Linux the OS that commands a
religious like fervor with a select few, and keeping it un-usable for
the vast majority of home and small business users, we'll continue to
watch Mr. Gates... the richest man in the world... sell upgrades to a
kludgy OS for more money than ANY current version of Linux gets. And
we'll hear his laughter.
Antony Chessor
_________________________________________________________________
Date: Tue, 07 Jul 1998 20:01:16 -0400
From: Kevin Fortin, kfortin@ufl.edu
Subject: RedHat Service Pack 1
A badly organized yet sketchy editorial, upon these themes:
Just when Linux was starting to get a little more of the limelight,
Red Hat releases a new version of its popular distribution, the
regrettably buggy RH5.1 (a few weeks ahead of whatever product from
Redmond).
Many Linux beginners will probably start with Red Hat, because of the
ease of installation and the collection of software. bo Many or most
beginners who want to give Linux a try will be installing on their
home machines, and will want to connect to the Internet by modem
afterwards (sorry -- PPP module not supported by kernel). Note: this
feature makes it difficult for home users to download patches from FTP
sites.
Furthermore, all users might want to install additional RPMs from
CDROMS (sorry -- unable to mount iso9660 filesystem).
[Strangely, when I upgraded an RH4.2 system to RH5.1, I did not have
trouble with PPP or CD-ROM support, but when I did an RH5.1
installation from scratch, I did have problems. On that troublesome
system, I reformatted and reinstalled RH4.2.]
Many (or at least I) passed over RH5.0 (because I had read it needed a
lot of patching) and waited for RH5.1 to come out.
The Linux press doesn't appear to have commented on this situation.
Maybe I'm not looking hard enough, but I haven't come across any
product reviews or editorials in the on-line Linux press chastising
RedHat for rushing a defective product to market (ala Microsoft).
In spite of the above, "Me, I'm a Red Hat Man".
I'm no expert user, but I am a fan of the Linux phenomenon and
certainly of Red Hat, and I guess I'm just disappointed by the
possibility that potential newcomers might be frustrated and turned
away from Linux by the current Red Hat distribution.
I wish the people at Red Hat well, and will probably even send some
money their way, in appreciation of their 4.2 distrib as well as their
ongoing efforts. However, I might wait for RH5.2 or at least give the
most crucial of the RH5.1 patches enough time to make it onto the
official CD pressings.
[To be fair, I should note that I obtained RH5.1 on a $1.99 CD from
CheapBytes, but from reading the newsgroups, I don't believe that this
undermines the points made above. Also, I don't imagine that RedHat's
own commercial CD releases and their FTP site would be much
out-of-sync, and CheapBytes probably relies on the RH FTP site for its
pressings.]
Kevin Fortin
_________________________________________________________________
Date: Mon, 06 Jul 1998 11:59:33 +0900
From: Tom Holroyd, tomh@taz.ccs.fau.edu
Subject: Compaq Unix Support
Since the recent acquisition of Digital by Compaq, I think it's
important to let everybody know how they can show their support of
Linux on Compaq's AXP platform. Jon Hall, Unix Software Group Senior
Leader inside Compaq, and also Executive director of Linux
International, has posted the following announcement to
axp-list@redhat.com
url: http://archive.redhat.com//axp-list/1998-June/0567.html
Remember that if a major player such as Compaq started shipping
machines (and not only axps) with Linux pre-loaded, it would do much
for Linux popularity.
Since sending them all one at a time to Mr. Pfeiffer will only make
him pissed off in the long run, you are welcome to send them to me,
and I will roll them up for him, and present them all at once. I
would suggest including in the letter (along with whatever else you
want): Your name, Your occupation, Whether you are buying the
machine for personal or business use, How many machines per year
you buy (ONE is an o.k. number!! Even one, every two or three
years...he will understand, and they mount up over many people),
What type of machine you would buy (Alpha, Intel), What size (how
many megs memory, disk, etc.), and Whether you would be interested
in buying support. Put as the subject line: YET ANOTHER UNIX USER
I will guarantee you that my immediate management will look at
them, at a minimum, and I am fairly sure that they will get all the
way up to Mr. Pfeiffer, at least as a report. -- Jon "maddog" Hall,
maddog@zk3.dec.com
Dr. Tom Holroyd
_________________________________________________________________
Date: Wed, 1 Jul 1998 12:04:27 +0100 (BST)
From: Karsten Ballueder, karsten@phy.hw.ac.uk
Subject: Portable GUI C++ Libraries
I have just read your article about "Portable GUI C++ Libraries" and
found it to be not very well researched. The information given about
wxWindows is outdated and a bit inaccurate.
You mentioned that Version 2.0 "is rumoured to be available in the
near future". Fact is, it has already been available in different
alpha releases for quite some time. While the code is still under
development, it is worth mentioning that it is already very usable
and=20=
the turnaround time for bug fixes is quite low. At present there are
two implementations of wxWindows 2.0, the Windows version, available
from the main wxWindows web page mentioned in your article, and the
GTK based Unix version wxGTK, available from
http://www.freiburg.linux.de/~wxxt/ . Both versions are ready for
development right now ( We are using it to implement quite a large
e-mail application, http://Ballueder.home.ml.org/M ). A third
version,=20=
based on Motif is under development.
You also mentioned the "side project" of a port of wxWindows which
doesn't require the Motif libraries. This "port", called wxXt has
been=20=
around for many years and is probably the most-used wxWindows version
on Linux. It provides a complete Motif-lookalike interface, without
requiring Motif.
I find that if you look at the newer wxWindows releases, especially
wxGTK, they provide a much more complete environment and a much
improved user interface than other toolkits. Unfortunately, your
screenshots based on the older Motif version don't show this.
Regards, Karsten
_________________________________________________________________
Date: Sun, 05 Jul 1998 00:09:07 +0000
From: general, general@gis.net
Subject: LG30 article by Manish Pagey
The most intelligent statement in this persons article was " Because
I'm stupid thats why". This article was not anything of general
interest but only a tirade about Bill Gates and Microsoft.
If your Linux is so great why must you degenerate the efforts and
products of others. Evidently, you people all live in the ivory towers
of academia and not the real world. Manish cites that the Feds and the
state ag's are after MS.
His vehemence smacks so much of hate that they may come for him next
for committing "hate crimes or if not hate crimes the incidence of a
hate crime", to quote one great liberal mayor here in Marxachusettes.
Why must all of Linux literature be permeated with the stink of
egotistical minds rotting putridly in the sun. Linux may be the
operating system of the future, that is if we can get by humid
putrification of your egotism.
Quite frankly, LG should hide in shame for printing such childish
gibberish. When I downloaded your recent issue to my Linux box, it was
with the hope that it might enlighten my experience with another
operating system and broaden my limited computer knowledge.
However, this trash will not deter my efforts to learn about Linux as
it has presented quite a challenge to run both it and W95. Here's
hoping that you and others can present a journal that will teach not
disgust.
Thanks for letting me vent.
Robert E. Lee
I frankly don't have time to read every word of every article. I
try to avoid articles that are just hate mail. Obviously, I missed
on this one if it is as bad as you say. People are always asking
for articles about installing both Linux and Microsoft and the
problems incurred while doing so and this one looked to fit the
bill. I am sorry you were offended and that I did not do a better
filtering job. Thanks for writing -- Editor
Thank you for responding to my e-mail. However, my feelings were not
of offense but of total irritation that the Linux literature at all
levels is saturated with the debasing of others and their operating
system.
There are forums where people can vent their dislikes but they do a
disservice to the Linux community by littering Linux literature all of
types their personal dislikes of others and their efforts.
Linux is being touted as the operating system of the future and it
could very well be that some day it will mature to this status.
However, the Linux community will have to mature with it if they
expect this to happen. The type of article will only repel people
rather than attract them. Sell the features and benefits of the Linux
operating system and people will use it, denigrate others and their
efforts and Linux will languish.
Perhaps, it would be timely to include the 'Advocacy Mini How-to' by
Paul L. Rogers in a future edition in an effort help Linux users
understand that tirades and even snide remarks are counter to their
goal of promoting Linux and are destructive instead.
Thank you for lending an ear.
Robert E. Lee
_________________________________________________________________
Date: Tue, 07 Jul 1998 20:00:20 -0400
From: "Donald N. McKay", fstop@a-znet.com
Subject: Promoting Linux
I listened intently to the Internet audio broadcast when Steve Jobs
supplied the voice over to the great race between a 333 MHz Pentium II
and Apple's G3. Of course, for those who did listen, we were to learn
that G3 ate Pentium's lunch when the two processors 'drag raced'
through a run-time application of Photoshop followed by animation,
courtesy of Macromedia Director. After listening to the Inter-cast,
the world suddenly became aware of the power of G3.
So.... Why not host a drag race on the Internet between Win 95, Win NT
4 and Win 98 and Linux? Hell, throw OS/2 Warp and Novell in there
also. (of course, using identical computers - processors, networking
cards, etc.). Ballyhoo the event with home page and search engine
banner ads (paid for by Red Hat, Caldera, and anyone else who'll make
a buck out of the event). Invite C|NET, Andover Net and ZDNet to cover
the event. Run Linux on Apache or however the Linux-meisters see fit,
but let's see once and for all just what this OS can do not only for
speed but for reliability. Then, and only then, will people not only
take notice of the product, but will, in fact, try it (buy it in some
cases) and use it.
What do you think?
Don McKay
_________________________________________________________________
Date: Tue, 14 Jul 1998 13:18:39 -0300
From: Michael Rasmusson, miker@bdamicro.com
Subject: the cruel reality
Note: This essay assumes that the DoJ (Department of Justice) is
nonexistent.
While I am a vocal Linux (and Unix) advocate and am deeply alarmed at
the thought of a Redmond controlled world, once in a while it helps to
sit down and examine reality.
Linux, at this point in its development, is still too much of a
learning curve for the majority of PC users. Most of the Linux users I
know, including myself, are software engineers, systems programmers,
system administrators, or some other variant of systems professional.
All but one use a commercial Unix variant at work. Some PC aficionados
showed genuine interest in my Linux box with its various GUIs during
its lifetime. The interest seemed to fade when they saw the command
line tricks still lurking under most of the more interesting things
you can do with Linux, even if these tricks are eventually launched
from the window manager. Until the time comes that Linux can be
installed, configured and maintained from a fright free interface, it
will stay in the realm of techies.
All is not hopeless though. Looking back 20 years to the beginning of
personal computing we see that the innovators and early adopters were
overwhelmingly techies and electronic hobbyists. We also see that
traditional IT types dismissed the early PC as inappropriate for
business use. Big Iron would rule the glass tower forever. PC
advocates retorted that they would eventually take over and the
centralised systems of MIS would be phased out as dinosaurs. Even
respectable periodicals like The Economist spouted drivel about PCs
replacing mainframes. The reality that has developed since the early
80's has been neither a continuation of Big Iron nor a clean sweep by
Wintel. Centralised computing in the form of servers, including the
new generation of mainframe class systems, is doing just fine. Wintel
PCs have occupied most of the lower niches and are rising into new
ones, but will this rise continue until Wintel everywhere is a
reality?
Most of the decision makers in IT right now are either managers who
were flexible enough to allow PCs into the systems framework back in
the 80's or they rose through the ranks during the last 15 years of PC
centric computing. Many of them honestly believe in Wintel's manifest
destiny. They have either known no other reality except Wintel
dominance, or if they have, it was one of IBM dominance. In either
case the mind set is very similar. Just like in the early 80's, a
closed IS mind set seems dead against branching from the safe and
tried road and into new and fresh territory. Fortunately, similar to
what happened in the 80's, a few courageous thinkers can see the
widening cracks in the Windows.
To these "aware" techies the dream of an inexorable upward rise of the
Wintel PC into the world of workhorse systems is turning into a
nightmare. More people are starting to see this. The interest in Java,
the NC concept, managed PCs, Citrix ICA, all are early signs of a
growing dissatisfaction with the legacy of DOS. Windows boxes are
notoriously troublesome, but where are the alternatives? Linux is
showing itself to be promising, but it is _not_ yet ready to be
adopted by the herd. PC makers are aware of this and continue to
bundle MS OSes, you're better off with the devil you know.
The great hope of the Windows world is NT. With Windows98 showing
itself to be a yet another troublesome incarnation of DOS/Windows, NT
is the last refuge.
Strangely, instead of making NT the solid crash proof system people
crave, Redmond hacks and bloats up NT in hopes of getting it into
higher margin roles that are still too much for it to handle. Redmond
pushes, and reacts to criticism of its baby with patches, hacks and
bloat. Redmond keeps pushing, and NT continues to show itself as being
unready for the big leagues. Redmond say, "Wait! NT version 5.0 will
have all sorts of new features and capabilities that will make it
perfect for enterprise computing." More likely is NT 5.0, with it's
30+ million lines of code, 24+ million of them new and untested, may
just turn out to be the most bug ridden bloated carcass of ugly hacks
we've ever seen. Redmond will once again have egg on its face, but
this time will it be a permanent stain?
If NT 5.0 turns out to be a huge disappointment, then the alternatives
will have to be ready to entice a growing pool of would-be defectors.
Linux will have to be more usable and manageable by the WinHerd. It
will have to be viable enough to convince OEMs that they can afford to
break their devil's bargains with Microsoft. If Redmond trips and once
again the lack of viable alternatives allows it to get on its feet and
continue building its empire, we have only ourselves to blame. We have
two years, can we do it?
Regards,
Mike
_________________________________________________________________
Date: Wed, 22 Jul 1998 10:37:33 -0500
From: "Pronovici, Kenneth", Kenneth.Pronovici@mchugh.com
Subject: CHAOS
Please pass on my congratulations on a wonderful article to Alex - his
CHAOS system apparently caused my coworkers to think of me, and my
WHOPPeRS (Wacky Hastily Organized Parallel Processesing Research
Scheme) system, which looks a lot like CHAOS. Only difference is that
mine is sitting on my bedroom floor... ;-)
Ken Pronovici
_________________________________________________________________
Published in Linux Gazette Issue 31, August 1998
_________________________________________________________________
[ TABLE OF CONTENTS ] [ FRONT PAGE ] Next
This page written and maintained by the Editor of Linux Gazette,
gazette@ssc.com
Copyright © 1998 Specialized Systems Consultants, Inc.
"Linux Gazette...making Linux just a little more fun!"
_________________________________________________________________
More 2¢ Tips!
Send Linux Tips and Tricks to gazette@ssc.com
_________________________________________________________________
Contents:
* RE: Photogrammetry tools for Linux? in Issue 30
* Re: Suggestion for Article, simultaneous versions of Kernels
* Secondary IDE interface CDROM detection/automounting tip
* Re ext2 partitions
* pdf resumes: pdflatex
* Re: CHAOS
* Re: 3com network cards
* ext2 Partitions
* RE: Searching (somewhat in vain) for sources on shell scripting
* Re: $.02 tips on ext2 Partitions
* LG30 ext2 Partition tip
* Modem Connecting Speed
* Short Article on upgrading to SMP
* Cross-platform Text Conversions
_________________________________________________________________
RE: Photogrammetry tools for Linux? in Issue 30
Date: Wed, 29 Jul 1998 10:01:14 -0500
From: John Prindle, jprindle@mail.eden.com
In the July 1998 issue of LG, this message was listed in the "Help
Wanted" section.
From: Maurizio Ferrari, Maurizio.Ferrari@tin.it
I am looking for a Linux program to do some close-range
photogrammetry. Close range photogrammetry is a technique that
enables to reconstruct 3D images from a series of 2D pictures.
There are a few powerful (and relatively inexpensive) tools for
Windows but none so far for Linux, that I know of. There was
something once upon a time called Photo4D. Despite my massive
Internet search, any occurrence of Photo4D seems to have been wipe
erased from the face of earth. It is listed in SAL but all the
links fail. I don't want to resort to buy and use Windows software
for this. Help, anyone?
I have tried to e-mail the user back at his given address with some
info found on the company and product, but the address given is not
valid. So, here it is:
CompInt
712 Seyton Drive
Nepean, Ontario K2H 9R9
Canada
General e-mail : compint@igs.net
http:/www.igs.net/~compint/
This page updated 8/15/97 at 5:45:19 AM ET.
I found this article about the product on Computer Graphics World's
site.
http://www.cgw.com/cgw/Archives/1996/09/09prod1_05.html
Product Spotlight
New Motion-Capture Tool
CGW Magazine - September 1996
With CompInt's Photo4D-Pro, animators can now capture 2D and 3D motion
based on video recordings. The Windows 95/NT-based program, available
for $490, features auto-detection and auto-marking tools which use
pattern recognition technology to automatically detect and mark
similar feature points in images, making it possible to effectively
digitize a large number of points. The software enables users to
capture accurate 3D motion from multiple video recordings of a subject
by tracking the feature points in videos and computing their x, y, and
z coordinates in each frame. Furthermore, its advanced algorithms can
synchronize recorded videos to sub-frame accuracy, allowing the use of
low-cost home video cameras.
Coinciding with this product launch, the company is also releasing
Photo4D-Lite V2.0, a $99 product designed for users who require only
3D digitizing and modeling capabilities. Both products will be
available on Windows 95/NT, SGI, Sun, HP, and Linux platforms.
(Nepean, Ontario; 613-721-1643)
The web page that is listed is not valid, but hopefully this may help
people trying to locate this product.
John
_________________________________________________________________
Re: Suggestion for Article, simultaneous versions of Kernels
Date: Wed, 01 Jul 1998 10:39:21 +0100
From: Hans-Georg Esser, esser@i2.informatik.rwth-aachen.de
From: Renato Weiner, reweiner@yahoo.com
Recently I was looking at the Gazette and I think I have a good
suggestion of an article that will be very useful for the Linux
community. I have had some technical difficulties of having two
simultaneous versions of Kernels in my system. I mean a stable one
and a developing one. I searched the net looking for information of
how to co-exist both but it's completely fragmented. If somebody
more experienced could put all this information together, it will
certainly help a lot of people from kernels developers to
end-users.
Let me state the following:
HOW TO HAVE COEXISTING KERNELS
First let me assume that, with "coexisting kernels", you meant to have
several different kernels (with different kernel numbers such as
2.0.34 and 2.1.101) each of which can be chosen at boot time to be
started. (The point is: I suppose, you don't want to simultaneously
__run__ different kernels, which of course is impossible.)
So, all you have to do is this:
For each kernel you want to use, get the kernel sources, e.g. as .tgz
file, cd to /usr/src, do a
tar xzf ../where/ever/it/is/package.tgz
then cd to /usr/src/linux-2.0.34 (e.g.) and do the ordinary kernel
configuration / compilation, i.e.
make config (or menuconfig or xconfig, whatever you like)
make zImage modules modules_install
cp arch/i386/boot/zImage /linux-2.0.34 (e.g.)
The last bit of the make will generate a directory /lib/modules/2.0.34
(e.g.) where the modules are put.
Then edit the /etc/lilo.conf. Copy the parts that configure your
"normal" system start and change the name of the configuration. Also
change the name of the kernel binary to /linux-2.0.34 (e.g.).
Then proceed with the next kernel in identic behaviour. Nothing can be
overwritten during this process, because all of the kernel compilation
is done in its separate directory /usr/src/linux-2.x.y, and all the
generated modules will be put in a separate directory
/lib/modules/2.x.y, and your zImage copy (residing in /) will have a
new name, as you have used an other kernel version.
When you're through with all your kernel versions and have added the
last portion to the /etc/lilo.conf file do a
lilo
at the prompt which will make lilo reinstall the boot manager with the
changed values. Now reboot, press [TAB] at the LiLo prompt and choose
a kernel to use. If you followed these steps, you will not have
deleted your original entry in /etc/lilo.conf, so if none of your
newly compiled kernels can boot properly, you can still boot the old
kernel.
Hope it helps,
H.-G. Esser
_________________________________________________________________
Secondary IDE interface CDROM detection/automounting tip
Date: Wed, 1 Jul 1998 14:09:24 -0400
From: Jim Reith, reith@racores.com
In the Linux Gazette #28 the question was asked:
Hello.I have the Linux Slackware 2.0.30 Walnut Creek.I installed it
on a Pentium 200 MMX with a 24x CD-ROM. During the installation I
had to write "ramdisk hdd=cdrom" for reading the CD-ROM, but after
the installation Linux doesn't see the CD-ROM. I have an atapi
CD-ROM, and when I tried to compile my kernel another time, I saw
that atapi is the default !!! So I don't understand where is the
problem . What can I do?
I ran into this same problem on my home machine. I found that the
rc.cdrom script wasn't checking for my drive properly. It couldn't
find /dev/hdc and I had to change/add in /dev/hd1a in order to get the
master on the secondary IDE interface. Once I put that in the list it
worked fine. I would suspect you should use /dev/hd1b for the slave?
Jim Reith reith@racores.com
_________________________________________________________________
Re ext2 partitions
Date: Thu, 2 Jul 1998 21:25:27 +0100
From: Alex Hornby, ahornby@plasma.ddns.org
A much simpler solution to Albert T. Croft's file finding troubles of
only wanting to look at ext2 drives so as to exclude the vfat
partitions is:
find . -fstype ext2 -name foo
Replacing foo with whatever you are looking for.
Cheers, Alex.
_________________________________________________________________
pdf resumes: pdflatex
Date: 04 Jul 1998 11:42:17 -0700
From: Karl M. Hegbloom, karlheg@inetarena.com
Dave Cook, the man who wrote the 2cent tip about createing a .pdf file
of a resume, must not have the latest TeTeX installed. Either that, or
he's not explored it much. ;-)
There is a `pdflatex' now, that creates .pdf files directly. It works
really well. There is also `pdftex', and `pdftexinfo'. You can typeset
texinfo documents with `info2pdf' now.
Last time I tried it, there was an off by one bug, apparently... When
you click a section heading in the table of contents panel, it would
jump to one section lower than the one you click. The bug has been
reported to the Debian bug tracking system.
Karl
_________________________________________________________________
Re: CHAOS
Date: Fri, 03 Jul 1998 16:07:14 +0100
From: Dom Mitchell, dom@phmit.demon.co.uk
A point to note: the IP addresses used for the network should probably
be modified to be in one of the ranges set aside in RFC 1918. In
summary, they are:
10.0.0.0 - 10.255.255.255 (10/8 prefix)
172.16.0.0 - 172.31.255.255 (172.16/12 prefix)
192.168.0.0 - 192.168.255.255 (192.168/16 prefix)
These addresses are guaranteed to not be in use on the Internet,
should you get connected later. See the RFC for the full rational.
Dom Mitchell
_________________________________________________________________
Re: 3com network cards
Date: Fri, 03 Jul 1998 20:33:13 +1000
From: leon, leon@desiin.com
Re: complaint about 3com network card being slow in 2c tips.
3com 3c590 3c900 and 3c905 cards have a setting stored into them.
Unlike traditional settings like IO port , Interrupt, or media type,
these cards just take one setting ...
They actually have a setting that slows down the card so that the CPU
time isnt chewed up with a flood of network traffic.
There is also a maximum throughput setting and a medium setting.
leon
_________________________________________________________________
ext2 Partitions
Date: Thu, 2 Jul 1998 17:58:32 -0700 (PDT)
From: David Rudder, drig@noses.org
In your 30th issue, Albert Croft wrote in with a script to search only
ext2 partitions. I believe you can do the same thing by using
find / -fstype ext2
David Rudder
_________________________________________________________________
RE: Searching (somewhat in vain) for sources on shell scripting
Date: Mon, 06 Jul 1998 12:37:05 -0400
From: "Paul L. Lussier", plussier@BayNetworks.COM
Well, my 2 sec search turned this up. In addition, www.oreilly.com is
the only site you need for the definitive source on anything related
to Unix.
Unix Shell Programming Revised Ed.
Kochan, Stephen G.; Wood, Patrick H.
0-672-48448-X
Hayden Books
Korn Shell Programming Tutorial
Rosenberg, Barry
0-201-56324-X
Addison Wesley
AWK Language Programming; A User's Guide for GNU AWK
Robbins, Arnold D.
1-882114-26-4
Free Software Foundation
Learning Perl, 2nd Edition
2nd Edition July 1997
Randal L. Schwartz & Tom Christiansen Foreword by Larry Wall
1-56592-284-0
302 pages, $29.95
Programming Perl, 2nd Edition
Larry Wall, Tom Christiansen & Randal L. Schwartz
2nd Edition September 1996
1-56592-149-6
670 pages, $39.95
Advanced Perl Programming
By Sriram Srinivasan
1st Edition August 1997
1-56592-220-4
434 pages, $34.95
Paul
_________________________________________________________________
Re: $.02 tips on ext2 Partitions
Date: Mon, 06 Jul 1998 13:23:42 -0400
From: "Paul L. Lussier", plussier@BayNetworks.COM
In the July 1998 issue of Linux Gazette, Albert T. Croft said:
We knew the files we were looking for would only be on the ext2
partitions. We tried writing a batch file, using grep and gawk to
get the mount points for the ext2 partitions and handing them to
find. This proved unworkable if we were looking for patterns, such
as h2*. We then tried to write just a find command, using gawk and
grep to get the mount points. This was somewhat better, but using a
print statement in gawk to get the names of the mount points
wouldn't work. Some help came with remembering that gawk has a
printf statement,allow. Our final product, which we found quite
useful and now have in our .bashrc > files as linuxfind, is the
following:
find `mount|grep ext2|gawk '{printf "%s ", $3}'` -name
A quick perusal of the mount man page would have revealed the -t flag
obviating the necessity of the grep and gawk in the above command.
Therefore the command could have been shortened to:
find `mount -t ext2` -name
Also, the "locate" command is also available on linux (and has been
documented within the pages of LG and LJ a number of times). From the
man page:
locate searches one or more databases of file names and displays
the file names that contain the pattern.
In addition, one could use 'which', 'whence' and 'whereis' to assist
in the location of files.
Paul
_________________________________________________________________
LG30 ext2 Partition tip
Date: Fri, 10 Jul 1998 21:31:03 +0100 (BST)
From: Simon Huggins, huggie@dial.pipex.com
Thanks for your tip which I saw in the Linux Gazette.
I think you may want to add the -mount switch to your command line
though.
That way find won't go onto other filesystems except those listed.
Since on my system, / is ext2 and /hdd/c is vfat, without the mount
switch, find *WOULD* search the vfat partitions too. The mount switch
limits it to those partitions which you list with your grep/gawk
combination
Hope that helps.
_________________________________________________________________
Modem Connecting Speed
Date: Wed, 22 Jul 1998 23:06:27 +0000
From: NP, np@cableinet.co.uk
What speed is my modem connecting at ?
Got a new 56K modem and wondering how it's doing ? Fed up with seeing
"115200" ?
(This assumes Red Hat 5.0)...
Edit /etc/sysconfig/network-scripts/chat-ppp1 (or whatever chat file
you use) Insert a line:
'REPORT' 'CONNECT'
Edit /etc/sysconfig/network-scripts/ifup-ppp
Change this line:
connect "/usr/sbin/chat $chatdbg -f $CHATSCRIPT"
to:
connect "/usr/sbin/chat $chatdbg -f $CHATSCRIPT" 2>/dev/console
- to log to the console, or:
connect "/usr/sbin/chat $chatdbg -r /var/log/modem-speed -f $CHATSCRIPT"
- to log to a file /var/log/modem-speed
You'll see entries like:
chat: Jul 22 22:31:06 CONNECT 52000/ARQ/V90/LAPM/V42BIS
(If you're lucky!)
NP
_________________________________________________________________
Short Article on upgrading to SMP
Date: Mon, 27 Jul 1998 16:06:08 -0500 (CDT)
From: Andy Carlson, andyc@andyc.carenet.org
My son and I upgraded to an SMP machine this last weekend. We
encountered some problems, and thought it might make an interesting
short article. Use it if you can :).
About a month ago, I acquired two 4.3GB UW SCSI drives from IBM. At
the time, I was running an old Adaptec 1542 SCSI card (with no
problems I might add), but it does not support Ultra Wide, and it was
an ISA card. In the process of looking at PCI Ultra Wide SCSI Cards (I
was going to purchase an Adaptec 2940UW since I had some experience
with them), I came across a Micronics W6-LI motherboard, dual Pentium
Pro, with builtin Adaptec AIC7880 SCSI UW chip. This is the story of
that project.
My son and I started at 8:00 Saturday morning. We took my existing ATX
machine, which housed an Intel VS440 motherboard, 2GB IDE drive, 2GB
SCSI drive, and SCSI cdrom apart. We removed everything - Motherboard,
Drives, Powersupply, etc. This is because the Micronics board is big,
and we wanted as few obstructions as possible while we put the
motherboard in. We put the motherboard, two 4.3GB UW drives, CDROM,
and powersupply back in. I only needed the data from the IDE drive, so
we hooked that up also, but did not install it in the case. We booted
into the bios, and set a few things, including setting it to use the
MP1.4 spec. We inserted the Slackware 3.4 boot and root disks, and it
booted just fine. The hardware portion was a snap.
We set up the partitions on the two UW drives, and copied the data
from the IDE drive to a partition on the frist UW drive. We then
started the installation of Linux. We installed the Slackware 3.4,
with kernel 2.0.30. This went well. We booted, and this came up. We
were anxious to try SMP, so we compiled a kernel with SMP, and this
was where the problems started. The machine would hang after running
about a minute in SMP mode. We decided to download a newer kernel, so
we tried 2.0.34. There is apparently a nasty bug in 2.0.34 on SMP
machines. The SCSI chip could not be reset, and was looping trying to
do this. We also tried 2.0.35, with no luck. This behaviour happened
whether we compiled for single or multiple processor. The next step
was to try a development kernel (this was the first time for me). We
downloaded 2.1.107, and installed it. We also found that to use this
kernel, we need updated binutils, modutils, libc, ld.so, procps,
procinfo, and mount. The upshot of this was, that 17 hours after we
started, we had a running multiprocessor machine.
Some things to keep in mind:
* SMP is turned on by uncommenting the SMP=1 line in the kernel
Makefile (this was unnecessary in the developement kernel - it was
on by default)
* Have as many things downloaded as you can think of. It never
occurred to me that it would be handy to have some newer kernels
already on the hard drive.
* Read the doc for the development kernels carefully - we missed
some of the software that needed to be upgraded.
* Starting with 2.1.102 development kernel, IP Masquerading was
changed. The doc for the new IPCHAINS program is at
http://www.adelaide.net.au/~rustcorp/ipfwchains
_________________________________________________________________
Cross-platform Text Conversions
Date: Thu, 30 Jul 1998 14:28:37 +0900
From: Matt Gushee, matt@it.osha.sut.ac.jp
Well, I had some text files that I needed to convert from UNIX to DOS
format. Downloaded the 'unix2dos' program ... and discovered to my
horror that it was an A.OUT BINARY! Thought they'd purged all of those
from the archives ;-) But seriously, I couldn't run the program, so I
came up with a Tcl script to do the job. It can convert text files in
any direction between UNIX, DOS and Mac formats. It has only been
tested w/ Tcl 8.0, but since it's very simple, I imagine it'll work
with earlier versions too. It has a small bug: when converting from
DOS format, it adds one extra newline at the end of the file.
Why Tcl? Well ...
* I'm sure it's possible to do these conversions with sed or even
bash; it might even be simple once you know the trick. But after
several hours of reading man pages and experimenting, I couldn't
figure out how.
* Didn't feel like dusting off my old Perl book.
* Tcl is cool.
* It turned out to be really easy to do this in Tcl.
To use the script, you should:
1. If necessary, edit the pathname for tclsh.
2. Save it wherever you want to, with any name (I call it
textconv.tcl), and make it executable.
3. symlink it to any or all of the following names, depending on
which conversions you want to do, in a directory in $PATH:
d2m d2u m2d m2u u2d u2m
These names must be exactly as shown in order for the script to work.
4. To use, type the appropriate command with a source file and
destination file as arguments. For example, to convert a Mac text
file to UNIX format:
$ m2u macintosh.txt unix.txt
That's it! Hope you find it useful.
------ cut below this line ------------------------------
#!/usr/bin/tclsh
# capture the command name that invoked us and the
# source and destination filenames
set convtype $argv0
set infile [lindex $argv 0]
set outfile [lindex $argv 1]
set inchannel [open $infile "r"]
set outchannel [open $outfile "w"]
# according to the command name, set the end-of-line
# and end-of-file characters to the appropriate values
switch -glob -- $convtype {
*2d {
fconfigure $outchannel -translation "crlf" -eofchar "\x1a"
}
*2m {
fconfigure $outchannel -translation cr
}
*2u {
fconfigure $outchannel -translation lf -eofchar ""
}
default {
error "Invalid command name. This script must be \n\
invoked through a symbolic link with\n one of the following \
names:\n d2m, d2u, m2d, m2u, u2d, or u2m."
}
}
while {[gets $inchannel line] >= 0} {
# if converting from DOS, lose the end-of-file character
if {[string match "*d2*" $convtype]} {
set line [string trimright $line "\x1a"]
}
puts $outchannel $line
}
close $inchannel
close $outchannel
#------------ end Tcl script--------------------------------
Matt Gushee Oshamanbe, Hokkaido, Japan
_________________________________________________________________
Published in Linux Gazette Issue 31, August 1998
_________________________________________________________________
[ TABLE OF CONTENTS ] [ FRONT PAGE ] Back Next
_________________________________________________________________
This page maintained by the Editor of Linux Gazette, gazette@ssc.com
Copyright © 1998 Specialized Systems Consultants, Inc.
"Linux Gazette...making Linux just a little more fun!"
_________________________________________________________________
News Bytes
Contents:
* News in General
* Software Announcements
_________________________________________________________________
News in General
_________________________________________________________________
September Linux Journal
The September issue of Linux Journal will be hitting the newsstands
August 7. The focus of this issue is Graphics and Multimedia and we
have feature articles on LibGGI, Open Inventor, XIE, VTK, SGI audio
applications and more. Check out the Table of Contents at
http://www.linuxjournal.com/issue53/index.html. To subscribe to Linux
Journal, go to http://www.linuxjournal.com/ljsubsorder.html.
_________________________________________________________________
StarOffice Promotional Price
Date: Fri, 17 Jul 1998 09:49:44 GMT
Caldera is pleased to announce that for a limited time, the Office
Suite StarOffice 4.0 for Linux is on sale for $49 (regularly $99).
This price is for a commercial license to the most popular and full-
featured application suite on Linux. StarOffice 4.0 includes:
* Word processor
* Spreadsheet
* Graphic and presentation package
* Web browser with HTML editor
* Graphical desktop interface
In a recent product review, SCO World declared StarOffice "better than
MS Office", and with "No crashing and no waiting, the only reason
people are still using other office packages is they haven't tried
StarOffice yet!" (June/July 1998, page 34)
For more information: http://www.caldera.com/
Bryan Standley, bryanst@caldera.com
_________________________________________________________________
Atlanta Linux Showcase Registration is Open
Date: Fri, 17 Jul 1998 10:30:48 GMT
Online registration for the 2nd Annual Atlanta Linux Showcase is now
open!
The registration process has been automated this year, and
pre-registration for the conference sessions will require payment with
a credit-card from our secure web server. Prices for the showcase are
as follows:
Exhibition Hall Admission: FREE! (A registration is required)
Conference pre-registration: $60/day ($35/day for students/seniors)
Conference after October 1: $75/day ($50/day for students/seniors)
The 2nd Annual Atlanta Linux Showcase will be held October 23rd and
24th at the Atlanta Apparel Mart and is presented by the Atlanta Linux
Enthusiasts and Linux International. The showcase will feature an
exhibition hall for vendors of Linux related hardware, software, and
services, live demonstrations of Linux related products, and
conference sessions featuring some of the most respected members of
the Linux community.
For more information:
http://www.ale.org/showcase/
registration@ale.org
_________________________________________________________________
The Antarctic Project - OpenSource WWW/FTP/mailing list hosting
Date: Mon, 20 Jul 1998 10:40:15 GMT
Have a killer OpenSource application, but no where to host the web
pages? Want to let the world read your Perl tutorial? Need a home for
your Linux Users Group?
Penguin Computing is proud to announce the Antarctic Project, an
internet server specifically for OpenSource/Linux web pages, mailing
lists and ftp sites. If you have a site that needs a home, we may be
able to host it on the Antarctic Server. This service is completely
free.
The Antarctic Project is limited to sites having to do with Linux or
other OpenSource projects. All sites must be non-commercial. Internet
connectivity is provided by Penguin Computing ISP services. The
Antarctica Server is located in Silicon Valley, and has a 100 Megabit
connection to Mae-West and CIX-PAIX.
For more information: isp@penguincomputing.com
http://www.penguincomputing.com/antarctic.html
_________________________________________________________________
Microsoft ordered to show Windows95 source with Caldera (fwd)
Date: Wed, 29 Jul 1998 10:42:11 -0700 (PDT)
http://www.sltrib.com/07291998/utah/45304.htm
"Microsoft Corp. must hand over the computer source code for Windows
95 to Caldera Inc., a small Orem software company suing it for alleged
antitrust violations, a Utah federal judge ruled Tuesday. "
[...]
"The judge did agree to warn the Caldera experts and lawyers the code
cannot be used for any purpose other than the litigation. Jardine said
Microsoft will provide the code within five days. "
Three Point's Linux News --- http://www.threepoint.com/
_________________________________________________________________
Linux Links
"Choice is Not a Four Letter Word" by Joshua Galun,
http://www.shawmag.com/archive/0105/01.html
Oracle and inofrmix now on Linux:
http://www.infoworld.com/cgi-bin/displayStory.pl?980717.whorlinux.htm
"Engineers and Linux": matsumoto.txt
Linux in the Enterprise? (Wired News Daily):
http://www.wired.com/news/news/email/explode-infobeat/technology/story
/13621.html
Pre-installation checklistnini-HOWTO:
http://members.tripod.com/~algolog/lnxchk.htm
SmallEiffel is a GPL implementation of Eiffel, a simple yet
full-featured object-oriented programming language:
http://sunsite.unc.edu/pub/Linux/devel/lang/eiffel/
http://www.loria.fr/SmallEiffel
Linux questionnaire: http://aachen.heimat.de/alug/fragebogen/
Beowulf questionnaire: http://aachen.heimat.de/alug/beowulf/
_________________________________________________________________
Digital Library Project
Date: Fri, 17 Jul 1998 10:30:19 GMT
Announcing a new Linux project: The Digital Image Library Project
(DILP). DLIP is an online image database that would be used to archive
images for searching and viewing. Currently slide libraries used by
art historians consist of tens of thousands of individual 35 mm
slides. These slides are organized, and sometimes there information is
index in a computer. But never all of images and there information.
The goal of this project is to create a database with a web interface
that can be used from multiple locations to allow researchers access a
digital index.
For more information:
http://www.hp.uab.edu/digital-library
Ed Kujawski, kujawski@cter.eng.uab.edu
_________________________________________________________________
Subject: Linux Hardware Certification Laboratory Announced
July 1, 1998, Dallas, Texas
Aegis Data Systems and Best4u Internet Services today announced a
joint collaboration to establish a testing center for Linux hardware
compatibility. The focal point of the center will be a web site at
http://Linux.Best4u.com/, which will be online by August 1, 1998. The
web site will be used to publish results of tests and provide a
central registration for hardware manufacturers and Linux device
driver programmers.
For more information:
Mark Stingley, sarge@AegisData.com
_________________________________________________________________
Software Announcements
_________________________________________________________________
Informix SE on Linux
Informix Corporation has announced the release of Informix SE on
Linux. Informix SE is a SQL-based database engine for small to
medium-range applications. It is a solution for businesses that want
the power of SQL without the complex database administration
requirements. Linux application developers are now able to download a
free developers kit that includes Informix SE, ESQL/C for Linux,
Informixs SQL toolkit, I-Connect (the runtime version of ESQL/C).
Informix SE and ESQL/C in Linux is available from Caldera and S.u.S.E
on the Intel platform.
For more information:
Informix Software, Inc., http://www.informix.com/
_________________________________________________________________
CALDERA ANNOUNCES SUPPORT OF KDE TECHNOLOGY
OREM, UT July 16, 1998 Caldera, Inc. today announced the adoption and
support of KDE technology. Caldera will include the K Desktop
Environment in the OpenLinux 1.2.2 maintenance release due out the end
of September. KDE will be the default desktop in the Caldera OpenLinux
2.0 product, scheduled for release the fourth quarter of this year.
Caldera is supporting KDE technology by hosting the official KDE U.S.
FTP site at ftp.us.kde.org. Provided by Caldera, KDE 1.0 binary and
source rpms for OpenLinux 1.2 are available for download from the
site.
The K Desktop Environment is an international Internet based volunteer
project which develops the freely available graphical desktop
environment for the UNIX platform.
For more information:
Caldera, Inc., http://www.caldera.com/
KDE, http://www.kde.org
_________________________________________________________________
Ingres port to Linux
Date: Thu, 9 Jul 1998 12:32:13 -0700
The NAIUA (North American Ingres Users Association) would like to
announce that Computer Associates has committed to porting the Ingres
II RDBMS to Linux by the end of Q3 1998. It will be included on the
UNIX Software Development Kit which will be available for free on the
CA Web site at http://www.cai.com/. (Note: the SDK currently available
on CA's web site is for Windows NT only and does not yet include
Ingres for Linux)
Ingres II for Linux was demoed with Red Hat at CA-World 98 and will be
available for Linux platforms running Red Hat 2.0 pl27 as well as
other compatible versions. It will be free with the Ingres II SDK for
UNIX. Support structures have not been determined by CA at this time.
For more information: Bob Griffith, tech_tools@naiua.org
_________________________________________________________________
Java Released Under Open Source
Date: Tue, 14 Jul 1998 14:34:03 -0700
Berkeley, CA - Transvirtual Technologies, Inc. announces the release
of Kaffe OpenVM(TM), the first complete independent implementation of
Java(TM) available under the ``Open Source'' initiative. Unlike other
third-party VMs, Kaffe comes with a "just-in-time" compiler and a
complete set of class libraries, including Beans and AWT.
Kaffe was designed from day one to be highly portable and to provide a
complete Java environment in the smallest possible memory footprint.
It has already been ported to a number of processors, including the
x86, StrongARM, MIPs, 68K and Alpha, and can provide a full graphical
environment in as little as 500K (including VM and class libraries).
For more information:
http://www.transvirtual.com/
Tim Wilkinson, tim@transvirtual.com
_________________________________________________________________
Game Textures CD1
Date: Tue, 21 Jul 1998 19:52:04 -0500
AUSTIN, TX- Crack dot Com, developer of the cult-hit Abuse and the
anticipated 3D real-time strategy title Golgotha, has made available a
CD specifically tailored for game artists titled "Game Textures CD1".
Crack dot Com released "Game Textures CD1" today for sale. CD1 is a
compilation of textures gathered from outdoor environments, buidling
faces, and military and civilian vehicles. These high-resolution
textures were specifically designed by Crack artist Kevin Tyler for
use by game artists who demand high-detail tileable textures for use
in 3D games, and many of the textures appear in Crack's upcoming title
Golgotha.
CD1 is currently available only directly through Crack dot Com. An
order form and index of the textures is available at
http://crack.com/.
For more information:
textures@crack.com
Dave Taylor, ddt@crack.crack.com
_________________________________________________________________
JPython-1.0 Provides a Powerful Companion to Java
Date: Thu, 23 Jul 1998 08:59:43 -0700 (PDT)
Reston, VA -- The Corporation for National Research Initiatives has
announced the release of JPython-1.0. JPython is a freely available
implementation of the high-level, dynamic, object-oriented language
Python -- integrated seamlessly with the Java(TM) platform and
certified as 100% Pure Java(TM).
JPython's integration with Java draws on the strengths of the Java
platform. JPython code can easily access any existing Java libraries
and JavaBeans. The Java virtual machine allows JPython to statically
compile Python source code to Java bytecodes that will run anywhere
that Java does. Through Java's support for dynamic class loading,
JPython can dynamically compile Python code to allow interactive use
while still achieving the performance of a true compiler.
Guido van Rossum created the Python language in the early 1990s, and
it has been used successfully in many interesting software projects
since then.
JPython completely implements the Python language in 100% Pure Java,
and is freely available in both source and binary form. In order to
implement Python's Perl5-compatible regular expressions, JPython
includes the outstanding OROMatcher(TM) regular expression engine
developed by Original Reusable Objects(TM) at http://www.oroinc.com/
By agreement, this regular expression engine is only distributed in
binary form. JPython can be found at http://www.python.org/jpython/.
For more information:
Jim Hugunin, hugunin@python.org
_________________________________________________________________
NetStreamer 0.16 available: Streame audio over 28k8, ISDN or LAN
Date: Thu, 9 Jul 1998 10:48:02 GMT
NetStreamer offers the possibility to stream audio over your 28k8
modem or ISDN at a sample rate of 8 or 16 kHz. It offers a fancy
radio-alike frontend that allows you to tune in on "radio-programs"
that are offered by the NetStreamer Server, which is a kind of
reflector that passes on audio that may be offered by several
transmitters.
Currently NetStreamer-0.16 is available. You can download the
NetStreamer software (The Server, Receiver and Transmitter) from:
http://flits102-126.flits.rug.nl/~rolf/NetStreamer.html
The software is distributed in source and binary form under GPL.
For more information:
Rolf Fokkens, rolf@flits102-126.flits.rug.nl
_________________________________________________________________
CurVeS 0.8.3 -- console UI for CVS
Date: Thu, 9 Jul 1998 10:41:51 GMT
CurVeS performs two functions. It provides a menu and command
completion interface to CVS so that inexperienced users can learn the
features of CVS without documentation. This also involves adding some
meta-features that are built from CVS commands which are used together
in some common-use circumstances. The second function of Curves is to
provide visual presentation of a project directory so that the status
of each file is comprehensible at a glance. CurVeS uses color, when
available, to accent the file classification marks.
ftp://ftp.netcom.com/pub/el/elf/curves/ in the file
curves-0.8.3.tar.gz and curves-0.8.3.lsm
Runs on any UN*X. Tested on GNU/Linux and Solaris. C++ necessary to
build from source. CVS and possibly RCS to use.
For more information:
Marc Singer, elf@netcom.com
_________________________________________________________________
urlmon 3.0 -- URL monitoring software
Date: Thu, 9 Jul 1998 10:50:08 GMT
urlmon version 3.0 is released, now with ability to filter out
portions of HTML data so that things like rotating advertisements
don't give false positives. The filtering capability is quite
flexible, and it user-extensible. The code has been cleaned up, making
it much more elegant and simple. The format of the urlmonrc database
file has changed, and this causes problems addressed in the various
documentation files. Some enhancements have been made to make urlmon
more conducive to scripting.
urlmon is the URL Monitor. It reports changes to web sites (and ftp
sites, too).
http://sunsite.unc.edu/pub/Linux/apps/www/mirroring/urlmon-3.0.tgz
(soon)
http://source.syr.edu/~jdimpson/proj/urlmon-3.0.tgz
For more information:
http://source.syr.edu/~jdimpson/urlmon/
Jeremy D. Impson, jdimpson@acm.org
_________________________________________________________________
GramoFile 1.1 - Gramophone records to CDs
Date: Wed, 15 Jul 1998 11:28:30 GMT
GramoFile is a computer program, running under the Linux operating
system, with the main goal of putting the sound of gramophone records
on CDs. The program is not finished yet (and maybe never), but it is
able to do a lot of useful things already. Like removing ticks and
splitting a long sound file into separate tracks. This program was
originally written by Anne Bezemer and Ton Le as a study project at
the department of Information Technology and Systems (sub-department
of Electrical Engineering) of the Delft University of Technology, The
Netherlands. However, development has continued after the end of the
project, resulting in the program as it is now (read: much more
functional :).
The new version 1.1 is available at the GramoFile Home Page:
http://cardit.et.tudelft.nl/~card06/
For more information:
J.A. Bezemer, J.A.Bezemer@ITS.TUDelft.NL
_________________________________________________________________
WavPlay/GnuWave Update
Date: Wed, 15 Jul 1998 09:39:55 GMT
WavPlay-1.0 was the last LINUX sound play/record program that was
released to the net, with 2 levels of patches.
This a short note to announce that the "home web page" for the WavPlay
software is moving (since I am also moving, and will change ISP +
email addresses etc.)
To find out what is currently happening with the new WavPlay software,
visit the new "home page" at:
http://members.tripod.com/~ve3wwg/
For more information:
Warren Gay VE3WWG, ve3wwg@yahoo.com
_________________________________________________________________
aumix 1.9: adjust an audio mixer
Date: Wed, 15 Jul 1998 10:33:10 GMT
I've uploaded aumix 1.9, a program for adjusting an audio mixer from
the console, a terminal, the command line or scripts. Here's what's
new:
* interactive screen won't show channels that don't exist * should
build without automake or autoconf * might compile under FreeBSD *
muting function should work for everyone now * left and right levels
shown with "L" and "R" in interactive screen * fixed small bug with
adjustment by mouse * usage text printed when mixer file can't be
opened
WWW access: http://jpj.net/~trevor/aumix.html
Primary-site: http://sunsite.unc.edu/pub/Linux/apps/sound/mixers/
Files: 40898 aumix-1.9.tar.gz and 638 aumix-1.9.lsm
For more information:
Trevor Johnson, trevor@jpj.net
_________________________________________________________________
locus 0.85 - a fulltext database
Date: Mon, 20 Jul 1998 10:22:43 GMT
locus lets you find words in your texts: newsgroup messages, Web page
mirrors, electronic books - whatever you have. It uses word patterns
(order, locality etc.) to match queries to texts, makes reasonable
choices by default yet does exactly what you want when you specify it.
locus homepage: http://www.cermak.cz/~vbarta/
For more information:
Vaclav Barta, vbar@comp.cz
_________________________________________________________________
S-PLUS 5.0 for UNIX & LINUX
Date: Mon, 27 Jul 1998 11:53:59 -0700
On August 10, MathSoft will be announcing/shipping a new version of
S-PLUS called S-PLUS 5.0 for UNIX and LINUX, a key new addition to
MathSoft's statistical data mining family. This addition to the
broadest line of statistical data mining software for business and
academia comes with several significant upgrades, including:
1. next generation S language, designed specifically for data
visualization and exploration from Lucent Technologies,
2. improved memory resourcing for large, rapid data set analysis,
3. import & export data from virtually any source (SAS, SPSS, Excel,
Lotus, and more),
4. more statistical modeling and analysis functions,
5. complete system for calender time series analysis and
6. support for additional UNIX operating systems, such as HP, IBM and
SGI.
For more information:
Lisa Hiland, lisah@schwartz-pr.com
_________________________________________________________________
NetBeans Developer 2.0, Beta 2
Date: Tue, 28 Jul 1998 12:02:08 +0200
Prague, Czech Republic, July 28, 1998 - NetBeans, Inc. today released
the second Beta version of its well-received Integrated Development
Environment (IDE) written entirely in the Java(TM) language and based
on Sun's Java Foundation Classes framework. NetBeans Developer 2.0 -
Beta 2 is available for free download from the company's web site,
http://www.netbeans.com. NetBeans IDE is a full-featured visual
programming environment that allows flexible development on any
platform which supports JDK 1.1.x, including NT, Win95, Linux, OS/2,
Solaris, HP-UX, and others.
NetBeans IDE will ship in two versions - Developer and Enterprise.
NetBeans Developer was created for the single developer working on a
desktop PC. NetBeans Enterprise was designed as a multi-user,
multi-platform product. Users can fully exploit the object-oriented
nature of the IDE, design distributed applications based on RMI/CORBA,
share virtual filesystems, debug remotely, and access source control
systems.
The second beta version of NetBeans Developer 2.0 is now available and
can be downloaded from the NetBeans Website at
http://www.netbeans.com. NetBeans Developer 2.0 is scheduled for
release in the third quarter of 1998, and will retail for
approximately $149. Pricing and availability of NetBeans Enterprise
will be announced in September, 1998.
For more information:
NetBeans, Inc. Helena Stolka, helena.stolka@netbeans.com
_________________________________________________________________
Caldera Releases NetWare for Linux 1.0
OREM, Utah, July 30 /PRNewswire/ -- Caldera(R), Inc. today announced
the release of NetWare(R) for Linux 1.0. Caldera NetWare for Linux
provides NetWare file, print and directory services ready to run
(native) on a Linux distribution. With NetWare for Linux, Caldera
brings the most-widely used networking operating system to Linux with
full client support and integrated administration utilities. NetWare
for Linux is a component of the Caldera Small Business Server
scheduled for release later this year.
A NetWare for Linux three-user version is now available for download
at no cost from the Caldera Web site
(http://www.caldera.com/products/netware). Bump packs can be purchased
in user license increments of 1 ($95), 5 ($450), 25 ($1,875), or 50
($2,750). A $59 two-CD jewel case version offering a complete NetWare
solution including NetWare for Linux, NetWare utilities and OpenLinux
Lite 1.2 will be available mid-August.
For more information:
Caldera, Inc., http://www.caldera.com/
_________________________________________________________________
Published in Linux Gazette Issue 31, August 1998
_________________________________________________________________
[ TABLE OF CONTENTS ] [ FRONT PAGE ] Back Next
_________________________________________________________________
This page written and maintained by the Editor of Linux Gazette,
gazette@ssc.com
Copyright © 1998 Specialized Systems Consultants, Inc.
"Linux Gazette...making Linux just a little more fun!"
_________________________________________________________________
(?) The Answer Guy (!)
By James T. Dennis, linux-questions-only@ssc.com
Starshine Technical Services, http://www.starshine.org/
_________________________________________________________________
Contents:
(?)Greetings From Jim Dennis
(?)Remote Backups (Yet Again) --or--
Remote Backups: GNU 'tar' through 'rsh'
(?)Assigning UID/GID --or--
UID/GID Synchronization and Management
(?)How to check your modems connect speed?
(?)win95 slowdown --or--
Win '95 Hesitates After Box Has Run Linux?
(?)Bad Cluster
(?)XFree86 on Trident Providia 9685
(?)redhat linux 5.0 and reveal sc400 rev a sound card --or--
Reveal SC400 Sound Card: OSS/Linux and OSS/Free Supported?
(?)Kernel Overview needed....
(?)Printing Solaris -> Linux --or--
Remote lpd Solaris to Linux
(?)Lilo not working on SCSI when IDE drives installed
(?)Yggdrasil: A Breath of Life for the Root of the Linux
Distributions? ...and what about OpenLinux Base?
(?)115K Baud from a Modem: In your dreams!
(?)Linux NDS --or--
Linux as a Netware Directory Srvices Printer Client?
(?)What is an RPM?
(?)Stupid question --or--
AnswerGUY? Who is Heather?
(?)'sendmail' requires DNS ... won't use /etc/hosts
(?)Question on Memory Leak --or--
Memory Leaks and the OS that Allows Them
(?)X Window with two monitors...
(?)DAO software for linux?
_________________________________________________
(?)Greetings From Jim Dennis, August 1998
By now you've probably heard it a dozen times:
Oracle Announces Intent to Support Linux
Informix Releases Linux version of their SQL Engine
... so, what does that mean.
Well, the good part is that Linux will get more respect from many IT
departments. It will be easier for sysadmins to recommend Linux,
FreeBSD, and similar solutions. There also will be a flurry of other
software companies that will also jump in and port their software to
this new, upstart Unix implementation. The Informix announcement was
re-iterated at just about the same time and Inprise (formerly Borland)
had already made Interbase available awhile back). I expect that Lotus
Notes and Domino aren't too far behind, and I wouldn't be surprised to
hear that SAP (publishers of the R/3 ERP system) were quietly talking
to S.u.S.E. (I seem to have heard that Adabas is one of the supported
db engines for SAP R/3, and that has been available for Linux for some
time).
There's also an interesting teaser at the Caldera website
(http://www.caldera.com/openlinux/index.html) regarding an impending
"Netware for Linux" --- which should be an interesting server platform
(Netware's implementation of ACL's, access control lists -- always
seemed better then the others I've seen. So, if you really need them
on a fileserver, this might be the way to go).
We've also heard that the server software isn't the only niche that's
discovering Linux. Regulars of Slashdot () and the Linux Weekly News
(http://www.lwn.net), and any of the major Linux newsgroups and
mailing lists are also probably aware that Corel has announced
projects to port their whole office suite to Linux (they've had
versions of WordPerfect available for awhile, and one of their
affiliates, Corel Computing --- a hardware concern --- is using a
StrongARM port of Linux which they helped develop as the core of their
NC --- network computer). Presumably they will also consider porting
their flagship CorelDraw package, which has been been available for
some other Unix platforms for some time).
http://www.corel.com/news/1998/may/linux.htm
Of course it's already joining the fray with Applixware, StarOffice,
Cliq Suite, Wingz, XessLite, and NeXS, among others.
So, the commercial software is coming. Linux will take yet another
step from hobbyist "do-it-yourself" project towards a widespread
platform for the masses.
Is there a downside to all of this? Naturally there are some risks.
While I welcome the availability of Oracle, Informix and other major
players to the Linux world --- I'd like to remind everyone that there
are alternatives. See Christopher B. Browne's excellent list of these
under his website at:
http://www.hex.net/~cbbrowne/
... Some of the commercial SQL engines for Linux that I've heard good
reports about are Solid, JustLogic, and Infoflex. That's not to
mention the free and shareware packages like PostgreSQL, mSQL, MySQL,
and Beagle.
(There are differences in capacity and scalability --- many of these
are currently limited to table locking rather than being able to lock
individual records).
The big risk we now face is that we'll adopt and promote (or
perpetuate) some application suite or tool with a proprietary set of
file formats or interfaces. If Microsoft were to ship MS Office for
Linux tomorrow --- we'd have the same essential problem that we have
today. When someone sends you a Word .DOC, an Excel .XLS or a
PowerPoint .PPT you're expected (by an alarming percentage of your
correspondents) to be able to handle those files.
Everyone, (freeware and commercial third party vendors alike) is has
been playing "catch-up" to this tune for far too long.
This issue of "open document formats" is far more important than
choice of operating systems. What you run on your machine is none of
my business. What you send to me in our business transactions is.
Applix and StarOffice (and the free 'catdoc' and LAOLA filters) make a
truly valiant effort to deal with some of these proprietary formats.
They do so with some success (Word 2.0 seems fine, Word 6.x might be a
bit dicey --- Word '97 documents die a horrible death).
If Microsoft moved quickly they might be able to "take over the Linux
desktop" by providing "MS Office '98 for Linux." Personally I think
that would be a shame. I think it would squelch some of the
interesting work being done on LyX and Cicero, and various other "word
processor" and desktop publishing interfaces for Linux.
So, before you rush out to embrace Oracle, and buy one of their
servers --- take a look at some of the other DBMS packages that are
out there. Give them a real try (feasibility and capacity test) before
you commit.
On another note: I'd like to grant the first "Answer Guy Support
Award" of the month to Sam Trenholme. He practically owns the
comp.linux.misc newsgroups and answers alot more questions there than
I get to in a month here. Thanks, Sam. We all owe, ya!
(I'll try to give these out about once a month --- to someone,
somewhere, who answers lots of questions in some Linux tech support
venue).
One final tidbit: I guess the press isn't getting all mushy on us.
Either someone at Miller-Freeman's _sysadmin_Magazine_ doesn't like
Linux or they were typing too fast when they wrote:
.... Linux is a 2-bit multi-user, multitasking variant of the UNIX
operating system. (p 68, August, 1998; vol. 7 no. 8)
Can anyone find an extra 30-bits to send them?
_________________________________________________
(?)Remote Backups: GNU 'tar' through 'rsh'
From Ken Plumbly on 18 Jul 1998 in the comp.unix.questions newsgroup
Hi :
I'm sure this one will probably drive you crazy, I read your answer in
LG issue 29 for remote backups, and did what the article said, but I
get the response back from the server with the tape drive:
(!) Getting things like this working for the first time have driven
me crazy in the past. So, it's certainly possible for them to do so
again.
(Some friends might say that "crazy" is a state they've come to
expect of me).
(?) permission denied.
tar: Cannot open user@host.our.domain:/dev/st0: I/O error
and in the messages file on the tape host is:
pam_rhosts_auth[7300]: denied to root@hostname.our.domain as user:
access not allowed
We are running redHat 4.2 with a connor 4gb tape drive.
I created a user on the tape server, and put a .rhosts file in the
~user directory but still no joy.
Any Ideas?
Ken
(!) Can you just run a command like:
rsh -l operator tapehost "id; pwd; ls -l /dev/st0"
... and get the desired results?
In my example I make some assumptions:
I'd run this command from root on the client and use the "-l
operator" switch and argument to specify that I want rsh to access
the "operator" account on the tapehost.
I'd create an account named "operator" on the tapehost machine. It
would have no special privileges except that it would be a member
of the "tape" group.
My copy of /dev/st0 on the tapehost would be owned by root.tape
(the "tape" group) and would be mode 770 (writable by group).
This should allow what you want. Until you can use stock 'rsh'
commands through this context --- your 'tar' commands are doomed.
(Since GNU tar actually calls 'rsh' for that part of this work).
For more security you can use 'ssh' instead of 'rsh'
Next I would not use the command as you described it.
Tape drives are very sensitive to inconsistent latency (caused by
transport of the data over a network and by any compression you
attempt to do). If the data is not fed to the interface fast enough
and at an even rate then the drive will have to stop, rewind a bit,
and restart to get back to the right speed and tape position to
continue writing.
This is called "shoeshining."
To prevent shoeshining we run a program called 'buffer' (Lee
McLoughlin) on the "tapehost" (the machine that recieves the data
over the network and writes it to the tape drive).
So that command would look like:
# tar czSf - .... | rsh -l operator tapehost "buffer -o /dev/st0"
Note the -S switch that we use to preserve "sparsity" in files ---
that is to detect cases where the data blocks have not be
continously allocated to the file --- where there are "holes" in
the allocation map for the "empty" parts of the file's data. These
sorts of files are commonly created with dbm libraries and other
"hashing" algorithms that use file seek offsets as "indexes" into a
file --- your /etc/aliases.pag file might be one of them. If you
don't understand "holes" and "sparse" files (which are features of
the Unix filesystem that aren't supported in some others --- though
I know that Netware had them) --- don't worry about it. Just add
the -S and it won't hurt anything even if there are no such files
in the data set that you're working with.
Note that I use the c (create), z (compress) and f (file target)
flags, and that the file target I specify is "-" (a dash). In Unix
this usually indicates that the "standard output" device should be
used. In other words, "-" (dash) is an idiom in a number of
Unix/Linux commands. So, this command will write all of the tar
file into the pipe.
On the recieving side of the pipe we have a local copy of 'rsh'
that will try to connect to the "tapehost" as the user named
"operator" and thereon try to run a command named "buffer" with the
-o (output) of that pointed to the tape device.
How much difference does 'buffer' make? About an order of
magnitude. Yes. You read that right --- on my network (which was
completely idle at the time) I ran experiements with and without
buffer (and with and without compression) and it would take 10
times longer to write the tape without 'buffer'. On top of all of
that the tapes created without 'buffer' are much less reliable. So,
failing to use that can be harmful to your data, and add immense
amounts of wear and tear to the drive (shortening its useful life).
The 'buffer' command came with my copies of S.u.S.E. and might come
with your copy of RH 5.x (although I don't think 4.2 had it). You
can find that at:
http://src.doc.ic.ac.uk/public/public/packages/buffer
Imperial College, U.K./Great Britain where Lee McLoughlin is a a
system manager, and programmer.
Lee McLoughlin is also known for an FTP mirror package he wrote and
maintained in PERL a few years ago. He maintains a web page
(http://www.doc.ic.ac.uk/~lmjm/) which doesn't mention this or the
'buffer' program but highlights some of his other work.
With RH 4.2 you might also be suffering from some confusion with
your PAM configuration. You might have to change that around a bit
or upgrade it to a new version.
If you were trying to access the root or any "root equivalent"
account -- that is anyone with a UID of 0 (zero) you might have
been bumping into the "/etc/securettys" problem. This is one of the
other reasons why I configure my systems with an "operator" account
and give that account access to the 'buffer' program and to the
/dev/st0 node.
If you did tests with 'rlogin' that seemed successful (you were
able to 'rlogin' to the account but not to run 'rsh' commands, keep
in mind that these are separately configurable services in PAM.
Another constraint that is a bit more subtle: you cannot access
'rsh' and 'rlogin' commands through IP Masquerading. This is
because the source IP port for an rsh or rlogin connection must be
set to specific values
It's a very weak form of "authentication" on the part of the
protocol, it was intended to ensure that the process on the client
side of the machine was running with 'root's authority --- that it
wasn't a random user's process just claiming to be anybody. That
was almost reasonably 20 years ago before people had TCP/IP capable
workstation on their desktops --- back when all of the "computers"
were locking in server rooms and you wanted to create loosely
coupled computing clusters within your domain. It is wholly
inadequate and inappropriate on today's networks. That's why we
have 'issh' and why I spend all night last night playing with the
"Linux Free S/WAN" project (just search Yahoo! on that phrase).
(Free S/WAN is a project to implement secure, network level IP ---
so that we can use transparent cryptography to protect applications
layer protocols like rsh, and so many others. It's being developed
internationally --- so that it will have to be imported into the
U.S. --- this is because we're a "free nation" except when it comes
to the practical application of advanced mathematics as a medium of
expression).
In any event --- I really doubt that you're trying to access your
tapehost through a masquerading router --- but if you are, you can
expect that to fail.
From the error messages you show it looks like you do have the
appropriate /etc/services entry and the appropriate entries in the
/etc/inetd.conf. It also looks like you are not having a TCP
wrappers problem in this case (since that would have given a
different error message in the tapehost's syslog).
_________________________________________________
(?)UID/GID Synchronization and Management
From Gordon Haverland on 16 Jul 1998 in the comp.unix.questions
newsgroup
Hi:
I inherited sys admin stuff as part of a job. At first, this wasn't a
problem: GIS work on a single Linux machine. I did development and
analysis, others did just analysis. Soon we got another Linux machine,
so development moved to there. To share printing, Ethernet was
installed and LPRng. Then a Solaris 2.5.1 machine was added. So, the 2
linux machines have a handful of users, the Sun has those plus a few
other groups of users, and I plan to add a Beowulf cluster "real soon
now". Is there any rationale out there for assigning UID and GID in a
hetrogeous cluster/network like this? It sure looks like users common
among machines have to have the same UID and GIDs. The Solaris has NIS
on it, so I guess whatever I do should get administered from there.
Thanks for any light you might shed on this.
Gordon Haverland
(!) I'm not sure what you mean by "rationale" on this context.
Do you mean:
"Why should I co-ordinate and synchronize the account management on
the systems throughout my network?"
... or do you mean:
"How should I ....."
... or do you mean something else entirely?
I'll answer the first two questions (probably in far more detail
than you wanted):
There are two principle reasons why you want to co-ordinate the
user/UID and group/GID management across your network. The first is
relatively obvious --- it has to do with user and administrative
convenience.
If each of your users are expected to have relatively uniform
access to the systems throughout the network, then they'll expect
the same username and password to work on each system that they are
supposed to use. If they change their password they will expect
that change to be global.
When you --- as the admin --- add, remove, disable, or change an
account, you want to do it once, in one place. You don't want to
have to manually copy those changes to every system.
Of course these reasons don't require that the UID/GID's match. As
you probably know names and group names in Unix and Linux are
mapped into numeric forms (UID's and GID's respectively). All file
ownership (inodes) and processes use these numerics for all access
and identity determination throughout the kernel and drivers. These
numeric values are reverse mapped back to their corresponding
principle symbolic representations (the names) by the utilities
that display or process that information. Thus the 'ls -l' command
is doing a lookup on each directory entry to find the name that
corresponds to the the owner and group ID's.
Most of the commands you use actually do this through library
calls. In deed most of these commands are "dynamically linked" (use
shared libraries) which perform the calls through common external
files (the libc). As we'll see this is very important as we look at
the implications of consolidating the account mapping information
into a networked model (such as NIS).
As I said, you could maintain a network of systems which
co-ordinated username/password data, and group membership lists
without synchronizing the UID's and GID's across the systems. Most
network protocols and utilities (the r* gang: rsh, rlogin, rcp, and
things like telnet, ftp, etc) exchange this data in "text"
(symbolic) form.
However, we then come to NFS!
The NFS protocols use numeric forms to represent ownership.
Therefore an NFS server provides access based on an implicit trust
that the NFS client is providing a compatible and legimate mapping
of the cient's UID/GID to the server's.
It is possible in Linux' NFS implementation to run a ugidd (a
UID/GID mapping daemon). Thus you could create maps for every NFS
server to map each clients UIDs to this server's UID's, etc. Yes,
that idea is as ugly as it sounds!
I won't go into the security implications of NFS' mechanism here.
I'll just point out that my pet expansion of NFS is "no flippin'
security." I'm told that it is possible to enable a "secure RPC"
portmapper which implements host-to-host authentication. I'd like
to know more about that.
However, it is still the case that any users who can get root
access to any trusted NFS client can impersonate any non-root user
so far as the NFS servers in that domain are concerned. Since
"sufficient" physical access virtually guarantees that workstation
users can get root access (possibly by resorting to a screwdriver
and CMOS battery jumper) I come to the conclusion that NFS
hopelessly insecure in today's common network configurations (which
workstations and PC's at everyone's desks).
(In defense of NFS I should point out that its security model, and
the one's we see in the r* gang were not unreasonable when most
Unix installations had a small cluster of multi-user systems locked
in a server room --- and all user access was via terminals and
X-terminals. This suggests that there are some situations where
they are still justified).
Despite these limitations and implications, NFS is the most
commonly deployed networked filesystem between Unix and Linux
systems. I have high hopes for CODA, but even the most optimistic
dreams reveal that it will take a long time to be widely adopted.
So, it is in your best interests to synchronize your UID/GID to
user/group name mappings throughout your enterprise. It is also
recommended that you adopt a policy that UID's are not re-used.
When a user leaves your organization you "retire" their UID
(disabling their access by *'ing out their passwd, removing them
from the groups maps, setting their "shell" to some /bin/denied
binary and their "home" directory to a secured "graveyard" --- I
use /home/.graveyard on my systems). The reason for this may not be
obvious. However, if you are maintaining archival backups for
several years (or indefinitely) you'll want to avoid any
ambiguities and confusion that might result from restoring one
(long gone) user's files and finding them owned by one of your new
users.
(This "UID retirement" policy is obviously not feasible for larger
ISP's and usually difficult for Universities and other high
turnover environments. You can still make it a policy to cycle all
the way around the UID/GID space before re-use).
That should answer the questions about "why" we want to co-ordinate
account information (user/password, and group/membership data) and
why many (most) of us want to synchronize the UID's and GID's that
the accounts map to.
Now, we think about "how" to do so.
One common method is to use 'rdist' to distribute a set of files
(usually /etc/passwd, /etc/group, and /etc/hosts) to every machine
in a "domain" (this being the "administrative" sense of the term,
which might or might not match a DNS domain or subdomain). For this
to work we have to declare one system to be the "master" and we
have to ensure that all account changes occur on that system.
This can be done by manually training everyone to always issue
their 'passwd' 'chfn' 'chsh' and similar commands from a shell on
that system, or you can create wrappers for each of the affected
commands (replacing the client copies of these commands with a
script that doesn't something like: 'ssh $master "$0"' for
example).
The nice things about this approach are:
It works for just about any Unix and any Linux (regardless of the
libraries and programs running on the client).
The new risks and protocols are explicitly put in place by the
sysadmin --- we don't introduce new protocols that might affect our
security.
There is no additional network latency and overhead for most
programs running most of the time. You are never waiting for 'ls'
to resolve user and group names over the network!
The concerns about this method are:
You have to ensure the integrity and security of the master --- I'd
suggest requiring 'ssh' access to it and using PAM and possibly a
chroot jail to limit the access of most users to just the
appropriate commands.
All clients must "trust" the master -- they must allow that system
to "push" new root owned system configuration files to them. I'd
use 'rdist' or 'rsync' over 'ssh' for this as well.
You may have unacceptable propagation delays (a user's new password
may take hours to get propagated to all systems).
It doesn't "scale" well and it doesn't conform to any standards.
You (as the sysadmin) will have to do your own scripting to deploy
it. Any bugs in your scripts are quite likely to take down the
entire administrative domain.
Then there's NIS.
NIS is a protocol and a set of utilities and libraries which
basically implement exactly the features we've just described. I've
deliberately used several NIS terms in my preceding discussion.
NIS distributes various sorts of "maps" (different "maps" for
passwords, groups, hosts, etc). The primary NIS server for a domain
is called the "master" --- and secondary servers are called
"slaves." Nodes (hosts, workstations, etc) that request data from
these "maps" are called "clients."
One of the big features of glibc (the GNU libc version 2.x which is
being integrated into Linux distributions as libc.6.x) is support
for NIS. It used to be the case that supporting NIS on a Linux
client required a special version of the shared libraries (a
variant compilation of libc.5).
In Red Hat 5.x and Debian 2.x this will not be necessary. We expect
that most other Linux distributions will follow suit in their next
major releases. (This transition is similar to the a.out to ELF
transition we faced a couple of years ago, and much less of a
hassle than the infamous "procps" fiasco that we went through
between the 1.x and 2.x kernels. Notably it is possible to have
libc.5 and glibc concurrently installed on a system --- the major
issue is which way your base system binaries and utilities are
linked).
The advantages of NIS:
It's a standard. Most modern forms of Unix support it.
It's scaleable and robust. It automatically deals with capacity and
availability issues by having two tiers of servers (master and
slave).
It's already been written. You won't be re-inventing this wheel.
(At the same time it is more generalized --- so this wheel may have
more spokes, lug nuts, and axle trimmings than you needed or
wanted).
The disadvantages of NIS:
NIS is designed to do more than you might want. It will default to
providing host mapping services (which might conflict with your DNS
scheme and might give you a bit of extra grief while configuring
'sendmail' --- at least the Solaris default version of 'sendmail').
These are relatively easy issues to resolve --- once you understand
the underlying model. However they are cause for sysadmin confusion
and frustration in the early stages.
It's not terribly secure. There is a NIS+ which uses cryptographic
means to tighten up some of that. However, NIS+ doesn't seem to be
available for Linux yet. That is probably largely the result of the
U.S. federal government's unpopular and idiotic attitudes towards
cryptography --- which has a generally chilling effect on the
development and deployment of robust security. The fact that U.S.
policy also recognizes patents on software and algorithms
(particularly the very broad RSA held patents on public key
cryptography) also severely constrains our programmers (they are
liable if they re-invent any protected algorithm --- no matter how
"obvious" it seemed to them nor how "independently" their
derivation). Regardless of these political issues, I still have
technical concerns about NIS security.
Hybrid:
You can use NIS within your domain, and you can distribute your NIS
maps out to systems that are on the periphery (for example out to
your web servers and bastion/proxy systems out on the "firewall" or
"perimeter network segment." This can be combined with some custom
filtering (to disable shell access by most users to these machines
--- helping to ensure that the UID/GID mappings are used solely for
marking file ownership --- for example).
NIS maps are is the same format as the files to which they
correspond. Thus the NIS passwd map is a regular looking passwd
file, and the NIS group map is in the conventional format you'd
expect in your /etc/group file.
You might have to fuss with these files a bit to "shadow" them (or
"star out" the passwords on accounts that shouldn't be give remote
access to a given host).
Ideally I'd like to see a hybrid of NIS and Kerberos. We'd see NIS
used to provide the names/UID's --- and Kerberos used for the
authentication. However, I haven't yet heard of any movement to do
this. I have heard rumblings of LDAP used in a way that might
overlap with NIS quite a bit (and I'd hope that there'd be an LDAP
to NIS gateway so we wouldn't have to transition all those
libraries again).
Back to your case.
NIS sounds like a natural choice. However, you don't have to pick
the Solaris system for the administration. You can use any of the
Linux systems or any Solaris system (among others) as the NIS
master. Since your Solaris system is probably installed on more
expensive SPARC hardware, and it probably was purchased to run some
services or applications that aren't readily available on your
Linux systems --- it would probably be wiser to put up an extra
Linux box as a dedicated NIS master and administrative console.
It doesn't sound like internal security is even on your roadmap.
That's fine and fairly common. All the members of your team
probably have sufficient physical access to all of the systems in
your group that significant efforts at intranet (internal) security
in software would probably be pointless.
I'd still recommend that you use "private net" addressing (RFC1918
--- 10.*.*.*, 192.168.*.* and the range of class B's from
172.16.*.* through 172.31.*.*) --- and make your systems go through
a masquerading router (Linux or any of several others) or a set of
proxies or some combination of these.
In fact I highly recommend that you fire up a DNS caching server on
at least one system --- and point all of your clients at that, and
that you install a caching web proxy (Apache can be configured for
this, or you can use Squid --- which is my personal favorite).
These caches can save a significant amount of bandwidth for even a
small workgroup and they only cost a little bit of installation and
configuration time and a bit of disk space and memory.
(The default Red Hat configuration for their 'named' rc file is to
just run in caching mode. So that's truly a no brainer --- just
distribute a new resolv.conf file to all the clients so that it
refers *first* to the host that runs the cache. My squid
configuration on a S.u.S.E. machine and has run, unmodified, for
months. I vaguely remember having to edit a configuration file. It
must not have been too bad. Naturally you have to get users to
point their web browsers at the proxy --- that might be a hassle.
With 'lynx' I just edit the global lynx.cfg file and send it to
each host. Similar features are available in Netscape Navigator ---
but you have to touch everyone's configuration at least once).
Once you have your workgroup/LAN isolated on its own group of
addresses and working through proxies --- it is relatively easy to
configure your router to filter most sorts of traffic that should
not be trusted across domains and, especially, to prevent "address
spoofing" (incoming packets that claim to be from some point inside
of your domain).
You can certainly spend all of your time learning about and
implementing security. However, the cost of that effort may exceed
your management's valuation of the resources that are accessible on
your LAN. Obviously they'll have to do their own risk and
cost/benefit analyses on those issues.
I pay an undue amount of attention to systems security because it
is my hobby. As a consultant it turns out to be useful since I can
explain these concerns and concepts to my customers, and refer to
them to specialists when they want "real" security.
To learn more details about how to setup and use NIS under Linux
read the "The Linux NIS(YP)/NYS/NIS+ HOWTO" at:
(http://www.ssc.com/linux/LDP/HOWTO/NIS-HOWTO.html). This was just
updated a couple of weeks ago.
I guess there is support for NIS+ clients in glibc --- so that's
new to me. I've copied Thorsten Kukuk (the author of this HOWTO) so
he can correct any errors I've made or otherwise comment.
By the way: What is GIS? I've heard references to it --- and I
gather that it has to do with geography and informations systems.
Would you consider writing an overview of how Linux is being used
in GIS related work for LJ or LG?
_________________________________________________
(?)Modem Connect Speed
From James R. Ebright on 15 Jul 1998 in the comp.unix.questions
newsgroup
Dear Answer Guy,
I have a question that I can't seem to find any refernce to in any of
the regular documentation, (though I must admit, I only searched for
about an hour this time, and sporadically over the last month or so).
How can you tell the connection speed that a modem auto-negotiates
when dialing an ISP? My system log (/var/log/messages in RH5.1) does
tell me the line speed I have set in the chat script, but I would like
to know the connect speed as well (56K, 33.6, etc). I know this info
must be available somewhere/somehow.
(!) I've gotten questions like this before and I never did find an
answer. Indeed I actually beg the question itself.
My problem with the question amounts to a couple of rhetorical
questions in return:
Who cares?
What are you going to do based on this metric?
At first these questions may seem hostile. But they aren't intended
in that sense. There are both practical and philosophical aspects
to this.
Are you going to return the modem to your vendor or retailer if it
doesn't "live up to" some speed?
Are you going to switch to a different ISP if their connect speed
is better than your current average?
Are you going to force the phone company to pull new wire to your
home, resplice their cables, or replace equipment in their CO based
on these results?
You used the term "info" --- the "info must be available somewhere"
--- but what is the real informational content of this number.
Let's say you connect at 49000 bps --- your effective throughput is
likely to vary throughout the duration of each call. The factors
involved may be quite different but they all have one thing in
common --- they are probably not anything you can effectively do
anything about.
Certainly you can do metrics on latency and throughput by running
scripts between two hosts (after synchronizing their clocks). That
could give you highly accurate data.
I personally still question the informational content of that data.
So, I'm going to sound like a curmudgeon and say:
I don't know how to get that data, and I don't care to spend more
time trying to find out.
... However, I'll forward this for publication in this months LG
--- and I'll forward any responses back to you. (To respect your
privacy we normally don't publish your e-mail addresses in LG. That
does result in a bit of extra work on my part --- but I don't
mind).
On an academic level I'm curious what answers and suggestions we'll
see. I'll be curious where this number comes from and what it
"means."
On a practical level I try to configure my systems and my work
habits so I just don't have to care if my modem is working at 28.8,
33.6, 14.4 or whatever.
If you search the Answer Guy archives on the terms "modem" or
"benchmark and you'll probably also find some other choice comments
I've made about the marketing claims of modem vendors (and CPU
vendors for that matter).
I have similar opinions about most claims of "speed" as a feature.
(?) PS, I am using the standard RH5.1 "if-up" scripts, but have used
my own "ppp-on" style script in the past. I currently wrap my "if-up"
script with a ppp-on script that looks like:
>-------------------------------------------------
#!/bin/bash
cd /etc/sysconfig/network-scripts
./ifup-ppp ifcfg-ppp0 &
-------------------------------------------------
and "ppp-off" looks like:
>-------------------------------------------------
#!/bin/bash
cd /etc/sysconfig/network-scripts
./ifdown-ppp ifcfg-ppp0 &
-------------------------------------------------
I can offer more information if needed. Thank you for any light you
can shed on this issue.
(!) I don't think these have anything to do with how fast or slow
your modems are. If you want to reduce the amount of traffic that
flows over these lines while running PPP --- run a caching
named/etc/resolv.conf
to the localhost address: 127.0.0.1) and a copy of Squid or Apache's
cache proxy and configure your browsers to use this WWW cache.
(?) James R. Ebright
IT Professional, CoastalNet
(!) Sorry if I sound grumpy on this issue.
Your frustration with slow modems seems palpable --- and the great
backward regulatory morass that is our telecommunications
infrastructure doesn't leave you (or me) many alternatives.
(Cable modems are currently a pipe dream in my area).
_________________________________________________
(?)Win '95 Hesitates After Box Has Run Linux?
From Frank & Mary Veldkamp on 15 Jul 1998 in the comp.unix.questions
newsgroup
Hi Jim;
To let you in on what I have done:-
I have an AMD 586/133 processor, 24M RAM, 2 x HDD (2.5G and 635M) run
Linux off the 635M and boot in with floppy using LILO.
Win95 is resident on the main 2.5G which is formatted as C: and D:,
The problem occurrs any time that Win is run from a restart, be it a
warm boot (Ctrl-Alt-Del), full power off, or reset button.
Its as if its trying to ascertain what is on the second drive and
can't. It finally allocates it as a 2nd CDRom drive. You can't access
it or get any more info from it.
I've tried re-installing the OP/SYS and have tried it with Win95 on
its own but the same thing happens.
(!) It sounds like this problem occurs with Win '95 regardless of
whether Linux has been installed or not.
What sort of controller are you using? Is it IDE? SCSI? If it is
IDE you'll want to double-check the settings with regards to
"master/slave/standalone." If you have two IDE channels (pretty
common these days) you might try putting the second drive on its
own cable, on the other controller channel.
If this is a SCSI controller, double and triple check the ID's, any
pin settings and options on the drives and the termination
settings/resistor packs on the drives and on the controller, and
any settings on the controller or accessible via its "setup
program" (firmware or software).
In either case, try replacing the cables.
The 635Mb drive is pretty small these days. You might consider
setting it aside and springing for an extra 2 or 4 Gb drive.
(?) If you can't help maybe you know of some one who can. I'm in no
hurry and can manage other things without the solution, but any help
you can give would be greatfully accepted.
Kind regards Frank.
(!) At 01:43 11/07/98 -0700, you wrote:
(?) Hi,
I'm sorry if you've had this one before and I don't want to waste your
time but I've put Linux on for the first time and have no previous
experience. I really put it on because I would like to learn something
new. Anyway the problem is that when I boot to Win95 in which I have
most of my programs, the first time that I try to do anything that
requires reading of the hard-drives the computer stops responding for
a considerable period. Some times up to 10 mins. Is this normal or can
I bypass this problem with some sort of configuration. It's not too
big a problem because it only happens once during any session but it
is a pain in the @$#%^$. Your help would be greatly appreciated.
Many thanks
Frank.
(!) If I understand you correctly you're saying that, since you
installed Linux when you reboot into Win '95 your first subsequent
access of the hard drive causes a hestitation of several minutes.
Is that a proper understanding?
If so I'd just simply be baffled.
Does that only happen after a "vulcan PC pinch" warm boot
(Ctrl-Alt-Del), or after a hard boot (reset button on the case), or
does it happen after a full power cycle (wait about 15 to 30
seconds between power off and powering back up)?
Does this happen only once? Or does it happen periodically?
I've seen some devices (ether cards mostly) that could "stay
confused" through a hard boot. However, I can't imagine anything
that Linux would do to your hardware that would cause this
behaviour.
In cases like this (where something inexplicable is going on and
the secondary OS seems to be involved) I suggest removing the new
software (Linux) and testing again. If that doesn't work try
backing up all of your data and doing an IPL (initial program load
--- i.e. a complete re-installation of your system software).
Please note that Linux can run off of removable drives and can be
loaded from a DOS prompt (Win '95 "Safe mode"). So, once you have
your system behaving properly again you can explore alternative
ways to access Linux that are even less likely to affect the rest
of your system.
If you're really motivated, and you can isolate it to a particular
module, driver, or application under Linux that is causing the
problem, it will be very helpful. If you're really motivated, and
more of a programmer than I, you might even track down and fix the
bug --- since that's what the sources are for. At least you might
try building a couple of different kernels (try stripping out
everything except the disk/controller driver that applies to the
controller on which you've installed your root filesystem -- leave
out the the sound, and ether drivers, and boot up into single-user
mode --- don't start X or xdm and just reboot back If the problem
never occurs in this configuration then you can keep adding things
back until the problem recurs --- or you've got Linux running the
way you want).
_________________________________________________
(?)Bad Cluster
From Ron Bautista on 13 Jul 1998
in the comp.unix.questions newsgroup
Hi..
I have a toshiba laptop...1.2gig. has like 10 bad cluster. Do I have
to say goodbye to this one, and buy a new one If not--- what software
or downloadable app can I get to get it fix.... I would very much
appreciate your help.
Thank you, Ron Bautista
(!) I thought I answered this awhile ago. But I don't find it in my
archives and I do find it in my inbox. So,
You usually can't "fix" bad clusters --- though you can instruct
your OS to "map them out" (refuse to use them). There used to be a
software package for MS-DOS called Spinrite (Gibson Software?)
which would do surface analysis of many types of drives and might
be able to restore bad clusters to use (although it was never
recommended).
There used to also be procedures for many ST-506 (MFM and RLL) hard
drives and some SCSI drives which would allow the user to do a "low
level format" of the drive. However with modern IDE and SCSI drives
this option is generally unavailable --- some drives will let you
sent the low-level format command to them, and their electronics
will blithely ignore your command and send a "success" signal back
(I've even heard that some will use a suitable delay factor).
The point is that modern drives are much more sophisticated than
the old ST-506 drives. Their electronics usually already manage a
number of extra blocks per track (cylinder) and automatically map
the extra blocks into use. Thus you usually don't see any bad
blocks on a modern drive until you have enough errors on some of
the tracks that the are no extras for them.
Thus, when you see "10" back blocks on a drive, it might be that
there are many more that have been automatically mapped out by the
drives electronics (and are thus not visible to the OS, even at the
device driver layer).
For using such a drive with Linux you simply use the -c option to
'mke2fs' when you make (format) new filesystems. This will call the
'badblocks' program and make the appropriate adjustments to the
filesystems tables. I think these adjustments amount to permanently
marking those blocks as unavailable by adding them to a special
'inode' that's maintained by the fs --- they'll never appear in the
free list.
To add more/new bad blocks you can use the -c option to e2fsck. You
can also run 'badblocks' by hand, save it's output/report to a
file, and use that as input to e2fsk's -l switch.
That's about all there is to say about bad blocks under Linux.
Obviously you want to maintain good backup procedures --- and
knowing that you have bad blocks on this drive may encourage you to
be extra careful about your data on that system.
_________________________________________________
(?)XFree86 on Trident Providia 9685
From Simon Zlachevsky on 13 Jul 1998 in the comp.unix.questions
newsgroup
Hi, kind of linux guru, I was tring to configure my X window manager
for about two weeks using XFree86, but i didn't get results.... I have
a trident providia 9685 vga card, and a view sonic E51 monitor, any
advice?
I also download the latest version of xfree86 and ipgrade my own but
still without results, so any advice?, hint?, tip? or such
Simon Zlachevsky
(!) Technically you don't configure your window manager for the
video card, you configure the X server for the combination of video
card and monitor that you have, then you configure the window
manager to suit your prefences within any constraints imposed by
you X server (and the underlying hardware).
This card is listed as "supported" by recent versions of XFree86
(though the support is listed as "limited" or "not maintained).
It's also been listed on the "Red Hat Linux Hardware Compatibility
List for Intel"
(http://www.redhat.com/support/docs/rhl/intel/rh42-hardware-intel-1
0.html) since at least version 4.2.
You don't give any clue as to what the problem is or what steps
you've taken. Also, as I've pointed out many times I'm not much of
an eXpert. I'm sorry that the XFree86 crew doesn't have an "answer"
crew of their own --- but you should at least read throught their
FAQ at: http://www.xfree86.org
Unfortunately there don't even appear to be any vendors providing
commercial technical support for XFree86. That might be subsumed in
some of the vendors that will sell you support for Linux (I would
think it would).
You can also read through the LDP "XFree86 Video Timings HOWTO" by
Eric S. Raymond
(http://sunsite.unc.edu/LDP/HOWTO/XFree86-Video-Timings-HOWTO.html)
and the more general: XFree86 HOWTO
(http://sunsite.unc.edu/LDP/HOWTO/XFree86-HOWTO.html).
_________________________________________________
(?)Reveal SC400 Sound Card: OSS/Linux and OSS/Free Supported?
From kifox on 13 Jul 1998 in the comp.unix.questions newsgroup
Do you know if the Reveal SC400 rev 4a soundcard is directly supported
by Redhat 5.0 and how would I go about setting it up under Linux if it
isn't?
I'm not really sure but I think this card was manufactured by Aztech
for Reveal if it helps any
(!) Sound drivers is one area that I know less about than X. I've
never used them much (under Linux, DOS, or Windows) and I know
nothing special about them.
You might try a 2.1.xxx kernel (since there was a quite a bit of
work done on those drivers back in the 2.1.70's or 2.1.80's). You
could also look at the OSS/Linux (open sound system), which is at:
http://www.4front-tech.com/linux.html
... this is unusual in the Linux community in that the authors of
this commercial (shareware?) package are also the principle authors
of the sound drivers that are built into the Linux kernel (called
OSS/Free). This oddity has been debated a bit --- but the widely
held opinion is that the overall benefits outweigh the concerns.
Anyone who really doesn't like this arrangement is free to derive
their own version and enhancements off of the code that has been
contributed to the the Linux kernel --- which is why it is still in
compliance with the GPL.
The commercial OSS only costs $20 and the authors seem to
contribute as much back to the freeware/GPL code as they reasonably
can (they have to sign NDA's --- non-disclosure agreements to get
the specs for some cards).
Looking at their web site I note that the Reveal SC300 is listed
--- which suggests that the SC400 is not currently supported
(unless it is also known as the Wave Extreme Pro).
In any event, check out their web site yourself for details.
And, once again, remember, if you want it supported under Linux,
you have your choices --- and if you buy it despite the lack of
support then you are failing to communicate your prefences back to
the hardware vendors in any meaningful way.
I've taken the liberty of copying the support@opensound.com (the
OSS support people) on this request so that they can comment on, or
clarify anything that I've said.
_________________________________________________
(?)Kernel Overview needed....
From The Saint (mlkong) on 13 Jul 1998 the comp.unix.questions
newsgroup
Hello Answer Guy,
I need infos on:-
* the specialized startup routines of Linux.
(!) There are several ways to start up a Linux kernel.
The most common is to use a package called LILO which involves
using a Linux program called /sbin/lilo to read a configuration
program (usually /etc/lilo.conf) and use the directives and
declarations therein to build a "boot record." A LILO boot record
can be written to the "master boot record" (MBR) of a hard drive,
to a floppy or to a "logical boot record" (a Linux filesystem's
"superblock").
Using LILO you can prompt the user for options (multi-boot and
others), and even password protect specific boot modes. LILO is
pretty flexible and allows one to define upto sixteen different
boot configurations.
It is also possible to write a Linux kernel directly to a floppy
diskette. If this is done (using a Unix/Linux command like: dd
if=./kenelimage of=/dev/fd0, or using the appropriate "rawrite"
commands for your OS) than the floppy will boot the kernel.
However, the major limitation of this technique is that no
parameters can be passed to the kernel, making it very inflexible.
Another method involves the use of the DOS program LOADLIN.EXE. I'm
told there is also an NT native version of this program. LOADLIN
allows you to load a Linux kernel which is stored in a normal DOS
file. Once it is loaded it effectively kicks the previously loaded
OS out of memory underneath it. This is very similar to the way
that one loads Netware 3.x (SERVER.EXE).
LOADLIN can be called via a DOS batch file, or it can be configured
as at SHELL= or INSTALL= directive in the MS-DOS CONFIG.SYS. This
allows one to use the multi-boot features of MS-DOS 6.x and later
to boot Linux.
LOADLIN also allows you to pass parameters to your kernels. You can
have as many kernels and configurations as you can fit on your
MS-DOS filesystems.
Note that the Linux kernel is not required to "be on" its root
filesystem. You can use a boot record on one device to load a Linux
kernel from another device which in turns mounts its root
filesystem from some other device (or even from "no device" --- the
kernel can have a RAM disk and use the initrd feature which we'll
cover in a few more paragraphs).
It is also possible to create "El Torito" CD's for Linux. The "El
Torito" format for CD's allows many of the newer systems and CD-ROM
controllers to boot an OS directly off of the drive. Red Hat Inc.'s
CD's have been for the last few versions (at least since 4.2 if I
recall correctly). Note that this only works if your BIOS or CD-ROM
controller includes the right features.
There is also a program called SYSLINUX which allows a Linux kernel
to be written to an MS-DOS formatted floppy and booted therefrom.
I've never used that.
On the PowerPC (Macintosh compatible systems, and others) there are
different mechanisms. These systems use an "OpenBoot Firmware"
which allows one to specify things like boot devices, usually
through an interactive process, possibly involving a serial
terminal connected to the "modem" (RS-422?) port on these systems).
There are different versions of the OpenBoot firmware in different
Macs and Mac clones. This can be used to boot LinuxPPC (the
"monolithic" kernel). It is also possible to use a MacOS "Finder"
application to boot MkLinux (the microkernel implementation of
Linux for that platform).
SPARC Linux uses SILO (and all SPARC machines that I've ever heard
of use OpenBoot --- or its predecessor "FCODE" --- Sun introduced
and published the whole OpenBoot specification, which is
essentially a small Forth kernel in ROM for doing diagnostics,
booting, and device initialization and configuration). OpenBoot is
used on a number of workstation platforms --- I think recent HP
workstations all use it, too.
On Alphas there are a couple of different (hardware level) monitors
that lead to the OS boot. I haven't played with any of them, yet,
but I'm told that MILO is used on some (most?).
As we move away from the question of "how does it get into memory"
we can ask what other features are unique to the Linux start-up. On
unusual feature is "initrd" the option to create an "initial RAM
disk image" --- this is a compressed archive that is extracted into
a RAM disk, and it allows one to have a modular kernel and a script
that loads the desired modules from the RAM disk. It is also
possible to create multi-volume "boot/root" and "boot/init/root"
sets of Linux.
(?)
* a move toward totally modulat kernel? What does it means?
(!) I don't know what a "totally modular kernel" means. You still
have the option to compile a Linux kernel with various options
"built-in" and others built as separate modules. You can do this in
many combinations.
With initrd you can create a kernel that doesn't even have the
driver for its primary drive controllers built-in (it would be a
module in the initrd image and would be auto loaded by either the
"kerneld" (or "kmod") feature or by using an "insmod" or "modprobe"
command from the /initrc script that's extracted unto the RAM
disk).
I personally don't do this. I build my primary disk controller
driver and my primary ethernet card drivers directly into my
kernels.
(?)
* overview of the basic kernel organization.
(!) see below.
(?)
* important differences found in tak oriented splinter splinter
trees.
(!) I have no idea what a "task oriented 'splinter, splinter' tree"
would be.
(?) For your information i'm an undergraduate doing a research on this
topics. Please help cause i'm in a dark over Linux operating system!!
(!) These last two questions are far deeper into the Linux kernel
code that I have gone.
You'll probably want to start by reading:
Linux Kernel Internals, 2nd Ed. (ISBN: 0-201-33143-8)
by:
Beck, M.
B\"ohme, H
Dziadzka, M
Kunitz, U.
Magnus, R. and
Verworner, D.
Published by Addison-Wesley in 1997
... you'll want to look at the LDP KHG (the Linux Documentation
Project's Kernel Hacker's Guide) (http://sunsite.unc.edu/LDP/ and
many mirrors).
You'll undoubtedly want to also extract a copy of the sources,
possible for several versions of the Linux kernel, and look at the
directory structures and read some of the code. That will reveal
everything that's important about the organization of the kernel.
One of these days I'd like to see a "Linux Kernel Sources Annoted
Study Guide" --- telling me where to start
(/usr/src/linux/arch/i386/boot --- bootsect.S or setup.S?) and
walks through all of the code until a simple, hypothetical system
completes a shutdown. Of course it would be nice to see the video,
too!
Another thing you could do is look through the archives of the
kernel mailing list, even join it and read through some of the
traffic that flows through there. That is the principle medium of
communications for the developers who collaborate on the Linux
kernel.
For comparison you might also look for overviews of the NetBSD, and
OpenBSD development projects.
(?) Thanks. Email me back ASAP please...
_________________________________________________
The original thread appeared in Issue 30, Solaris -> Linux. The entire
thread below was also posted in the comp.unix.questions newsgroup.
____________________________
(!) Remote lpd from Solaris to Linux
From The Answer Guy on 08 Jul 1998
Kuksi,
Here's another suggestion forwarded from one of my readers:
(?) I like to print from Solaris to Linux. (...repeat of thread...)
(!) To which "Joe Ellis" adds:
Wasn't sure how to reply to this (no email address that I saw) but
whoever had this question:
You have to (under redhat 5.0 anyway) add an account for each
username on the remote system whom you wish to be able to print.
I.E. if user 'foo' on the Solaris machine wants to remote print to
the Linux box, you have to add a user account 'foo' to the Linux
box. This is in addition to the host/ip in the /etc/hosts.lpd file.
I haven't figured out WHY but I know in a stock redhat 5 box thats
how it works. I cannot validate this for other Linux systems other
than redhat as thats the only dist. I have access to at the moment.
-joe
That makes sense. You could probably edit the appropriate PAM
(pluggable authentication module) configuration to allow anonymous
access --- but I don't know, just off hand, which file that would
be or what the magic configuration would look like.
I suppose we could ask on the PAM mailing list...
I've been meaning to install LPRng (the "next generation" print
spooling suite) but haven't taken the time to do it. For now I
actually rcp and print my files manually. I've had lpd working on
some of my systems, sometimes. But I hardly ever print anything, so
there's little inconvenience and not nearly enought to track it
down.
For the first few years I used Linux I printed everything by
preparing a file and using:
'cat ... > /dev/lp0'
... on that.
Let's just say, I don't like printers very much.
____________________________
(?) printing Solaris->Linux
From kuksi on 13 Jul 1998
You have to (under redhat 5.0 anyway) add an account for each username
on the remote system whom you wish to be able to print.
--: joe
There is no need to add an account, but thanks to Joe for the answer
Now it is working !!!! Yeahuj!! *** The problem was idiocity... : I
installed the remote printer under Solaris:
1. #lpsystem -t bsd linux_machine_name
/Identifies the print server system and its type(bsd for BSD)/
2. #lpadmin -p printer_name -s linux_machine_name -T unknown -I any
/Identifies the printer on the printer server./
3. #accept printer_name
#enable printer_name
^^^^^^^^^^^^^^^^^^^
/Specifies that the print client can send print request to the printer./
4. #lpadmin -d printer_name
/Set's the printer as the system's default printer destination./
BUT! In the point 3. "enable printer_name" it isn't enough, because:
5. #lpstat -t
scheduler is running
system default destination: printer_name
system for printer_name: linux_machine_name
printer_name accepting request since Mon Jul 13 10:25:43 MET DST 1988
printer printer_name is ready. disabled since Mon Jul 13 10:25:55 MET
^^^^^^^^
DST 1988
new printer
/Verifies that the printer is ready./
It needs a second "#enable printer_name" command, and after this it is
working...
Shhhhh.. ! ***
Otherwise..
= (think i am
Thank for your answers
kuksi
____________________________
(?) printing Solaris->Linux
From kuksi on 14 Jul 1998
(?) You have to (under redhat 5.0 anyway) add an account for each
username on the remote system whom you wish to be able to print.
--: joe
However joe has right....the linux account to be a must.
(gondolom en
kuksi
(!) Well, if that's a problem you could always try LPRng. Otherwise
you might want to set up Linux as a NIS client on this LAN (if
you're using NIS) --- or configure it so that it's passwd files are
kept in sync with the others (assuming you're maintaining
synchronized passwd files, which you really want if you're running
any NFS throughout that site).
_________________________________________________
(?)Lilo not working on SCSI when IDE drives installed
From Timm Gleason on Wed, 08 Jul 1998 in Newsgroups:
comp.unix.questions
We have several Debian/Linux workstations around the office that
contain both SCSI and IDE devices. Now we almost exclusively use SCSI
hard drives but occasionally we will stick an extra IDE drive into a
box when more disk space is needed. My problem is this, when we
recompile a new kernel after a security patch of fix, and then run
lilo it gives the error `Warning:/dev/sda2 is not the first disk`. So
then I have to halt the machine, physically remove the IDE device,
boot with a rescue disk, rerun lilo, halt the machine, reinstall the
IDE device and reboot. Now while I admit that this does work, it can
be a real pain to have to do that to every workstation we have that
has mixed devices installed.
Thanks
Timm Gleason
(?) Normally there is no problem with integrating SCSI and IDE
drives in a system (under Linux).
However I think I have a hint as to your problem. A normal PC BIOS
will boot off of the first IDE drive on a system. It will only look
at the MBR (master boot record) on the first hard drive (usually
after looking for a boot record on only the first floppy).
The normal consequence of this is that you usually have to install
your OS on the first hard drive. IDE drives conform to an interface
which is built into the BIOS. With SCSI there is a BIOS extension
on the controller's ROM that allows the system to boot.
BIOS extensions are code that's contained on the ROM's of any
expansion card -- so long as it contains a specified header and
calling convention. Part of a normal PC boot process is to scan the
reserved address space between A0000 and E0000 (or so -- it might
be from B0000 through D0000, I don't have a BIOS reference handy)
for this "BIOS extension signature" --- and then to call setup
routines an give offsets from any of these signature blocks that it
finds. That is how SCSI controllers and ethernet boot PROMS (and
other "bootable" devices) work.
The problem is that most SCSI controllers and PC BIOS' will give
the IDE drives precedence over any SCSI drives.
One approach would be to let the system have "its" way and let lilo
write the MBR to the IDE drive. So long as your BIOS (with
extensions) can see the SCSI drives it doesn't matter that the lilo
boot block refers to another drive.
An odd and confusing thing about Linux is that the boot block, the
kernel, and the root filesystem can all be on different devices. In
fact you don't need a "boot block" at all --- you can use
LOADLIN.EXE to start a Linux kernel (I've heard it can be used to
load a FreeBSD kernel, too --- but they have their own program for
that anyway).
So, if you have a /etc/lilo.conf that looks like:
boot=/dev/hda
read-only
prompt
timeout=200
image = /vmlinuz
root = /dev/sda1
label = example
... and you run /sbin/lilo to "compile" this set of configuration
directives into a boot block here's what it will do:
Write the boot block to /dev/hda
note: we use the raw device, so it goes to the MBR, if we use
/dev/hda1, it goes to the "logical boot record" or "superblock" of
the specified (first) partition.
The 'read-only' directive is passed to any Linux kernels that you
load --- it specifies that the root filesystem will be initially
mounted read-only to allow the fsck to work properly on it.
The 'prompt' directive is used to control the behavior of the LILO
boot program at it's runtime (it forces it to print an interactive
prompt to the console during boot) and the 'timeout' directive
specifies how long the prompt will wait before continuing to the
default boot "stanza" (the first, and in this case, only one).
The image directive points /sbin/lilo to the location of a kernel
image (file). Note the distinction between /sbin/lilo's "compile
time" and the lilo boot code's "run time" (that's why I push this
analogy of treating the lilo package as a "boot block compiler" ---
it helps put these distinctions in familiar terms).
This directive causes /sbin/liloi to "map" the device number and
address of the image file. That address can be in different formats
depending on whether the "linear" directive is used to inform
/sbin/lilo that the device is being accessed through "sector
translation."
The 'root' directive specifies where the root filesystem for this
"stanza" is located. That is passed to the kernel unless
over-ridden by parameters that are entered interactively at the
prompt.
Obviously the 'label' directive allows the user to select different
boot stanzas by name at the lilo prompt. (Not that the "lilo
prompt" refers to run-time rather than "compile-time" --- it is the
"boot block code" that is doing the prompting and /sbin/lilo is
utterly uninvolved at that point).
I've played with a number of configurations of lilo.conf over the
years. I've written boot blocks to floppies, specified image files
that were on mounted (non-root) filesystems, and done other silly
things. Lilo's flexibility can be very confusing and I've tried
many things that didn't work (usually for good reason --- Lilo is
constrained by the limitations and conventions employed by your
BIOS).
If you try this and it doesn't work you might need to put a tiny
partition on that drive. You can put a very small minix filesystem
on that (conceptually you could put a kernel and no fs in a single
track --- but /sbin/lilo doesn't have a way to "find" that).
For that matter you can put a Linux kernel file on any fs that you
put on that IDE drive. If you put a kernel image on an MS-DOS
filesystem and run /sbin/lilo while that fs is mounted (it will
complain if it cant find the kernel images at "compile time") you
should be fine (until you run a DOS defrag utility!).
A wholly different approach is to to lie to your CMOS setup and
tell it that you have no IDE drives installed.
Linux doesn't rely on your CMOS settings or BIOS to detect or use
IDE drives. So, once Linux is loaded you should be able to see your
IDE drives even if they are not listed in your CMOS configuration.
(I'm pretty sure I did that once and I don't remember having to do
any tweaking to get it to work. It might be dependent on your
kernel version and compilation options, though).
Obviously, you're doing something a little different --- most
people who mix IDE and SCSI drives start with the IDE's and always
let them be the boot devices. That's the path of least resistance.
However, you can try the tricks I've described --- let me know if
removing the CMOS parameters for the drives works (or if I'm
suffering from delusional memories).
____________________________
(?) Lilo not working on SCSI when IDE drives installed
From Timm Gleason on Fri, 10 Jul 1998 in the comp.unix.questions
newsgroup
Thanks for your prompt reply. Many of the things you mentioned we have
tried at one time or another with limited results. We are suing Asus
P2L97 motherboards which have the ability to set in the BIOS which
drive type you want it to look at first. We have even removed the IDE
drive from the BIOS settings. The problem is that since Linux does not
rely on BIOS settings for IDE drives it always detects them first. And
typically we are adding old extra IDE drives for expanding storage or
the CD-ROM drive in the machine is an IDE.
(!) It's true that Linux doesn't rely on BIOS settings. However,
the lilo boot loader does. It is the boot loader that is looking in
the wrong place. This is probably a bug in your BIOS (or still in
your configuration of that BIOS, as it sits in the CMOS registers).
(?) I have yet to try setting boot=/dev/hda and root=/dev/sda in the
lilo.conf. I was under the impression (mistakenly I guess) that the
MBR and root disks had to be on the same partition.
(!) The fact that this is a very common misconception explains why
I take such pains to explain it in so much detail. I must have gone
over this about twenty times in LG and about a hundred in the
newsgroups.
Also, a nitpick, don't think of them as "root disks" --- think of
them as root filesystems.
An MBR consists of a boot record and a partition table. The boot
loader points to a kernel (or several) --- or it might point to a
secondary boot loader. The Linux kernel contains a pointer to the
default root fs. The LILO boot loader (from the MBR or from a
floppy or any logical boot record) may pass parameters (such as
video mode and root fs parameters) to the kernel to over-ride the
one that's built-in. The 'rdev' command can write a new rootfs
string into a kernel (and it can tweak other values like "video
mode" --- look at the 'rdev' man page for details).
(?) Thanks Again
(!) You're welcome.
_________________________________________________
(?)Yggdrasil: A Breath of Life for the Root of CD Linux Distributions?
From Mike on Sun, 05 Jul 1998 in the comp.unix.questions newsgroup
What do you know about Yggdrasil linux distribution? They purport
significant advances in OS/SOFTWARE/DOCUMENTATION not achieved by
others. Is it real or make believe or worthy of mention? I was
impressed by what I read, however I am not all knowing but just
researching linux to find the best distribution/version to begin
learning yet have an os that is versatile enough to keep using once
abilities exceed beginner/amateur. Mike
(!) Yggdrasil's ``Plug and Play'' Linux was the first CD-ROM
distribution ever produced. They also developed and released the
first CDR recording software that was available under Linux.
Yggdrasil was also one of the earliest companies to compile, print
and bind "dead tree" versions of the LDP (Linux Documentation
Project). Back near the beginning of 1997 they released an 8-CD set
of Linux archives (not including their own distribution). They are
the only company that I know of which has produced a video
documentary on using Linux.
Adam Richter, founder of Yggdrasil, is still active in the
community. He frequently shows up and local user group meetings
(http://www.svlug.org) and he occasionally participates in
discussions on the 'Linux-kernel' mailing list. In fact I saw him
at the "midnight rally" that the SVLUG and some other bay area
Linux enthusiasts hosted in front of Fry's and CompUSA on the night
that Microsoft officially shipped Win '98(*).
* Specifically he and I discussed the fact that the rally had just
run out of the 500 S.u.S.E. CD's that had been donated to us for
promotional purposes. He joked that he could drive over to his
offices --- a couple of miles from there --- and get a case or two
of old sets of the "archives" --- but also expressed the concern
that they were probably a little too old to be of interest to new
Linux users.
Recently (just last February --- a few months ago), he announced
his experimental "Ground Zero" repository --- which is an effort to
provide a comprehensive and dynamic repository of all of the
available Linux packages in tarball (Slackware compatible .tar.gz),
RPM (Red Hat), and .deb formats.
Apparently Adam also has some interesting processes running at his
site --- based on some custom programming he's done. It monitors
certain FTP sites (and some other sites?) and automatically
fetches, builds and tests new kernels (and some other packages?). I
don't know the details --- but it sounds very cool.
One of the things I really liked about Yggdrasil's distribution was
that it had an integrated source tree. You could easily find the
sources for anything in the distribution (I think it included a
'whence' command which was similar to the 'which' command except in
that it pointed you to the source code for a command, rather than
just to the binary).
I mention that in the past tense since I haven't used "Plug and
Play" Linux in a number of years --- it hasn't been updated
recently. In response to your note I raced over to the Yggdrasil
web site (http://www.yggdrasil.com/) in the hopes that they
actually have a new release.
(I keep asking Adam and he just quietly assures me not to worry
about it!).
So, I'd like to know what you've read (and if there was a date on
it).
As for the relative merits of Yggdrasil's "Plug and Play" vs. Red
Hat, S.u.S.E., Debian, Caldera, and the most recent Slackware ---
it's not a fair comparison. All of these other major, general
purpose distributions have been updated several times since the
last "Plug and Play" release.
So, I cannot recommend the old Yggdrasil version except for
historical (almost archealogical) purposes. That's why I want them
to release a new version.
(Meanwhile the "Ground Zero" effort is very up-to-date and
completely independent of your distribution --- so you should
definitely bookmark their site and check on it regularly).
____________________________
(?) More on Distribution Preferences
Answerguy, What do you think of this distribution? OpenLinux Base
OpenLinux®: A complete Linux operating system with all the system
tools youll need. Plus valuable add-ons, like Netscape® Communicator
and backup utilities.
US and Canadian orders can take advantage of a $20.00 rebate from
Caldera, bringing the price of OpenLinux Base to $31.95
(!) I haven't used any of the Caldera distributions recently. This
is a much more recent version the those that I've used. So, I don't
have an informed opinion on them.
Since you just asked about Yggdrasil yesterday I'm wondering if
this is a pattern. I hope you aren't going to send me of these
every day.
My opinion about Caldera Standard is that it is the best choice for
a site that has existing Netware servers or clients. It was also
the first distribution that was supported by WordPerfect for Linux.
There are a number of other commercial software companies that work
with Caldera for releasing Linux versions of their product.
If the Caldera Base includes a copy of StarOffice (as your press
release says it does) than that is a very good reason to try it.
(The installation of StarOffice that I have from an early 4.0 CD is
very unstable --- it dies quickly and horribly under my S.u.S.E.
5.1 system. I've heard that that there are new libraries and
releases that fix that --- but I haven't been particularly
motivated to go get them since I still mostly live in text
consoles).
StarOffice is a very promising product --- and the competition
between it Corel Office, and Applixware should be interesting. The
most important feature of either is to provide me with stable,
reliable access to MS Office .DOC and .XLS files. The first one to
successfully do that with MS Office '97 wins my vote. (Since that
is one of the few reasons for me to get out of a text console and
into X --- the others being Netscape Navigator (when I need
something that just doesn't look right in Lynx), 'xfig' (to draw
diagrams for the book that I'm working on), and 'xdvi', and 'gv'
(to preview the LaTeX and dvips output for same).
At the same time I recognize the potential of these office suites
(and some others). As these get better we see Linux as a more
serious contender on the desktops of home and corporate users.
According to some surveys we're already winning against NT in a
number of server categories (including web, mail, DNS, and
SMB/Samba). We've gained a lot of ground in the technical and
scientific workstation market (although the push to get EDA and
CAD/CAM suites ported is just barely started). But all the "mom's"
and "pop's" out there that have their college kids buying systems
for them need something a bit less intimidating than 'emacs' and
'vi' --- and TeX and friends.
KDE and GNOME will provide the main interface and many of the toys
and widgets. StarOffice, Applixware, Corel Office, SIAG, LyX,
Wingz, Xess, and others are all vying to provide the main user
applications.
(I personally think we'll also need multi-media GUI "Welcome to
Linux/XFree86/KDE" and "Welcome to Linux/XFree86/GNOME" interactive
tutorials --- with sound, music, via, and a dancing, talking Tux. I
want a system I can install on a box and send to my Mom!).
Getting back to your implicit question:
Which Linux distribution should you try?
... the answer is:
I have no idea!
Unlike the marketeering weenies that you encounter in every
magazine, and newspaper, on every TV and radio show and on
billboard and busses every time you drive anywhere ... unlike them,
I don't want to push a bunch of features on you and I have nothing
to sell you (except my time --- which is pretty expensive).
Helping someone select a Linux distribution (or anything else) is a
matter of requirements analysis. What do you need? What do you
want? How much are you willing to spend? (Time and money). It is
quite possible that I would recommend FreeBSD, NetBSD, OpenBSD,
BSDI/OS, or even Win '95, NT, or MS-DOS --- if I understood your
requirements sufficiently.
Before you send me a list or essay on your requirements consider
that the Answer Guy is time I volunteer to show my appreciation for
all the work that people like Richard Stallman, Linus Torvalds,
Alan Cox, Arnold Robbins, and so many others have put into the GNU
project, Linux and other freeware. I try to answer questions that I
think are of broad interest to many Linux users and potential Linux
users. (And possibly of interest to *BSD'ers and eventually GNU
HURD'ers).
The easy answer to selecting a distribution is: pick one! Since
many of them are freely distributable you might want to start with
one of those. Debian and Red Hat are definitely freely accessible.
I think Slackware is still available online --- and I suspect that
it's perfectly O.K. to borrow a friend's copy of the CD. Walnut
Creek might have exclusive rights on CD distribution of Slackware
--- I don't know. I think S.u.S.E. is free for "personal" use
(although it is a bit unclear my S.u.S.E. 5.2 manual says:
Copyright This work is copyrighted [sic] by S.u.S.E. GmbH and is
placed under conditions of the GNU General Public License. You may
copy it in whole or in part as long as the copies retain this
copyright statement.
... (overleaf of the title page). It's not clear whether "this
work" is intended to refer to the book or to the distribution that
included it. The box and CD case (4CD's) don't list any other
copyright or licensing notices that I can find. The only index
entry under the term "license" points that the Appendix of their
manual that contains the full text of the FSF GPL. That would
suggest that you can borrow my set of S.u.S.E. CD's and install it,
and would even suggest that someone could start creating derivative
works (other CD sets) to sell in competition with S.u.S.E.
However, I've always been under the impression that S.u.S.E. is a
commercial distribution. I purchased both of my copies for it --
5.1 and 5.2 --- and I've purchased many copies of various Red Hat
versions (the boxed set and the lower-priced archives sets). So,
you might want to ask a S.u.S.E. rep before you go into production
against them. However, I doubt that they'd even want you to waste
their time asking if it's O.K. to install from a friend's set on an
evaluation basis.
You're clearly willing to buy some distribution once you find one
you like. Personally I usually select Red Hat for my customers
(after I've considered their needs) simply because Red Hat has a
pretty good balance of the various factors they care about.
Debian has more packages (slightly) -- but the last copy of dpkg
that I used was very convoluted (I'm hoping to get a 2.0 CD as soon
as it goes out of beta). Slackware was nice when I needed it ---
but most of my customers aren't interested in fussing with tarballs
--- they want something with a decent package manager (one that can
be operated easily from command lines as well as throught a GUI).
Under RH it's pretty simple to write a script to poll an internal
FTP site for package updates and automatically apply any of them
that appear. (I think there's a package called 'rpmwatch' floating
around some 'contrib' directories somewhere that does precisely
that). I haven't looked at RH 5.1 yet.
S.u.S.E. and Caldera both use the RPM format.
S.u.S.E. includes more packages that the last couple RH CD's I used
(4.2 and 5.0). It seems to have a pretty good installation
interface though I have mixed feelings about their interpretation
of the SysV init scripts. They have a large shell script named
/etc/rc.config (mine is about 770 lines long --- of which about 500
are comments). This file contains a long list of shell variables
and values. You can edit this file by hand or you can use YaST (Yet
another Setup Tool) which is their curses based system's
administration interface. The idea is that the other scripts all
"source" this one file and use the variables that apply to their
operation.
On the one hand this is very nice. Concievably I could create a
particular installation profile (which they support via their
installation interface), install the system, configure it via YaST
and put it into production.
Let's assume I use the 'chattr +i +d' (immutable and no-dump) flags
on all the files that came with the distribution and unset them as
a pair whenever I change any of them; this would allow me to use
the 'dump' program and never backup files that were from the
initial installation off of the CD). This is for a "data+config"
backup strategy.
If I've stored the rescue floppy they created, and the rc.config
file --- I should be able to restore the whole system to its
configuration with just my installation CD's, my rescue diskette,
and the rc.config file. (Naturally, I'll have to restore all my
data as well).
Another nice thing is that I might be able to create a little
script to generate new rc.config files from a master form and a
couple of other data files. If I have lots of new machine trickling
in I might have a few files that contain lists of IP addresses,
hostnames, NIS domain names, shared printers, and other local (LAN)
data. I might conceivably be able to generate a new custom
rc.config file for each new box and automate even more of the
deployment.
Under other distributions I have to mess with over a dozen separate
files. Unfortunately it's not that easy even under S.u.S.E. If you
use NFS you really want to use NIS or synchronize the 'passwd' and
'group' files across your systems (since maintaining ugidd maps is
not scaleable and NFS relies on the uid/gid values to determine
access and permissions.
None of the distributions I've seen prompt me for a passwd/group
file set prior to installation. So, if I use Red Hat on one system
and S.u.S.E. on another (I do) --- there will be some base files
that differ between them (most of the uid's created by most of the
distributions do match -- there were only a couple that I had to
run through a "masschown" script). (Distribution Dudes!: This is my
enhancement plea for the month! Please let me hand you a
passwd/group file set --- from floppy or over ftp/nfs/http --- and
use that to map the ownership as you install).
These days, for large sites, I recommend creating one "template"
installation one a typical box, cutting that whole installation to
tape or CDR after configuration but before any use (data). Now you
can do all new system installations as "restores" from your
backups. You can also take that opportunity to make sure that your
recovery plans, rescue diskettes and backup media are all in
working order. One reason I recommend that is that it takes me
about four hours to fix various permissions and configurations
(hosts.allow, hosts.deny, etc) after I've completed a new
installation.
One final note about choosing a distribution: don't just ask me.
I'm only one person. I've only used about a half dozen Linux
distributions (some of which no longer exist!). Don't just go to
the newsgroups and mailings lists and ask "Which is best?"
Ask questions that relate to your situation: Will you be
integrating this into a Novell network? Do you have friends or
family that will be working on your Linux box? Do any of them have
experience with a Linux distribution? Do any of them use some other
form of Unix (free or otherwise)? Do you have any particular
applications preferences? Is system security a concern? What are
the risk profiles that are acceptable to you? What is your native
language (German speakers will probably be much happier with the
German S.u.S.E. or the DLD (?) distributions, Japanese users seem
to prefer FreeBSD, the French have their own distribution, etc.)?
_________________________________________________
(?)115K Baud from a Modem: In your dreams!
From WEMehl on Fri, 03 Jul 1998
I purchased an IBM Aptiva last fall. It came with a LTwin modem
installed. It tells me that its max speed is 115K, but I never seem to
be able to run at more than 34K. Is it the modem (if so can I upgrade)
or is it something to do with AOL? Thanks.
(?) I think that this is a shameful bit of marketeering on the part
of whatever docs tell you this. They probably mean "115K if you get
better than average compression under ideal phone line conditions."
Currently the highest speeds attainable by modems over traditional
telephone lines is about 56Kbps --- and that is asymetric. In other
words you can download stuff at close to 56K under ideal line
conditions --- but your upload speed will not approach that (a
non-issue for most Internet "web surfers" --- but it would have
been a major issue for the old BBS users who used to run their Fido
boards and use QWK messaging.
I have no idea what AOL is currently doing. It is likely that they
haven't upgraded all of their modems (Points of Presence) to 56K at
this point --- and it's even more unlikely that they would have
upgraded their entire infrastructure to ensure that their hosts and
LAN's would have the capacity and bandwidth to feed those thousands
of high speed modems at full speed.
As for upgrading --- you can almost certainly upgrade your modem.
I've been working with PC clones for over a decade and I've never
seen one that had a *modem* hardwired into the motherboard. I've
seen some with inferior serial ports --- serial ports with buggy
and slow 16450 UART chips that couldn't be replaced or disabled.
However, this is probably a typical internal modem --- just rip it
out and throw it away. I personally recommend external modems.
For real speed upgrades you can get ISDN and FRAD (frame relay
access devices) for PC's that are supported by Linux and can take
you past modem speeds all the way up do T1. You can also pop in an
ethernet card (10Mbps) and get an ADSL or a cablemodem (router).
Naturally you can't use this over your existing telco lines --- and
you'd probably really hate to see how much a leased line (frame
relay) or ISDN (metered service in most areas --- a penny a minute
adds up pretty quick!) would cost. As for ADSL and cablemodem
services --- the coverage and availability are pretty spotty and
the pricing isn't what an AOL user is likely to be interested in
spending.
What really makes me curious about your message are two things:
Are you running Linux? Is that a "Winmodem"? (The model designation
certainly sounds like one).
If you're running Linux to access AOL --- what are you using to do
it? The AOL reps I've talked to have shown no interest in making
Linux, Unix, Java, or other portable versions of their interfaces
avaialable --- and hostility at the notion of documenting their
protocols and API's to the point where anyone else could do a free
implementation.
[ Actually, their Instant Messenger is available in Java, and a
recent note I sent their web staff asking after a Linux version of
the main client got a friendly "we've forwarded that suggestion"
note back, from two different people. So, times change? Meanwhile
WINE is rumored to have some success with AOL. But if you're using
something Linux native, I'd really like to know what it is. --
Heather ]
If you're not running Linux, and you're not asking about anything
that's even vaguely Linux or Unix related... why are you posting a
message to the Linux Gazette "Answer Guy"? (No, I didn't pick the
title --- my editors did that).
As a final comment, I usually don't care much about questions like
this one. People read a bit of marketing fluff on the box or in the
ads for a product --- they draw an unrealistic conclusion based on
an interpretation that's best described with the phrase "wishful
thinking" then they perform highly unscientific metrics and
benchmarks on which the fail to perform the most elementary
critical analysis (of their experimental design, their results or
their conclusions) --- and then, unsatisfied with their results
they write to some unrelated support guy hoping for a magical
incantation that will make the product work as they thought it
would from what they thought the marketers meant in the advertising
that they read.
If you're getting unsatisfactory results from this product --- talk
to your vendor. You paid them for it. If you're just trying to see
if your "missing out" (that some other people might actually be
getting consistent 115K throughput on these) --- don't worry, it's
not happening.
_________________________________________________
(?)Linux as an NDS (Netware Directory Services) Printer Client
From Phill Kenoyer on Fri, 03 Jul 1998
I use linux at work, but I can not print to the Netware 4.0 servers.
They are using NDS and I have found out that Linux does not have any
NDS clients. Is there a way I can print to the netware printers?
I know that MIS is not going to help me because the MIS manager hates
unix or something. Linux is like very bad in MIS land.
Phill Kenoyer
MicroProse, Inc.
(!) Linux maybe "very bad" in your MIS jungle -- but out here we
are find the IS guys sneaking it in behind them M's backs at just
about every turn.
In any event the simple solution for you is to go get a copy of
Caldera. Caldera's "OpenLinux" (I forget which release --- Standard
and not Base, if I recall correctly, I've copied their sales
department) includes a set of Netware bindery and NDS clients that
allow you to connect your Linux client for file and print services.
This particular component is not free --- it is covered under some
licenses (I think the licenses are imposed on Caldera by their
vendors). So plan on spending a couple hundred bucks.
However, it is possible. I've used this --- and I recommend Caldera
for any Linux installation that's got to interoperate with any
Netware systems!
_________________________________________________
(?)What is an RPM?
From Andre Solheim on Fri, 03 Jul 1998
I am in the process og getting hold of Linux. Could you please tell me
what RPM is, and what it does?
I hope you can mail the answer to me directly
André L Solheim
(!) RPM is the Red Hat Package Management system. This is an freely
published set of specifications and tools to allow Linux and Unix
vendors to package their software in a way that is amenable to
automated installation upgrade, removable and administration.
Although it has Red Hat's name in it --- it has been adopted by
most of the major Linux distribution maintainers. The only to major
holdouts are Debian and Slackware. (There are a number of small,
special purpose Linux distributions that don't use any package
management --- many fit on a single diskette or designed to be
installed into a DOS subdirectory and run via LOADLIN).
Debian has developed their own package management format (usually
seen with the .deb extension) and Slackware continues to use the
tried and true "tarball" format with pkgadd (?) and some other
tools to help a little bit.
However, you can easily install the RPM subsystem into any Linux
that you want. You can also use RPM on some packages and continue
to manually build others from tarballs (.tar.gz files). You can
also convert between package formats using tools like 'alien' and
'rpm2cpio' (or you can just use Midnight Commander to open and work
with .rpm files, just as you would any directory, .zip or .tar file
etc --- what how I usually delve into RPM files if I'm not going to
install them).
The RPM system as been ported to several flavors of Unix and is no
longer a purely "Linux" thing. Some sites are using it to help
maintain their Solaris, and HP-UX systems.
In the simplest form you can use commands like:
rpm -i foo-1.2.rpm
... to install a package (foo version 1.2 in this example).
There are also GUI and menu drive frontends to using RPM .... but I
usually use the command line.
You can also let rpm do the FTP for you with a command like:
rpm -U ftp://myserver.myorg.net/upgrades/bar-2.2.rpm
... and this will upgrade the bar version 2.2 package off of an
internal ftp server (where I presumably have placed it after
testing it on one of my sacrificial admin systems).
Another trick I've used is to get the description of an rpm file
without bothering to get the whole file (to decide which files I
wanted to fetch). I do this with a command like:
rpm -qpi ftp://ftp.redhat.com/..../contrib/.....rpm
(I don't have a specific path and filename handy --- but this
should show the idea). You can also get a list of the contents of a
package with:
rpm -qpl $SOME_RPM_FILE
... or a list of files from an installed package with
rpm -ql $SOME_INSTALLED_PACKAGE
You can also do things like list all of the packages that you have
installed on the whole system (at least those that you've installed
using RPM) with a command like:
rpm -qa
... and you can verify a package with a command like:
rpm -V foobar
... which will give you a summary of every change to the checksums,
ownership, permission, timestamp, etc --- of every file that was
part of the "foobar" package.
Combining these in a relatively obvious way you can check every
package on your system with the following:
rpm -qa | xargs rpm -V
You can also find out which package a given file "belongs to" with
a command like:
rpm -qf /some/file/that/was/installed/by/something
You can learn more about the RPM system by looking at their very
own web site: http://www.rpm.org.
So, good luck on your new adventure. Have fun with Linux.
_________________________________________________
(?)AnswerGUY? Who is Heather?
From Thomas L. Gossard on Fri, 03 Jul 1998
Answerguy,
Forgive me if I'm about to insult you. All the replies I've read seem
to be answered by Heather. Is Heather not a girls name? If so, why is
this column called the answerGUY, not person or girl?
Tom Gossard
(!) Heather is my wife. She usually doesn't answer any of the
questions (though sometimes she helps --- she's been using Unix
longer than I have --- and she's a professional sysadmin).
However, Heather does convert my mail into HTML and she does all
the links and graphics (I just answer the e-mail, do the web
research and find URL's to point my correspondents at for more
information).
As for why this is called the "Answer Guy" --- I just volunteered
to help out with the occasional stray technical question that I
knew would find it's way to SSC when they took over the editorial
duties of the Linux Gazette from John Fisk (its creator). Marjorie
Richardson and her crew decided to post my answers and picked the
name. I'd wanted to start doing the HTML (at least to wrap the
URL's in anchor tags) since I noticed that these were going up ---
but I never had the time.
Finally Heather stepped in, pulled down a couple of mail to HTML
filters (like MHOnArc, hypermail, and babymail) and played with
them --- tweaking one of them until it suited her tastes in HTML
and my style of e-mail (text). She still hand massages the messages
for a bit, too.
The other advantage to this way of doing it is that I don't see the
whole column going up as one big page --- it's broken into lots of
separate pages, like HTML is meant to be. This is hopefully going
to help quite a bit in my future since I was starting to hit my own
column every time I did a Yahoo search --- usually those were false
hits because I'm usually trying to find "something for Linux" (and
I'd find sets of keywords in one LG article -- that were in no way
related to one another in the article).
So, hopefully the new format will be more "search engine friendly"
(for everyone).
____________________________
(?)Heather replied too.
From Tom Grossard on Mon, 6 Jul 1998 in the comp.unix.questions
newsgroup
Heather,
Thank you for the reply. I hope I wasn't rude in my question, just
nosey.
Thank you
Tom
Thomas L. Gossard
:D No problem, really. Glad we could clarify.
Oh yeah, I'd like to add for our lynx-using readers, or those
reading the text of TWDT, I plan to improve the textmode
result. But not this time, I just started a new job (still
sysadmin'ing) and didn't have time.
For web visitors, the interesting parts:
I ate the fortune cookie first, then read what Jim Dennis copied me
on:
However, Heather does convert my mail into HTML and she does all
the links and graphics (I just answer the e-mail, do the web
research and find URL's to point my correspondents at for more
information).
The confusion probably arises from the one message (Love the New
Look!!!, http://www.linuxgazette.com/issue30/tag_newlook.html)
where I answered someone who loves the new format... since I am
responsible for formatting... and linked my name there so
respondents on that question could reply to me instead.
Jim answers all the Linux questions; in the original mail to the
querent, he has his Answer Guy .sig, but the dressed up column
doesn't need that also, so it is trimmed for clarity. Most
querent's .sigs are trimmed to enhance their privacy. So seeing
most messages .sig-less might be affecting you.
"just answer and research" is plenty, but he loves to do it, and
every new discovery could add to his book, so he plays it down. I
don't think the column would be nearly as good if our roles were
reversed :)
Finally Heather stepped in, pulled down a couple of mail to HTML
filters (like MHOnArc, hypermail, and babymail) and played with
them --- tweaking one of them until it suited her tastes in HTML
and my style of e-mail (text). She still hand massages the messages
for a bit, too.
I merged some perl fragments, and added some of my own, to a script
I use to preprocess the month's load of Answers. However, I also
read his messages, and try to maintain the original "look and feel"
of Jim's reply.
Sometimes this means a list type or a blockquote where my script
doesn't know any better. Each month I improve it but I will
probably never trust it to do the whole job ... cleaning .sigs for
privacy, clearing up levels of indirection when Jim draws in a
message from mailing lists, and posting a thread as one file are
specific examples.
There is also a little bit extra that I add. Most of the URL's I
add after-the-fact are things that aren't really special overall
(such as hotlinking vendor names) so someone reading the plaintext
TWDT version isn't really missing anything; they are
simply seeing the reply pretty much as Jim sent it. (It's not
exactly as Jim sent it -- it's the posted column run through lynx.)
If I actually say anything that Jim didn't, it is emphasized and in
brackets [] , as I have been taught editors' comments should be. I
haven't seen Jim use brackets, except in example code.
_________________________________________________
(?)'sendmail' requires DNS ... won't use /etc/hosts
From Carlos Javier Castro Pe\qa on Fri, 03 Jul 1998 Hi,
I have been looking for an answer for my question for a long time, but
I could find no useful solution. I am building a Linux LAN and I
cannot send mail with sendmail ! I do not have a DNS server. I have
found a lot of people with the same problem and no answer.
I am using Red Hat 5 with the version of sendmail distributed by them.
My kernel 2.0.33 and networking enabled. The mails don't get delivered
because a 'hostname lookup failure'. The manual of Red Hat 5 says how
to configure sendmail, but that does not work if you don't have a DNS
server. I was also suggested to change the /etc/nsswitch.conf file,
but it didn't work. Can you help me, please?
Regards, javier
(!) I understand your problem and feel your pain.
The problem is that 'sendmail' is conforming to the SMTP standards
--- which require that it look up the MX record for any host prior
to sending mail to it.
This sort of record (MX) can only be served over DNS (there isn't
any way that I know of to mark an /etc/hosts entry as an "MX"
record) (There might be some weird NIS or NIS+ way to do it -- but
I don't know much about those protocols).
I've worked around that here at my house (I don't run DNS
internally --- I just point to a caching DNS server on my gateway
router (a Linux box doing masquerading for external references).
Internally I just use a mailertable that relays all mail from my
systems to the mail router (which then spools them out over uucp).
That mailertable refers to the gateway system using its IP address
(which forces sendmail to skip the DNS MX query). On another system
I just use uucp over TCP (for outgoing mail) and POP (for
incoming).
It would be much easier for me to set up DNS and leave it at that
-- but I can be incredibly stubborn sometimes and my main mail feed
is over uucp in any event --- so it's just as easy to use that
internally.
The reason modifying your /etc/nsswitch.conf (or /etc/host.conf ---
as it's usually done under the Linux resolvers) doesn't work for
sendmail --- but does work for normal programs using other
protocols is that other protocols are normally only interested in
address and reverse address records (using the gethostbyname() and
gethostbyadd() library calls). 'sendmail' is looking for MX records
since it is common to require special routing for mail.
As I said --- the easiest solution is to create a local DNS domain
or subdomain for yourself. For example I'd create the
lan.starshine.org domain and name my local systems things like
antares.lan.starshine.org etc. This would allow me to set up an
"authoritive" set of records on my internal LAN and still defer to
my ISP for the virtually hosted www.starshine.org
ftp.starshine.org, and mail.starshine.org (I'd list myself as an
"unregistered secondary" to my ISP's nameservers for the
starshine.org zone).
(I could also just copy his records into my own db and essentially
lie to my system about being authoritative for the whole zone. This
would break any time my ISP changed any of my publicly accessible
address records --- but that would probably only be a minor issue.
It would only affect my systems while they were resolving my
virtual hosts. My ISP would never refer to my name servers as
authorities or secondaries --- and I could use IPFW (now IPChains)
to prevent any such requests from getting through to my internal
nameserver in any event).
The point is that SMTP (the mail transport protocol to which
sendmail defaults) relies on DNS --- and it is not trivial to get
SMTP working with DNS disabled. You can use a different transport
protocol (such as I do with uucp) or you can configure your systems
to use direct IP addresses rather than names in their configuration
files. This last option isn't so bad if your plan is to set up
masquerading and null clients (a sort of sendmail client that
forward all of its mail to a hub, even the local addressed items --
and lets the hub deal with it).
Naturally I'm glossing over the details here. I have the O'Reilly
'sendmail' and 'DNS & BIND' books here at my side --- and I have
the notes from a week long seminar I took on these topics (Robert
Harker --- http://www.harker.com) --- which are also about 1000
pages. It is basically impossible to comprehensively explain DNS
and sendmail in this column, or on the newsgroups and mailing
lists.
I hope though that this helps. If you like I'll post (sanitized)
copies of my sendmail.mc files and my uucp configuration files to
show a couple of examples of how I do it --- with the warning that
my configuration is uniquely atypical!
____________________________
(?) More on: 'sendmail' requires DNS ... won't use /etc/hosts
From Carlos Javier Castro Pe\qa on Thu, 09 Jul 1998 in the
comp.unix.questions newsgroup
Dennis,
Thank you for your answer. Maybe the most important thing is that you
let me know that I cannot use sendmail for my purpouses wihthout a DNS
server. If I knew that from the beginning, I would have spared a lot
of time trying different configurations. If you don't mind, I'll post
your answer in some Linux mailing lists, because a lot of people has
the same question, and there is no usefull answer.
(!) Like the rest of the Linux Gazette all of my articles are
covered by the LDP GPL (the variation of the GNU General Public
License that is applied to the Linux Documentation Project). Please
feel free to post, copy, modify, publish, sell, spindle, mutilate,
cite it to your heart's content.
I hope it helps. I don't get into the newsgroups as much as I'd
like (and I spend a bit more of my time in the comp.text.tex and
comp.unix.security and comp.unix.admin groups when I do make it out
there).
Over the years I've always drifted from one newsgroup and mailing
list to another (except for the security stuff --- I always stay up
on that, though mostly as a "lurker"). For awhile I was the most
frequent poster on the comp.lang.awk (formerly the alt.lang.awk)
newsgroup. About 5 years ago I was in the top 5 or 10 posted on
Compuserve's "UNIXFORUM"
I start by reading and lurking. When I've read for a few weeks (and
usually done some experimentation and other research) I start to
recognize the common questions, and start to piece things together.
After about a month I start answering questions. For a few months
I'll answer questions in the NG or ML. Eventually, I move on.
That turns out to have been good experience for answering questions
in LG --- since the run the gamut of Unix, Linux, and PC related
questions.
(?) You can use a different transport protocol (such as I do with
uucp) or you can configure your systems to use direct IP addresses
rather than names in their configuration files. This last option isn't
so bad if your plan is to set up masquerading and null clients (a sort
of sendmail client that forward all of its mail to a hub, even the
local addressed items -- and lets the hub deal with it).
Is it possible to make that sendmail uses IP addresses. I need to
forward the mail of the Linux host, to the Linux gateway. The users of
the Linux host can download the mail from the gateway with POP and
IMAP.
(!) I think the one time I did this was with a slight variant of
the "clientproto.mc" file that ships with 'sendmail'
It looks like this:
divert(-1)
divert(0)dnl
VERSIONID(`@(#)clientproto.mc 8.7 (Berkeley) 3/23/96')
OSTYPE(linux)
FEATURE(nullclient, `[192.168.1.1]')
... replacing the IP address with the one for your smart hub or
gateway. You use the m4 package (also include with all recent
versions of sendmail) to generate a cf file from this using a
command like:
m4 ../m4/cf.m4 betel.mc > /etc/sendmail.cf
(after making backups of your existing cf file, of course).
The important thing is that is will define a line like:
DM[192.168.64.1.1]
... which should prevent 'sendmail' from using DNS to do any
resolution.
Try that and see if it works. I really can't set up a test
environment for that at the moment. If that doesn't work, try
changing the address to an arbitrary name, adding the "mailertable"
FEATURE and creating a small mailertable that points the name at
the IP address using the syntax:
myhub: smtp:[192.168.1.1]
Please let me know how it goes.
_________________________________________________
The original message in this thrread appeared in Issue 30, Linux
Memory Usage vs. Leakage
____________________________
(?) Memory Leaks and the OS that Allows Them
From Thomas L. Gossard on Fri, 03 Jul 1998
Answerguy,
Regarding the recent question you received on memory leakage under
2.0.29. I don't believe it is a memory leakage under the normal sense
where a program quits and won't give the memory back to the OS.
(!) Once a program has quit (exited) it is the OS' responsibility
to reclaim all RAM and normalize all other resources (process table
entries, filed descriptors and handles, etc) that were allocated to
that process.
If it fails to do so, that is a bug in the OS (the kernel and/or
its drivers or core user space processes, like 'init'). Under Linux
(and Unix in general) it is very rare to see this sort of bug.
(I've never heard of any kernel memory leaks in Linux).
Under NT there is apparently a problem because the system is very
complex and so much of the programming doesn't respect the intended
modularity between "kernel" and "user space" --- so DLLs and
drivers, (particularly video drivers) will end up locked into
memory with no references. Since I'm not an NT programmer (and not
a systems programmer of any sort I'll have to accept the considered
opinions of others who've said that this is why NT has a notorious
poor stability record compared to any form of Unix. The fact that
they've added some process memory protection and imposed some
modularity and process isolation means that NT's stability is
orders of magnitude better than MS-DOS, Windows 3.x, and Windows
'95 ever were. However, it's reported to be very poor compared to
any of the multi-user OS' like Unix or VMS.
(?) I also use .29 and saw the same problem. I sent out several
e-mails and found out that what is really happening is the OS has the
memory but is not reporting it as free but has saved it for cache
purposes. Notice the guy with the question said "ls" the first time
took memory but not the second time. A memory leak will take the
memory each time. The OS is keeping the memory for itself. The real
problem is in the way the OS or top or whatever is reporting the
memory usage and the way we expect to see it.
(!) The way that memory is used by the Linux cache is fairly
complex. Consequently the output from 'top' and 'free' and 'vmstat'
are not easy to interpret (and I don't consider myself to be an
expert in them by any means).
The intended design is supposed to use all "available" free memory
for disk caching (and I guess the 2.2 kernels will implement disk
and directory entry caching --- which should yield much better
performance for several reasons). It is certainly possible that
there were bugs in the caching and memory management code in some
of the 2.0.x kernels. You could certainly go to the Linux kernel
mailing list archives and read through the various change summaries
to see. Or you could ugrade to a newer kernel and look for
symptoms.
(?) The only true way to check on the problem seems to be to execute
some memory hog routines, like graphics and watch the swap useage. In
particular my mail program seemed to suck up 8 or 9 megs at a time yet
even going in and out of that and xv my swap was barely touched. With
a sufficient memory leak after a period of time the swap should see a
great deal of activity due to the lack of memory.
Tom G
(!) Most memory leaks are in user space --- in long running daemons
like 'named', a web server, 'sendmail', X, etc. Your test doesn't
isolate the cuase of the memory leak. I think my message covered
some suggestions to do that (like run with init=/bin/sh and run
some tests from there)
If exiting doesn't return your memory to availability for
cache/free space --- you have a problem in your kernel. However, it
can be deceiving. For example --- I remember a situation where BIND
('named') was leaking --- and it looked like 'sendmail' was the
culprit. In actuality 'sendmail' was making DNS queries on the
named, causing it to lose it's cookies. (At the same time that
'sendmail' was segfaulting (dying a horrible death) because the old
resolver libraries (against which it was linked) were return lots
of MX records for sites like Compuserve and AOL (which back then
had just started deploying dozens of mail servers each --- so that
one DNS request would return more records than the resolver could
handle).
At first I thought someone had discovered a new remote sendmail
exploit and was hacking into my site (this was actually on an old
SunOS box). Then I realized that it was related to DNS --- and
finally I upgraded to a newer DNS and set of resolver libraries.
The newer version of named still had a memory leak back then ---
but my other sysadmin friends said "Oh yeah! It's been doing that
--- just set up a 'cron' job to kill it once a day or so" (I'd been
sure that it was my fault and that I'd built and installed it
incorrectly).
As for the "true way" to look for memory leaks --- I think most
programmers would disagree with your analysis on this one. They
might suggest Electric Fence (a debugging form of the malloc() and
new() calls that's designed to catch the sorts of allocation and
reference problems that 'lint' won't --- and that might not be
immediately fatal). Another option might be for someone to link
this with Insure++ (http://www.linuxjournal.com/issue51/2951.html)
and do their testing with that.
Certainly, we, as sysadmins are usually constrained to more
hueristic and less "invasive" approaches --- but we definitely want
to isolate the problem to a specific component (program, module,
kernel configuration whatever) or combination. That's what "tech
support" is all about.
_________________________________________________
(?)X Window with two monitors...
From Mark Thomas Mercado on Tue, 30 Jun 1998 in the
comp.unix.questions newsgroup
I've looked around on the web, and couldn't find any documentation on
setting up X with two monitors (myhost:0 and myhost:1)... I would love
to RTFM if anyone could point me in the right direction...
Thanks,
Mark.
(!) This would usually be called "multi-headed" mode and the
different screens would be addressed as "myhost:0.0" and
"myhost:0.1" -- "myhost:1.0" and "myhost:1.1" (etc) would refer to
a different server or instance running on the same machine.
I don't know what this means on other forms of Unix --- but I think
you'd usually see it on a system that was hosting multiple X
Terminals via XDMCP. On my Linux boxes I usually see it as an extra
instance of the X server running on a different virtual console (so
my wife and I can each have a running copy on any of the systems
around the house without having to disturb the other's).
In our case we run startx -- :1 to start the 2nd instance of our X
server. We can then switch between them with the [Ctrl]+[Alt]+[Fx]
sequence (or the [Alt]+[Fx] sequence to get to either of them from
any of our text mode virtual consoles. (If you don't use a PC Unix
that supports VC's this probably won't make any sense -- don't
worry about it).
Getting back to multi-headed support:
This depends on your X server. Last I heard XFree86 servers (the
suite of X servers that's most commonly used with Linux FreeBSD,
NetBSD (PC) etc) don't currently support multi-headed operation.
I know that some of the commercial X servers for Linux (and
presumably FreeBSD, etc) support it. Unfortunately I've never used
a PC or Mac Unix that was configured this way. So, I don't know how
it works. I've used an old Sun system set up this was --- but I
didn't configure it or even look at it very closely --- it was just
used for some compatability at a place where I was working, so I
barely touched it.
I've used Macs that were multi-headed. That was a piece of cake to
configure. I also noticed that Win '98 has this feature available
--- so it might become much more common in the next year or so.
Anyway, check out the XFree86 FAQ at http://www.xfree86.org/ for
more pointers.
_________________________________________________
The beginning of this thread was published in Issue 30, DAO (Disk At
Once) CDR? Stump Me!
____________________________
(?) DAO software for linux?
From Mark Heath on Sat, 27 Jun 1998
On Thu, 25 Jun 1998, Jim Dennis wrote:
Well, you have me stumped.
I don't know anything about the difference between DAO and other forms
of CDR recording. Normally, I'd spend an
There are 3 different types of cd recording: Track at once, Disk at
once and session at once.
(!) I figured it was probably something like that.
(?) cdrecord, cdwrite and many others do Track at once.
Its where the software writes a track turns off the laser, turns it
back on then writes the next track, after all the tracks are done it
writes the leadin and lead out tracks.
(!) I've always been curious about multi-session CD's and how they
maintain the directory/indices on them. But never curious enough to
look for the rainbow of books that define the spec. --- more of a
"layperson's armchair" curiousity that would be satisfied with a
five minute description and a couple of diagrams.
(?) With disk at once, the laser is turned on, the leadin is written,
then the first track, second track etc, then te lead out and then the
laser is turned off.
The has the advantage of being able to master music disks which have
no pauses in between the tracks, which is manditory for TAO.
(!) I think you mean "which is an avoidable result when using TAO."
It's just a semantic nitpick --- but I had to read this statement
several times to guess what you (probably) meant.
(?) Session at once is basically multi session DAO.
(!) Huh? I am also a bit foggy on multi-session CD's --- but I'd
thought that the sessions on multi-session CD's were supposed to be
on track boundaries. Are you saying there's a multi-session per
track option?
(?) hour or two hunting around on Alta Vista, Yahoo!, Savvy Search,
DejaNews, etc and pulling out more of my hair to find out. However, I
have a book to write and a wife to feed, and it is just too close to
my deadline for me to wait until tomorrow.
So, what is DAO and why would you need it? What is the difference
between cdrecord and cdwrite (the one I use with my Ricoh CDR)? Have
you tried them both? What is MMC? Who is Jeff Arnold? Who are HyCD and
should we
cdrecord is the replacement for cdwrite, Jorg Schilly supports every
unix platform that can have a cdr plugged into.
MMC is the latest multi media specification for CDRs so that all
drives have the same command set for recording.
(!) I did guess that MMC stood for "multi-media CD" or "multi-media
CDR." I take it that MMC doesn't define a standard for DAO mode
recording? (Or were you simply saying that your HP SureStore CDR
doesn't support the MMC CDR spec?).
(?) Jeff Arnold is synonimous (sp?) with DAO software he wrote the
First and most widely used DAO software for DOS. Its a pity that he
won't support Unix because his tools are very unix like.
(!) Maybe he could be bribed. Does he distribute his package as
shareware? Would he be willing to license the code and let someone
else do the port?
(?) HyCD are who alta vista turned up when I did A search for +unix
+cdr +software. They support mixed mode disk duplication, which why I
thought it did DAO. Unfortunately it does not.
(!) I'm afraid to ask.... what is the difference between "mixed
mode" and DAO? Is it that HyCD can duplicate CD's that have mixed
data and audio (etc?), and/or that it can read tracks that were
laid down in TAO and DAO (and other?) modes but it must write them
in TAO?
(?) I was trying to eliminate a need for my Windows box but things
keep popping onto it.
I use it for 3 things:
1. Audio manipulation. I'm waiting for a good tool (Atech is being
developed) to do this under Linux ala Cooledit (not to be confused
with the Linux text editor)
2. DAO writing.
3. Epson Stylus colour printing. Ghostscript just doesn't match the
quality.
(!) Well, hopefully this will inspire someone out there to "raise
the bar" and help you purge Windows from your system at long last.
(?) I did use it for Playstation development but now I have the tools
for Linux.
Thank you very much for your help.
Mark.
(!) Well, I obviously wasn't much help --- but we'll see if our
readership will give us a scoop...
____________________________
(?) Mark Heath fills us in...
From The Answer Guy on Mon, 29 Jun 1998
On Sat, 27 Jun 1998, Jim Dennis wrote:
Its where the software writes a track turns off the laser, turns it
back on then writes the next track, after all the tracks are done it
writes the leadin and lead out tracks.
I've always been curious about multi-session CD's and how they
maintain the directory/indices on them. But never curious enough to
look for the rainbow of books that define the spec. --- more of a
"layperson's armchair" curiousity that would be satisfied with a five
minute description and a couple of diagrams.
(!) I've never successfully written a multisession CD either. I've
made a few open disks but never managed to import the previous
session properly so I didn't bother trying to continue writing to
them. Just in case I lost the first session.
(?) Session at once is basically multi session DAO.
Huh? I am also a bit foggy on multi-session CD's --- but I'd thought
that the sessions on multi-session CD's were supposed to be on track
boundaries. Are you saying there's a multi-session per track option?
(!) This is correct. For example you can write 3 tracks
multisession using DAO. Then come back later and write a few more
tracks using DAO.
(?) MMC is the latest multi media specification for CDRs so that all
drives have the same command set for recording.
I did guess that MMC stood for "multi-media CD" or "multi-media CDR."
I take it that MMC doesn't define a standard for DAO mode recording?
(Or were you simply saying that your HP SureStore CDR doesn't support
the MMC CDR spec?).
(!) The 4020i doesn't support MMC. Only new drives do (most of the
IDE CD-Rs do, and the CD-RW do)
(?) Jeff Arnold is synonimous (sp?) with DAO software he wrote the
First and most widely used DAO software for DOS. Its a pitty that he
wont support Unix because his tools are very unix like.
Maybe he could be bribed. Does he distribute his package as shareware?
Would he be willing to license the code
(!) He does. The downloadable version is available at:
http://www.goldenhawk.com/
(?) and let someone else do the port?
(!) I'd really like that but I dont know how Jeff feels about
Linux.
He seemed rather hostile when I asked about doing a linux port. All
his reply was: no.
(?) HyCD are who alta vista turned up when I did A search for +unix
+cdr +software. They support mixed mode disk duplication, which why I
thought it did DAO. Unfortunately it does not.
I'm afraid to ask.... what is the difference between "mixed mode" and
DAO? Is it that HyCD can duplicate CD's that have mixed data and audio
(etc?), and/or that it can read tracks that were laid down in TAO and
DAO (and other?) modes but it must write them in TAO?
(!) Mixed mode is simply multiple tracks with different data
formats. The most common is Computer games with 1 data track
followed by several Audio tracks, these can be written with TAO.
The main difference between DAO and TAO is that for DAO the laser
is never turned off during the recording. You can even do a single
track in DAO mode. The difference here is that DAO disks can be
taken to CD publishing company while TAO disks can not (due to gaps
in the track data, where the laser has been turned off)
(?) Well, hopefully this will inspire someone out there to "raise the
bar" and help you purge Windows from your system at long last.
(!) Well I did this some time ago, purge windows. Then a piece of
hardware came out which was built into the motherboard so I built a
new machine and put both Linux and 95 on it.
My primary box is Linux only.
(?) Well, I obviously wasn't much help --- but we'll see if our
readership will give us a scoop...
(!) Well Its always good to hear that someone understands and says
Lets see what we can do.
_________________________________________________________________
Copyright © 1998, James T. Dennis
Published in Linux Gazette Issue 31 August 1998
_________________________________________________________________
[ Answer Guy Index ] 21 20 19 18 17 16 15
14 13 12 11 10 9 8
7 6 5 4 3 2 cdr
_________________________________________________________________
[ Table Of Contents ] [ Front Page ] [ Previous Section ] [ Next
Section ]
_________________________________________________________________
_________________________________________________________________
Copyright © 1998, James T. Dennis
Published in Linux Gazette Issue 31 August 1998
_________________________________________________________________
[ Table Of Contents ] [ Front Page ] [ Previous Section ] [ Next
Section ]
"Linux Gazette...making Linux just a little more fun!"
[INLINE]
BETTING ON DARWIN, PART 2: WATCHING THE MUCK
MARC ANDREESSEN AND TOM PAQUIN ON NETSCAPE'S OPEN SOURCE STRATEGY, ONE MONTH
LATER
PART 1
[INLINE] By Doc Searls
May 16, 1998
[INLINE]
On May 13, I followed up on the April 8 interview, just before the
photo shoot for the June issue of Linux Journal, where the first
interview would run. While little more than a month isn't much time to
measure distance on an evolutionary path, I thought Internet Time
might accelerate things a bit, so I began by asking Tom how things now
stood.
_________________________________________________________________
Waiting for tyranosaurs
DOC: I'm interested in seeing how the conversation looks different
than it did a month ago when we still had muzzle blast. Back then we
were talking in evolutionary terms: "betting on Darwin" was how you
put it. Have you seen any new life forms start to emerge?
TOM: Some life forms have begun to emerge, but there haven't been too
many tyrannosaurs stomping out of the muck. There have been some
interesting life forms, though. I'm really happy with the XML parser
that was donated. I'm pretty happy with a couple of low-hanging fruit
for external ownership. I think that's moving along. On the whole it's
been very pleasing; but I don't think it's fair to say the initiation
phase is complete. We haven't really gotten the entire Communicator
out there yet. For example, the Messenger source — mail, news and
all that — is just flowing out now, starting yesterday.
MARC: There hasn't been a snapshot of the code that's ... done, or
anything like that. A fully stable release. So we're still early here.
TOM: We're way, way away from a fully stable release.
See, most public sources work by a process of piling on to something
that works but isn't complete. Somebody goes out and says "Here's
something that works, everybody. Let's all pile on." As opposed to
"Here's a pile of code that's early in its development, that we're
going to turn into something."
So some people are piling on, diving in, and what we're seeing at this
early stage are chunks of code that are not tightly interwoven with
the existing code. The XML parser is a perfect example. A guy writes
an XML parser on the side, and says "Here it is. It parses XML. It
produces a data structure. You can take the data structure and do
stuff with it." Okay, that's really valuable and straightforward. It
contributes, and it's a good thing.
What we haven't had is, say, ten guys from IBM popping up and saying
"Okay, we thoroughly understand this product now. We're ready to do
everything we can to make it do what we want it to do." It's too early
for that. And it's a little hard to say when and how that will happen.
What I've been beating on in my shop is: "Let's get this thing to a
point where people feel like it's a product that needs polishing, as
opposed to a pile of code that needs to be turned into a product."
When we're at that stage, we'll get more people contributing.
Meanwhile, we're not starving for contribution; but we're working on a
chicken/egg problem that has to be solved one way or another. Our goal
is to to toss a chicken in the ring and give it away. And that's
pretty much what we've been doing all along, though not all at once.
We've got parts of the source out, and we're finishing other parts.
The Communicator 5.0 team is working away.
The world of all possibilities
DOC: Let's take an example of something that might come from the
outside that we touched on in our last talk. At that point you didn't
have an ORB (Object Request Broker). Has anybody come up and created
one?
TOM: I don't think anybody has done an ORB yet.
MARC: We had the Visigenic ORB, but I think it's gone now. We've been
trying to keep the client pretty small.
TOM: The problem wouldn't be the ORB, it would be getting it to behave
in a useful manner.
DOC: In a world of all possibilities, and this may not be possible,
what would happen if somebody came along and created a DCOM
(Microsoft) ORB? Would you care?
MARC: Contribute it.
DOC: So you're agnostic about object models at this point.
MARC: On the application server side, it's both DCOM and CORBA.
TOM: I'm not agnostic if you produce an object model that binds me to
a platform. So, when any proposal is made to Mozilla that is not going
to migrate to a cross-platform universe, including platforms I don't
know about today, I won't take it on. For example, if somebody says,
"I want to contribute this thing to Mozilla; but I don't want to
contribute the source. I only want to give you a binary. It'll run on
all the platforms you're currently supporting." That's not really what
Mozilla is all about. I may have to make trade-offs I can't see today;
but that's not really what we're for. What we're for is platform
independence. Any suggestion, object model or otherwise, we're open
to. If you've got a platform issue, I want to solve it. But guess
what: we can pile a million people on solving it.
Now the Raptor thing that was contributed halfway through April, they
have a thing they call XP/COM, which is a small, lightweight component
model thing... I really don't know what kind of mapping that has; but
I think it tries to solve the same kind of problems: load a module,
unload a module, interrogate a module for supported interfaces, blah
blah blah.
MARC: But it's not OLE, it's just COM. That is, it's built on the COM
primitives. It uses the COM ideas, but it's not OLE.
TOM: He knows more about it than I do.
MARC: Barely.
DOC: This interests me because this is one of those areas where we've
got a large delta between the real and the ideal. A year ago we were
all talking about how the world was going to be objects, and that one
object model would take care of that, and it looked like a big
argument was brewing between two different object models. Now we're
you're saying it's still too early in the evolution toward this thing
even to talk very much about it.
MARC: I would argue that it's happening, but from the bottom up. Much
as to say that C++ and Java intrinsically programs to consist of
objects; but it's a programming tool more than a concern right now.
But a distributed object world is quite a ways off. It presumes the
existence of everything from management systems to application
servers, a whole new generation of APIs and many other things that
still don't, for the most part, exist. So it has to be built
incrementally.
DOC: And you expect the Open Source world to deliver that.
MARC: It could, but it's a little bit tricky. There are sort of three
worlds that are relevant here. One is the Open Source world. Another
is the professional commercial software development world. The third
is the theoretical world where you find most of the people who are
passionate about creating a world full of distributed objects. Most of
these guys are coming from a relatively intellectual orientation. And
so there needs to be an intersection between those three worlds. The
intellectuals have traditionally tried to appeal to the commercial
software developers, with limited success. They could attempt to
appeal to the Open Source developers, perhaps with more success. We'll
see.
Meanwhile the main problem is that your average commercial software
developer is far too busy trying to put products out the door to try
to create a world full of distributed objects.
TOM: On the other hand, there are some objects that they find
themselves constantly revisiting. So if they could agree on a
nomenclature and interface and get it well-known that, okay, a
color-picker is a color-picker, and we can spell it "c-o-l-o-r" or
"c-o-l-o-u-r" so let's make a decision move on with it. That's how it
could grow up. Incremental agreement based on the need for everybody
to move on. But when you sit down and say "let's come up with an
object model to solve the planet's problems," it ain't gonna happen in
an afternoon.
DOC: Since the dawn of time there have been ideals, and this is the
one of the latest of these, I suppose. Looking back, I can remember
when "machine independent software" was one of those. It's still with
us.
MARC: Machine independent software happened with FORTRAN.
DOC: I remember it from, like, 1980.
MARC: At one of these Java events somebody played a video of an IBM
promotional film from 1954, about one of the structured programming
languages of the time, and the pitch was that you could write it once
and run it anywhere. (laughter)
DOC: Let's look at the Open Source thing for a moment. There's a
population out there of Open Source guys that you say is moving
toward, or already has, critical mass. The statistics work such that
somewhere in this larger population there will emerge some original
solutions to problems. But solving problems and pursuing ideals are
very different things. One tends to be incremental and trial-and-error
while the other tends to be theoretical. Now I'm curious about what
brings the Open Source world — this practically-oriented
problem-solving population — into the market conversation.
I just saw an interesting story in Interactive Week
(http://www.zdnet.com/intweek/printhigh/51198/nt511.html) about how
Linux is in the intranet OS conversation, but not at the top executive
level. It tells how this IDC guy went to the chief financial officer
at a bank in New York, and the guy said they weren't using Linux,
because "they didn't want to run the bank on unsupported software."
But when the guy talked to the IS staff, they said they had a hundred
servers running on Linux. So when this guy told the staffers what the
CFO said, they said he's the guy who gave them a mandate with no
budget, so they went out and got Linux." That kind of thing got no
coverage before, and now it's getting some.
So where has the browser conversation moved? Has it changed from "hey,
they've released the family jewels" to "Hey, isn't it interesting
what's happening with those jewells?"
MARC: People are still trying to figure it out. There's quite a bit
more knowledge of the product that needs to gather before the
understanding breaks through.
TOM: There are some cutting edge people who we'd rather not name who
get it, and who are saying "Netscape did that? Yup. Let's go." But
they're still in the minority.
MARC: And there are some people at the Department of Defense who are
responsible for some of their investment directions. Internally they
find a lot of this highly attractive. Because historically they've
built all their own systems, and they can fix them if something goes
wrong. But since that's prohibitively expensive, they've moved to
commercial off-the-shelf hardware and software. The problem with that,
however, is that when it needs fixing they have to call a Microsoft
800 hotline just like everyone else. And they're not happy about the
idea of building the entire U.S. military infrastructure just on
Microsoft products, for obvious reasons. So the prospect of an Open
Source world for them is a very exciting one. The prospect of Linux
specifically is exciting because it gives them something that gets
them the benefit of commercial off-the-shelf software without the
risks they see with single commercial sourcing.
The whole point of commercial off-the-shelf for the military is a much
broader base of investment happening by a broader community that they
can take advantage of, rather than having do it all themselves. Open
Source gives them many of those benefits, plus some new ones, like:
they can fix it when it breaks, and they're not dependent on an
outside vendor. And they certainly have the technical ability to do
what they need to do to an existing piece of code.
All of which is why they are getting extremely interested in this
development, and in Linux especially. Which is why I think we are
going to see the intelligence community be an early adopter of this
stuff.
DOC: How much do the Linux and Open Source conversations overlap?
MARC: The Open Source conversation is mostly around specific examples.
Linux, Mozilla, Apache. Because the world doesn't yet know is how to
extrapolate Mozilla, Linux and Apache to more things. So your
commercial IT world looks at it and says "this is never gonna fly with
an Oracle database, or with SAP manufacturing applications. So we say
fine, let's concentrate on the areas where it's easy to apply the
kinds of things we can do today.
Burning cash
DOC: This conversation is so far away from what's going on at
Microsoft that it might be worth visiting the difference. Marc, tell
me more about how you understand Microsoft's vertical integration
strategy — especially since what you said about it last time got
munged by my tape recorder.
MARC: Well, what I said before was spontaneous. I'm not sure I can
repeat it exactly.
TOM: Maybe we can reconstruct from what led into it.
DOC: Okay, I remember a scenario. What would happen if the whole
client world is running on Explorer?
MARC: Yeah, if the world goes 100% Microsoft clients, then Microsoft
locks down the protocols and the APIs and the access methods to the
servers, and then takes over the servers.
TOM: As well as the content creation tools.
MARC: —As well as the tools, and then the next step is the
content services themselves. Basically I think what we were talking
about was, you see over and over again in unrelated industries, a
pattern. Historically, computer industries were totally vertically
integrated. IBM, DEC, Apple and other companies all built verticalized
businesses and then found they were under attack by vendors like Intel
and Microsoft and Dell and others that came in with a more open
approach at some horizontal level. So if you've got someone who's a
vertical provider, with the cost structure implied by that, in a
rapidly exploding market, and it's not able to fulfill the market
demand fast enough, then that vendor is subject to attack by
horizontal providers who are coming in with fundamentally better
economics, such as Microsoft with commodity software and Intel with
commodity chips, and Dell with commodity PCs.
But then what happens is you get into these situations —
specifically the one Microsoft is in today — where, due to
increasing returns and a series of other developments, you have a
monopoly, for example with the operating system. So, at that point,
for to grow faster than the market's growing, the logical thing is to
leverage your monopoly vertically up into adjacent spaces in the
stack.
TOM: It's required.
MARC: It's required. They have to, or at least they have to try, to
grow faster than the market is growing. That is Microsoft's big
problem right now. And they thought they were well on their way to
doing exactly that. They thought they were going to leverage the
client straignt onto the server. If the world was using a Windows
desktop and not all these browsers, they would have been done with
this by now. But this browser thing came along between Windows and the
user, so they have to establish control of what turned out to be a new
level: the browser level, the network user interface level. If they
can successfully go to 100% on that, then they can by inference lock
down the protocols on 100% of the servers.
In a networked environment, the desktop/browser is the moral
equivalent of the TV tuner for content and services. They're going to
leverage up into those spaces exactly the same way. So what they're
basically doing is going from a horizontal strategy to a vertical one:
from a position of monopoly in one horizontal slice — where they
have monopoly profits — and using those monopoly profits to
subsidize verticalizing.
And they have a fundamental economic advantage in that they have all
this monopoly cash coming in. So they can arbitrarily subsidize losses
in other markets.
DOC: Which is why they could nail the KMPG/Peat Marwick deal.
(Essentially giving away something at a loss — in this case
service — that Netscape needed to charge for, and winning the
business that way.)
MARC: Right. They can write a check to get whatever business they want
in a new market, because they have all these monopoly profits coming
in from existing markets where their control is absolute. Which is why
in the Senate hearings, Senator Cole's questions to Gates about his
profit margins were actually very relevant. One of the ways you can
tell when a company really has a monopoly is by their profit margins.
Because normally competitive technology markets tend to have ten,
twenty, twenty-five percent profit margins, net profits. Not forty to
sixty percent. So that's one of the ways to see if a monopoly exists.
They actually have so much cash coming in the door now that they
actually have a problem nobody has ever had before in this market,
which is to find ways to burn as much cash as fast as possible, and in
as many creative ways as possible: ways that are going to lose money
in the short term. So it is in their interest to burn cash. This is an
interesting position to be in.
DOC: And they can do it.
MARC: Yes, but it isn't just that they can, it's that they need to.
Because if they don't they'll report even bigger profit margins and
the regulators will get real interested. They don't want to prove they
have a monopoly. Burning cash is one way to reduce the appearance of
monopoly.
Now, this strategy only works as long as you have your core monopoly.
The minute you lose that monopoly, you have to compete in that core
horizontal slice, and your margins go down. And every other part of
your stack becomes vulnerable to attack because you can't sustain your
tactics. You don't have all this cash coming in, subsidizing
everything.
DOC: I see you compete with that monopoly by changing the game. You
did that with the browser in the first place. You made the browser the
network interface; and since most of the real business of computing
happened on the network, you changed everything. Suddenly what you saw
at every trade show, regardless of platform, was a sea of monitors all
with browsers that masked the OS in each case.
MARC: Right.
DOC: And in '96 you did the same thing with LDAP. Changed the game.
MARC: Um hmm.
DOC: The way things were headed before that, Microsoft was going to
squeeze the world into the Cairo directory.
MARC: Right. ODSI. Open Directory Services Interface (a Microsoft
protocol), was going to be the way everybody was going to do it. Same
with mail: MAPI on one side versus POP and SMTP on the other.
DOC: So I'm wondering if you imagine something will arise out of the
Mozilla conversation that's a game-changer like the browser itself
was, or LDAP was.
TOM: It certainly will. It's a question of when.
MARC: My guess is that there will be a grad student somewhere, say the
Netherlands, who's doing a Ph.D. dissertation on a new advanced user
interface. And instead of just building something that nobody will
ever see, they'll build it on the Mozilla source code base and release
it to the Net. Why not? It's not going to sell anyway — it's a
Ph.D. dissertation, after all. They're going to want as many people as
possible to see it, and to get as many job offers as possible. And
it's going to change the world. So my guess is we're going to see
stuff like that popping up over the next couple of years. No reason
not to. We've got something like critical mass here. We have virtually
the entire world of computer professionals, especially in the highly
creative areas of research and computer science.
TOM: And imagine the alternatives. Here we're going to have this
public source and all these people will have the freedom to work in
this space, in a space that a hundred million people use in their
daily lives all the time. Can you say there won't be any such
innovations in the next five years? That's almost ludicrous.
The free world
MARC: It's interesting that one of the changes that has happened in
the market over the last five years is that client software is now
free. Not just browser software and email software, but personal
organizers and word processors, spreadsheets. It is now impossible in
the software market to make money doing client software of any kind
for anything. Microsoft Outlook, for example, is wiping out the
independent personal information management (PIM) market.
So you can't expect new innovations to emerge out of the commercial
software world that will be highly relevant to end users that come in
the form of client software. You can expect them to come as on-line
services, perhaps. Or as server software, perhaps, because you can
still make money on those without being Microsoft. But innovation in
end user software is only going to come out of the Open Source
community. It's not going to come out of Microsoft. They don't do
innovation here, and they don't have to. And you know the venture
capitalists are not going to fund the next company to do the next
computer interface, because there's no way to make money on that. And
that could end up being the biggest threat to Microsoft two, four,
five, ten years from now. Because that's when its core monopoly comes
under attack by something that is technologically far superior, with a
business model that's far superior. That's when they're really in
trouble. Because free is a pretty good business model.
DOC: And you're counting on that grad student out there, writing in
Mozilla code, to come up with the killer paradigm shift on the client
side.
MARC: First, it would be better for that to happen than for it not to
happen, regardless of whether or not we benefit directly.
De-stabilization and the heterogeneity of the market is good for us.
Stabilization and homogeneity is bad for us. So that's the first part
of the decision tree. The next part of the tree is that as these
things happen presumably there will be ways for us to make money,
either through online service offerings or server software offerings
or programming tools or something that wraps around that and provides
commercial support.
DOC: So it's wrong to believe it was ever in Netscape's interest to
have stabilization occurring around itself.
MARC: That could be true.
DOC: People default to thinking that every company wants a stable
situation where they've locked something down and don't need to do
anything new in that space for a long time — until something
comes along that changes the business so totally that they have to
start all over again.
MARC: Yeah. Let me put it this way. Every company would like to be in
Microsoft's situation, a completely stable situation, with abundant
money flowing in. But if that's not reasonable, then the next best
thing is to have a constantly de-stabilized situation. It means you
have to keep running and doing new things. But that's what makes it
fun.
DOC: And you want Microsoft's tractor trailer to chase your four-wheel
drive all over new landscape.
MARC: Sure. Definitely.
Links
The Netscape Open Source White Paper provides an excellent background
on Netscape's approach to the open source movement.
"New Rules for a New Economy" is an outstanding piece that ran
recently in WIRED.Most of Netscape's moves have been in complete
alignment with Kelly's rules — which makes sense because in many
ways Netscape wrote them. Or at least discovered them.
A Platform is a Chinese Household givesDave Winer's alternative
software community metaphor.
_________________________________________________
[INLINE]
Copyright © 1998, Doc Searls
Published in Issue 31 of Linux Gazette, August 1998
_________________________________________________________________
[ TABLE OF CONTENTS ] [ FRONT PAGE ] Back Next
_________________________________________________________________
"Linux Gazette...making Linux just a little more fun!"
_________________________________________________________________
Copying Red Hat Legalities
By Eric Canal
_________________________________________________________________
I posted a question last month and I received help from some people
and some others asked me to send them my results. I think that this
article can interest some of your readers that's why I send it to you.
You can make all the arrangements you want and I don't care for the
mention of my name. Do what you want... I just want to collaborate at
my level to the fantastic Linux Community.
I insist on only one thing : thanking all the people that helped me
about this topic : the burning of a RedHat CD ROM.
Here is a sum up of all the information I received and some additional
one that I discovered in my experiments.
As I am Francophone, i hope that you won't find to many English
mistakes. :(
1. It is legal to make his own RedHat CD ROM if you mention all the
copyrighted stuff and the different owners of trademarks, etc. 2. It
is cheaper to buy a CD from different organizations such as RedHat,
InfoMagic or CheapBytes if you are connected to the Internet with a
modem and if you pay your communications. The only interesting way to
burn a RedHat CD ROM is when you have a fast Internet connection and
above all if you don't pay for it (for example in an university or at
work (your boss will be happy for the bill ;p))). 3. You need all the
RPMS files, all the "instimage" directory and the file "i386". With
this email you will find an attached text file that describes all the
directories involved in a RedHat CD ROM, but most of them are
facultative. You have to respect the hierarchy between the directories
you want to put on your own CD ROM. 4. When you burn your CD ROM you
must have an ISO 9660 file system with Rock Ridge Extensions (to let
Linux recognize the long filenames). That implies that you must burn
it from Linux with "mkisofs", "mkhybrid" (using option -r for RR
extensions) with a former Linux system or a minimal Linux system (see
the corresponding HowTo for that) because most of Windows burners
don't do Rock Ridge extensions. 5. With RedHat 5.1 and only with this
version you can burn your CD ROM with a ISO9660 / Joliet file system
which is more comfortable if you don't already have a Linux system. It
doesn't work at all with RedHat 5.0 and former versions (this is due
to the kernel 2.0.34 which is the first stable version to directly
recognize Joliet extensions). 6. I didn't try a bootable CD, but I
know it is feasible. In this case you need the autoboot directory. The
file system you have to use is "El Torito". 7. You can take all the
updates and put them in the RPMS directory in order to replace the
deficient ones. I did it for all the RPMS except the ones involved
with the kernel and the libs (libc5 and glibc), all the funny things
that are at the heart of the system. When I first tried all the
updates without any care, it didn't work at all (system halted). In my
second try, I didn't copy the files I mentioned above and it worked...
But the problem can be elsewhere (deficient burned image, etc.).
Two more advices : a. Linux is case sensitive, so be careful with
that. In particular you must have the RPMS directory name in capital
letters. The hierarchy of directories joined with this message
indicates the where the capital letters must be. b. Some CD burners
might not work with Linux. In order to know that you must have the
firmware version of your burner and see if it is compatible with
mkisofs or mkhybrid or cdrecord. You can check it at
http://www.guug.de:8080/cgi-bin/winni/lsc.pl. If it is not the case,
you can upgrade it from the CD burner manufacturer (see their
website).
In any case you can have a look on the CD Writing HowTo at your
favorite mirror (I personaly use www.freenix.fr which is in french,
but I guess that not everybody might want to go there ;p)).
Good luck and thank you very much for the support i received
May be the (Linux) Force be with you (and do go to the dark (NT) side
of the Force) ;p)
and long life to the Linux Gazette.
Eric CANAL
.
|-- COPYING
|-- DOCS.FR
| |-- 41REDHAT
| | |-- TRANS.TBL
| | |-- a4
| | | |-- 300-dpi
| | | | |-- TRANS.TBL
| | | | |-- complet.zip
| | | | |-- impaires.zip
| | | | `-- paires.zip
| | | |-- 600-dpi
| | | | |-- TRANS.TBL
| | | | |-- complet.zip
| | | | |-- impaires.zip
| | | | `-- paires.zip
| | | `-- TRANS.TBL
| | |-- index.htm
| | |-- lf-pdf.htm
| | |-- manuel.tgz
| | |-- rh4-.htm
| | |-- rh4-01.gif
| | |-- rh4-01.htm
| | |-- rh4-02.gif
| | |-- rh4-02.htm
| | |-- rh4-03.gif
| | |-- rh4-03.htm
| | |-- rh4-04.gif
| | |-- rh4-04.htm
| | |-- rh4-05.gif
| | |-- rh4-05.htm
| | |-- rh4-06.gif
| | |-- rh4-06.htm
| | |-- rh4-07.gif
| | |-- rh4-07.htm
| | |-- rh4-08.gif
| | |-- rh4-08.htm
| | |-- rh4-09.gif
| | |-- rh4-09.htm
| | |-- rh4-10.gif
| | |-- rh4-10.htm
| | |-- rh4-11.gif
| | |-- rh4-11.htm
| | |-- rh4-12.gif
| | |-- rh4-12.htm
| | |-- rh4-13.gif
| | |-- rh4-13.htm
| | |-- rh4-14.gif
| | |-- rh4-14.htm
| | |-- rh4-15.gif
| | |-- rh4-15.htm
| | |-- rh4-16.gif
| | |-- rh4-16.htm
| | |-- rh4-17.gif
| | |-- rh4-17.htm
| | |-- rh4-18.gif
| | |-- rh4-18.htm
| | |-- rh4-19.gif
| | |-- rh4-19.htm
| | |-- rh4-20.gif
| | |-- rh4-20.htm
| | |-- rh4-21.gif
| | |-- rh4-21.htm
| | |-- rh4-22.gif
| | |-- rh4-22.htm
| | |-- rh4-23.gif
| | |-- rh4-23.htm
| | |-- rh4-24.gif
| | |-- rh4-24.htm
| | |-- rh4-25.gif
| | |-- rh4-25.htm
| | |-- rh4-26.gif
| | |-- rh4-26.htm
| | |-- rh4-27.gif
| | |-- rh4-27.htm
| | |-- rh4-28.gif
| | |-- rh4-28.htm
| | |-- rh4-29.gif
| | |-- rh4-29.htm
| | |-- rh4-30.gif
| | |-- rh4-30.htm
| | |-- rh4-31.gif
| | |-- rh4-31.htm
| | |-- rh4-32.gif
| | |-- rh4-32.htm
| | |-- rh4-33.gif
| | |-- rh4-33.htm
| | |-- rh4-34.gif
| | |-- rh4-34.htm
| | |-- rh4-35.gif
| | |-- rh4-35.htm
| | |-- rh4-36.gif
| | |-- rh4-36.htm
| | |-- rh4-37.gif
| | |-- rh4-37.htm
| | |-- rh4-38.gif
| | |-- rh4-38.htm
| | |-- rh4-39.gif
| | |-- rh4-39.htm
| | |-- rh4-40.gif
| | |-- rh4-40.htm
| | |-- rh4-41.gif
| | |-- rh4-41.htm
| | |-- rh4-42.gif
| | |-- rh4-42.htm
| | |-- rh4-43.gif
| | |-- rh4-43.htm
| | |-- rh4-44.gif
| | |-- rh4-44.htm
| | |-- rh4-45.gif
| | |-- rh4-45.htm
| | |-- rh4-46.gif
| | |-- rh4-46.htm
| | |-- rh4-47.htm
| | |-- rh4-48.htm
| | |-- rh4-49.htm
| | |-- rh4-50.htm
| | |-- rh4-51.htm
| | |-- rh4-52.htm
| | |-- rh4-53.htm
| | |-- rh4-54.htm
| | |-- rh4-55.htm
| | |-- rh4-56.htm
| | |-- rh4-57.htm
| | |-- rh4-58.htm
| | |-- rh4-59.htm
| | |-- rh4-60.htm
| | |-- rh4-61.htm
| | |-- rh4-62.htm
| | |-- rh4-63.htm
| | |-- rh4-64.htm
| | |-- rh4-65.htm
| | |-- rh4-66.htm
| | |-- rh4-67.htm
| | |-- rh4-68.htm
| | |-- rh4-69.htm
| | |-- rh4-70.htm
| | |-- rh4-71.htm
| | |-- rh4-72.htm
| | |-- rh4-73.htm
| | |-- rh4-74.htm
| | |-- rh4-75.htm
| | |-- rh4-76.htm
| | |-- rh4-77.htm
| | |-- rh4-78.htm
| | |-- rh4-79.htm
| | |-- rh4-80.htm
| | `-- rh4-_c.htm
| |-- FAQ
| | |-- HTML
| | | |-- TRANS.TBL
| | | |-- meta-faq.fr-1.html
| | | |-- meta-faq.fr-2.html
| | | |-- meta-faq.fr-3.html
| | | |-- meta-faq.fr-4.html
| | | |-- meta-faq.fr-5.html
| | | |-- meta-faq.fr-6.html
| | | |-- meta-faq.fr-7.html
| | | |-- meta-faq.fr-8.html
| | | |-- meta-faq.fr-9.html
| | | `-- meta-faq.fr.html
| | |-- TRANS.TBL
| | `-- meta-faq.fr
| |-- FDISK-Linux
| | |-- MANUEL.TXT
| | `-- TRANS.TBL
| |-- FIPS-15
| | |-- MANUEL.TXT
| | `-- TRANS.TBL
| |-- HOWTO
| | |-- Boot-disk-HOWTO
| | |-- BootPrompt-HOWTO
| | |-- Busmouse-HOWTO
| | |-- CDROM-HOWTO
| | |-- Commercial-HOWTO
| | |-- DOSEMU-HOWTO
| | |-- Distribution-HOWTO
| | |-- ELF-HOWTO
| | |-- Firewall-HOWTO
| | |-- Ftape-HOWTO
| | |-- GCC-HOWTO
| | |-- HAM-HOWTO
| | |-- HOWTO-Index
| | |-- HTML
| | | |-- Boot-disk-HOWTO-html.tar.gz
| | | |-- BootPrompt-HOWTO-html.tar.gz
| | | |-- Busmouse-HOWTO-html.tar.gz
| | | |-- CDROM-HOWTO-html.tar.gz
| | | |-- Commercial-HOWTO-html.tar.gz
| | | |-- DOSEMU-HOWTO-html.tar.gz
| | | |-- Distribution-HOWTO-html.tar.gz
| | | |-- ELF-HOWTO-html.tar.gz
| | | |-- Firewall-HOWTO-html.tar.gz
| | | |-- Ftape-HOWTO-html.tar.gz
| | | |-- GCC-HOWTO-html.tar.gz
| | | |-- HAM-HOWTO-html.tar.gz
| | | |-- HOWTO-Index-html.tar.gz
| | | |-- Hardware-HOWTO-html.tar.gz
| | | |-- IPX-HOWTO-html.tar.gz
| | | |-- Installation-HOWTO-html.tar.gz
| | | |-- Java-HOWTO-html.tar.gz
| | | |-- Kernel-HOWTO-html.tar.gz
| | | |-- Keyboard-HOWTO-html.tar.gz
| | | |-- MGR-HOWTO-html.tar.gz
| | | |-- Mail-HOWTO-html.tar.gz
| | | |-- Modems-HOWTO-html.tar.gz
| | | |-- NIS-HOWTO-html.tar.gz
| | | |-- Net2-HOWTO-html.tar.gz
| | | |-- PCI-HOWTO-html.tar.gz
| | | |-- PPP-FAQ-html.tar.gz
| | | |-- PPP-HOWTO-html.tar.gz
| | | |-- Printing-HOWTO-html.tar.gz
| | | |-- SCSI-HOWTO-html.tar.gz
| | | |-- SCSI-Programming-HOWTO-html.tar.gz
| | | |-- Serial-HOWTO-html.tar.gz
| | | |-- Slip-ProxyARP-html.tar.gz
| | | |-- Sound-HOWTO-html.tar.gz
| | | |-- TRANS.TBL
| | | |-- Term-HOWTO-html.tar.gz
| | | |-- Tips-HOWTO-html.tar.gz
| | | |-- UPS-HOWTO-html.tar.gz
| | | |-- UUCP-HOWTO-html.tar.gz
| | | |-- Video-HOWTO-html.tar.gz
| | | |-- Win95-Win3x-Linux-html.tar.gz
| | | `-- XFree86-HOWTO-html.tar.gz
| | |-- Hardware-HOWTO
| | |-- IPX-HOWTO
| | |-- Installation-HOWTO
| | |-- Java-HOWTO
| | |-- Kernel-HOWTO
| | |-- Keyboard-HOWTO
| | |-- MGR-HOWTO
| | |-- Mail-HOWTO
| | |-- Modems-HOWTO
| | |-- NIS-HOWTO
| | |-- Net2-HOWTO
| | |-- PCI-HOWTO
| | |-- PPP-FAQ
| | |-- PPP-HOWTO
| | |-- Printing-HOWTO
| | |-- SCSI-HOWTO
| | |-- SCSI-Programming-HOWTO
| | |-- Serial-HOWTO
| | |-- Slip-ProxyARP
| | |-- Sound-HOWTO
| | |-- TRANS.TBL
| | |-- Term-HOWTO
| | |-- Tips-HOWTO
| | |-- UPS-HOWTO
| | |-- UUCP-HOWTO
| | |-- Video-HOWTO
| | |-- Win95-Win3x-Linux
| | `-- XFree86-HOWTO
| |-- HOWTO-mini
| | |-- Anon-ftp
| | |-- Assembleur
| | |-- Colour-ls
| | |-- HTML
| | | |-- Anon-ftp-html.tar.gz
| | | |-- Assembleur-html.tar.gz
| | | |-- Colour-ls-html.tar.gz
| | | |-- IO-Port-html.tar.gz
| | | |-- JAZ-drive-html.tar.gz
| | | |-- LILO-html.tar.gz
| | | |-- Large-IDE-html.tar.gz
| | | |-- Man-Page-html.tar.gz
| | | |-- NFS-Root-html.tar.gz
| | | |-- Postgres-html.tar.gz
| | | |-- Proxy-ARP-html.tar.gz
| | | |-- Slip+ProxyARP-html.tar.gz
| | | |-- TRANS.TBL
| | | |-- Term-Firewall-html.tar.gz
| | | |-- Token-Ring-html.tar.gz
| | | |-- X-Terminal-html.tar.gz
| | | `-- ZipIomega-html.tar.gz
| | |-- IO-Port
| | |-- JAZ-drive
| | |-- LILO
| | |-- Large-IDE
| | |-- Man-Page
| | |-- NFS-Root
| | |-- Postgres
| | |-- Proxy-ARP
| | |-- Slip+ProxyARP
| | |-- TRANS.TBL
| | |-- Term-Firewall
| | |-- Token-Ring
| | |-- X-Terminal
| | `-- ZipIomega
| |-- INFO-sht
| | |-- HTML
| | | |-- TRANS.TBL
| | | |-- info-sheet.fr-1.html
| | | |-- info-sheet.fr-10.html
| | | |-- info-sheet.fr-11.html
| | | |-- info-sheet.fr-12.html
| | | |-- info-sheet.fr-2.html
| | | |-- info-sheet.fr-3.html
| | | |-- info-sheet.fr-4.html
| | | |-- info-sheet.fr-5.html
| | | |-- info-sheet.fr-6.html
| | | |-- info-sheet.fr-7.html
| | | |-- info-sheet.fr-8.html
| | | |-- info-sheet.fr-9.html
| | | `-- info-sheet.fr.html
| | |-- TRANS.TBL
| | `-- info-sht.fr
| |-- INTRO-Linux
| | |-- HTML
| | | |-- TRANS.TBL
| | | |-- intro-1.html
| | | |-- intro-2.html
| | | |-- intro-3.html
| | | |-- intro-4.html
| | | |-- intro-5.html
| | | |-- intro-6.html
| | | |-- intro-7.html
| | | `-- intro.html
| | |-- TRANS.TBL
| | `-- intro
| |-- KERNEL-2.0
| | |-- 00-INDEX
| | |-- CHASSE-AUX-BOGUES
| | |-- Changements
| | |-- Configure.help
| | |-- SMP.txt
| | |-- StyleDuCodage
| | |-- TRANS.TBL
| | |-- chiendegarde.txt
| | |-- digiboard.txt
| | |-- disqueram.txt
| | |-- ide.txt
| | |-- initrd.txt
| | |-- java.txt
| | |-- logo.gif
| | |-- logo.txt
| | |-- modules.txt
| | |-- numero-ioctl.txt
| | |-- numero-magique.txt
| | |-- obligatoire.txt
| | |-- oups-trace.txt
| | |-- racinenfs.txt
| | |-- riscom8.txt
| | |-- rtc.txt
| | |-- scsi.txt
| | |-- smp.tex
| | |-- svga.txt
| | |-- unicode.txt
| | `-- verrous.txt
| |-- LINUX-FACILE
| | |-- TRANS.TBL
| | |-- a4
| | | |-- 300-dpi
| | | | |-- TRANS.TBL
| | | | |-- complet.pdf
| | | | |-- impaires.pdf
| | | | `-- paires.pdf
| | | |-- 600-dpi
| | | | |-- TRANS.TBL
| | | | |-- complet.pdf
| | | | |-- impaires.pdf
| | | | `-- paires.pdf
| | | `-- TRANS.TBL
| | `-- html
| | |-- TRANS.TBL
| | |-- images
| | | |-- 002.gif
| | | |-- TRANS.TBL
| | | |-- blankg.gif
| | | |-- contg.gif
| | | |-- dbledag.gif
| | | |-- indexg.gif
| | | |-- leftg.gif
| | | |-- linuxf.gif
| | | |-- noleftg.gif
| | | |-- norightg.gif
| | | |-- notopg.gif
| | | |-- noupg.gif
| | | |-- points.gif
| | | |-- r2harc1.gif
| | | |-- r2harc2.gif
| | | |-- r2harc3.gif
| | | |-- r2harc4.gif
| | | |-- r2harch.gif -> 002.gif
| | | |-- rightg.gif
| | | |-- sectmark.gif
| | | |-- sigma_.gif
| | | |-- square.gif
| | | |-- topg.gif
| | | |-- trait.gif
| | | `-- upg.gif
| | `-- linux-f
| | |-- TRANS.TBL
| | |-- index.htm -> lf2.htm
| | |-- lf2.htm
| | |-- lf201.gif
| | |-- lf201.htm
| | |-- lf202.gif
| | |-- lf202.htm
| | |-- lf203.gif
| | |-- lf203.htm
| | |-- lf204.gif
| | |-- lf204.htm
| | |-- lf205.gif
| | |-- lf205.htm
| | |-- lf206.gif
| | |-- lf206.htm
| | |-- lf207.gif
| | |-- lf207.htm
| | |-- lf208.gif
| | |-- lf208.htm
| | |-- lf209.gif
| | |-- lf209.htm
| | |-- lf210.gif
| | |-- lf210.htm
| | |-- lf2100.htm
| | |-- lf2101.htm
| | |-- lf2102.htm
| | |-- lf2103.htm
| | |-- lf2104.htm
| | |-- lf2105.htm
| | |-- lf2106.htm
| | |-- lf2107.htm
| | |-- lf2108.htm
| | |-- lf2109.htm
| | |-- lf211.gif
| | |-- lf211.htm
| | |-- lf2110.htm
| | |-- lf2111.htm
| | |-- lf2112.htm
| | |-- lf2113.htm
| | |-- lf2114.htm
| | |-- lf2115.htm
| | |-- lf2116.htm
| | |-- lf2117.htm
| | |-- lf2118.htm
| | |-- lf2119.htm
| | |-- lf212.gif
| | |-- lf212.htm
| | |-- lf2120.htm
| | |-- lf2121.htm
| | |-- lf2122.htm
| | |-- lf2123.htm
| | |-- lf2124.htm
| | |-- lf2125.htm
| | |-- lf2126.htm
| | |-- lf2127.htm
| | |-- lf2128.htm
| | |-- lf2129.htm
| | |-- lf213.gif
| | |-- lf213.htm
| | |-- lf2130.htm
| | |-- lf2131.htm
| | |-- lf2132.htm
| | |-- lf2133.htm
| | |-- lf2134.htm
| | |-- lf2135.htm
| | |-- lf2136.htm
| | |-- lf2137.htm
| | |-- lf2138.htm
| | |-- lf2139.htm
| | |-- lf214.gif
| | |-- lf214.htm
| | |-- lf2140.htm
| | |-- lf2141.htm
| | |-- lf2142.htm
| | |-- lf2143.htm
| | |-- lf2144.htm
| | |-- lf2145.htm
| | |-- lf2146.htm
| | |-- lf2147.htm
| | |-- lf2148.htm
| | |-- lf2149.htm
| | |-- lf215.gif
| | |-- lf215.htm
| | |-- lf2150.htm
| | |-- lf2151.htm
| | |-- lf2152.htm
| | |-- lf2153.htm
| | |-- lf216.gif
| | |-- lf216.htm
| | |-- lf217.gif
| | |-- lf217.htm
| | |-- lf218.gif
| | |-- lf218.htm
| | |-- lf219.gif
| | |-- lf219.htm
| | |-- lf220.gif
| | |-- lf220.htm
| | |-- lf221.gif
| | |-- lf221.htm
| | |-- lf222.gif
| | |-- lf222.htm
| | |-- lf223.gif
| | |-- lf223.htm
| | |-- lf224.gif
| | |-- lf224.htm
| | |-- lf225.gif
| | |-- lf225.htm
| | |-- lf226.gif
| | |-- lf226.htm
| | |-- lf227.gif
| | |-- lf227.htm
| | |-- lf228.gif
| | |-- lf228.htm
| | |-- lf229.gif
| | |-- lf229.htm
| | |-- lf230.gif
| | |-- lf230.htm
| | |-- lf231.gif
| | |-- lf231.htm
| | |-- lf232.gif
| | |-- lf232.htm
| | |-- lf233.gif
| | |-- lf233.htm
| | |-- lf234.gif
| | |-- lf234.htm
| | |-- lf235.gif
| | |-- lf235.htm
| | |-- lf236.gif
| | |-- lf236.htm
| | |-- lf237.gif
| | |-- lf237.htm
| | |-- lf238.gif
| | |-- lf238.htm
| | |-- lf239.gif
| | |-- lf239.htm
| | |-- lf240.gif
| | |-- lf240.htm
| | |-- lf241.gif
| | |-- lf241.htm
| | |-- lf242.gif
| | |-- lf242.htm
| | |-- lf243.gif
| | |-- lf243.htm
| | |-- lf244.gif
| | |-- lf244.htm
| | |-- lf245.gif
| | |-- lf245.htm
| | |-- lf246.htm
| | |-- lf247.htm
| | |-- lf248.htm
| | |-- lf249.htm
| | |-- lf250.htm
| | |-- lf251.htm
| | |-- lf252.htm
| | |-- lf253.htm
| | |-- lf254.htm
| | |-- lf255.htm
| | |-- lf256.htm
| | |-- lf257.htm
| | |-- lf258.htm
| | |-- lf259.htm
| | |-- lf260.htm
| | |-- lf261.htm
| | |-- lf262.htm
| | |-- lf263.htm
| | |-- lf264.htm
| | |-- lf265.htm
| | |-- lf266.htm
| | |-- lf267.htm
| | |-- lf268.htm
| | |-- lf269.htm
| | |-- lf270.htm
| | |-- lf271.htm
| | |-- lf272.htm
| | |-- lf273.htm
| | |-- lf274.htm
| | |-- lf275.htm
| | |-- lf276.htm
| | |-- lf277.htm
| | |-- lf278.htm
| | |-- lf279.htm
| | |-- lf280.htm
| | |-- lf281.htm
| | |-- lf282.htm
| | |-- lf283.htm
| | |-- lf284.htm
| | |-- lf285.htm
| | |-- lf286.htm
| | |-- lf287.htm
| | |-- lf288.htm
| | |-- lf289.htm
| | |-- lf290.htm
| | |-- lf291.htm
| | |-- lf292.htm
| | |-- lf293.htm
| | |-- lf294.htm
| | |-- lf295.htm
| | |-- lf296.htm
| | |-- lf297.htm
| | |-- lf298.htm
| | |-- lf299.htm
| | `-- lf2_c.htm
| |-- LOADLIN16
| | |-- TRANS.TBL
| | |-- initrd.txt
| | |-- manuel.txt
| | `-- params.doc
| |-- LOCALE
| | |-- TRANS.TBL
| | `-- locale.fr
| |-- MAN-FR-0.3
| | |-- LISEZ_MOI
| | |-- TRANS.TBL
| | |-- changements
| | |-- html
| | | |-- TRANS.TBL
| | | |-- icones
| | | | |-- TRANS.TBL
| | | | |-- blanc.gif
| | | | |-- contg.gif
| | | | |-- fond-bl.gif
| | | | |-- logokh.gif
| | | | |-- point-bl.gif
| | | | |-- topg.gif
| | | | `-- upg.gif
| | | |-- index.htm
| | | |-- man1
| | | | |-- TRANS.TBL
| | | | |-- basename.1.html
| | | | |-- cat.1.html
| | | | |-- chgrp.1.html
| | | | |-- chmod.1.html
| | | | |-- chown.1.html
| | | | |-- cksum.1.html
| | | | |-- comm.1.html
| | | | |-- cp.1.html
| | | | |-- csplit.1.html
| | | | |-- cut.1.html
| | | | |-- date.1.html
| | | | |-- dd.1.html
| | | | |-- dirname.1.html
| | | | |-- du.1.html
| | | | |-- echo.1.html
| | | | |-- env.1.html
| | | | |-- expand.1.html
| | | | |-- expr.1.html
| | | | |-- false.1.html
| | | | |-- find.1.html
| | | | |-- fmt.1.html
| | | | |-- fold.1.html
| | | | |-- free.1.html
| | | | |-- grep.1.html
| | | | |-- groups.1.html
| | | | |-- head.1.html
| | | | |-- id.1.html
| | | | |-- index.html
| | | | |-- join.1.html
| | | | |-- logname.1.html
| | | | |-- ls.1.html
| | | | |-- md5sum.1.html
| | | | |-- mkdir.1.html
| | | | |-- mkfifo.1.html
| | | | |-- mknod.1.html
| | | | |-- mv.1.html
| | | | |-- nice.1.html
| | | | |-- nl.1.html
| | | | |-- nohup.1.html
| | | | |-- od.1.html
| | | | |-- paste.1.html
| | | | |-- pathchk.1.html
| | | | |-- pr.1.html
| | | | |-- printenv.1.html
| | | | |-- printf.1.html
| | | | |-- pwd.1.html
| | | | |-- rm.1.html
| | | | |-- rmdir.1.html
| | | | |-- sleep.1.html
| | | | |-- sort.1.html
| | | | |-- split.1.html
| | | | |-- stty.1.html
| | | | |-- su.1.html
| | | | |-- sum.1.html
| | | | |-- tac.1.html
| | | | |-- tail.1.html
| | | | |-- tee.1.html
| | | | |-- test.1.html
| | | | |-- touch.1.html
| | | | |-- tr.1.html
| | | | |-- true.1.html
| | | | |-- tty.1.html
| | | | |-- uname.1.html
| | | | |-- unexpand.1.html
| | | | |-- uniq.1.html
| | | | |-- users.1.html
| | | | |-- wc.1.html
| | | | |-- who.1.html
| | | | |-- whoami.1.html
| | | | `-- yes.1.html
| | | |-- man2
| | | | |-- TRANS.TBL
| | | | |-- _exit.2.html
| | | | |-- accept.2.html
| | | | |-- access.2.html
| | | | |-- acct.2.html
| | | | |-- adjtimex.2.html
| | | | |-- afs_syscall.2.html
| | | | |-- alarm.2.html
| | | | |-- bdflush.2.html
| | | | |-- bind.2.html
| | | | |-- break.2.html
| | | | |-- brk.2.html
| | | | |-- cacheflush.2.html
| | | | |-- chdir.2.html
| | | | |-- chmod.2.html
| | | | |-- chown.2.html
| | | | |-- chroot.2.html
| | | | |-- clone.2.html
| | | | |-- close.2.html
| | | | |-- connect.2.html
| | | | |-- creat.2.html
| | | | |-- create_module.2.html
| | | | |-- delete_module.2.html
| | | | |-- dup.2.html
| | | | |-- dup2.2.html
| | | | |-- execve.2.html
| | | | |-- fchdir.2.html
| | | | |-- fchmod.2.html
| | | | |-- fchown.2.html
| | | | |-- fcntl.2.html
| | | | |-- fdatasync.2.html
| | | | |-- flock.2.html
| | | | |-- fork.2.html
| | | | |-- fstat.2.html
| | | | |-- fstatfs.2.html
| | | | |-- fsync.2.html
| | | | |-- ftruncate.2.html
| | | | |-- get_kernel_syms.2.html
| | | | |-- getdents.2.html
| | | | |-- getdomainname.2.html
| | | | |-- getdtablesize.2.html
| | | | |-- getegid.2.html
| | | | |-- geteuid.2.html
| | | | |-- getgid.2.html
| | | | |-- getgroups.2.html
| | | | |-- gethostid.2.html
| | | | |-- gethostname.2.html
| | | | |-- getitimer.2.html
| | | | |-- getpagesize.2.html
| | | | |-- getpeername.2.html
| | | | |-- getpgid.2.html
| | | | |-- getpgrp.2.html
| | | | |-- getpid.2.html
| | | | |-- getppid.2.html
| | | | |-- getpriority.2.html
| | | | |-- getrlimit.2.html
| | | | |-- getrusage.2.html
| | | | |-- getsid.2.html
| | | | |-- getsockname.2.html
| | | | |-- getsockopt.2.html
| | | | |-- gettimeofday.2.html
| | | | |-- getuid.2.html
| | | | |-- gtty.2.html
| | | | |-- idle.2.html
| | | | |-- index.html
| | | | |-- init_module.2.html
| | | | |-- intro.2.html
| | | | |-- ioctl.2.html
| | | | |-- ioctl_list.2.html
| | | | |-- ioperm.2.html
| | | | |-- iopl.2.html
| | | | |-- ipc.2.html
| | | | |-- kill.2.html
| | | | |-- killpg.2.html
| | | | |-- link.2.html
| | | | |-- listen.2.html
| | | | |-- llseek.2.html
| | | | |-- lock.2.html
| | | | |-- lseek.2.html
| | | | |-- lstat.2.html
| | | | |-- mkdir.2.html
| | | | |-- mknod.2.html
| | | | |-- mlock.2.html
| | | | |-- mlockall.2.html
| | | | |-- mmap.2.html
| | | | |-- modify_ldt.2.html
| | | | |-- modules.2.html
| | | | |-- mount.2.html
| | | | |-- mprotect.2.html
| | | | |-- mpx.2.html
| | | | |-- mremap.2.html
| | | | |-- msgctl.2.html
| | | | |-- msgget.2.html
| | | | |-- msgop.2.html
| | | | |-- msgrcv.2.html
| | | | |-- msgsnd.2.html
| | | | |-- msync.2.html
| | | | |-- munlock.2.html
| | | | |-- munlockall.2.html
| | | | |-- munmap.2.html
| | | | |-- nanosleep.2.html
| | | | |-- nice.2.html
| | | | |-- obsolete.2.html
| | | | |-- oldfstat.2.html
| | | | |-- oldlstat.2.html
| | | | |-- oldolduname.2.html
| | | | |-- oldstat.2.html
| | | | |-- olduname.2.html
| | | | |-- open.2.html
| | | | |-- outb.2.html
| | | | |-- pause.2.html
| | | | |-- personality.2.html
| | | | |-- phys.2.html
| | | | |-- pipe.2.html
| | | | |-- prof.2.html
| | | | |-- profil.2.html
| | | | |-- ptrace.2.html
| | | | |-- quotactl.2.html
| | | | |-- read.2.html
| | | | |-- readdir.2.html
| | | | |-- readlink.2.html
| | | | |-- readv.2.html
| | | | |-- reboot.2.html
| | | | |-- recv.2.html
| | | | |-- recvfrom.2.html
| | | | |-- recvmsg.2.html
| | | | |-- rename.2.html
| | | | |-- rmdir.2.html
| | | | |-- sbrk.2.html
| | | | |-- sched_get_priority_max.2.html
| | | | |-- sched_get_priority_min.2.html
| | | | |-- sched_getparam.2.html
| | | | |-- sched_getscheduler.2.html
| | | | |-- sched_rr_get_interval.2.html
| | | | |-- sched_setparam.2.html
| | | | |-- sched_setscheduler.2.html
| | | | |-- sched_yield.2.html
| | | | |-- select.2.html
| | | | |-- semctl.2.html
| | | | |-- semget.2.html
| | | | |-- semop.2.html
| | | | |-- send.2.html
| | | | |-- sendmsg.2.html
| | | | |-- sendto.2.html
| | | | |-- setdomainname.2.html
| | | | |-- setegid.2.html
| | | | |-- seteuid.2.html
| | | | |-- setfsgid.2.html
| | | | |-- setfsuid.2.html
| | | | |-- setgid.2.html
| | | | |-- setgroups.2.html
| | | | |-- sethostid.2.html
| | | | |-- sethostname.2.html
| | | | |-- setitimer.2.html
| | | | |-- setpgid.2.html
| | | | |-- setpgrp.2.html
| | | | |-- setpriority.2.html
| | | | |-- setregid.2.html
| | | | |-- setreuid.2.html
| | | | |-- setrlimit.2.html
| | | | |-- setsid.2.html
| | | | |-- setsockopt.2.html
| | | | |-- settimeofday.2.html
| | | | |-- setuid.2.html
| | | | |-- setup.2.html
| | | | |-- shmat.2.html
| | | | |-- shmctl.2.html
| | | | |-- shmdt.2.html
| | | | |-- shmget.2.html
| | | | |-- shmop.2.html
| | | | |-- shutdown.2.html
| | | | |-- sigaction.2.html
| | | | |-- sigblock.2.html
| | | | |-- sigmask.2.html
| | | | |-- signal.2.html
| | | | |-- sigpause.2.html
| | | | |-- sigpending.2.html
| | | | |-- sigprocmask.2.html
| | | | |-- sigreturn.2.html
| | | | |-- sigsuspend.2.html
| | | | |-- sigvec.2.html
| | | | |-- socket.2.html
| | | | |-- socketcall.2.html
| | | | |-- socketpair.2.html
| | | | |-- stat.2.html
| | | | |-- statfs.2.html
| | | | |-- stime.2.html
| | | | |-- stty.2.html
| | | | |-- swapoff.2.html
| | | | |-- swapon.2.html
| | | | |-- symlink.2.html
| | | | |-- sync.2.html
| | | | |-- sysctl.2.html
| | | | |-- sysfs.2.html
| | | | |-- sysinfo.2.html
| | | | |-- syslog.2.html
| | | | |-- time.2.html
| | | | |-- times.2.html
| | | | |-- truncate.2.html
| | | | |-- umask.2.html
| | | | |-- umount.2.html
| | | | |-- uname.2.html
| | | | |-- undocumented.2.html
| | | | |-- unimplemented.2.html
| | | | |-- unlink.2.html
| | | | |-- uselib.2.html
| | | | |-- ustat.2.html
| | | | |-- utime.2.html
| | | | |-- vfork.2.html
| | | | |-- vhangup.2.html
| | | | |-- vm86.2.html
| | | | |-- wait.2.html
| | | | |-- wait3.2.html
| | | | |-- wait4.2.html
| | | | |-- waitpid.2.html
| | | | |-- write.2.html
| | | | `-- writev.2.html
| | | |-- man3
| | | | |-- TRANS.TBL
| | | | |-- abort.3.html
| | | | |-- abs.3.html
| | | | |-- acos.3.html
| | | | |-- acosh.3.html
| | | | |-- addmntent.3.html
| | | | |-- alloca.3.html
| | | | |-- alphasort.3.html
| | | | |-- asctime.3.html
| | | | |-- asin.3.html
| | | | |-- asinh.3.html
| | | | |-- assert.3.html
| | | | |-- atan.3.html
| | | | |-- atan2.3.html
| | | | |-- atanh.3.html
| | | | |-- atexit.3.html
| | | | |-- atof.3.html
| | | | |-- atoi.3.html
| | | | |-- atol.3.html
| | | | |-- bcmp.3.html
| | | | |-- bcopy.3.html
| | | | |-- bsearch.3.html
| | | | |-- bstring.3.html
| | | | |-- byteorder.3.html
| | | | |-- bzero.3.html
| | | | |-- calloc.3.html
| | | | |-- catclose.3.html
| | | | |-- catgets.3.html
| | | | |-- catopen.3.html
| | | | |-- cbrt.3.html
| | | | |-- ceil.3.html
| | | | |-- cfgetispeed.3.html
| | | | |-- cfgetospeed.3.html
| | | | |-- cfmakeraw.3.html
| | | | |-- cfsetispeed.3.html
| | | | |-- cfsetospeed.3.html
| | | | |-- clearerr.3.html
| | | | |-- clock.3.html
| | | | |-- closedir.3.html
| | | | |-- closelog.3.html
| | | | |-- confstr.3.html
| | | | |-- copysign.3.html
| | | | |-- cos.3.html
| | | | |-- cosh.3.html
| | | | |-- crypt.3.html
| | | | |-- ctermid.3.html
| | | | |-- ctime.3.html
| | | | |-- cuserid.3.html
| | | | |-- difftime.3.html
| | | | |-- div.3.html
| | | | |-- dn_comp.3.html
| | | | |-- dn_expand.3.html
| | | | |-- drand48.3.html
| | | | |-- drem.3.html
| | | | |-- ecvt.3.html
| | | | |-- endgrent.3.html
| | | | |-- endhostent.3.html
| | | | |-- endmntent.3.html
| | | | |-- endnetent.3.html
| | | | |-- endprotoent.3.html
| | | | |-- endpwent.3.html
| | | | |-- endservent.3.html
| | | | |-- endusershell.3.html
| | | | |-- endutent.3.html
| | | | |-- erand48.3.html
| | | | |-- erf.3.html
| | | | |-- erfc.3.html
| | | | |-- errno.3.html
| | | | |-- exec.3.html
| | | | |-- execl.3.html
| | | | |-- execle.3.html
| | | | |-- execlp.3.html
| | | | |-- exect.3.html
| | | | |-- execv.3.html
| | | | |-- execvp.3.html
| | | | |-- exit.3.html
| | | | |-- exp.3.html
| | | | |-- expm1.3.html
| | =20| | |-- fabs.3.html
| | | | |-- fclose.3.html
| | | | |-- fcvt.3.html
| | | | |-- fdopen.3.html
| | | | |-- feof.3.html
| | | | |-- ferror.3.html
| | | | |-- fflush.3.html
| | | | |-- ffs.3.html
| | | | |-- fgetc.3.html
| | | | |-- fgetgrent.3.html
| | | | |-- fgetpos.3.html
| | | | |-- fgetpwent.3.html
| | | | |-- fgets.3.html
| | | | |-- fileno.3.html
| | | | |-- finite.3.html
| | | | |-- floor.3.html
| | | | |-- fmod.3.html
| | | | |-- fnmatch.3.html
| | | | |-- fopen.3.html
| | | | |-- fpathconf.3.html
| | | | |-- fprintf.3.html
| | | | |-- fpurge.3.html
| | | | |-- fputc.3.html
| | | | |-- fputs.3.html
| | | | |-- fread.3.html
| | | | |-- free.3.html
| | | | |-- freopen.3.html
| | | | |-- frexp.3.html
| | | | |-- fscanf.3.html
| | | | |-- fseek.3.html
| | | | |-- fsetpos.3.html
| | | | |-- ftell.3.html
| | | | |-- ftime.3.html
| | | | |-- ftok.3.html
| | | | |-- ftw.3.html
| | | | |-- fwrite.3.html
| | | | |-- gcvt.3.html
| | | | |-- get_current_dir_name.3.html
| | | | |-- getc.3.html
| | | | |-- getchar.3.html
| | | | |-- getcwd.3.html
| | | | |-- getdirentries.3.html
| | | | |-- getenv.3.html
| | | | |-- getgrent.3.html
| | | | |-- getgrgid.3.html
| | | | |-- getgrnam.3.html
| | | | |-- gethostbyaddr.3.html
| | | | |-- gethostbyname.3.html
| | | | |-- getlogin.3.html
| | | | |-- getmntent.3.html
| | | | |-- getnetbyaddr.3.html
| | | | |-- getnetbyname.3.html
| | | | |-- getnetent.3.html
| | | | |-- getopt.3.html
| | | | |-- getopt_long.3.html
| | | | |-- getopt_long_only.3.html
| | | | |-- getpass.3.html
| | | | |-- getprotobyname.3.html
| | | | |-- getprotobynumber.3.html
| | | | |-- getprotoent.3.html
| | | | |-- getpw.3.html
| | | | |-- getpwent.3.html
| | | | |-- getpwnam.3.html
| | | | |-- getpwuid.3.html
| | | | |-- gets.3.html
| | | | |-- getservbyname.3.html
| | | | |-- getservbyport.3.html
| | | | |-- getservent.3.html
| | | | |-- getusershell.3.html
| | | | |-- getutent.3.html
| | | | |-- getutid.3.html
| | | | |-- getutline.3.html
| | | | |-- getw.3.html
| | | | |-- getwd.3.html
| | | | |-- glob.3.html
| | | | |-- globfree.3.html
| | | | |-- gmtime.3.html
| | | | |-- hasmntopt.3.html
| | | | |-- hcreate.3.html
| | | | |-- hdestroy.3.html
| | | | |-- herror.3.html
| | | | |-- hsearch.3.html
| | | | |-- htonl.3.html
| | | | |-- htons.3.html
| | | | |-- hypot.3.html
| | | | |-- index.3.html
| | | | |-- index.html
| | | | |-- inet.3.html
| | | | |-- inet_addr.3.html
| | | | |-- inet_aton.3.html
| | | | |-- inet_lnaof.3.html
| | | | |-- inet_makeaddr.3.html
| | | | |-- inet_netof.3.html
| | | | |-- inet_network.3.html
| | | | |-- inet_ntoa.3.html
| | | | |-- infnan.3.html
| | | | |-- initgroups.3.html
| | | | |-- initstate.3.html
| | | | |-- insque.3.html
| | | | |-- intro.3.html
| | | | |-- isalnum.3.html
| | | | |-- isalpha.3.html
| | | | |-- isascii.3.html
| | | | |-- isatty.3.html
| | | | |-- isblank.3.html
| | | | |-- iscntrl.3.html
| | | | |-- isdigit.3.html
| | | | |-- isgraph.3.html
| | | | |-- isinf.3.html
| | | | |-- islower.3.html
| | | | |-- isnan.3.html
| | | | |-- isprint.3.html
| | | | |-- ispunct.3.html
| | | | |-- isspace.3.html
| | | | |-- isupper.3.html
| | | | |-- isxdigit.3.html
| | | | |-- j0.3.html
| | | | |-- j1.3.html
| | | | |-- jn.3.html
| | | | |-- jrand48.3.html
| | | | |-- killpg.3.html
| | | | |-- labs.3.html
| | | | |-- lcong48.3.html
| | | | |-- ldexp.3.html
| | | | |-- ldiv.3.html
| | | | |-- lfind.3.html
| | | | |-- lgamma.3.html
| | | | |-- localeconv.3.html
| | | | |-- localtime.3.html
| | | | |-- log.3.html
| | | | |-- log10.3.html
| | | | |-- log1p.3.html
| | | | |-- longjmp.3.html
| | | | |-- lrand48.3.html
| | | | |-- lsearch.3.html
| | | | |-- malloc.3.html
| | | | |-- mblen.3.html
| | | | |-- mbstowcs.3.html
| | | | |-- mbtowc.3.html
| | | | |-- memccpy.3.html
| | | | |-- memchr.3.html
| | | | |-- memcmp.3.html
| | | | |-- memcpy.3.html
| | | | |-- memfrob.3.html
| | | | |-- memmem.3.html
| | | | |-- memmove.3.html
| | | | |-- memset.3.html
| | | | |-- mkfifo.3.html
| | | | |-- mkstemp.3.html
| | | | |-- mktemp.3.html
| | | | |-- mktime.3.html
| | | | |-- modf.3.html
| | | | |-- mrand48.3.html
| | | | |-- nrand48.3.html
| | | | |-- ntohl.3.html
| | | | |-- ntohs.3.html
| | | | |-- on_exit.3.html
| | | | |-- opendir.3.html
| | | | |-- openlog.3.html
| | | | |-- pathconf.3.html
| | | | |-- pclose.3.html
| | | | |-- perror.3.html
| | | | |-- popen.3.html
| | | | |-- pow.3.html
| | | | |-- printf.3.html
| | | | |-- psignal.3.html
| | | | |-- putc.3.html
| | | | |-- putchar.3.html
| | | | |-- putenv.3.html
| | | | |-- putpwent.3.html
| | | | |-- puts.3.html
| | | | |-- pututline.3.html
| | | | |-- putw.3.html
| | | | |-- qsort.3.html
| | | | |-- raise.3.html
| | | | |-- rand.3.html
| | | | |-- random.3.html
| | | | |-- re_comp.3.html
| | | | |-- re_exec.3.html
| | | | |-- readdir.3.html
| | | | |-- readv.3.html
| | | | |-- realloc.3.html
| | | | |-- realpath.3.html
| | | | |-- regcomp.3.html
| | | | |-- regerror.3.html
| | | | |-- regexec.3.html
| | | | |-- regfree.3.html
| | | | |-- remove.3.html
| | | | |-- remque.3.html
| | | | |-- res_init.3.html
| | | | |-- res_mkquery.3.html
| | | | |-- res_query.3.html
| | | | |-- res_querydomain.3.html
| | | | |-- res_search.3.html
| | | | |-- res_send.3.html
| | | | |-- resolver.3.html
| | | | |-- rewind.3.html
| | | | |-- rewinddir.3.html
| | | | |-- rindex.3.html
| | | | |-- rint.3.html
| | | | |-- scandir.3.html
| | | | |-- scanf.3.html
| | | | |-- seed48.3.html
| | | | |-- seekdir.3.html
| | | | |-- setbuf.3.html
| | | | |-- setbuffer.3.html
| | | | |-- setenv.3.html
| | | | |-- setgrent.3.html
| | | | |-- sethostent.3.html
| | | | |-- setjmp.3.html
| | | | |-- setlinebuf.3.html
| | | | |-- setlocale.3.html
| | | | |-- setmntent.3.html
| | | | |-- setnetent.3.html
| | | | |-- setprotoent.3.html
| | | | |-- setpwent.3.html
| | | | |-- setservent.3.html
| | | | |-- setstate.3.html
| | | | |-- setusershell.3.html
| | | | |-- setutent.3.html
| | | | |-- setvbuf.3.html
| | | | |-- sigaddset.3.html
| | | | |-- sigdelset.3.html
| | | | |-- sigemptyset.3.html
| | | | |-- sigfillset.3.html
| | | | |-- siginterrupt.3.html
| | | | |-- sigismember.3.html
| | | | |-- sigsetops.3.html
| | | | |-- sin.3.html
| | | | |-- sinh.3.html
| | | | |-- sleep.3.html
| | | | |-- snprintf.3.html
| | | | |-- sprintf.3.html
| | | | |-- sqrt.3.html
| | | | |-- srand.3.html
| | | | |-- srand48.3.html
| | | | |-- srandom.3.html
| | | | |-- sscanf.3.html
| | | | |-- stdarg.3.html
| | | | |-- stdio.3.html
| | | | |-- stpcpy.3.html
| | | | |-- strcasecmp.3.html
| | | | |-- strcat.3.html
| | | | |-- strchr.3.html
| | | | |-- strcmp.3.html
| | | | |-- strcoll.3.html
| | | | |-- strcpy.3.html
| | | | |-- strcspn.3.html
| | | | |-- strdup.3.html
| | | | |-- strerror.3.html
| | | | |-- strfry.3.html
| | | | |-- strftime.3.html
| | | | |-- string.3.html
| | | | |-- strlen.3.html
| | | | |-- strncasecmp.3.html
| | | | |-- strncat.3.html
| | | | |-- strncmp.3.html
| | | | |-- strncpy.3.html
| | | | |-- strpbrk.3.html
| | | | |-- strptime.3.html
| | | | |-- strrchr.3.html
| | | | |-- strsep.3.html
| | | | |-- strsignal.3.html
| | | | |-- strspn.3.html
| | | | |-- strstr.3.html
| | | | |-- strtod.3.html
| | | | |-- strtok.3.html
| | | | |-- strtol.3.html
| | | | |-- strtoul.3.html
| | | | |-- strxfrm.3.html
| | | | |-- swab.3.html
| | | | |-- sysconf.3.html
| | | | |-- syslog.3.html
| | | | |-- system.3.html
| | | | |-- tan.3.html
| | | | |-- tanh.3.html
| | | | |-- tcdrain.3.html
| | | | |-- tcflow.3.html
| | | | |-- tcflush.3.html
| | | | |-- tcgetattr.3.html
| | | | |-- tcgetpgrp.3.html
| | | | |-- tcsendbreak.3.html
| | | | |-- tcsetattr.3.html
| | | | |-- tcsetpgrp.3.html
| | | | |-- tdelete.3.html
| | | | |-- telldir.3.html
| | | | |-- tempnam.3.html
| | | | |-- termios.3.html
| | | | |-- tfind.3.html
| | | | |-- tmpfile.3.html
| | | | |-- tmpnam.3.html
| | | | |-- toascii.3.html
| | | | |-- tolower.3.html
| | | | |-- toupper.3.html
| | | | |-- tsearch.3.html
| | | | |-- ttyname.3.html
| | | | |-- twalk.3.html
| | | | |-- tzset.3.html
| | | | |-- undocumented.3.html
| | | | |-- ungetc.3.html
| | | | |-- unsetenv.3.html
| | | | |-- usleep.3.html
| | | | |-- utmpname.3.html
| | | | |-- va_arg.3.html
| | | | |-- va_end.3.html
| | | | |-- va_start.3.html
| | | | |-- vfprintf.3.html
| | | | |-- vfscanf.3.html
| | | | |-- vprintf.3.html
| | | | |-- vscanf.3.html
| | | | |-- vsnprintf.3.html
| | | | |-- vsprintf.3.html
| | | | |-- vsscanf.3.html
| | | | |-- wcstombs.3.html
| | | | |-- wctomb.3.html
| | | | |-- writev.3.html
| | | | |-- y0.3.html
| | | | |-- y1.3.html
| | | | `-- yn.3.html
| | | |-- man4
| | | | |-- TRANS.TBL
| | | | |-- charsets.4.html
| | | | |-- console.4.html
| | | | |-- console_codes.4.html
| | | | |-- fd.4.html
| | | | |-- hd.4.html
| | | | |-- index.html
| | | | |-- intro.4.html
| | | | |-- kmem.4.html
| | | | |-- lp.4.html
| | | | |-- mem.4.html
| | | | |-- mouse.4.html
| | | | |-- null.4.html
| | | | |-- port.4.html
| | | | |-- ram.4.html
| | | | |-- sd.4.html
| | | | |-- st.4.html
| | | | |-- tty.4.html
| | | | |-- ttys.4.html
| | | | |-- vcs.4.html
| | | | |-- vcsa.4.html
| | | | |-- wavelan.4.html
| | | | `-- zero.4.html
| | | |-- man5
| | | | |-- TRANS.TBL
| | | | |-- environ.5.html
| | | | |-- exports.5.html
| | | | |-- fs.5.html
| | | | |-- fstab.5.html
| | | | |-- group.5.html
| | | | |-- index.html
| | | | |-- intro.5.html
| | | | |-- ipc.5.html
| | | | |-- issue.5.html
| | | | |-- lilo.conf.5.html
| | | | |-- motd.5.html
| | | | |-- nfs.5.html
| | | | |-- nologin.5.html
| | | | |-- passwd.5.html
| | | | |-- protocols.5.html
| | | | |-- securetty.5.html
| | | | |-- services.5.html
| | | | |-- shells.5.html
| | | | |-- ttytype.5.html
| | | | |-- utmp.5.html
| | | | `-- wtmp.5.html
| | | |-- man6
| | | | |-- *.html
| | | | |-- TRANS.TBL
| | | | `-- index.html
| | | |-- man7
| | | | |-- TRANS.TBL
| | | | |-- ascii.7.html
| | | | |-- bootparam.7.html
| | | | |-- hier.7.html
| | | | |-- index.html
| | | | |-- intro.7.html
| | | | |-- iso_8859_1.7.html
| | | | |-- latin1.7.html
| | | | |-- locale.7.html
| | | | |-- mailaddr.7.html
| | | | |-- man.7.html
| | | | |-- signal.7.html
| | | | |-- suffixes.7.html
| | | | |-- unicode.7.html
| | | | `-- utf-8.7.html
| | | `-- man8
| | | |-- TRANS.TBL
| | | |-- index.html
| | | |-- intro.8.html
| | | `-- lilo.8.html
| | |-- liste_section_1
| | |-- liste_section_2
| | |-- liste_section_3
| | |-- liste_section_4
| | |-- liste_section_5
| | |-- liste_section_7
| | |-- liste_section_8
| | |-- man-fr-0.3-Annonce
| | |-- man-fr03.tgz
| | |-- man1
| | | |-- TRANS.TBL
| | | |-- basename.1
| | | |-- cat.1
| | | |-- chgrp.1
| | | |-- chmod.1
| | | |-- chown.1
| | | |-- cksum.1
| | | |-- comm.1
| | | |-- cp.1
| | | |-- csplit.1
| | | |-- cut.1
| | | |-- date.1
| | | |-- dd.1
| | | |-- dirname.1
| | | |-- du.1
| | | |-- echo.1
| | | |-- env.1
| | | |-- expand.1
| | | |-- expr.1
| | | |-- false.1
| | | |-- find.1
| | | |-- fmt.1
| | | |-- fold.1
| | | |-- free.1
| | | |-- grep.1
| | | |-- groups.1
| | | |-- head.1
| | | |-- id.1
| | | |-- join.1
| | | |-- logname.1
| | | |-- ls.1
| | | |-- md5sum.1
| | | |-- mkdir.1
| | | |-- mkfifo.1
| | | |-- mknod.1
| | | |-- mv.1
| | | |-- nice.1
| | | |-- nl.1
| | | |-- nohup.1
| | | |-- od.1
| | | |-- paste.1
| | | |-- pathchk.1
| | | |-- pr.1
| | | |-- printenv.1
| | | |-- printf.1
| | | |-- pwd.1
| | | |-- rm.1
| | | |-- rmdir.1
| | | |-- sleep.1
| | | |-- sort.1
| | | |-- split.1
| | | |-- stty.1
| | | |-- su.1
| | | |-- sum.1
| | | |-- tac.1
| | | |-- tail.1
| | | |-- tee.1
| | | |-- test.1
| | | |-- touch.1
| | | |-- tr.1
| | | |-- true.1
| | | |-- tty.1
| | | |-- uname.1
| | | |-- unexpand.1
| | | |-- uniq.1
| | | |-- users.1
| | | |-- wc.1
| | | |-- who.1
| | | |-- whoami.1
| | | `-- yes.1
| | |-- man2
| | | |-- TRANS.TBL
| | | |-- _exit.2
| | | |-- accept.2
| | | |-- access.2
| | | |-- acct.2
| | | |-- adjtimex.2
| | | |-- afs_syscall.2
| | | |-- alarm.2
| | | |-- bdflush.2
| | | |-- bind.2
| | | |-- break.2
| | | |-- brk.2
| | | |-- cacheflush.2
| | | |-- chdir.2
| | | |-- chmod.2
| | | |-- chown.2
| | | |-- chroot.2
| | | |-- clone.2
| | | |-- close.2
| | | |-- connect.2
| | | |-- creat.2
| | | |-- create_module.2
| | | |-- delete_module.2
| | | |-- dup.2
| | | |-- dup2.2
| | | |-- execve.2
| | | |-- fchdir.2
| | | |-- fchmod.2
| | | |-- fchown.2
| | | |-- fcntl.2
| | | |-- fdatasync.2
| | | |-- flock.2
| | | |-- fork.2
| | | |-- fstat.2
| | | |-- fstatfs.2
| | | |-- fsync.2
| | | |-- ftruncate.2
| | | |-- get_kernel_syms.2
| | | |-- getdents.2
| | | |-- getdomainname.2
| | | |-- getdtablesize.2
| | | |-- getegid.2
| | | |-- geteuid.2
| | | |-- getgid.2
| | | |-- getgroups.2
| | | |-- gethostid.2
| | | |-- gethostname.2
| | | |-- getitimer.2
| | | |-- getpagesize.2
| | | |-- getpeername.2
| | | |-- getpgid.2
| | | |-- getpgrp.2
| | | |-- getpid.2
| | | |-- getppid.2
| | | |-- getpriority.2
| | | |-- getrlimit.2
| | | |-- getrusage.2
| | | |-- getsid.2
| | | |-- getsockname.2
| | | |-- getsockopt.2
| | | |-- gettimeofday.2
| | | |-- getuid.2
| | | |-- gtty.2
| | | |-- idle.2
| | | |-- init_module.2
| | | |-- intro.2
| | | |-- ioctl.2
| | | |-- ioctl_list.2
| | | |-- ioperm.2
| | | |-- iopl.2
| | | |-- ipc.2
| | | |-- kill.2
| | | |-- killpg.2
| | | |-- link.2
| | | |-- listen.2
| | | |-- llseek.2
| | | |-- lock.2
| | | |-- lseek.2
| | | |-- lstat.2
| | | |-- mkdir.2
| | | |-- mknod.2
| | | |-- mlock.2
| | | |-- mlockall.2
| | | |-- mmap.2
| | | |-- modify_ldt.2
| | | |-- modules.2
| | | |-- mount.2
| | | |-- mprotect.2
| | | |-- mpx.2
| | | |-- mremap.2
| | | |-- msgctl.2
| | | |-- msgget.2
| | | |-- msgop.2
| | | |-- msgrcv.2
| | | |-- msgsnd.2
| | | |-- msync.2
| | | |-- munlock.2
| | | |-- munlockall.2
| | | |-- munmap.2
| | | |-- nanosleep.2
| | | |-- nice.2
| | | |-- obsolete.2
| | | |-- oldfstat.2
| | | |-- oldlstat.2
| | | |-- oldolduname.2
| | | |-- oldstat.2
| | | |-- olduname.2
| | | |-- open.2
| | | |-- outb.2
| | | |-- pause.2
| | | |-- personality.2
| | | |-- phys.2
| | | |-- pipe.2
| | | |-- prof.2
| | | |-- profil.2
| | | |-- ptrace.2
| | | |-- quotactl.2
| | | |-- read.2
| | | |-- readdir.2
| | | |-- readlink.2
| | | |-- readv.2
| | | |-- reboot.2
| | | |-- recv.2
| | | |-- recvfrom.2
| | | |-- recvmsg.2
| | | |-- rename.2
| | | |-- rmdir.2
| | | |-- sbrk.2
| | | |-- sched_get_priority_max.2
| | | |-- sched_get_priority_min.2
| | | |-- sched_getparam.2
| | | |-- sched_getscheduler.2
| | | |-- sched_rr_get_interval.2
| | | |-- sched_setparam.2
| | | |-- sched_setscheduler.2
| | | |-- sched_yield.2
| | | |-- select.2
| | | |-- semctl.2
| | | |-- semget.2
| | | |-- semop.2
| | | |-- send.2
| | | |-- sendmsg.2
| | | |-- sendto.2
| | | |-- setdomainname.2
| | | |-- setegid.2
| | | |-- seteuid.2
| | | |-- setfsgid.2
| | | |-- setfsuid.2
| | | |-- setgid.2
| | | |-- setgroups.2
| | | |-- sethostid.2
| | | |-- sethostname.2
| | | |-- setitimer.2
| | | |-- setpgid.2
| | | |-- setpgrp.2
| | | |-- setpriority.2
| | | |-- setregid.2
| | | |-- setreuid.2
| | | |-- setrlimit.2
| | | |-- setsid.2
| | | |-- setsockopt.2
| | | |-- settimeofday.2
| | | |-- setuid.2
| | | |-- setup.2
| | | |-- shmat.2
| | | |-- shmctl.2
| | | |-- shmdt.2
| | | |-- shmget.2
| | | |-- shmop.2
| | | |-- shutdown.2
| | | |-- sigaction.2
| | | |-- sigblock.2
| | | |-- sigmask.2
| | | |-- signal.2
| | | |-- sigpause.2
| | | |-- sigpending.2
| | | |-- sigprocmask.2
| | | |-- sigreturn.2
| | | |-- sigsuspend.2
| | | |-- sigvec.2
| | | |-- socket.2
| | | |-- socketcall.2
| | | |-- socketpair.2
| | | |-- stat.2
| | | |-- statfs.2
| | | |-- stime.2
| | | |-- stty.2
| | | |-- swapoff.2
| | | |-- swapon.2
| | | |-- symlink.2
| | | |-- sync.2
| | | |-- sysctl.2
| | | |-- sysfs.2
| | | |-- sysinfo.2
| | | |-- syslog.2
| | | |-- time.2
| | | |-- times.2
| | | |-- truncate.2
| | | |-- umask.2
| | | |-- umount.2
| | | |-- uname.2
| | | |-- undocumented.2
| | | |-- unimplemented.2
| | | |-- unlink.2
| | | |-- uselib.2
| | | |-- ustat.2
| | | |-- utime.2
| | | |-- vfork.2
| | | |-- vhangup.2
| | | |-- vm86.2
| | | |-- wait.2
| | | |-- wait3.2
| | | |-- wait4.2
| | | |-- waitpid.2
| | | |-- write.2
| | | `-- writev.2
| | |-- man3
| | | |-- TRANS.TBL
| | | |-- abort.3
| | | |-- abs.3
| | | |-- acos.3
| | | |-- acosh.3
| | | |-- addmntent.3
| | | |-- alloca.3
| | | |-- alphasort.3
| | | |-- asctime.3
| | | |-- asin.3
| | | |-- asinh.3
| | | |-- assert.3
| | | |-- atan.3
| | | |-- atan2.3
| | | |-- atanh.3
| | | |-- atexit.3
| | | |-- atof.3
| | | |-- atoi.3
| | | |-- atol.3
| | | |-- bcmp.3
| | | |-- bcopy.3
| | | |-- bsearch.3
| | | |-- bstring.3
| | | |-- byteorder.3
| | | |-- bzero.3
| | | |-- calloc.3
| | | |-- catclose.3
| | | |-- catgets.3
| | | |-- catopen.3
| | | |-- cbrt.3
| | | |-- ceil.3
| | | |-- cfgetispeed.3
| | | |-- cfgetospeed.3
| | | |-- cfmakeraw.3
| | | |-- cfsetispeed.3
| | | |-- cfsetospeed.3
| | | |-- clearerr.3
| | | |-- clock.3
| | | |-- closedir.3
| | | |-- closelog.3
| | | |-- confstr.3
| | | |-- copysign.3
| | | |-- cos.3
| | | |-- cosh.3
| | | |-- crypt.3
| | | |-- ctermid.3
| | | |-- ctime.3
| | | |-- cuserid.3
| | | |-- difftime.3
| | | |-- div.3
| | | |-- dn_comp.3
| | | |-- dn_expand.3
| | | |-- drand48.3
| | | |-- drem.3
| | | |-- ecvt.3
| | | |-- endgrent.3
| | | |-- endhostent.3
| | | |-- endmntent.3
| | | |-- endnetent.3
| | | |-- endprotoent.3
| | | |-- endpwent.3
| | | |-- endservent.3
| | | |-- endusershell.3
| | | |-- endutent.3
| | | |-- erand48.3
| | | |-- erf.3
| | | |-- erfc.3
| | | |-- errno.3
| | | |-- exec.3
| | | |-- execl.3
| | | |-- execle.3
| | | |-- execlp.3
| | | |-- exect.3
| | | |-- execv.3
| | | |-- execvp.3
| | | |-- exit.3
| | | |-- exp.3
| | | |-- expm1.3
| | | |-- fabs.3
| | | |-- fclose.3
| | | |-- fcvt.3
| | | |-- fdopen.3
| | | |-- feof.3
| | | |-- ferror.3
| | | |-- fflush.3
| | | |-- ffs.3
| | | |-- fgetc.3
| | | |-- fgetgrent.3
| | | |-- fgetpos.3
| | | |-- fgetpwent.3
| | | |-- fgets.3
| | | |-- fileno.3
| | | |-- finite.3
| | | |-- floor.3
| | | |-- fmod.3
| | | |-- fnmatch.3
| | | |-- fopen.3
| | | |-- fpathconf.3
| | | |-- fprintf.3
| | | |-- fpurge.3
| | | |-- fputc.3
| | | |-- fputs.3
| | | |-- fread.3
| | | |-- free.3
| | | |-- freopen.3
| | | |-- frexp.3
| | | |-- fscanf.3
| | | |-- fseek.3
| | | |-- fsetpos.3
| | | |-- ftell.3
| | | |-- ftime.3
| | | |-- ftok.3
| | | |-- ftw.3
| | | |-- fwrite.3
| | | |-- gcvt.3
| | | |-- get_current_dir_name.3
| | | |-- getc.3
| | | |-- getchar.3
| | | |-- getcwd.3
| | | |-- getdirentries.3
| | | |-- getenv.3
| | | |-- getgrent.3
| | | |-- getgrgid.3
| | | |-- getgrnam.3
| | | |-- gethostbyaddr.3
| | | |-- gethostbyname.3
| | | |-- getlogin.3
| | | |-- getmntent.3
| | | |-- getnetbyaddr.3
| | | |-- getnetbyname.3
| | | |-- getnetent.3
| | | |-- getopt.3
| | | |-- getopt_long.3
| | | |-- getopt_long_only.3
| | | |-- getpass.3
| | | |-- getprotobyname.3
| | | |-- getprotobynumber.3
| | | |-- getprotoent.3
| | | |-- getpw.3
| | | |-- getpwent.3
| | | |-- getpwnam.3
| | | |-- getpwuid.3
| | | |-- gets.3
| | | |-- getservbyname.3
| | | |-- getservbyport.3
| | | |-- getservent.3
| | | |-- getusershell.3
| | | |-- getutent.3
| | | |-- getutid.3
| | | |-- getutline.3
| | | |-- getw.3
| | | |-- getwd.3
| | | |-- glob.3
| | | |-- globfree.3
| | | |-- gmtime.3
| | | |-- hasmntopt.3
| | | |-- hcreate.3
| | | |-- hdestroy.3
| | | |-- herror.3
| | | |-- hsearch.3
| | | |-- htonl.3
| | | |-- htons.3
| | | |-- hypot.3
| | | |-- index.3
| | | |-- inet.3
| | | |-- inet_addr.3
| | | |-- inet_aton.3
| | | |-- inet_lnaof.3
| | | |-- inet_makeaddr.3
| | | |-- inet_netof.3
| | | |-- inet_network.3
| | | |-- inet_ntoa.3
| | | |-- infnan.3
| | | |-- initgroups.3
| | | |-- initstate.3
| | | |-- insque.3
| | | |-- intro.3
| | | |-- isalnum.3
| | | |-- isalpha.3
| | | |-- isascii.3
| | | |-- isatty.3
| | | |-- isblank.3
| | | |-- iscntrl.3
| | | |-- isdigit.3
| | | |-- isgraph.3
| | | |-- isinf.3
| | | |-- islower.3
| | | |-- isnan.3
| | | |-- isprint.3
| | | |-- ispunct.3
| | | |-- isspace.3
| | | |-- isupper.3
| | | |-- isxdigit.3
| | | |-- j0.3
| | | |-- j1.3
| | | |-- jn.3
| | | |-- jrand48.3
| | | |-- killpg.3
| | | |-- labs.3
| | | |-- lcong48.3
| | | |-- ldexp.3
| | | |-- ldiv.3
| | | |-- lfind.3
| | | |-- lgamma.3
| | | |-- localeconv.3
| | | |-- localtime.3
| | | |-- log.3
| | | |-- log10.3
| | | |-- log1p.3
| | | |-- longjmp.3
| | | |-- lrand48.3
| | | |-- lsearch.3
| | | |-- malloc.3
| | | |-- mblen.3
| | | |-- mbstowcs.3
| | | |-- mbtowc.3
| | | |-- memccpy.3
| | | |-- memchr.3
| | | |-- memcmp.3
| | | |-- memcpy.3
| | | |-- memfrob.3
| | | |-- memmem.3
| | | |-- memmove.3
| | | |-- memset.3
| | | |-- mkfifo.3
| | | |-- mkstemp.3
| | | |-- mktemp.3
| | | |-- mktime.3
| | | |-- modf.3
| | | |-- mrand48.3
| | | |-- nrand48.3
| | | |-- ntohl.3
| | | |-- ntohs.3
| | | |-- on_exit.3
| | | |-- opendir.3
| | | |-- openlog.3
| | | |-- pathconf.3
| | | |-- pclose.3
| | | |-- perror.3
| | | |-- popen.3
| | | |-- pow.3
| | | |-- printf.3
| | | |-- psignal.3
| | | |-- putc.3
| | | |-- putchar.3
| | | |-- putenv.3
| | | |-- putpwent.3
| | | |-- puts.3
| | | |-- pututline.3
| | | |-- putw.3
| | | |-- qsort.3
| | | |-- raise.3
| | | |-- rand.3
| | | |-- random.3
| | | |-- re_comp.3
| | | |-- re_exec.3
| | | |-- readdir.3
| | | |-- readv.3
| | | |-- realloc.3
| | | |-- realpath.3
| | | |-- regcomp.3
| | | |-- regerror.3
| | | |-- regexec.3
| | | |-- regfree.3
| | | |-- remove.3
| | | |-- remque.3
| | | |-- res_init.3
| | | |-- res_mkquery.3
| | | |-- res_query.3
| | | |-- res_querydomain.3
| | | |-- res_search.3
| | | |-- res_send.3
| | | |-- resolver.3
| | | |-- rewind.3
| | | |-- rewinddir.3
| | | |-- rindex.3
| | | |-- rint.3
| | | |-- scandir.3
| | | |-- scanf.3
| | | |-- seed48.3
| | | |-- seekdir.3
| | | |-- setbuf.3
| | | |-- setbuffer.3
| | | |-- setenv.3
| | | |-- setgrent.3
| | | |-- sethostent.3
| | | |-- setjmp.3
| | | |-- setlinebuf.3
| | | |-- setlocale.3
| | | |-- setmntent.3
| | | |-- setnetent.3
| | | |-- setprotoent.3
| | | |-- setpwent.3
| | | |-- setservent.3
| | | |-- setstate.3
| | | |-- setusershell.3
| | | |-- setutent.3
| | | |-- setvbuf.3
| | | |-- sigaddset.3
| | | |-- sigdelset.3
| | | |-- sigemptyset.3
| | | |-- sigfillset.3
| | | |-- siginterrupt.3
| | | |-- sigismember.3
| | | |-- sigsetops.3
| | | |-- sin.3
| | | |-- sinh.3
| | | |-- sleep.3
| | | |-- snprintf.3
| | | |-- sprintf.3
| | | |-- sqrt.3
| | | |-- srand.3
| | | |-- srand48.3
| | | |-- srandom.3
| | | |-- sscanf.3
| | | |-- stdarg.3
| | | |-- stdio.3
| | | |-- stpcpy.3
| | | |-- strcasecmp.3
| | | |-- strcat.3
| | | |-- strchr.3
| | | |-- strcmp.3
| | | |-- strcoll.3
| | | |-- strcpy.3
| | | |-- strcspn.3
| | | |-- strdup.3
| | | |-- strerror.3
| | | |-- strfry.3
| | | |-- strftime.3
| | | |-- string.3
| | | |-- strlen.3
| | | |-- strncasecmp.3
| | | |-- strncat.3
| | | |-- strncmp.3
| | | |-- strncpy.3
| | | |-- strpbrk.3
| | | |-- strptime.3
| | | |-- strrchr.3
| | | |-- strsep.3
| | | |-- strsignal.3
| | | |-- strspn.3
| | | |-- strstr.3
| | | |-- strtod.3
| | | |-- strtok.3
| | | |-- strtol.3
| | | |-- strtoul.3
| | | |-- strxfrm.3
| | | |-- swab.3
| | | |-- sysconf.3
| | | |-- syslog.3
| | | |-- system.3
| | | |-- tan.3
| | | |-- tanh.3
| | | |-- tcdrain.3
| | | |-- tcflow.3
| | | |-- tcflush.3
| | | |-- tcgetattr.3
| | | |-- tcgetpgrp.3
| | | |-- tcsendbreak.3
| | | |-- tcsetattr.3
| | | |-- tcsetpgrp.3
| | | |-- tdelete.3
| | | |-- telldir.3
| | | |-- tempnam.3
| | | |-- termios.3
| | | |-- tfind.3
| | | |-- tmpfile.3
| | | |-- tmpnam.3
| | | |-- toascii.3
| | | |-- tolower.3
| | | |-- toupper.3
| | | |-- tsearch.3
| | | |-- ttyname.3
| | | |-- twalk.3
| | | |-- tzset.3
| | | |-- undocumented.3
| | | |-- ungetc.3
| | | |-- unsetenv.3
| | | |-- usleep.3
| | | |-- utmpname.3
| | | |-- va_arg.3
| | | |-- va_end.3
| | | |-- va_start.3
| | | |-- vfprintf.3
| | | |-- vfscanf.3
| | | |-- vprintf.3
| | | |-- vscanf.3
| | | |-- vsnprintf.3
| | | |-- vsprintf.3
| | | |-- vsscanf.3
| | | |-- wcstombs.3
| | | |-- wctomb.3
| | | |-- writev.3
| | | |-- y0.3
| | | |-- y1.3
| | | `-- yn.3
| | |-- man4
| | | |-- TRANS.TBL
| | | |-- charsets.4
| | | |-- console.4
| | | |-- console_codes.4
| | | |-- fd.4
| | | |-- hd.4
| | | |-- intro.4
| | | |-- kmem.4
| | | |-- lp.4
| | | |-- mem.4
| | | |-- mouse.4
| | | |-- null.4
| | | |-- port.4
| | | |-- ram.4
| | | |-- sd.4
| | | |-- st.4
| | | |-- tty.4
| | | |-- ttys.4
| | | |-- vcs.4
| | | |-- vcsa.4
| | | |-- wavelan.4
| | | `-- zero.4
| | |-- man5
| | | |-- TRANS.TBL
| | | |-- environ.5
| | | |-- exports.5
| | | |-- fs.5
| | | |-- fstab.5
| | | |-- group.5
| | | |-- intro.5
| | | |-- ipc.5
| | | |-- issue.5
| | | |-- lilo.conf.5
| | | |-- motd.5
| | | |-- nfs.5
| | | |-- nologin.5
| | | |-- passwd.5
| | | |-- protocols.5
| | | |-- securetty.5
| | | |-- services.5
| | | |-- shells.5
| | | |-- ttytype.5
| | | |-- utmp.5
| | | `-- wtmp.5
| | |-- man7
| | | |-- TRANS.TBL
| | | |-- ascii.7
| | | |-- bootparam.7
| | | |-- hier.7
| | | |-- intro.7
| | | |-- iso_8859_1.7
| | | |-- latin1.7
| | | |-- locale.7
| | | |-- mailaddr.7
| | | |-- man.7
| | | |-- signal.7
| | | |-- suffixes.7
| | | |-- unicode.7
| | | `-- utf-8.7
| | `-- man8
| | |-- TRANS.TBL
| | |-- intro.8
| | `-- lilo.8
| |-- PDF-UTILS
| | |-- TRANS.TBL
| | |-- acroread.311
| | | |-- TRANS.TBL
| | | |-- acroread.exe
| | | |-- acroread.txt
| | | `-- install.txt
| | |-- xpdf-0.6-linux2.0-elf
| | | |-- CHANGES
| | | |-- README
| | | |-- TRANS.TBL
| | | |-- pdftops
| | | |-- pdftops.1
| | | |-- xpdf
| | | `-- xpdf.1
| | `-- xpdf-0.6-sources
| | |-- ANNOUNCE
| | |-- CHANGES
| | |-- Makefile
| | |-- Makefile.config
| | |-- README
| | |-- TRANS.TBL
| | |-- goo
| | | |-- GString.cc
| | | |-- GString.h
| | | |-- Makefile
| | | |-- TRANS.TBL
| | | |-- cover.c
| | | |-- cover.h
| | | |-- fileNames.cc
| | | |-- fileNames.h
| | | |-- gmem.c
| | | |-- gmem.h
| | | |-- gmempp.cc
| | | |-- gtypes.h
| | | |-- parseargs.c
| | | |-- parseargs.h
| | | |-- vmscomp.com
| | | `-- vmsdecccomp.com
| | |-- ltk
| | | |-- LTKAll.h
| | | |-- LTKApp.cc
| | | |-- LTKApp.h
| | | |-- LTKBorder.cc
| | | |-- LTKBorder.h
| | | |-- LTKBox.cc
| | | |-- LTKBox.h
| | | |-- LTKButton.cc
| | | |-- LTKButton.h
| | | |-- LTKCanvas.cc
| | | |-- LTKCanvas.h
| | | |-- LTKConfig.h
| | | |-- LTKDblBufCanvas.cc
| | | |-- LTKDblBufCanvas.h
| | | |-- LTKEmpty.cc
| | | |-- LTKEmpty.h
| | | |-- LTKLabel.cc
| | | |-- LTKLabel.h
| | | |-- LTKMisc.cc
| | | |-- LTKMisc.h
| | | |-- LTKResources.cc
| | | |-- LTKResources.h
| | | |-- LTKScrollbar.cc
| | | |-- LTKScrollbar.h
| | | |-- LTKScrollingCanvas.cc
| | | |-- LTKScrollingCanvas.h
| | | |-- LTKTextIn.cc
| | | |-- LTKTextIn.h
| | | |-- LTKWidget.cc
| | | |-- LTKWidget.h
| | | |-- LTKWindow.cc
| | | |-- LTKWindow.h
| | | |-- Makefile
| | | |-- TRANS.TBL
| | | |-- ltkbuild-widgets.h
| | | |-- ltkbuild.cc
| | | |-- vmscomp.com
| | | `-- vmsdecccomp.com
| | |-- pdftops.1
| | |-- pdftops.hlp
| | |-- vmscomp.com
| | |-- vmsdecccomp.com
| | |-- xpdf
| | | |-- Array.cc
| | | |-- Array.h
| | | |-- Catalog.cc
| | | |-- Catalog.h
| | | |-- Dict.cc
| | | |-- Dict.h
| | | |-- Error.cc
| | | |-- Error.h
| | | |-- FontInfo.h
| | | |-- Gfx.cc
| | | |-- Gfx.h
| | | |-- GfxFont.cc
| | | |-- GfxFont.h
| | | |-- GfxState.cc
| | | |-- GfxState.h
| | | |-- Lexer.cc
| | | |-- Lexer.h
| | | |-- Link.cc
| | | |-- Link.h
| | | |-- Makefile
| | | |-- Object.cc
| | | |-- Object.h
| | | |-- OutputDev.cc
| | | |-- OutputDev.h
| | | |-- PDFDoc.cc
| | | |-- PDFDoc.h
| | | |-- PSOutputDev.cc
| | | |-- PSOutputDev.h
| | | |-- Page.cc
| | | |-- Page.h
| | | |-- Params.cc
| | | |-- Params.h
| | | |-- Parser.cc
| | | |-- Parser.h
| | | |-- Stream-CCITT.h
| | | |-- Stream.cc
| | | |-- Stream.h
| | | |-- TRANS.TBL
| | | |-- XOutputDev.cc
| | | |-- XOutputDev.h
| | | |-- XOutputFontInfo.h
| | | |-- XRef.cc
| | | |-- XRef.h
| | | |-- about.xbm
| | | |-- config.h
| | | |-- dblLeftArrow.xbm
| | | |-- dblRightArrow.xbm
| | | |-- leftArrow.xbm
| | | |-- pdftops.cc
| | | |-- postscript.xbm
| | | |-- rightArrow.xbm
| | | |-- rotateCCW.xbm
| | | |-- rotateCW.xbm
| | | |-- vms_unlink.c
| | | |-- vmscomp.com
| | | |-- vmsdecccomp.com
| | | |-- xpdf-ltk.h
| | | |-- xpdf.cc
| | | |-- xpdf.ltk
| | | |-- zoomIn.xbm
| | | `-- zoomOut.xbm
| | |-- xpdf.1
| | `-- xpdf.hlp
| |-- PPP
| | |-- TRANS.TBL
| | |-- intmodem.txt
| | |-- ppp.htm
| | |-- rouge.gif
| | `-- tkppp.gif
| |-- TEX
| | |-- TRANS.TBL
| | `-- tex-book.pdf
| |-- TRANS.TBL
| |-- VI
| | |-- TRANS.TBL
| | `-- memovif.pdf
| `-- bds222
| |-- TRANS.TBL
| |-- bds222.tgz
| |-- bds_dvi.gz
| |-- bdsps.gz
| |-- html
| | |-- TRANS.TBL
| | |-- footnode.html
| | |-- gs.html
| | |-- img1.gif
| | |-- img10.gif
| | |-- img100.gif
| | |-- img101.gif
| | |-- img102.gif
| | |-- img103.gif
| | |-- img104.gif
| | |-- img105.gif
| | |-- img106.gif
| | |-- img107.gif
| | |-- img108.gif
| | |-- img109.gif
| | |-- img11.gif
| | |-- img110.gif
| | |-- img111.gif
| | |-- img112.gif
| | |-- img113.gif
| | |-- img114.gif
| | |-- img115.gif
| | |-- img116.gif
| | |-- img117.gif
| | |-- img118.gif
| | |-- img119.gif
| | |-- img12.gif
| | |-- img120.gif
| | |-- img121.gif
| | |-- img122.gif
| | |-- img123.gif
| | |-- img124.gif
| | |-- img125.gif
| | |-- img126.gif
| | |-- img127.gif
| | |-- img128.gif
| | |-- img129.gif
| | |-- img13.gif
| | |-- img130.gif
| | |-- img131.gif
| | |-- img132.gif
| | |-- img133.gif
| | |-- img134.gif
| | |-- img135.gif
| | |-- img136.gif
| | |-- img137.gif
| | |-- img138.gif
| | |-- img139.gif
| | |-- img14.gif
| | |-- img140.gif
| | |-- img141.gif
| | |-- img142.gif
| | |-- img143.gif
| | |-- img144.gif
| | |-- img145.gif
| | |-- img146.gif
| | |-- img147.gif
| | |-- img148.gif
| | |-- img149.gif
| | |-- img15.gif
| | |-- img150.gif
| | |-- img151.gif
| | |-- img152.gif
| | |-- img153.gif
| | |-- img154.gif
| | |-- img155.gif
| | |-- img156.gif
| | |-- img157.gif
| | |-- img158.gif
| | |-- img159.gif
| | |-- img16.gif
| | |-- img160.gif
| | |-- img161.gif
| | |-- img162.gif
| | |-- img163.gif
| | |-- img164.gif
| | |-- img165.gif
| | |-- img166.gif
| | |-- img167.gif
| | |-- img168.gif
| | |-- img169.gif
| | |-- img17.gif
| | |-- img170.gif
| | |-- img171.gif
| | |-- img172.gif
| | |-- img173.gif
| | |-- img174.gif
| | |-- img175.gif
| | |-- img176.gif
|=20 | |-- img177.gif
| | |-- img178.gif
| | |-- img179.gif
| | |-- img18.gif
| | |-- img180.gif
| | |-- img181.gif
| | |-- img182.gif
| | |-- img183.gif
| | |-- img184.gif
| | |-- img185.gif
| | |-- img186.gif
| | |-- img187.gif
| | |-- img188.gif
| | |-- img189.gif
| | |-- img19.gif
| | |-- img190.gif
| | |-- img191.gif
| | |-- img192.gif
| | |-- img193.gif
| | |-- img194.gif
| | |-- img195.gif
| | |-- img196.gif
| | |-- img197.gif
| | |-- img198.gif
| | |-- img199.gif
| | |-- img2.gif
| | |-- img20.gif
| | |-- img200.gif
| | |-- img201.gif
| | |-- img202.gif
| | |-- img203.gif
| | |-- img204.gif
| | |-- img205.gif
| | |-- img206.gif
| | |-- img207.gif
| | |-- img208.gif
| | |-- img209.gif
| | |-- img21.gif
| | |-- img210.gif
| | |-- img211.gif
| | |-- img212.gif
| | |-- img213.gif
| | |-- img214.gif
| | |-- img215.gif
| | |-- img216.gif
| | |-- img217.gif
| | |-- img218.gif
| | |-- img219.gif
| | |-- img22.gif
| | |-- img220.gif
| | |-- img221.gif
| | |-- img222.gif
| | |-- img223.gif
| | |-- img224.gif
| | |-- img225.gif
| | |-- img226.gif
| | |-- img227.gif
| | |-- img228.gif
| | |-- img229.gif
| | |-- img23.gif
| | |-- img230.gif
| | |-- img231.gif
| | |-- img232.gif
| | |-- img233.gif
| | |-- img234.gif
| | |-- img235.gif
| | |-- img236.gif
| | |-- img237.gif
| | |-- img238.gif
| | |-- img239.gif
| | |-- img24.gif
| | |-- img240.gif
| | |-- img241.gif
| | |-- img242.gif
| | |-- img243.gif
| | |-- img244.gif
| | |-- img245.gif
| | |-- img246.gif
| | |-- img247.gif
| | |-- img248.gif
| | |-- img249.gif
| | |-- img25.gif
| | |-- img250.gif
| | |-- img251.gif
| | |-- img252.gif
| | |-- img253.gif
| | |-- img254.gif
| | |-- img255.gif
| | |-- img256.gif
| | |-- img257.gif
| | |-- img258.gif
| | |-- img259.gif
| | |-- img26.gif
| | |-- img260.gif
| | |-- img261.gif
| | |-- img262.gif
| | |-- img263.gif
| | |-- img264.gif
| | |-- img265.gif
| | |-- img266.gif
| | |-- img267.gif
| | |-- img268.gif
| | |-- img269.gif
| | |-- img27.gif
| | |-- img270.gif
| | |-- img271.gif
| | |-- img272.gif
| | |-- img273.gif
| | |-- img274.gif
| | |-- img275.gif
| | |-- img276.gif
| | |-- img277.gif
| | |-- img278.gif
| | |-- img279.gif
| | |-- img28.gif
| | |-- img280.gif
| | |-- img281.gif
| | |-- img282.gif
| | |-- img283.gif
| | |-- img284.gif
| | |-- img285.gif
| | |-- img286.gif
| | |-- img287.gif
| | |-- img288.gif
| | |-- img289.gif
| | |-- img29.gif
| | |-- img290.gif
| | |-- img291.gif
| | |-- img292.gif
| | |-- img293.gif
| | |-- img294.gif
| | |-- img295.gif
| | |-- img296.gif
| | |-- img297.gif
| | |-- img298.gif
| | |-- img299.gif
| | |-- img3.gif
| | |-- img30.gif
| | |-- img300.gif
| | |-- img301.gif
| | |-- img302.gif
| | |-- img303.gif
| | |-- img304.gif
| | |-- img305.gif
| | |-- img306.gif
| | |-- img307.gif
| | |-- img308.gif
| | |-- img309.gif
| | |-- img31.gif
| | |-- img310.gif
| | |-- img311.gif
| | |-- img312.gif
| | |-- img313.gif
| | |-- img314.gif
| | |-- img315.gif
| | |-- img316.gif
| | |-- img317.gif
| | |-- img318.gif
| | |-- img319.gif
| | |-- img32.gif
| | |-- img320.gif
| | |-- img321.gif
| | |-- img322.gif
| | |-- img323.gif
| | |-- img324.gif
| | |-- img325.gif
| | |-- img33.gif
| | |-- img34.gif
| | |-- img35.gif
| | |-- img36.gif
| | |-- img37.gif
| | |-- img38.gif
| | |-- img39.gif
| | |-- img4.gif
| | |-- img40.gif
| | |-- img41.gif
| | |-- img42.gif
| | |-- img43.gif
| | |-- img44.gif
| | |-- img45.gif
| | |-- img46.gif
| | |-- img47.gif
| | |-- img48.gif
| | |-- img49.gif
| | |-- img5.gif
| | |-- img50.gif
| | |-- img51.gif
| | |-- img52.gif
| | |-- img53.gif
| | |-- img54.gif
| | |-- img55.gif
| | |-- img56.gif
| | |-- img57.gif
| | |-- img58.gif
| | |-- img59.gif
| | |-- img6.gif
| | |-- img60.gif
| | |-- img61.gif
| | |-- img62.gif
| | |-- img63.gif
| | |-- img64.gif
| | |-- img65.gif
| | |-- img66.gif
| | |-- img67.gif
| | |-- img68.gif
| | |-- img69.gif
| | |-- img7.gif
| | |-- img70.gif
| | |-- img71.gif
| | |-- img72.gif
| | |-- img73.gif
| | |-- img74.gif
| | |-- img75.gif
| | |-- img76.gif
| | |-- img77.gif
| | |-- img78.gif
| | |-- img79.gif
| | |-- img8.gif
| | |-- img80.gif
| | |-- img81.gif
| | |-- img82.gif
| | |-- img83.gif
| | |-- img84.gif
| | |-- img85.gif
| | |-- img86.gif
| | |-- img87.gif
| | |-- img88.gif
| | |-- img89.gif
| | |-- img9.gif
| | |-- img90.gif
| | |-- img91.gif
| | |-- img92.gif
| | |-- img93.gif
| | |-- img94.gif
| | |-- img95.gif
| | |-- img96.gif
| | |-- img97.gif
| | |-- img98.gif
| | |-- img99.gif
| | |-- node1.html
| | |-- node10.html
| | |-- node100.html
| | |-- node101.html
| | |-- node102.html
| | |-- node103.html
| | |-- node104.html
| | |-- node105.html
| | |-- node106.html
| | |-- node107.html
| | |-- node108.html
| | |-- node109.html
| | |-- node11.html
| | |-- node110.html
| | |-- node111.html
| | |-- node112.html
| | |-- node113.html
| | |-- node114.html
| | |-- node115.html
| | |-- node116.html
| | |-- node117.html
| | |-- node118.html
| | |-- node119.html
| | |-- node12.html
| | |-- node120.html
| | |-- node121.html
| | |-- node122.html
| | |-- node123.html
| | |-- node124.html
| | |-- node125.html
| | |-- node126.html
| | |-- node127.html
| | |-- node128.html
| | |-- node129.html
| | |-- node13.html
| | |-- node130.html
| | |-- node131.html
| | |-- node132.html
| | |-- node133.html
| | |-- node134.html
| | |-- node135.html
| | |-- node136.html
| | |-- node137.html
| | |-- node138.html
| | |-- node139.html
| | |-- node14.html
| | |-- node140.html
| | |-- node141.html
| | |-- node142.html
| | |-- node143.html
| | |-- node144.html
| | |-- node145.html
| | |-- node146.html
| | |-- node147.html
| | |-- node148.html
| | |-- node149.html
| | |-- node15.html
| | |-- node150.html
| | |-- node151.html
| | |-- node152.html
| | |-- node153.html
| | |-- node154.html
| | |-- node155.html
| | |-- node156.html
| | |-- node157.html
| | |-- node158.html
| | |-- node159.html
| | |-- node16.html
| | |-- node160.html
| | |-- node161.html
| | |-- node162.html
| | |-- node163.html
| | |-- node164.html
| | |-- node165.html
| | |-- node166.html
| | |-- node167.html
| | |-- node168.html
| | |-- node169.html
| | |-- node17.html
| | |-- node170.html
| | |-- node171.html
| | |-- node172.html
| | |-- node173.html
| | |-- node174.html
| | |-- node175.html
| | |-- node176.html
| | |-- node177.html
| | |-- node178.html
| | |-- node179.html
| | |-- node18.html
| | |-- node180.html
| | |-- node181.html
| | |-- node182.html
| | |-- node183.html
| | |-- node184.html
| | |-- node185.html
| | |-- node186.html
| | |-- node187.html
| | |-- node188.html
| | |-- node189.html
| | |-- node19.html
| | |-- node190.html
| | |-- node191.html
| | |-- node192.html
| | |-- node193.html
| | |-- node194.html
| | |-- node195.html
| | |-- node196.html
| | |-- node197.html
| | |-- node198.html
| | |-- node199.html
| | |-- node2.html
| | |-- node20.html
| | |-- node200.html
| | |-- node201.html
| | |-- node202.html
| | |-- node203.html
| | |-- node204.html
| | |-- node205.html
| | |-- node206.html
| | |-- node207.html
| | |-- node208.html
| | |-- node209.html
| | |-- node21.html
| | |-- node210.html
| | |-- node211.html
| =20| |-- node212.html
| | |-- node213.html
| | |-- node214.html
| | |-- node215.html
| | |-- node216.html
| | |-- node217.html
| | |-- node218.html
| | |-- node219.html
| | |-- node22.html
| | |-- node220.html
| | |-- node221.html
| | |-- node222.html
| | |-- node223.html
| | |-- node224.html
| | |-- node225.html
| | |-- node226.html
| | |-- node227.html
| | |-- node228.html
| | |-- node229.html
| | |-- node23.html
| | |-- node230.html
| | |-- node231.html
| | |-- node232.html
| | |-- node233.html
| | |-- node234.html
| | |-- node235.html
| | |-- node236.html
| | |-- node237.html
| | |-- node238.html
| | |-- node239.html
| | |-- node24.html
| | |-- node240.html
| | |-- node241.html
| | |-- node242.html
| | |-- node243.html
| | |-- node244.html
| | |-- node245.html
| | |-- node246.html
| | |-- node247.html
| | |-- node248.html
| | |-- node249.html
| | |-- node25.html
| | |-- node250.html
| | |-- node251.html
| | |-- node252.html
| | |-- node253.html
| | |-- node254.html
| | |-- node255.html
| | |-- node256.html
| | |-- node257.html
| | |-- node258.html
| | |-- node259.html
| | |-- node26.html
| | |-- node260.html
| | |-- node261.html
| | |-- node262.html
| | |-- node263.html
| | |-- node264.html
| | |-- node265.html
| | |-- node266.html
| | |-- node267.html
| | |-- node268.html
| | |-- node269.html
| | |-- node27.html
| | |-- node270.html
| | |-- node271.html
| | |-- node28.html
| | |-- node29.html
| | |-- node3.html
| | |-- node30.html
| | |-- node31.html
| | |-- node32.html
| | |-- node33.html
| | |-- node34.html
| | |-- node35.html
| | |-- node36.html
| | |-- node37.html
| | |-- node38.html
| | |-- node39.html
| | |-- node4.html
| | |-- node40.html
| | |-- node41.html
| | |-- node42.html
| | |-- node43.html
| | |-- node44.html
| | |-- node45.html
| | |-- node46.html
| | |-- node47.html
| | |-- node48.html
| | |-- node49.html
| | |-- node5.html
| | |-- node50.html
| | |-- node51.html
| | |-- node52.html
| | |-- node53.html
| | |-- node54.html
| | |-- node55.html
| | |-- node56.html
| | |-- node57.html
| | |-- node58.html
| | |-- node59.html
| | |-- node6.html
| | |-- node60.html
| | |-- node61.html
| | |-- node62.html
| | |-- node63.html
| | |-- node64.html
| | |-- node65.html
| | |-- node66.html
| | |-- node67.html
| | |-- node68.html
| | |-- node69.html
| | |-- node7.html
| | |-- node70.html
| | |-- node71.html
| | |-- node72.html
| | |-- node73.html
| | |-- node74.html
| | |-- node75.html
| | |-- node76.html
| | |-- node77.html
| | |-- node78.html
| | |-- node79.html
| | |-- node8.html
| | |-- node80.html
| | |-- node81.html
| | |-- node82.html
| | |-- node83.html
| | |-- node84.html
| | |-- node85.html
| | |-- node86.html
| | |-- node87.html
| | |-- node88.html
| | |-- node89.html
| | |-- node9.html
| | |-- node90.html
| | |-- node91.html
| | |-- node92.html
| | |-- node93.html
| | |-- node94.html
| | |-- node95.html
| | |-- node96.html
| | |-- node97.html
| | |-- node98.html
| | `-- node99.html
| `-- icones
| |-- TRANS.TBL
| |-- bdlinux.gif
| |-- contg.gif
| |-- cross_ref_motif.gif
| |-- foot_motif.gif
| |-- indexg.gif
| |-- leftg.gif
| |-- point-rg.gif
| |-- previgr.gif
| |-- rightg.gif
| |-- rouge.gif
| |-- square.gif
| |-- topg.gif
| |-- up_motgr.gif
| `-- upg.gif
|-- FAQ -> docs/misc/RedHat-FAQ.txt
|-- INSTALL
| |-- TRANS.TBL
| |-- autoboot
| | |-- TRANS.TBL
| | |-- autoboot.bat
| | |-- initrd.img
| | |-- loadlin.exe
| | `-- vmlinuz
| |-- autoboot.bat
| |-- choix.exe
| |-- flop1440.bat
| |-- images
| | |-- TRANS.TBL
| | |-- generic
| | | |-- TRANS.TBL
| | | |-- boot.img
| | | `-- supp.img
| | |-- lisezmoi.txt
| | `-- scsi
| | |-- TRANS.TBL
| | |-- aha1540
| | | |-- TRANS.TBL
| | | |-- aha1540.img
| | | `-- config
| | |-- aha1740
| | | |-- TRANS.TBL
| | | |-- aha1740.img
| | | `-- config
| | |-- aic7xxx
| | | |-- TRANS.TBL
| | | |-- aic7xxx.img
| | | `-- config
| | |-- buslogic
| | | |-- TRANS.TBL
| | | |-- buslogic.img
| | | `-- config
| | |-- eata_dma
| | | |-- TRANS.TBL
| | | |-- config
| | | `-- eata_dma.img
| | |-- lisezmoi.txt
| | |-- supp.img
| | | |-- TRANS.TBL
| | | |-- readme
| | | `-- supp.img
| | `-- ultrstor
| | |-- TRANS.TBL
| | |-- config
| | `-- ultrstor.img
| |-- install.bat
| |-- man-rh41.txt
| |-- rawrite.exe
| `-- voir.com
|-- README
|-- RPM-PGP-KEY
|-- RedHat
| |-- RPMS
| | |-- ElectricFence-2.0.5-4.i386.rpm
| | |-- ImageMagick-3.7-5.i386.rpm
| | |-- ImageMagick-devel-3.7-5.i386.rpm
| | |-- MAKEDEV-2.2-9.i386.rpm
| | |-- NetKit-B-0.08-13.i386.rpm
| | |-- SysVinit-2.64-7.i386.rpm
| | |-- TRANS.TBL
| | |-- TheNextLevel-1.0-2.i386.rpm
| | |-- X11R6-contrib-3.2-1.i386.rpm
| | |-- XFree86-100dpi-fonts-3.2-4.i386.rpm
| | |-- XFree86-3.2-4.i386.rpm
| | |-- XFree86-75dpi-fonts-3.2-4.i386.rpm
| | |-- XFree86-8514-3.2-4.i386.rpm
| | |-- XFree86-AGX-3.2-4.i386.rpm
| | |-- XFree86-I128-3.2-4.i386.rpm
| | |-- XFree86-Mach32-3.2-4.i386.rpm
| | |-- XFree86-Mach64-3.2-4.i386.rpm
| | |-- XFree86-Mach8-3.2-4.i386.rpm
| | |-- XFree86-Mono-3.2-4.i386.rpm
| | |-- XFree86-P9000-3.2-4.i386.rpm
| | |-- XFree86-S3-3.2-4.i386.rpm
| | |-- XFree86-S3V-3.2-4.i386.rpm
| | |-- XFree86-SVGA-3.2-4.i386.rpm
| | |-- XFree86-VGA16-3.2-4.i386.rpm
| | |-- XFree86-W32-3.2-4.i386.rpm
| | |-- XFree86-XF86Setup-3.2-4.i386.rpm
| | |-- XFree86-devel-3.2-4.i386.rpm
| | |-- XFree86-libs-3.2-4.i386.rpm
| | |-- Xaw3d-1.3-6.i386.rpm
| | |-- Xaw3d-devel-1.3-6.i386.rpm
| | |-- Xconfigurator-2.6-5.i386.rpm
| | |-- acm-4.7-5.i386.rpm
| | |-- adduser-1.2-1.i386.rpm
| | |-- adjtimex-1.2-4.i386.rpm
| | |-- amd-920824upl102-6.i386.rpm
| | |-- anonftp-2.3-2.i386.rpm
| | |-- aout-libs-1.4-6.i386.rpm
| | |-- apache-1.1.1-8.i386.rpm
| | |-- arena-0.98.beta3-3.i386.rpm
| | |-- ash-0.2-7.i386.rpm
| | |-- at-2.9b-2.i386.rpm
| | |-- aumix-0.2-4.i386.rpm
| | |-- autoconf-2.12-1.i386.rpm
| | |-- bash-1.14.7-1.i386.rpm
| | |-- basic-1.20-7.i386.rpm
| | |-- bc-1.03-6.i386.rpm
| | |-- bdflush-1.5-5.i386.rpm
| | |-- bin86-0.3-3.i386.rpm
| | |-- bind-4.9.5-2.i386.rpm
| | |-- bind-utils-4.9.5-2.i386.rpm
| | |-- binutils-2.7.0.2-4.i386.rpm
| | |-- bison-1.25-1.i386.rpm
| | |-- blt-1.9-5.i386.rpm
| | |-- blt-devel-1.9-5.i386.rpm
| | |-- bm2font-3.0-6.i386.rpm
| | |-- bootp-2.4.3-2.i386.rpm
| | |-- bootpc-050-2.i386.rpm
| | |-- bsd-games-1.3-6.i386.rpm
| | |-- byacc-1.9-4.i386.rpm
| | |-- caching-nameserver-1.0-1.i386.rpm
| | |-- cdecl-2.5-3.i386.rpm
| | |-- cdp-0.33-6.i386.rpm
| | |-- christminster-3-2.i386.rpm
| | |-- cmu-snmp-3.2-3.i386.rpm
| | |-- cmu-snmp-devel-3.2-3.i386.rpm
| | |-- cmu-snmp-utils-3.2-3.i386.rpm
| | |-- colour-yahtzee-1.0-3.i386.rpm
| | |-- control-panel-2.6-1.i386.rpm
| | |-- cpio-2.4.2-3.i386.rpm
| | |-- cproto-4.4-4.i386.rpm
| | |-- cracklib-2.5-1.i386.rpm
| | |-- cracklib-dicts-2.5-1.i386.rpm
| | |-- crontabs-1.5-1.i386.rpm
| | |-- csh-5.2.6-5.i386.rpm
| | |-- cvs-1.8.1-1.i386.rpm
| | |-- cxhextris-1.0-5.i386.rpm
| | |-- db-1.85-10.i386.rpm
| | |-- db-devel-1.85-10.i386.rpm
| | |-- dev-2.4-1.i386.rpm
| | |-- dialog-0.6-7.i386.rpm
| | |-- diffstat-1.25-1.i386.rpm
| | |-- diffutils-2.7-5.i386.rpm
| | |-- dip-3.3.7o-8.i386.rpm
| | |-- doom-1.8-7.i386.rpm
| | |-- dosemu-0.64.1-1.i386.rpm
| | |-- dump-0.3-5.i386.rpm
| | |-- e2fsprogs-1.04-8.i386.rpm
| | |-- e2fsprogs-devel-1.04-8.i386.rpm
| | |-- ed-0.2-5.i386.rpm
| | |-- efax-0.8a-1.i386.rpm
| | |-- eject-1.4-3.i386.rpm
| | |-- elm-2.4.25-7.i386.rpm
| | |-- emacs-19.34-3.i386.rpm
| | |-- emacs-X11-19.34-3.i386.rpm
| | |-- emacs-el-19.34-3.i386.rpm
| | |-- emacs-nox-19.34-3.i386.rpm
| | |-- etcskel-1.1-1.i386.rpm
| | |-- exmh-1.6.9-2.i386.rpm
| | |-- expect-5.21-2.i386.rpm
| | |-- ext2ed-0.1-8.i386.rpm
| | |-- f2c-19960205-6.i386.rpm
| | |-- f2c-libs-19960205-6.i386.rpm
| | |-- faces-1.6.1-6.i386.rpm
| | |-- faces-devel-1.6.1-6.i386.rpm
| | |-- faces-xface-1.6.1-6.i386.rpm
| | |-- faq-4.0-1.i386.rpm
| | |-- fetchmail-2.2-2.i386.rpm
| | |-- file-3.20-3.i386.rpm
| | |-- filesystem-1.2-1.i386.rpm
| | |-- fileutils-3.13-3.i386.rpm
| | |-- findutils-4.1-9.i386.rpm
| | |-- flex-2.5.3-3.i386.rpm
| | |-- flying-6.20-3.i386.rpm
| | |-- fort77-1.11-1.i386.rpm
| | |-- fortune-mod-1.0-3.i386.rpm
| | |-- fstool-2.5-1.i386.rpm
| | |-- fvwm-1.24r-10.i386.rpm
| | |-- fvwm95-2.0.42a-6.i386.rpm
| | |-- fvwm95-icons-2.0.42a-6.i386.rpm
| | |-- fwhois-1.00-5.i386.rpm
| | |-- gawk-3.0.0-5.i386.rpm
| | |-- gcal-1.00-1.i386.rpm
| | |-- gcc-2.7.2.1-2.i386.rpm
| | |-- gcc-c++-2.7.2.1-2.i386.rpm
| | |-- gcc-objc-2.7.2.1-2.i386.rpm
| | |-- gdb-4.16-5.i386.rpm
| | |-- gdbm-1.7.3-8.i386.rpm
| | |-- gdbm-devel-1.7.3-8.i386.rpm
| | |-- gencat-022591-4.i386.rpm
| | |-- gettext-0.10-5.i386.rpm
| | |-- getty_ps-2.0.7h-3.i386.rpm
| | |-- ghostscript-3.33-4.i386.rpm
| | |-- ghostscript-fonts-4.0-2.i386.rpm
| | |-- ghostview-1.5-6.i386.rpm
| | |-- giftrans-1.11.1-4.i386.rpm
| | |-- git-4.3.11-4.i386.rpm
| | |-- glint-2.1.5-1.i386.rpm
| | |-- gn-2.24-2.i386.rpm
| | |-- gnuchess-4.0.pl77-1.i386.rpm
| | |-- gnuplot-3.5-6.i386.rpm
| | |-- gpm-1.10-8.i386.rpm
| | |-- gpm-devel-1.10-8.i386.rpm
| | |-- grep-2.0-5.i386.rpm
| | |-- groff-1.10-7.i386.rpm
| | |-- groff-gxditview-1.10-7.i386.rpm
| | |-- gzip-1.2.4-6.i386.rpm
| | |-- hdparm-3.1-2.i386.rpm
| | |-- helptool-2.2-1.i386.rpm
| | |-- howto-4.1-1.i386.rpm
| | |-- howto-dvi-4.1-1.i386.rpm
| | |-- howto-html-4.1-1.i386.rpm
| | |-- howto-ps-4.1-1.i386.rpm
| | |-- howto-sgml-4.1-1.i386.rpm
| | |-- howto-translations-4.1-1.i386.rpm
| | |-- iBCS-2.0-4.i386.rpm
| | |-- ical-2.0p2-9.i386.rpm
| | |-- imap-4.1.BETA-2.i386.rpm
| | |-- indent-1.9.1-5.i386.rpm
| | |-- indexhtml-4.0-1.i386.rpm
| | |-- inews-1.4unoff4-4.i386.rpm
| | |-- info-3.7-5.i386.rpm
| | |-- initscripts-2.81-1.i386.rpm
| | |-- inn-1.4unoff4-4.i386.rpm
| | |-- intimed-1.10-3.i386.rpm
| | |-- ipfwadm-2.3.0-2.i386.rpm
| | |-- ipxutils-1.0-1.i386.rpm
| | |-- ircii-2.8.2-7.i386.rpm
| | |-- ircii-help-2.8.2-7.i386.rpm
| | |-- ispell-3.1.20-3.i386.rpm
| | |-- jdk-1.0.2.2-2.i386.rpm
| | |-- jed-0.97.14-3.i386.rpm
| | |-- jed-xjed-0.97.14-3.i386.rpm
| | |-- joe-2.8-7.i386.rpm
| | |-- kbd-0.91-9.i386.rpm
| | |-- kbdconfig-1.3-1.i386.rpm
| | |-- kernel-2.0.27-5.i386.rpm
| | |-- kernel-headers-2.0.27-5.i386.rpm
| | |-- kernel-modules-2.0.27-5.i386.rpm
| | |-- kernel-source-2.0.27-5.i386.rpm
| | |-- kernelcfg-0.3-3.i386.rpm
| | |-- koules-1.2-2.i386.rpm
| | |-- koules-sound-1.2-2.i386.rpm
| | |-- kterm-6.1.0-6.i386.rpm
| | |-- ld.so-1.7.14-4.i386.rpm
| | |-- ldp-4.0-2.i386.rpm
| | |-- less-321-3.i386.rpm
| | |-- lha-1.00-4.i386.rpm
| | |-- libc-5.3.12-17.i386.rpm
| | |-- libc-debug-5.3.12-17.i386.rpm
| | |-- libc-devel-5.3.12-17.i386.rpm
| | |-- libc-profile-5.3.12-17.i386.rpm
| | |-- libc-static-5.3.12-17.i386.rpm
| | |-- libelf-0.5.2-5.i386.rpm
| | |-- libg++-2.7.1.4-4.i386.rpm
| | |-- libg++-devel-2.7.1.4-4.i386.rpm
| | |-- libgr-2.0.9-6.i386.rpm
| | |-- libgr-devel-2.0.9-6.i386.rpm
| | |-- libgr-progs-2.0.9-6.i386.rpm
| | |-- libpng-0.89c-1.i386.rpm
| | |-- libpng-devel-0.89c-1.i386.rpm
| | |-- libtermcap-2.0.8-4.i386.rpm
| | |-- libtermcap-devel-2.0.8-4.i386.rpm
| | |-- lilo-0.19-1.i386.rpm
| | |-- linuxdoc-sgml-1.5-6.i386.rpm
| | |-- linuxthreads-0.5-1.i386.rpm
| | |-- linuxthreads-devel-0.5-1.i386.rpm
| | |-- locale-5.3.12-17.i386.rpm
| | |-- logrotate-2.0.2-2.i386.rpm
| | |-- losetup-2.5l-1.i386.rpm
| | |-- lout-3.08-1.i386.rpm
| | |-- lout-doc-3.08-1.i386.rpm
| | |-- lpr-0.13-1.i386.rpm
| | |-- lrzsz-0.12a-7.i386.rpm
| | |-- lynx-2.6-2.i386.rpm
| | |-- m4-1.4-6.i386.rpm
| | |-- macutils-2.0b3-4.i386.rpm
| | |-- mailcap-1.0-3.i386.rpm
| | |-- mailx-5.5.kw-6.i386.rpm
| | |-- make-3.74-8.i386.rpm
| | |-- man-1.4h-4.i386.rpm
| | |-- man-pages-1.12-2.i386.rpm
| | |-- maplay-1.2-4.i386.rpm
| | |-- mars-nwe-0.98-5.i386.rpm
| | |-- mawk-1.2.2-5.i386.rpm
| | |-- mb-5.0-6.i386.rpm
| | |-- mc-3.2.11-2.i386.rpm
| | |-- metamail-2.7-6.i386.rpm
| | |-- mh-6.8.3-13.i386.rpm
| | |-- mingetty-0.9.4-3.i386.rpm
| | |-- minicom-1.75-2.i386.rpm
| | |-- mkdosfs-ygg-0.3b-4.i386.rpm
| | |-- mkinitrd-1.4-1.i386.rpm
| | |-- mkisofs-1.10b2-4.i386.rpm
| | |-- mkxauth-1.7-4.i386.rpm
| | |-- modemtool-1.1-2.i386.rpm
| | |-- modules-2.0.0-5.i386.rpm
| | |-- moonclock-1.0-6.i386.rpm
| | |-- mount-2.5l-1.i386.rpm
| | |-- mouseconfig-1.4-1.i386.rpm
| | |-- mpage-2.3-1.i386.rpm
| | |-- mt-st-0.4-2.i386.rpm
| | |-- mtools-3.0-4.i386.rpm
| | |-- multimedia-2.1-5.i386.rpm
| | |-- mxp-1.0-5.i386.rpm
| | |-- mysterious-1.0-2.i386.rpm
| | |-- ncftp-2.3.0-4.i386.rpm
| | |-- ncompress-4.2.4-7.i386.rpm
| | |-- ncpfs-2.0.5-3.i386.rpm
| | |-- ncurses-1.9.9e-4.i386.rpm
| | |-- ncurses-devel-1.9.9e-4.i386.rpm
| | |-- nenscript-1.13++-7.i386.rpm
| | |-- net-tools-1.32.alpha-2.i386.rpm
| | |-- netcfg-2.13-1.i386.rpm
| | |-- netpbm-1mar1994-10.i386.rpm
| | |-- newt-0.7-2.i386.rpm
| | |-- newt-devel-0.7-2.i386.rpm
| | |-- nfs-server-2.2beta16-5.i386.rpm
| | |-- nfs-server-clients-2.2beta16-5.i386.rpm
| | |-- nls-1.0-2.i386.rpm
| | |-- open-1.3-5.i386.rpm
| | |-- p2c-1.20-7.i386.rpm
| | |-- p2c-devel-1.20-7.i386.rpm
| | |-- pam-0.54-4.i386.rpm
| | |-- pamconfig-0.50-5.i386.rpm
| | |-- paradise-2.3p19-5.i386.rpm
| | |-- passwd-0.50-2.i386.rpm
| | |-- patch-2.1-4.i386.rpm
| | |-- pcmcia-cs-2.8.23-5.i386.rpm
| | |-- pdksh-5.2.8-1.i386.rpm
| | |-- perl-5.003-6.i386.rpm
| | |-- pidentd-2.5.1-5.i386.rpm
| | |-- pine-3.95-2.i386.rpm
| | |-- pinfocom-3.0-3.i386.rpm
| | |-- playmidi-2.3-7.i386.rpm
| | |-- playmidi-X11-2.3-7.i386.rpm
| | |-- pmake-1.0-5.i386.rpm
| | |-- portmap-4.0-3.i386.rpm
| | |-- ppp-2.2.0f-2.i386.rpm
| | |-- printtool-3.0-12.i386.rpm
| | |-- procinfo-0.9-1.i386.rpm
| | |-- procmail-3.10-9.i386.rpm
| | |-- procps-1.01-11.i386.rpm
| | |-- procps-X11-1.01-11.i386.rpm
| | |-- psacct-6.2-1.i386.rpm
| | |-- psmisc-11-4.i386.rpm
| | |-- pwdb-0.53-2.i386.rpm
| | |-- python-1.4-3.i386.rpm
| | |-- python-devel-1.4-3.i386.rpm
| | |-- python-docs-1.4-3.i386.rpm
| | |-- pythonlib-1.12-1.i386.rpm
| | |-- quota-1.55-2.i386.rpm
| | |-- rcs-5.7-4.i386.rpm
| | |-- rdate-0.960923-1.i386.rpm
| | |-- rdist-1.0-5.i386.rpm
| | |-- readline-2.0-10.i386.rpm
| | |-- readline-devel-2.0-10.i386.rpm
| | |-- redhat-release-4.1-1.i386.rpm
| | |-- rootfiles-1.3-1.i386.rpm
| | |-- rpm-2.3-1.i386.rpm
| | |-- rpm-devel-2.3-1.i386.rpm
| | |-- rxvt-2.19-1.i386.rpm
| | |-- samba-1.9.16p9-6.i386.rpm
| | |-- scottfree-1.14-2.i386.rpm
| | |-- screen-3.7.1-3.i386.rpm
| | |-- sed-2.05-6.i386.rpm
| | |-- sendmail-8.8.4-3.i386.rpm
| | |-- sendmail-cf-8.8.4-3.i386.rpm
| | |-- sendmail-doc-8.8.4-3.i386.rpm
| | |-- setup-1.7-1.i386.rpm
| | |-- seyon-2.14c-7.i386.rpm
| | |-- sh-utils-1.12-13.i386.rpm
| | |-- shadow-utils-960530-6.i386.rpm
| | |-- sharutils-4.2-5.i386.rpm
| | |-- slang-0.99.37-2.i386.rpm
| | |-- slang-devel-0.99.37-2.i386.rpm
| | |-- sliplogin-2.1.0-3.i386.rpm
| | |-- slrn-0.9.2.0-1.i386.rpm
| | |-- smbfs-0.8-1.i386.rpm
| | |-- sox-11g-5.i386.rpm
| | |-- spice-2g6-4.i386.rpm
| | |-- spider-1.0-4.i386.rpm
| | |-- stat-1.5-5.i386.rpm
| | |-- statnet-2.00-4.i386.rpm
| | |-- statserial-1.1-7.i386.rpm
| | |-- strace-3.1-3.i386.rpm
| | |-- svgalib-1.2.10-2.i386.rpm
| | |-- svgalib-devel-1.2.10-2.i386.rpm
| | |-- swatch-2.1-4.i386.rpm
| | |-- symlinks-1.0-5.i386.rpm
| | |-- sysklogd-1.3-15.i386.rpm
| | |-- taper-6.7.4-2.i386.rpm
| | |-- tar-1.11.8-9.i386.rpm
| | |-- tcl-7.6-2.i386.rpm
| | |-- tclx-7.6.0b1-2.i386.rpm
| | |-- tcp_wrappers-7.4-3.i386.rpm
| | |-- tcpdump-3.0.2-5.i386.rpm
| | |-- tcsh-6.06-9.i386.rpm
| | |-- termcap-9.12.6-5.i386.rpm
| | |-- tetex-0.4-7.i386.rpm
| | |-- tetex-afm-0.4-7.i386.rpm
| | |-- tetex-dvilj-0.4-7.i386.rpm
| | |-- tetex-dvips-0.4-7.i386.rpm
| | |-- tetex-latex-0.4-7.i386.rpm
| | |-- tetex-xdvi-0.4-7.i386.rpm
| | |-- texinfo-3.7-5.i386.rpm
| | |-- textutils-1.19-4.i386.rpm
| | |-- time-1.7-1.i386.rpm
| | |-- timeconfig-1.6-1.i386.rpm
| | |-- timetool-2.2-1.i386.rpm
| | |-- tin-1.22-5.i386.rpm
| | |-- tix-4.1.0b1-2.i386.rpm
| | |-- tk-4.2-2.i386.rpm
| | |-- tksysv-0.91-1.i386.rpm
| | |-- tmpwatch-1.1-1.i386.rpm
| | |-- traceroute-1.0.4.4bsd-2.i386.rpm
| | |-- tracker-4.3-4.i386.rpm
| | |-- transfig-3.1.2-c.i386.rpm
| | |-- tree-1.0-3.i386.rpm
| | |-- trn-3.6-8.i386.rpm
| | |-- trojka-1.1-7.i386.rpm
| | |-- tunelp-1.3-5.i386.rpm
| | |-- typhoon-1.10.3-4.i386.rpm
| | |-- umb-scheme-3.2-2.i386.rpm
| | |-- umsdos_progs-0.9-2.i386.rpm
| | |-- unarj-2.41a-3.i386.rpm
| | |-- units-1.0-5.i386.rpm
| | |-- unzip-5.12-5.i386.rpm
| | |-- usercfg-3.2-1.i386.rpm
| | |-- util-linux-2.5-33.i386.rpm
| | |-- uucp-1.06.1-6.i386.rpm
| | |-- vga_cardgames-1.3.1-6.i386.rpm
| | |-- vga_gamespack-1.3-5.i386.rpm
| | |-- vga_tetris-0.4-3.i386.rpm
| | |-- vim-4.2-8.i386.rpm
| | |-- vim-X11-4.2-8.i386.rpm
| | |-- vixie-cron-3.0.1-12.i386.rpm
| | |-- vlock-1.0-4.i386.rpm
| | |-- which-1.0-5.i386.rpm
| | |-- words-2-3.i386.rpm
| | |-- wu-ftpd-2.4.2b11-11.i386.rpm
| | |-- x3270-3.1.0.7-4.i386.rpm
| | |-- xanim-27063-2.i386.rpm
| | |-- xbill-1.1-4.i386.rpm
|=20 | |-- xbl-1.0f-5.i386.rpm
| | |-- xboard-3.2.pl0-6.i386.rpm
| | |-- xboing-2.3-4.i386.rpm
| | |-- xchomp-1.0-6.i386.rpm
| | |-- xdaliclock-2.07-2.i386.rpm
| | |-- xdemineur-1.1-5.i386.rpm
| | |-- xdosemu-0.64.1-1.i386.rpm
| | |-- xearth-1.0-5.i386.rpm
| | |-- xevil-1.5-3.i386.rpm
| | |-- xfig-3.1.4-8.i386.rpm
| | |-- xfishtank-2.0-6.i386.rpm
| | |-- xfm-1.3.2-5.i386.rpm
| | |-- xgalaga-1.6c-3.i386.rpm
| | |-- xgammon-0.98-7.i386.rpm
| | |-- xgopher-1.3.3-2.i386.rpm
| | |-- xinitrc-1.1-1.i386.rpm
| | |-- xjewel-1.6-5.i386.rpm
| | |-- xkoules-1.2-2.i386.rpm
| | |-- xlander-1.2-5.i386.rpm
| | |-- xlispstat-3.44-6.i386.rpm
| | |-- xloadimage-4.1-6.i386.rpm
| | |-- xlockmore-3.12-1.i386.rpm
| | |-- xmailbox-2.4-4.i386.rpm
| | |-- xmorph-1996.07.12-2.i386.rpm
| | |-- xmplay-1.0-7.i386.rpm
| | |-- xosview-1.4.1-3.i386.rpm
| | |-- xpaint-2.4.4-3.i386.rpm
| | |-- xpat2-1.04-3.i386.rpm
| | |-- xpilot-3.5.1-3.i386.rpm
| | |-- xpm-3.4i-1.i386.rpm
| | |-- xpm-devel-3.4i-1.i386.rpm
| | |-- xpuzzles-5.3.1-2.i386.rpm
| | |-- xrn-8.02-3.i386.rpm
| | |-- xscreensaver-1.26-4.i386.rpm
| | |-- xsnow-1.40-2.i386.rpm
| | |-- xsysinfo-1.5-2.i386.rpm
| | |-- xterm-color-1.1-3.i386.rpm
| | |-- xtetris-2.6-5.i386.rpm
| | |-- xtoolwait-0.3-3.i386.rpm
| | |-- xtrojka-1.2.2-2.i386.rpm
| | |-- xv-3.10a-6.i386.rpm
| | |-- xview-3.2p1.pl2-4.i386.rpm
| | |-- xview-clients-3.2p1.pl2-4.i386.rpm
| | |-- xview-devel-3.2p1.pl2-4.i386.rpm
| | |-- xview-devel-examples-3.2p1.pl2-4.i386.rpm
| | |-- xwpe-1.4.2-10.i386.rpm
| | |-- xwpe-X11-1.4.2-10.i386.rpm
| | |-- xwpick-2.20-5.i386.rpm
| | |-- xxgdb-1.12-1.i386.rpm
| | |-- xzip-140-4.i386.rpm
| | |-- yp-clients-2.2-7.i386.rpm
| | |-- yppasswd-0.8-6.i386.rpm
| | |-- ypserv-1.0.4-3.i386.rpm
| | |-- ytalk-3.0.2-5.i386.rpm
| | |-- zgv-2.7-5.i386.rpm
| | |-- zip-2.1-1.i386.rpm
| | |-- zlib-1.0.4-1.i386.rpm
| | |-- zlib-devel-1.0.4-1.i386.rpm
| | |-- zoneinfo-96i-4.i386.rpm
| | `-- zsh-3.0.1-2.i386.rpm
| |-- SRPMS -> ../SRPMS
| |-- TRANS.TBL
| |-- base
| | |-- TRANS.TBL
| | |-- comps
| | |-- comps.new
| | |-- comps.orig
| | |-- fsstnd.cgz
| | |-- hdlist
| | |-- rpmconvert
| | |-- skeleton.cgz
| | `-- uglist
| |-- i386
| |-- instimage
| | |-- TRANS.TBL
| | |-- etc
| | | |-- TRANS.TBL
| | | `-- X11
| | | |-- TRANS.TBL
| | | `-- fvwm
| | | |-- TRANS.TBL
| | | `-- system.fvwmrc
| | |-- lib
| | | |-- TRANS.TBL
| | | |-- ld-linux.so.1 -> ld-linux.so.1.7.14
| | | |-- ld-linux.so.1.7.14
| | | |-- libc.so.5 -> libc.so.5.2.18
| | | |-- libc.so.5.2.18
| | | |-- libcom_err.so.2 -> libcom_err.so.2.0
| | | |-- libcom_err.so.2.0
| | | |-- libe2p.so.2 -> libe2p.so.2.1
| | | |-- libe2p.so.2.1
| | | |-- libext2fs.so.2 -> libext2fs.so.2.0
| | | |-- libext2fs.so.2.0
| | | |-- libm.so.5 -> libm.so.5.0.5
| | | |-- libm.so.5.0.5
| | | |-- libtermcap.so.2 -> libtermcap.so.2.0.5
| | | `-- libtermcap.so.2.0.5
| | `-- usr
| | |-- TRANS.TBL
| | |-- bin
| | | |-- TRANS.TBL
| | | |-- ash
| | | |-- badblocks
| | | |-- bash
| | | |-- cat -> install2
| | | |-- chmod -> install2
| | | |-- cp
| | | |-- cpio
| | | |-- df
| | | |-- fdisk
| | | |-- gdb
| | | |-- grep
| | | |-- gunzip -> gzip
| | | |-- gzip
| | | |-- install2
| | | |-- ldd
| | | |-- ln
| | | |-- ls
| | | |-- lsmod -> install2
| | | |-- mkdir -> install2
| | | |-- mke2fs
| | | |-- mknod -> install2
| | | |-- mount -> install2
| | | |-- open
| | | |-- ping
| | | |-- ps
| | | |-- rm -> install2
| | | |-- route
| | | |-- rpm
| | | |-- runinstall2 -> install2
| | | |-- sh -> bash
| | | |-- strace
| | | |-- umount -> install2
| | | |-- vi
| | | `-- wc
| | `-- lib
| | `-- TRANS.TBL
| `-- rpmcontents.gz
|-- SRPMS
| |-- ElectricFence-2.0.5-4.src.rpm
| |-- ImageMagick-3.7-5.src.rpm
| |-- MAKEDEV-2.2-9.src.rpm
| |-- NetKit-B-0.08-13.src.rpm
| |-- SysVinit-2.64-7.src.rpm
| |-- TRANS.TBL
| |-- TheNextLevel-1.0-2.src.rpm
| |-- X11R6-contrib-3.2-1.src.rpm
| |-- X11R6.1-pl1-18.src.rpm
| |-- XFree86-3.2-4.src.rpm
| |-- Xaw3d-1.3-6.src.rpm
| |-- Xconfigurator-2.6-5.src.rpm
| |-- aboot-0.5-1.src.rpm
| |-- acm-4.7-5.src.rpm
| |-- adduser-1.2-1.src.rpm
| |-- adjtimex-1.2-4.src.rpm
| |-- amd-920824upl102-6.src.rpm
| |-- anonftp-2.3-2.src.rpm
| |-- aout-libs-1.4-6.src.rpm
| |-- apache-1.1.1-8.src.rpm
| |-- arena-0.98.beta3-3.src.rpm
| |-- ash-0.2-7.src.rpm
| |-- at-2.9b-2.src.rpm
| |-- aumix-0.2-4.src.rpm
| |-- autoconf-2.12-1.src.rpm
| |-- bash-1.14.7-1.src.rpm
| |-- bc-1.03-6.src.rpm
| |-- bdflush-1.5-5.src.rpm
| |-- bin86-0.3-3.src.rpm
| |-- bind-4.9.5-2.src.rpm
| |-- binutils-2.7.0.2-4.src.rpm
| |-- bison-1.25-1.src.rpm
| |-- blt-1.9-5.src.rpm
| |-- bm2font-3.0-6.src.rpm
| |-- bootp-2.4.3-2.src.rpm
| |-- bootpc-050-2.src.rpm
| |-- bsd-games-1.3-6.src.rpm
| |-- byacc-1.9-4.src.rpm
| |-- caching-nameserver-1.0-1.src.rpm
| |-- cdecl-2.5-3.src.rpm
| |-- cdp-0.33-6.src.rpm
| |-- christminster-3-2.src.rpm
| |-- clock-1.0-1.src.rpm
| |-- cmu-snmp-3.2-3.src.rpm
| |-- colour-yahtzee-1.0-3.src.rpm
| |-- control-panel-2.6-1.src.rpm
| |-- cpio-2.4.2-3.src.rpm
| |-- cproto-4.4-4.src.rpm
| |-- cracklib-2.5-1.src.rpm
| |-- crontabs-1.5-1.src.rpm
| |-- csh-5.2.6-5.src.rpm
| |-- cvs-1.8.1-1.src.rpm
| |-- cxhextris-1.0-5.src.rpm
| |-- db-1.85-10.src.rpm
| |-- dev-2.4-1.src.rpm
| |-- dialog-0.6-7.src.rpm
| |-- diffstat-1.25-1.src.rpm
| |-- diffutils-2.7-5.src.rpm
| |-- dip-3.3.7o-8.src.rpm
| |-- doom-1.8-7.src.rpm
| |-- dosemu-0.64.1-1.src.rpm
| |-- dump-0.3-5.src.rpm
| |-- e2fsprogs-1.04-8.src.rpm
| |-- ed-0.2-5.src.rpm
| |-- efax-0.8a-1.src.rpm
| |-- eject-1.4-3.src.rpm
| |-- elftoaout-1.0-1.src.rpm
| |-- elm-2.4.25-7.src.rpm
| |-- emacs-19.34-3.src.rpm
| |-- etcskel-1.1-1.src.rpm
| |-- exmh-1.6.9-2.src.rpm
| |-- ext2ed-0.1-8.src.rpm
| |-- f2c-19960205-6.src.rpm
| |-- faces-1.6.1-6.src.rpm
| |-- faq-4.0-1.src.rpm
| |-- fetchmail-2.2-2.src.rpm
| |-- file-3.20-3.src.rpm
| |-- filesystem-1.2-1.src.rpm
| |-- fileutils-3.13-3.src.rpm
| |-- findutils-4.1-9.src.rpm
| |-- flex-2.5.3-3.src.rpm
| |-- flying-6.20-3.src.rpm
| |-- fort77-1.11-1.src.rpm
| |-- fortune-mod-1.0-3.src.rpm
| |-- fstool-2.5-1.src.rpm
| |-- fvwm-1.24r-10.src.rpm
| |-- fvwm95-2.0.42a-6.src.rpm
| |-- fwhois-1.00-5.src.rpm
| |-- gawk-3.0.0-5.src.rpm
| |-- gcal-1.00-1.src.rpm
| |-- gcc-2.7.2.1-2.src.rpm
| |-- gccmakedep-1.0-1.src.rpm
| |-- gdb-4.16-5.src.rpm
| |-- gdbm-1.7.3-8.src.rpm
| |-- gencat-022591-4.src.rpm
| |-- gettext-0.10-5.src.rpm
| |-- getty_ps-2.0.7h-3.src.rpm
| |-- ghostscript-3.33-4.src.rpm
| |-- ghostscript-fonts-4.0-2.src.rpm
| |-- ghostview-1.5-6.src.rpm
| |-- giftrans-1.11.1-4.src.rpm
| |-- git-4.3.11-4.src.rpm
| |-- glibc-0.961212-3.src.rpm
| |-- glint-2.1.5-1.src.rpm
| |-- gn-2.24-2.src.rpm
| |-- gnuchess-4.0.pl77-1.src.rpm
| |-- gnuplot-3.5-6.src.rpm
| |-- gpm-1.10-8.src.rpm
| |-- grep-2.0-5.src.rpm
| |-- groff-1.10-7.src.rpm
| |-- gzip-1.2.4-6.src.rpm
| |-- hdparm-3.1-2.src.rpm
| |-- helptool-2.2-1.src.rpm
| |-- howto-4.1-1.src.rpm
| |-- iBCS-2.0-4.src.rpm
| |-- ical-2.0p2-9.src.rpm
| |-- imap-4.1.BETA-2.src.rpm
| |-- indent-1.9.1-5.src.rpm
| |-- indexhtml-4.0-1.src.rpm
| |-- initscripts-2.81-1.src.rpm
| |-- inn-1.4unoff4-4.src.rpm
| |-- insmod-bfd-0.2-1.src.rpm
| |-- intimed-1.10-3.src.rpm
| |-- ipfwadm-2.3.0-2.src.rpm
| |-- ircii-2.8.2-7.src.rpm
| |-- ispell-3.1.20-3.src.rpm
| |-- jdk-1.0.2.2-2.src.rpm
| |-- jed-0.97.14-3.src.rpm
| |-- joe-2.8-7.src.rpm
| |-- kbd-0.91-9.src.rpm
| |-- kbdconfig-1.3-1.src.rpm
| |-- kernel-2.0.27-5.src.rpm
| |-- kernel-sparc-2.0.27-6.src.rpm
| |-- kernelcfg-0.3-3.src.rpm
| |-- koules-1.2-2.src.rpm
| |-- kterm-6.1.0-6.src.rpm
| |-- ld.so-1.7.14-4.src.rpm
| |-- ld.so-sparc-1.8.3-2.src.rpm
| |-- ldconfig-1.8.1-3.src.rpm
| |-- ldp-4.0-2.src.rpm
| |-- less-321-3.src.rpm
| |-- lha-1.00-4.src.rpm
| |-- libc-5.3.12-17.src.rpm
| |-- libelf-0.5.2-5.src.rpm
| |-- libg++-2.7.1.4-4.src.rpm
| |-- libgr-2.0.9-6.src.rpm
| |-- libpng-0.89c-1.src.rpm
| |-- libtermcap-2.0.8-4.src.rpm
| |-- lilo-0.19-1.src.rpm
| |-- linuxdoc-sgml-1.5-6.src.rpm
| |-- linuxthreads-0.5-1.src.rpm
| |-- logrotate-2.0.2-2.src.rpm
| |-- lout-3.08-1.src.rpm
| |-- lpr-0.13-1.src.rpm
| |-- lrzsz-0.12a-7.src.rpm
| |-- lynx-2.6-2.src.rpm
| |-- m4-1.4-6.src.rpm
| |-- macutils-2.0b3-4.src.rpm
| |-- mailcap-1.0-3.src.rpm
| |-- mailx-5.5.kw-6.src.rpm
| |-- make-3.74-8.src.rpm
| |-- man-1.4h-4.src.rpm
| |-- man-pages-1.12-2.src.rpm
| |-- maplay-1.2-4.src.rpm
| |-- mars-nwe-0.98-5.src.rpm
| |-- mawk-1.2.2-5.src.rpm
| |-- mb-5.0-6.src.rpm
| |-- mc-3.2.11-2.src.rpm
| |-- metamail-2.7-6.src.rpm
| |-- mh-6.8.3-13.src.rpm
| |-- mingetty-0.9.4-3.src.rpm
| |-- minicom-1.75-2.src.rpm
| |-- minlabel-1.2-1.src.rpm
| |-- mkbb-1.0-4.src.rpm
| |-- mkdosfs-ygg-0.3b-4.src.rpm
| |-- mkinitrd-1.4-1.src.rpm
| |-- mkisofs-1.10b2-4.src.rpm
| |-- mkxauth-1.7-4.src.rpm
| |-- modemtool-1.1-2.src.rpm
| |-- modules-2.0.0-5.src.rpm
| |-- moonclock-1.0-6.src.rpm
| |-- mount-2.5l-1.src.rpm
| |-- mouseconfig-1.4-1.src.rpm
| |-- mpage-2.3-1.src.rpm
| |-- mt-st-0.4-2.src.rpm
| |-- mtools-3.0-4.src.rpm
| |-- multimedia-2.1-5.src.rpm
| |-- mxp-1.0-5.src.rpm
| |-- mysterious-1.0-2.src.rpm
| |-- ncftp-2.3.0-4.src.rpm
| |-- ncompress-4.2.4-7.src.rpm
| |-- ncpfs-2.0.5-3.src.rpm
| |-- ncurses-1.9.9e-4.src.rpm
| |-- nenscript-1.13++-7.src.rpm
| |-- net-tools-1.32.alpha-2.src.rpm
| |-- netcfg-2.13-1.src.rpm
| |-- netpbm-1mar1994-10.src.rpm
| |-- newt-0.7-2.src.rpm
| |-- nfs-server-2.2beta16-5.src.rpm
| |-- nls-1.0-2.src.rpm
| |-- open-1.3-5.src.rpm
| |-- p2c-1.20-7.src.rpm
| |-- pam-0.54-4.src.rpm
| |-- pamconfig-0.50-5.src.rpm
| |-- paradise-2.3p19-5.src.rpm
| |-- passwd-0.50-2.src.rpm
| |-- patch-2.1-4.src.rpm
| |-- pdksh-5.2.8-1.src.rpm
| |-- perl-5.003-6.src.rpm
| |-- pidentd-2.5.1-5.src.rpm
| |-- pine-3.95-2.src.rpm
| |-- pinfocom-3.0-3.src.rpm
| |-- playmidi-2.3-7.src.rpm
| |-- pmake-1.0-5.src.rpm
| |-- portmap-4.0-3.src.rpm
| |-- ppp-2.2.0f-2.src.rpm
| |-- printtool-3.0-12.src.rpm
| |-- procinfo-0.9-1.src.rpm
| |-- procmail-3.10-9.src.rpm
| |-- procps-1.01-11.src.rpm
| |-- psacct-6.2-1.src.rpm
| |-- psmisc-11-4.src.rpm
| |-- pwdb-0.53-2.src.rpm
| |-- python-1.4-3.src.rpm
| |-- pythonlib-1.12-1.src.rpm
| |-- quickstrip-1.1-2.src.rpm
| |-- quota-1.55-2.src.rpm
| |-- rcs-5.7-4.src.rpm
| |-- rdate-0.960923-1.src.rpm
| |-- rdist-1.0-5.src.rpm
| |-- readline-2.0-10.src.rpm
| |-- redhat-release-4.1-1.src.rpm
| |-- rootfiles-1.3-1.src.rpm
| |-- rpm-2.3-1.src.rpm
| |-- rxvt-2.19-1.src.rpm
| |-- samba-1.9.16p9-6.src.rpm
| |-- scottfree-1.14-2.src.rpm
| |-- screen-3.7.1-3.src.rpm
| |-- sed-2.05-6.src.rpm
| |-- sendmail-8.8.4-3.src.rpm
| |-- setup-1.7-1.src.rpm
| |-- seyon-2.14c-7.src.rpm
| |-- sh-utils-1.12-13.src.rpm
| |-- shadow-utils-960530-6.src.rpm
| |-- sharutils-4.2-5.src.rpm
| |-- silo-0.6.7-1.src.rpm
| |-- slang-0.99.37-2.src.rpm
| |-- sliplogin-2.1.0-3.src.rpm
| |-- slrn-0.9.2.0-1.src.rpm
| |-- smbfs-0.8-1.src.rpm
| |-- sox-11g-5.src.rpm
| |-- spice-2g6-4.src.rpm
| |-- spider-1.0-4.src.rpm
| |-- stat-1.5-5.src.rpm
| |-- statnet-2.00-4.src.rpm
| |-- statserial-1.1-7.src.rpm
| |-- strace-3.1-3.src.rpm
| |-- svgalib-1.2.10-2.src.rpm
| |-- swatch-2.1-4.src.rpm
| |-- symlinks-1.0-5.src.rpm
| |-- sysklogd-1.3-15.src.rpm
| |-- taper-6.7.4-2.src.rpm
| |-- tar-1.11.8-9.src.rpm
| |-- tcltk-7.6_4.2-2.src.rpm
| |-- tcp_wrappers-7.4-3.src.rpm
| |-- tcpdump-3.0.2-5.src.rpm
| |-- tcsh-6.06-9.src.rpm
| |-- termcap-9.12.6-5.src.rpm
| |-- termfiles_sparc-1.0-4.src.rpm
| |-- tetex-0.4-7.src.rpm
| |-- texinfo-3.7-5.src.rpm
| |-- textutils-1.19-4.src.rpm
| |-- time-1.7-1.src.rpm
| |-- timeconfig-1.6-1.src.rpm
| |-- timetool-2.2-1.src.rpm
| |-- tin-1.22-5.src.rpm
| |-- tksysv-0.91-1.src.rpm
| |-- tmpwatch-1.1-1.src.rpm
| |-- traceroute-1.0.4.4bsd-2.src.rpm
| |-- tracker-4.3-4.src.rpm
| |-- transfig-3.1.2-c.src.rpm
| |-- tree-1.0-3.src.rpm
| |-- trn-3.6-8.src.rpm
| |-- trojka-1.1-7.src.rpm
| |-- tunelp-1.3-5.src.rpm
| |-- typhoon-1.10.3-4.src.rpm
| |-- umb-scheme-3.2-2.src.rpm
| |-- umsdos_progs-0.9-2.src.rpm
| |-- unarj-2.41a-3.src.rpm
| |-- units-1.0-5.src.rpm
| |-- unzip-5.12-5.src.rpm
| |-- usercfg-3.2-1.src.rpm
| |-- util-linux-2.5-33.src.rpm
| |-- uucp-1.06.1-6.src.rpm
| |-- vga_cardgames-1.3.1-6.src.rpm
| |-- vga_gamespack-1.3-5.src.rpm
| |-- vga_tetris-0.4-3.src.rpm
| |-- vim-4.2-8.src.rpm
| |-- vixie-cron-3.0.1-12.src.rpm
| |-- vlock-1.0-4.src.rpm
| |-- which-1.0-5.src.rpm
| |-- words-2-3.src.rpm
| |-- wu-ftpd-2.4.2b11-11.src.rpm
| |-- x3270-3.1.0.7-4.src.rpm
| |-- xanim-27063-2.src.rpm
| |-- xbill-1.1-4.src.rpm
| |-- xbl-1.0f-5.src.rpm
| |-- xboard-3.2.pl0-6.src.rpm
| |-- xboing-2.3-4.src.rpm
| |-- xchomp-1.0-6.src.rpm
| |-- xdaliclock-2.07-2.src.rpm
| |-- xdemineur-1.1-5.src.rpm
| |-- xearth-1.0-5.src.rpm
| |-- xevil-1.5-3.src.rpm
| |-- xfig-3.1.4-8.src.rpm
| |-- xfishtank-2.0-6.src.rpm
| |-- xfm-1.3.2-5.src.rpm
| |-- xgalaga-1.6c-3.src.rpm
| |-- xgammon-0.98-7.src.rpm
| |-- xgopher-1.3.3-2.src.rpm
| |-- xinitrc-1.1-1.src.rpm
| |-- xjewel-1.6-5.src.rpm
| |-- xlander-1.2-5.src.rpm
| |-- xlispstat-3.44-6.src.rpm
| |-- xloadimage-4.1-6.src.rpm
| |-- xlockmore-3.12-1.src.rpm
| |-- xmailbox-2.4-4.src.rpm
| |-- xmorph-1996.07.12-2.src.rpm
| |-- xmplay-1.0-7.src.rpm
| |-- xosview-1.4.1-3.src.rpm
| |-- xpaint-2.4.4-3.src.rpm
| |-- xpat2-1.04-3.src.rpm
| |-- xpilot-3.5.1-3.src.rpm
| |-- xpm-3.4i-1.src.rpm
| |-- xpuzzles-5.3.1-2.src.rpm
| |-- xrn-8.02-3.src.rpm
| |-- xscreensaver-1.26-4.src.rpm
| |-- xsnow-1.40-2.src.rpm
| |-- xsysinfo-1.5-2.src.rpm
| |-- xterm-color-1.1-3.src.rpm
| |-- xtetris-2.6-5.src.rpm
| |-- xtoolwait-0.3-3.src.rpm
| |-- xtrojka-1.2.2-2.src.rpm
| |-- xv-3.10a-6.src.rpm
| |-- xview-3.2p1.pl2-4.src.rpm
| |-- xwpe-1.4.2-10.src.rpm
| |-- xwpick-2.20-5.src.rpm
| |-- xxgdb-1.12-1.src.rpm
| |-- xzip-140-4.src.rpm
| |-- yp-clients-2.2-7.src.rpm
| |-- yppasswd-0.8-6.src.rpm
| |-- ypserv-1.0.4-3.src.rpm
| |-- ytalk-3.0.2-5.src.rpm
| |-- zgv-2.7-5.src.rpm
| |-- zip-2.1-1.src.rpm
| |-- zlib-1.0.4-1.src.rpm
| |-- zoneinfo-96i-4.src.rpm
| `-- zsh-3.0.1-2.src.rpm
|-- SUPPORT
|-- TRANS.TBL
|-- UPLOADING
|-- VENDORS
|-- docs
| |-- FAQ
| | |-- ATAPI-FAQ
| | |-- Cryptographic-File-System
| | |-- FAQ
| | |-- GCC-FAQ
| | |-- GCC-FAQ.html
| | |-- GCC-SIG11-FAQ
| | |-- INDEX
| | |-- INDEX.html
| | |-- NFS-FAQ
| | |-- PPP-FAQ.txt
| | |-- README
| | |-- TRANS.TBL
| | |-- Wine.FAQ
| | |-- ext2fs-FAQ
| | |-- linux-faq.README
| | |-- linux-faq.ascii
| | `-- linux-faq.ps
| |-- HOWTO
| | |-- AX25-HOWTO
| | |-- Access-HOWTO
| | |-- BootPrompt-HOWTO
| | |-- Bootdisk-HOWTO
| | |-- Busmouse-HOWTO
| | |-- CDROM-HOWTO
| | |-- COPYRIGHT
| | |-- Commercial-HOWTO
| | |-- Cyrillic-HOWTO
| | |-- DNS-HOWTO
| | |-- DOSEMU-HOWTO
| | |-- Danish-HOWTO
| | |-- Distribution-HOWTO
| | |-- ELF-HOWTO
| | |-- Emacspeak-HOWTO
| | |-- Ethernet-HOWTO
| | |-- Finnish-HOWTO
| | |-- Firewall-HOWTO
| | |-- Ftape-HOWTO
| | |-- GCC-HOWTO
| | |-- German-HOWTO
| | |-- HAM-HOWTO
| | |-- HOWTO-INDEX
| | |-- Hardware-HOWTO
| | |-- Hebrew-HOWTO
| | |-- INDEX
| | |-- INDEX.html
| | |-- INFO-SHEET
| | |-- IPX-HOWTO
| | |-- ISP-Hookup-HOWTO
| | |-- Installation-HOWTO
| | |-- Italian-HOWTO
| | |-- JE-HOWTO
| | |-- Java-HOWTO
| | |-- Kernel-HOWTO
| | |-- Keyboard-HOWTO
| | |-- Keystroke-HOWTO
| | |-- Linux-HOWTOs.tar.gz
| | |-- META-FAQ
| | |-- MGR-HOWTO
| | |-- Mail-HOWTO
| | |-- Module-HOWTO
| | |-- NET-2-HOWTO
| | |-- NIS-HOWTO
| | |-- News-HOWTO
| | |-- PCI-HOWTO
| | |-- PCMCIA-HOWTO
| | |-- PPP-HOWTO
| | |-- Polish-HOWTO
| | |-- Portuguese-HOWTO
| | |-- Printing-HOWTO
| | |-- Printing-Usage-HOWTO
| | |-- README
| | |-- SCSI-HOWTO
| | |-- SCSI-Programming-HOWTO
| | |-- SMB-HOWTO
| | |-- Serial-HOWTO
| | |-- Shadow-Password-HOWTO
| | |-- Sound-HOWTO
| | |-- Sound-Playing-HOWTO
| | |-- Spanish-HOWTO
| | |-- TRANS.TBL
| | |-- Term-HOWTO
| | |-- Tips-HOWTO
| | |-- UMSDOS-HOWTO
| | |-- UPS-HOWTO
| | |-- UUCP-HOWTO
| | |-- XFree86-HOWTO
| | |-- mini
| | | |-- 3-Button-Mouse
| | | |-- ADSM-Backup
| | | |-- Assembly
| | | |-- Backup-With-MSDOS
| | | |-- Boca
| | | |-- BogoMips
| | | |-- Bridge
| | | |-- CD-Writer
| | | |-- Colour-ls
| | | |-- Consoles
| | | |-- Consoles-Many
| | | |-- DOS2Linux
| | | |-- Diald
| | | |-- Dip+SLiRP+CSLIP
| | | |-- Diskless
| | | |-- Dynamic-IP-Hacks
| | | |-- GUI-Development
| | | |-- Getty-ps
| | | |-- Graphics-Tools
| | | |-- Gravis-UltraSound
| | | |-- HTML-Validation
| | | |-- HTTP+Netware
| | | |-- INDEX
| | | |-- INDEX.html
| | | |-- IO-Port-Programming
| | | |-- IP-Alias
| | | |-- IP-Masquerade
| | | |-- Java-WorkShop
| | | |-- Jaz-Drive
| | | |-- Kerneld
| | | |-- Key-Setup
| | | |-- Keystroke
| | | |-- LBX
| | | |-- LF1000
| | | |-- LILO
| | | |-- Large-Disk
| | | |-- Linux+DOS+Win95+OS2
| | | |-- Linux+OS2+DOS
| | | |-- Linux+Win95
| | | |-- Linux-mini-HOWTOs.tar.gz
| | | |-- Locales
| | | |-- Mail-Queue
| | | |-- Man-Page
| | | |-- Modeline
| | | |-- Multiple-Disks-Layout
| | | |-- Multiple-Ethernet
| | | |-- NFS-Root
| | | |-- Online-Support
| | | |-- PLIP
| | | |-- PPP-over-ISDN
| | | |-- Print2Win
| | | |-- Process-Accounting
| | | |-- Proxy-ARP
| | | |-- Quota
| | | |-- README
| | | |-- Reading-List
| | | |-- SLIP+proxyARP
| | | |-- Stacker
| | | |-- Swap-Space
| | | |-- TIA
| | | |-- TRANS.TBL
| | | |-- Term-Firewall
| | | |-- Tiny-News
| | | |-- Token-Ring
| | | |-- Upgrade
| | | |-- Virtual-Web
| | | |-- Visual-Bell
| | | |-- Win95+Win+Linux
| | | |-- WordPerfect
| | | |-- X-Notebook
| | | |-- XFree86-XInside
| | | |-- Xterminal
| | | `-- ZIP-Drive
| | `-- other-formats
| | |-- INDEX
| | |-- INDEX.html
| | |-- README
| | |-- TRANS.TBL
| | |-- dvi
| | | |-- AX25-HOWTO.dvi.gz
| | | |-- Access-HOWTO.dvi.gz
| | | |-- BootPrompt-HOWTO.dvi.gz
| | | |-- Bootdisk-HOWTO.dvi.gz
| | | |-- Busmouse-HOWTO.dvi.gz
| | | |-- CDROM-HOWTO.dvi.gz
| | | |-- Commercial-HOWTO.dvi.gz
| | | |-- Cyrillic-HOWTO.dvi.gz
| | | |-- DNS-HOWTO.dvi.gz
| | | |-- DOSEMU-HOWTO.dvi.gz
| | | |-- Danish-HOWTO.dvi.gz
| | | |-- Distribution-HOWTO.dvi.gz
| | | |-- ELF-HOWTO.dvi.gz
| | | |-- Emacspeak-HOWTO.dvi.gz
| | | |-- Ethernet-HOWTO.dvi.gz
| | | |-- Finnish-HOWTO.dvi.gz
| | | |-- Firewall-HOWTO.dvi.gz
| | | |-- Ftape-HOWTO.dvi.gz
| | | |-- GCC-HOWTO.dvi.gz
| | | |-- German-HOWTO.dvi.gz
| | | |-- HAM-HOWTO.dvi.gz
| | | |-- HOWTO-INDEX.dvi.gz
| | | |-- Hardware-HOWTO.dvi.gz
| | | |-- Hebrew-HOWTO.dvi.gz
| | | |-- INFO-SHEET.dvi.gz
| | | |-- IPX-HOWTO.dvi.gz
| | | |-- ISP-Hookup-HOWTO.dvi.gz
| | | |-- Installation-HOWTO.dvi.gz
| | | |-- Italian-HOWTO.dvi.gz
| | | |-- Java-HOWTO.dvi.gz
| | | |-- Kernel-HOWTO.dvi.gz
| | | |-- Keyboard-HOWTO.dvi.gz
| | | |-- META-FAQ.dvi.gz
| | | |-- MGR-HOWTO.dvi.gz
| | | |-- Mail-HOWTO.dvi.gz
| | | |-- Module-HOWTO.dvi.gz
| | | |-- NET-2-HOWTO.dvi.gz
| | | |-- NIS-HOWTO.dvi.gz
| | | |-- News-HOWTO.dvi.gz
| | | |-- PCI-HOWTO.dvi.gz
| | | |-- PCMCIA-HOWTO.dvi.gz
| | | |-- PPP-HOWTO.dvi.gz
| | | |-- Polish-HOWTO.dvi.gz
| | | |-- Portuguese-HOWTO.dvi.gz
| | | |-- Printing-HOWTO.dvi.gz
| | | |-- Printing-Usage-HOWTO.dvi.gz
| | | |-- README
| | | |-- SCSI-Programming-HOWTO.dvi.gz
| | | |-- SMB-HOWTO.dvi.gz
| | | |-- Serial-HOWTO.dvi.gz
| | | |-- Shadow-Password-HOWTO.dvi.gz
| | | |-- Sound-HOWTO.dvi.gz
| | | |-- Sound-Playing-HOWTO.dvi.gz
| | | |-- Spanish-HOWTO.dvi.gz
| | | |-- TRANS.TBL
| | | |-- Term-HOWTO.dvi.gz
| | | |-- Tips-HOWTO.dvi.gz
| | | |-- UMSDOS-HOWTO.dvi.gz
| | | |-- UPS-HOWTO.dvi.gz
| | | |-- UUCP-HOWTO.dvi.gz
| | | `-- XFree86-HOWTO.dvi.gz
| | |-- html
| | | |-- AX25-HOWTO-html.tar.gz
| | | |-- Access-HOWTO-html.tar.gz
| | | |-- BootPrompt-HOWTO-html.tar.gz
| | | |-- Bootdisk-HOWTO-html.tar.gz
| | | |-- Busmouse-HOWTO-html.tar.gz
| | | |-- CDROM-HOWTO-html.tar.gz
| | | |-- Commercial-HOWTO-html.tar.gz
| | | |-- Cyrillic-HOWTO-html.tar.gz
| | | |-- DNS-HOWTO-html.tar.gz
| | | |-- DOSEMU-HOWTO-html.tar.gz
| | | |-- Danish-HOWTO-html.tar.gz
| | | |-- Distribution-HOWTO-html.tar.gz
| | | |-- ELF-HOWTO-html.tar.gz
| | | |-- Emacspeak-HOWTO-html.tar.gz
| | | |-- Ethernet-HOWTO-html.tar.gz
| | | |-- Finnish-HOWTO-html.tar.gz
| | | |-- Firewall-HOWTO-html.tar.gz
| | | |-- Ftape-HOWTO-html.tar.gz
| | | |-- GCC-HOWTO-html.tar.gz
| | | |-- German-HOWTO-html.tar.gz
| | | |-- HAM-HOWTO-html.tar.gz
| | | |-- HOWTO-INDEX-html.tar.gz
| | | |-- Hardware-HOWTO-html.tar.gz
| | | |-- Hebrew-HOWTO-html.tar.gz
| | | |-- INFO-SHEET-html.tar.gz
| | | |-- IPX-HOWTO-html.tar.gz
| | | |-- ISP-Hookup-HOWTO-html.tar.gz
| | | |-- Installation-HOWTO-html.tar.gz
| | | |-- Italian-HOWTO-html.tar.gz
| | | |-- Java-HOWTO-html.tar.gz
| | | |-- Jave-HOWTO-html.tar.gz
| | | |-- Kernel-HOWTO-html.tar.gz
| | | |-- Keyboard-HOWTO-html.tar.gz
| | | |-- META-FAQ-html.tar.gz
| | | |-- MGR-HOWTO-html.tar.gz
| | | |-- Mail-HOWTO-html.tar.gz
| | | |-- Module-HOWTO-html.tar.gz
| | | |-- NET-2-HOWTO-html.tar.gz
| | | |-- NIS-HOWTO-html.tar.gz
| | | |-- News-HOWTO-html.tar.gz
| | | |-- PCI-HOWTO-html.tar.gz
| | | |-- PCMCIA-HOWTO-html.tar.gz
| | | |-- PPP-HOWTO-html.tar.gz
| | | |-- Polish-HOWTO-html.tar.gz
| | | |-- Portuguese-HOWTO-html.tar.gz
| | | |-- Printing-HOWTO-html.tar.gz
| | | |-- Printing-Usage-HOWTO-html.tar.gz
| | | |-- SCSI-Programming-HOWTO-html.tar.gz
| | | |-- SMB-HOWTO-html.tar.gz
| | | |-- Serial-HOWTO-html.tar.gz
| | | |-- Shadow-Password-HOWTO-html.tar.gz
| | | |-- Sound-HOWTO-html.tar.gz
| | | |-- Sound-Playing-HOWTO-html.tar.gz
| | | |-- Spanish-HOWTO-html.tar.gz
| | | |-- TRANS.TBL
| | | |-- Term-HOWTO-html.tar.gz
| | | |-- Tips-HOWTO-html.tar.gz
| | | |-- UMSDOS-HOWTO-html.tar.gz
| | | |-- UPS-HOWTO-html.tar.gz
| | | |-- UUCP-HOWTO-html.tar.gz
| | | `-- XFree86-HOWTO-html.tar.gz
| | |-- ps
| | | |-- AX25-HOWTO.ps.gz
| | | |-- Access-HOWTO.ps.gz
| | | |-- BootPrompt-HOWTO.ps.gz
| | | |-- Bootdisk-HOWTO.ps.gz
| | | |-- Busmouse-HOWTO.ps.gz
| | | |-- CDROM-HOWTO.ps.gz
| | | |-- Commercial-HOWTO.ps.gz
| | | |-- Cyrillic-HOWTO.ps.gz
| | | |-- DNS-HOWTO.ps.gz
| | | |-- DOSEMU-HOWTO.ps.gz
| | | |-- Danish-HOWTO.ps.gz
| | | |-- Distribution-HOWTO.ps.gz
| | | |-- ELF-HOWTO.ps.gz
| | | |-- Emacspeak-HOWTO.ps.gz
| | | |-- Ethernet-HOWTO.ps.gz
| | | |-- Finnish-HOWTO.ps.gz
| | | |-- Firewall-HOWTO.ps.gz
| | | |-- Ftape-HOWTO.ps.gz
| | | |-- GCC-HOWTO.ps.gz
| | | |-- German-HOWTO.ps.gz
| | | |-- HAM-HOWTO.ps.gz
| | | |-- HOWTO-INDEX.ps.gz
| | | |-- Hardware-HOWTO.ps.gz
| | | |-- Hebrew-HOWTO.ps.gz
| | | |-- INFO-SHEET.ps.gz
| | | |-- IPX-HOWTO.ps.gz
| | | |-- ISP-Hookup-HOWTO.ps.gz
| | | |-- Installation-HOWTO.ps.gz
| | | |-- Italian-HOWTO.ps.gz
| | | |-- Java-HOWTO.ps.gz
| | | |-- Kernel-HOWTO.ps.gz
| | | |-- Keyboard-HOWTO.ps.gz
| | | |-- META-FAQ.ps.gz
| | | |-- MGR-HOWTO.ps.gz
| | | |-- Mail-HOWTO.ps.gz
| | | |-- Module-HOWTO.ps.gz
| | | |-- NET-2-HOWTO.ps.gz
| | | |-- NIS-HOWTO.ps.gz
| | | |-- News-HOWTO.ps.gz
| | | |-- PCI-HOWTO.ps.gz
| | | |-- PCMCIA-HOWTO.ps.gz
| | | |-- PPP-HOWTO.ps.gz
| | | |-- Polish-HOWTO.ps.gz
| | | |-- Portuguese-HOWTO.ps.gz
| | | |-- Printing-HOWTO.ps.gz
| | | |-- Printing-Usage-HOWTO.ps.gz
| | | |-- README
| | | |-- SCSI-Programming-HOWTO.ps.gz
| | | |-- SMB-HOWTO.ps.gz
| | | |-- Serial-HOWTO.ps.gz
| | | |-- Shadow-Password-HOWTO.ps.gz
| | | |-- Sound-HOWTO.ps.gz
| | | |-- Sound-Playing-HOWTO.ps.gz
| | | |-- Spanish-HOWTO.ps.gz
| | | |-- TRANS.TBL
| | | |-- Term-HOWTO.ps.gz
| | | |-- Tips-HOWTO.ps.gz
| | | |-- UMSDOS-HOWTO.ps.gz
| | | |-- UPS-HOWTO.ps.gz
| | | |-- UUCP-HOWTO.ps.gz
| | | `-- XFree86-HOWTO.ps.gz
| | `-- sgml
| | |-- AX25-HOWTO.sgml.gz
| | |-- Access-HOWTO.sgml.gz
| | |-- BootPrompt-HOWTO.sgml.gz
| | |-- Bootdisk-HOWTO.sgml.gz
| | |-- Busmouse-HOWTO.sgml.gz
| | |-- CDROM-HOWTO.sgml.gz
| | |-- Commercial-HOWTO.sgml.gz
| | |-- Cyrillic-HOWTO.sgml.gz
| | |-- DNS-HOWTO.sgml.gz
| | |-- DOSEMU-HOWTO.sgml.gz
| | |-- Danish-HOWTO.sgml.gz
| | |-- Distribution-HOWTO.sgml.gz
| | |-- ELF-HOWTO.sgml.gz
| | |-- Emacspeak-HOWTO.sgml.gz
| | |-- Ethernet-HOWTO.sgml.gz
| | |-- Finnish-HOWTO.sgml.gz
| | |-- Firewall-HOWTO.sgml.gz
| | |-- Ftape-HOWTO.sgml.gz
| | |-- GCC-HOWTO.sgml.gz
| | |-- German-HOWTO.sgml.gz
| | |-- HAM-HOWTO.sgml.gz
| | |-- HOWTO-INDEX.sgml.gz
| | |-- Hardware-HOWTO.sgml.gz
| | |-- Hebrew-HOWTO.sgml.gz
| | |-- INFO-SHEET.sgml.gz
| | |-- IPX-HOWTO.sgml.gz
| | |-- ISP-Hookup-HOWTO.sgml.gz
| | |-- Installation-HOWTO.sgml.gz
| | |-- Italian-HOWTO.sgml.gz
| | |-- Java-HOWTO.sgml.gz
| | |-- Kernel-HOWTO.sgml.gz
| | |-- Keyboard-HOWTO.sgml.gz
| | |-- META-FAQ.sgml.gz
| | |-- MGR-HOWTO.sgml.gz
| | |-- Mail-HOWTO.sgml.gz
| | |-- Module-HOWTO.sgml.gz
| | |-- NET-2-HOWTO.sgml.gz
| | |-- NIS-HOWTO.sgml.gz
| | |-- News-HOWTO.sgml.gz
| | |-- PCI-HOWTO.sgml.gz
| | |-- PCMCIA-HOWTO.sgml.gz
| | |-- PPP-HOWTO.sgml.gz
| | |-- Polish-HOWTO.sgml.gz
| | |-- Portuguese-HOWTO.sgml.gz
| | |-- Printing-HOWTO.sgml.gz
| | |-- Printing-Usage-HOWTO.sgml.gz
| | |-- README
| | |-- SCSI-Programming-HOWTO.sgml.gz
| | |-- SMB-HOWTO.sgml.gz
| | |-- Serial-HOWTO.sgml.gz
| | |-- Shadow-Password-HOWTO.sgml.gz
| | |-- Sound-HOWTO.sgml.gz
| | |-- Sound-Playing-HOWTO.sgml.gz
| | |-- Spanish-HOWTO.sgml.gz
| | |-- TRANS.TBL
| | |-- Term-HOWTO.sgml.gz
| | |-- Tips-HOWTO.sgml.gz
| | |-- UMSDOS-HOWTO.sgml.gz
| | |-- UPS-HOWTO.sgml.gz
| | |-- UUCP-HOWTO.sgml.gz
| | |-- XFree86-HOWTO.sgml.gz
| | `-- mini
| | |-- ADSM-Backup.sgml.gz
| | =20 |-- Colour-ls.sgml.gz
| | |-- Diskless.sgml.gz
| | |-- HTML-Validation.sgml.gz
| | |-- HTTP+Netware.sgml.gz
| | |-- IP-Masquerade.sgml.gz
| | |-- Java-WorkShop.sgml.gz
| | |-- Large-Disk.sgml.gz
| | |-- Locales.sgml.gz
| | |-- NFS-Root.sgml.gz
| | |-- README
| | |-- TRANS.TBL
| | |-- Upgrade.sgml.gz
| | |-- Visual-Bell.sgml.gz
| | |-- XFree86-XInside.sgml.gz
| | `-- ZIP-Drive.sgml.gz
| |-- HTML
| | |-- TRANS.TBL
| | |-- index.html
| | |-- ldp
| | | |-- BootPrompt-HOWTO-1.html
| | | |-- BootPrompt-HOWTO-2.html
| | | |-- BootPrompt-HOWTO-3.html
| | | |-- BootPrompt-HOWTO-4.html
| | | |-- BootPrompt-HOWTO-5.html
| | | |-- BootPrompt-HOWTO-6.html
| | | |-- BootPrompt-HOWTO-7.html
| | | |-- BootPrompt-HOWTO-8.html
| | | |-- BootPrompt-HOWTO.html
| | | |-- Bootdisk-HOWTO-1.html
| | | |-- Bootdisk-HOWTO-2.html
| | | |-- Bootdisk-HOWTO-3.html
| | | |-- Bootdisk-HOWTO-4.html
| | | |-- Bootdisk-HOWTO-5.html
| | | |-- Bootdisk-HOWTO-6.html
| | | |-- Bootdisk-HOWTO.html
| | | |-- Busmouse-HOWTO-1.html
| | | |-- Busmouse-HOWTO-2.html
| | | |-- Busmouse-HOWTO-3.html
| | | |-- Busmouse-HOWTO-4.html
| | | |-- Busmouse-HOWTO-5.html
| | | |-- Busmouse-HOWTO.html
| | | |-- CDROM-HOWTO-1.html
| | | |-- CDROM-HOWTO-2.html
| | | |-- CDROM-HOWTO-3.html
| | | |-- CDROM-HOWTO-4.html
| | | |-- CDROM-HOWTO-5.html
| | | |-- CDROM-HOWTO-6.html
| | | |-- CDROM-HOWTO-7.html
| | | |-- CDROM-HOWTO.html
| | | |-- Commercial-HOWTO-1.html
| | | |-- Commercial-HOWTO-10.html
| | | |-- Commercial-HOWTO-2.html
| | | |-- Commercial-HOWTO-3.html
| | | |-- Commercial-HOWTO-4.html
| | | |-- Commercial-HOWTO-5.html
| | | |-- Commercial-HOWTO-6.html
| | | |-- Commercial-HOWTO-7.html
| | | |-- Commercial-HOWTO-8.html
| | | |-- Commercial-HOWTO-9.html
| | | |-- Commercial-HOWTO.html
| | | |-- Cyrillic-HOWTO-1.html
| | | |-- Cyrillic-HOWTO-2.html
| | | |-- Cyrillic-HOWTO-3.html
| | | |-- Cyrillic-HOWTO-4.html
| | | |-- Cyrillic-HOWTO-5.html
| | | |-- Cyrillic-HOWTO-6.html
| | | |-- Cyrillic-HOWTO-7.html
| | | |-- Cyrillic-HOWTO-8.html
| | | |-- Cyrillic-HOWTO-9.html
| | | |-- Cyrillic-HOWTO.html
| | | |-- DOSEMU-HOWTO-1.html
| | | |-- DOSEMU-HOWTO-10.html
| | | |-- DOSEMU-HOWTO-11.html
| | | |-- DOSEMU-HOWTO-12.html
| | | |-- DOSEMU-HOWTO-2.html
| | | |-- DOSEMU-HOWTO-3.html
| | | |-- DOSEMU-HOWTO-4.html
| | | |-- DOSEMU-HOWTO-5.html
| | | |-- DOSEMU-HOWTO-6.html
| | | |-- DOSEMU-HOWTO-7.html
| | | |-- DOSEMU-HOWTO-8.html
| | | |-- DOSEMU-HOWTO-9.html
| | | |-- DOSEMU-HOWTO.html
| | | |-- Danish-HOWTO-1.html
| | | |-- Danish-HOWTO-2.html
| | | |-- Danish-HOWTO-3.html
| | | |-- Danish-HOWTO-4.html
| | | |-- Danish-HOWTO.html
| | | |-- Distribution-HOWTO-1.html
| | | |-- Distribution-HOWTO-2.html
| | | |-- Distribution-HOWTO-3.html
| | | |-- Distribution-HOWTO-4.html
| | | |-- Distribution-HOWTO-5.html
| | | |-- Distribution-HOWTO-6.html
| | | |-- Distribution-HOWTO-7.html
| | | |-- Distribution-HOWTO-8.html
| | | |-- Distribution-HOWTO-9.html
| | | |-- Distribution-HOWTO.html
| | | |-- ELF-HOWTO-1.html
| | | |-- ELF-HOWTO-2.html
| | | |-- ELF-HOWTO-3.html
| | | |-- ELF-HOWTO-4.html
| | | |-- ELF-HOWTO-5.html
| | | |-- ELF-HOWTO-6.html
| | | |-- ELF-HOWTO.html
| | | |-- Ethernet-HOWTO-1.html
| | | |-- Ethernet-HOWTO-10.html
| | | |-- Ethernet-HOWTO-2.html
| | | |-- Ethernet-HOWTO-3.html
| | | |-- Ethernet-HOWTO-4.html
| | | |-- Ethernet-HOWTO-5.html
| | | |-- Ethernet-HOWTO-6.html
| | | |-- Ethernet-HOWTO-7.html
| | | |-- Ethernet-HOWTO-8.html
| | | |-- Ethernet-HOWTO-9.html
| | | |-- Ethernet-HOWTO.html
| | | |-- Firewall-HOWTO-1.html
| | | |-- Firewall-HOWTO-2.html
| | | |-- Firewall-HOWTO-3.html
| | | |-- Firewall-HOWTO-4.html
| | | |-- Firewall-HOWTO-5.html
| | | |-- Firewall-HOWTO-6.html
| | | |-- Firewall-HOWTO.html
| | | |-- Ftape-HOWTO-1.html
| | | |-- Ftape-HOWTO-2.html
| | | |-- Ftape-HOWTO-3.html
| | | |-- Ftape-HOWTO-4.html
| | | |-- Ftape-HOWTO-5.html
| | | |-- Ftape-HOWTO-6.html
| | | |-- Ftape-HOWTO-7.html
| | | |-- Ftape-HOWTO-8.html
| | | |-- Ftape-HOWTO-9.html
| | | |-- Ftape-HOWTO.html
| | | |-- German-HOWTO-1.html
| | | |-- German-HOWTO-10.html
| | | |-- German-HOWTO-11.html
| | | |-- German-HOWTO-12.html
| | | |-- German-HOWTO-13.html
| | | |-- German-HOWTO-14.html
| | | |-- German-HOWTO-15.html
| | | |-- German-HOWTO-2.html
| | | |-- German-HOWTO-3.html
| | | |-- German-HOWTO-4.html
| | | |-- German-HOWTO-5.html
| | | |-- German-HOWTO-6.html
| | | |-- German-HOWTO-7.html
| | | |-- German-HOWTO-8.html
| | | |-- German-HOWTO-9.html
| | | |-- German-HOWTO.html
| | | |-- HAM-HOWTO-1.html
| | | |-- HAM-HOWTO-10.html
| | | |-- HAM-HOWTO-11.html
| | | |-- HAM-HOWTO-12.html
| | | |-- HAM-HOWTO-13.html
| | | |-- HAM-HOWTO-14.html
| | | |-- HAM-HOWTO-15.html
| | | |-- HAM-HOWTO-16.html
| | | |-- HAM-HOWTO-17.html
| | | |-- HAM-HOWTO-2.html
| | | |-- HAM-HOWTO-3.html
| | | |-- HAM-HOWTO-4.html
| | | |-- HAM-HOWTO-5.html
| | | |-- HAM-HOWTO-6.html
| | | |-- HAM-HOWTO-7.html
| | | |-- HAM-HOWTO-8.html
| | | |-- HAM-HOWTO-9.html
| | | |-- HAM-HOWTO.html
| | | |-- HOWTO-INDEX-1.html
| | | |-- HOWTO-INDEX-2.html
| | | |-- HOWTO-INDEX-3.html
| | | |-- HOWTO-INDEX-4.html
| | | |-- HOWTO-INDEX-5.html
| | | |-- HOWTO-INDEX.html
| | | |-- Hardware-HOWTO-1.html
| | | |-- Hardware-HOWTO-10.html
| | | |-- Hardware-HOWTO-11.html
| | | |-- Hardware-HOWTO-12.html
| | | |-- Hardware-HOWTO-13.html
| | | |-- Hardware-HOWTO-14.html
| | | |-- Hardware-HOWTO-15.html
| | | |-- Hardware-HOWTO-16.html
| | | |-- Hardware-HOWTO-17.html
| | | |-- Hardware-HOWTO-18.html
| | | |-- Hardware-HOWTO-19.html
| | | |-- Hardware-HOWTO-2.html
| | | |-- Hardware-HOWTO-20.html
| | | |-- Hardware-HOWTO-21.html
| | | |-- Hardware-HOWTO-22.html
| | | |-- Hardware-HOWTO-23.html
| | | |-- Hardware-HOWTO-24.html
| | | |-- Hardware-HOWTO-3.html
| | | |-- Hardware-HOWTO-4.html
| | | |-- Hardware-HOWTO-5.html
| | | |-- Hardware-HOWTO-6.html
| | | |-- Hardware-HOWTO-7.html
| | | |-- Hardware-HOWTO-8.html
| | | |-- Hardware-HOWTO-9.html
| | | |-- Hardware-HOWTO.html
| | | |-- Hebrew-HOWTO-1.html
| | | |-- Hebrew-HOWTO-2.html
| | | |-- Hebrew-HOWTO-3.html
| | | |-- Hebrew-HOWTO-4.html
| | | |-- Hebrew-HOWTO-5.html
| | | |-- Hebrew-HOWTO-6.html
| | | |-- Hebrew-HOWTO-7.html
| | | |-- Hebrew-HOWTO-8.html
| | | |-- Hebrew-HOWTO-9.html
| | | |-- Hebrew-HOWTO.html
| | | |-- INFO-SHEET-1.html
| | | |-- INFO-SHEET-10.html
| | | |-- INFO-SHEET-11.html
| | | |-- INFO-SHEET-12.html
| | | |-- INFO-SHEET-2.html
| | | |-- INFO-SHEET-3.html
| | | |-- INFO-SHEET-4.html
| | | |-- INFO-SHEET-5.html
| | | |-- INFO-SHEET-6.html
| | | |-- INFO-SHEET-7.html
| | | |-- INFO-SHEET-8.html
| | | |-- INFO-SHEET-9.html
| | | |-- INFO-SHEET.html
| | | |-- IPX-HOWTO-1.html
| | | |-- IPX-HOWTO-10.html
| | | |-- IPX-HOWTO-11.html
| | | |-- IPX-HOWTO-12.html
| | | |-- IPX-HOWTO-13.html
| | | |-- IPX-HOWTO-2.html
| | | |-- IPX-HOWTO-3.html
| | | |-- IPX-HOWTO-4.html
| | | |-- IPX-HOWTO-5.html
| | | |-- IPX-HOWTO-6.html
| | | |-- IPX-HOWTO-7.html
| | | |-- IPX-HOWTO-8.html
| | | |-- IPX-HOWTO-9.html
| | | |-- IPX-HOWTO.html
| | | |-- Installation-HOWTO-1.html
| | | |-- Installation-HOWTO-2.html
| | | |-- Installation-HOWTO-3.html
| | | |-- Installation-HOWTO-4.html
| | | |-- Installation-HOWTO-5.html
| | | |-- Installation-HOWTO-6.html
| | | |-- Installation-HOWTO.html
| | | |-- Italian-HOWTO-1.html
| | | |-- Italian-HOWTO-2.html
| | | |-- Italian-HOWTO-3.html
| | | |-- Italian-HOWTO-4.html
| | | |-- Italian-HOWTO-5.html
| | | |-- Italian-HOWTO-6.html
| | | |-- Italian-HOWTO-7.html
| | | |-- Italian-HOWTO-8.html
| | | |-- Italian-HOWTO.html
| | | |-- Java-HOWTO-1.html
| | | |-- Java-HOWTO-10.html
| | | |-- Java-HOWTO-2.html
| | | |-- Java-HOWTO-3.html
| | | |-- Java-HOWTO-4.html
| | | |-- Java-HOWTO-5.html
| | | |-- Java-HOWTO-6.html
| | | |-- Java-HOWTO-7.html
| | | |-- Java-HOWTO-8.html
| | | |-- Java-HOWTO-9.html
| | | |-- Java-HOWTO.html
| | | |-- Jave-HOWTO-1.html
| | | |-- Jave-HOWTO-2.html
| | | |-- Jave-HOWTO-3.html
| | | |-- Jave-HOWTO-4.html
| | | |-- Jave-HOWTO-5.html
| | | |-- Jave-HOWTO-6.html
| | | |-- Jave-HOWTO-7.html
| | | |-- Jave-HOWTO-8.html
| | | |-- Jave-HOWTO-9.html
| | | |-- Jave-HOWTO.html
| | | |-- Kernel-HOWTO-1.html
| | | |-- Kernel-HOWTO-10.html
| | | |-- Kernel-HOWTO-11.html
| | | |-- Kernel-HOWTO-2.html
| | | |-- Kernel-HOWTO-3.html
| | | |-- Kernel-HOWTO-4.html
| | | |-- Kernel-HOWTO-5.html
| | | |-- Kernel-HOWTO-6.html
| | | |-- Kernel-HOWTO-7.html
| | | |-- Kernel-HOWTO-8.html
| | | |-- Kernel-HOWTO-9.html
| | | |-- Kernel-HOWTO.html
| | | |-- Keyboard-HOWTO-1.html
| | | |-- Keyboard-HOWTO-10.html
| | | |-- Keyboard-HOWTO-11.html
| | | |-- Keyboard-HOWTO-12.html
| | | |-- Keyboard-HOWTO-13.html
| | | |-- Keyboard-HOWTO-14.html
| | | |-- Keyboard-HOWTO-15.html
| | | |-- Keyboard-HOWTO-16.html
| | | |-- Keyboard-HOWTO-17.html
| | | |-- Keyboard-HOWTO-18.html
| | | |-- Keyboard-HOWTO-19.html
| | | |-- Keyboard-HOWTO-2.html
| | | |-- Keyboard-HOWTO-20.html
| | | |-- Keyboard-HOWTO-3.html
| | | |-- Keyboard-HOWTO-4.html
| | | |-- Keyboard-HOWTO-5.html
| | | |-- Keyboard-HOWTO-6.html
| | | |-- Keyboard-HOWTO-7.html
| | | |-- Keyboard-HOWTO-8.html
| | | |-- Keyboard-HOWTO-9.html
| | | |-- Keyboard-HOWTO.html
| | | |-- META-FAQ-1.html
| | | |-- META-FAQ-10.html
| | | |-- META-FAQ-2.html
| | | |-- META-FAQ-3.html
| | | |-- META-FAQ-4.html
| | | |-- META-FAQ-5.html
| | | |-- META-FAQ-6.html
| | | |-- META-FAQ-7.html
| | | |-- META-FAQ-8.html
| | | |-- META-FAQ-9.html
| | | |-- META-FAQ.html
| | | |-- MGR-HOWTO-1.html
| | | |-- MGR-HOWTO-2.html
| | | |-- MGR-HOWTO-3.html
| | | |-- MGR-HOWTO-4.html
| | | |-- MGR-HOWTO-5.html
| | | |-- MGR-HOWTO-6.html
| | | |-- MGR-HOWTO-7.html
| | | |-- MGR-HOWTO.html
| | | |-- Mail-HOWTO-1.html
| | | |-- Mail-HOWTO-2.html
| | | |-- Mail-HOWTO-3.html
| | | |-- Mail-HOWTO-4.html
| | | |-- Mail-HOWTO-5.html
| | | |-- Mail-HOWTO-6.html
| | | |-- Mail-HOWTO.html
| | | |-- NET-2-HOWTO-1.html
| | | |-- NET-2-HOWTO-10.html
| | | |-- NET-2-HOWTO-11.html
| | | |-- NET-2-HOWTO-12.html
| | | |-- NET-2-HOWTO-13.html
| | | |-- NET-2-HOWTO-14.html
| | | |-- NET-2-HOWTO-15.html
| | | |-- NET-2-HOWTO-16.html
| | | |-- NET-2-HOWTO-17.html
| | | |-- NET-2-HOWTO-18.html
| | | |-- NET-2-HOWTO-19.html
| | | |-- NET-2-HOWTO-2.html
| | | |-- NET-2-HOWTO-3.html
| | | |-- NET-2-HOWTO-4.html
| | | |-- NET-2-HOWTO-5.html
| | | |-- NET-2-HOWTO-6.html
| | | |-- NET-2-HOWTO-7.html
| | | |-- NET-2-HOWTO-8.html
| | | |-- NET-2-HOWTO-9.html
| | | |-- NET-2-HOWTO.html
| | | |-- NIS-HOWTO-1.html
| | | |-- NIS-HOWTO-10.html
| | | |-- NIS-HOWTO-2.html
| | | |-- NIS-HOWTO-3.html
| | | |-- NIS-HOWTO-4.html
| | | |-- NIS-HOWTO-5.html
| | | |-- NIS-HOWTO-6.html
| | | |-- NIS-HOWTO-7.html
| | | |-- NIS-HOWTO-8.html
| | | |-- NIS-HOWTO-9.html
| | | |-- NIS-HOWTO.html
| | | |-- News-HOWTO-1.html
| | | |-- News-HOWTO-2.html
| | | |-- News-HOWTO-3.html
| | | |-- News-HOWTO-4.html
| | | |-- News-HOWTO-5.html
| | | |-- News-HOWTO-6.html
| | | |-- News-HOWTO-7.html
| | | |-- News-HOWTO.html
| | | |-- PCI-HOWTO-1.html
| | | |-- PCI-HOWTO-10.html
| | | |-- PCI-HOWTO-11.html
| | | |-- PCI-HOWTO-12.html
| | | |-- PCI-HOWTO-13.html
| | | |-- PCI-HOWTO-2.html
| | | |-- PCI-HOWTO-3.html
| | | |-- PCI-HOWTO-4.html
| | | |-- PCI-HOWTO-5.html
| | | |-- PCI-HOWTO-6.html
| | | |-- PCI-HOWTO-7.html
| | | |-- PCI-HOWTO-8.html
| | | |-- PCI-HOWTO-9.html
| | | |-- PCI-HOWTO.html
| | | |-- PCMCIA-HOWTO-1.html
| | | |-- PCMCIA-HOWTO-2.html
| | | |-- PCMCIA-HOWTO-3.html
| | | |-- PCMCIA-HOWTO-4.html
| | | |-- PCMCIA-HOWTO-5.html
| | | |-- PCMCIA-HOWTO.html
| | | |-- PPP-HOWTO-1.html
| | | |-- PPP-HOWTO-10.html
| | | |-- PPP-HOWTO-11.html
| | | |-- PPP-HOWTO-12.html
| | | |-- PPP-HOWTO-13.html
| | | |-- PPP-HOWTO-14.html
| | | |-- PPP-HOWTO-15.html
| | | |-- PPP-HOWTO-16.html
| | | |-- PPP-HOWTO-17.html
| | | |-- PPP-HOWTO-2.html
| | | |-- PPP-HOWTO-3.html
| | | |-- PPP-HOWTO-4.html
| | | |-- PPP-HOWTO-5.html
| | | |-- PPP-HOWTO-6.html
| | | |-- PPP-HOWTO-7.html
| | | |-- PPP-HOWTO-8.html
| | | |-- PPP-HOWTO-9.html
| | | |-- PPP-HOWTO.html
| | | |-- Portuguese-HOWTO-1.html
| | | |-- Portuguese-HOWTO-2.html
| | | |-- Portuguese-HOWTO-3.html
| | | |-- Portuguese-HOWTO-4.html
| | | |-- Portuguese-HOWTO-5.html
| | | |-- Portuguese-HOWTO-6.html
| | | |-- Portuguese-HOWTO-7.html
| | | |-- Portuguese-HOWTO.html
| | | |-- Printing-HOWTO-1.html
| | | |-- Printing-HOWTO-10.html
| | | |-- Printing-HOWTO-11.html
| | | |-- Printing-HOWTO-12.html
| | | |-- Printing-HOWTO-2.html
| | | |-- Printing-HOWTO-3.html
| | | |-- Printing-HOWTO-4.html
| | | |-- Printing-HOWTO-5.html
| | | |-- Printing-HOWTO-6.html
| | | |-- Printing-HOWTO-7.html
| | | |-- Printing-HOWTO-8.html
| | | |-- Printing-HOWTO-9.html
| | | |-- Printing-HOWTO.html
| | | |-- Printing-Usage-HOWTO-1.html
| | | |-- Printing-Usage-HOWTO-2.html
| | | |-- Printing-Usage-HOWTO-3.html
| | | |-- Printing-Usage-HOWTO-4.html
| | | |-- Printing-Usage-HOWTO-5.html
| | | |-- Printing-Usage-HOWTO-6.html
| | | |-- Printing-Usage-HOWTO-7.html
| | | |-- Printing-Usage-HOWTO.html
| | | |-- SCSI-Programming-HOWTO-1.html
| | | |-- SCSI-Programming-HOWTO-10.html
| | | |-- SCSI-Programming-HOWTO-11.html
| | | |-- SCSI-Programming-HOWTO-12.html
| | | |-- SCSI-Programming-HOWTO-13.html
| | | |-- SCSI-Programming-HOWTO-14.html
| | | |-- SCSI-Programming-HOWTO-15.html
| | | |-- SCSI-Programming-HOWTO-16.html
| | | |-- SCSI-Programming-HOWTO-17.html
| | | |-- SCSI-Programming-HOWTO-18.html
| | | |-- SCSI-Programming-HOWTO-19.html
| | | |-- SCSI-Programming-HOWTO-2.html
| | | |-- SCSI-Programming-HOWTO-20.html
| | | |-- SCSI-Programming-HOWTO-21.html
| | | |-- SCSI-Programming-HOWTO-22.html
| | | |-- SCSI-Programming-HOWTO-23.html
| | | |-- SCSI-Programming-HOWTO-3.html
| | | |-- SCSI-Programming-HOWTO-4.html
| | | |-- SCSI-Programming-HOWTO-5.html
| | | |-- SCSI-Programming-HOWTO-6.html
| | | |-- SCSI-Programming-HOWTO-7.html
| | | |-- SCSI-Programming-HOWTO-8.html
| | | |-- SCSI-Programming-HOWTO-9.html
| | | |-- SCSI-Programming-HOWTO.html
| | | |-- Serial-HOWTO-1.html
| | | |-- Serial-HOWTO-10.html
| | | |-- Serial-HOWTO-11.html
| | | |-- Serial-HOWTO-12.html
| | | |-- Serial-HOWTO-13.html
| | | |-- Serial-HOWTO-14.html
| | | |-- Serial-HOWTO-15.html
| | | |-- Serial-HOWTO-16.html
| | | |-- Serial-HOWTO-2.html
| | | |-- Serial-HOWTO-3.html
| | | |-- Serial-HOWTO-4.html
| | | |-- Serial-HOWTO-5.html
| | | |-- Serial-HOWTO-6.html
| | | |-- Serial-HOWTO-7.html
| | | |-- Serial-HOWTO-8.html
| | | |-- Serial-HOWTO-9.html
| | | |-- Serial-HOWTO.html
| | | |-- Shadow-Password-HOWTO-1.html
| | | |-- Shadow-Password-HOWTO-2.html
| | | |-- Shadow-Password-HOWTO-3.html
| | | |-- Shadow-Password-HOWTO-4.html
| | | |-- Shadow-Password-HOWTO-5.html
| | | |-- Shadow-Password-HOWTO-6.html
| | | |-- Shadow-Password-HOWTO-7.html
| | | |-- Shadow-Password-HOWTO-8.html
| | | |-- Shadow-Password-HOWTO-9.html
| | | |-- Shadow-Password-HOWTO.html
| | | |-- Sound-HOWTO-1.html
| | | |-- Sound-HOWTO-2.html
| | | |-- Sound-HOWTO-3.html
| | | |-- Sound-HOWTO-4.html
| | | |-- Sound-HOWTO-5.html
| | | |-- Sound-HOWTO-6.html
| | | |-- Sound-HOWTO-7.html
| | | |-- Sound-HOWTO.html
| | | |-- Sound-Playing-HOWTO-1.html
| | | |-- Sound-Playing-HOWTO-2.html
| | | |-- Sound-Playing-HOWTO-3.html
| | | |-- Sound-Playing-HOWTO-4.html
| | | |-- Sound-Playing-HOWTO.html
| | | |-- TRANS.TBL
| | | |-- Term-HOWTO-1.html
| | | |-- Term-HOWTO-10.html
| | | |-- Term-HOWTO-11.html
| | | |-- Term-HOWTO-12.html
| | | |-- Term-HOWTO-13.html
| | | |-- Term-HOWTO-14.html
| | | |-- Term-HOWTO-15.html
| | | |-- Term-HOWTO-16.html
| | | |-- Term-HOWTO-17.html
| | | |-- Term-HOWTO-18.html
| | | |-- Term-HOWTO-2.html
| | | |-- Term-HOWTO-3.html
| | | |-- Term-HOWTO-4.html
| | | |-- Term-HOWTO-5.html
| | | |-- Term-HOWTO-6.html
| | | |-- Term-HOWTO-7.html
| | | |-- Term-HOWTO-8.html
| | | |-- Term-HOWTO-9.html
| | | |-- Term-HOWTO.html
| | | |-- Tips-HOWTO-1.html
| | | |-- Tips-HOWTO-2.html
| | | |-- Tips-HOWTO-3.html
| | | |-- Tips-HOWTO.html
| | | |-- UMSDOS-HOWTO-1.html
| | | |-- UMSDOS-HOWTO-2.html
| | | |-- UMSDOS-HOWTO-3.html
| | | |-- UMSDOS-HOWTO-4.html
| | | |-- UMSDOS-HOWTO-5.html
| | | |-- UMSDOS-HOWTO-6.html
| | | |-- UMSDOS-HOWTO-7.html
| | | |-- UMSDOS-HOWTO-8.html
| | | |-- UMSDOS-HOWTO.html
| | | |-- UPS-HOWTO-1.html
| | | |-- UPS-HOWTO-10.html
| | | |-- UPS-HOWTO-11.html
| | | |-- UPS-HOWTO-12.html
| | | |-- UPS-HOWTO-2.html
| | | |-- UPS-HOWTO-3.html
| | | |-- UPS-HOWTO-4.html
| | | |-- UPS-HOWTO-5.html
| | | |-- UPS-HOWTO-6.html
| | | |-- UPS-HOWTO-7.html
| | | |-- UPS-HOWTO-8.html
| | | |-- UPS-HOWTO-9.html
| | | |-- UPS-HOWTO.html
| | | |-- UUCP-HOWTO-1.html
| | | |-- UUCP-HOWTO-2.html
| | | |-- UUCP-HOWTO-3.html
| | | |-- UUCP-HOWTO-4.html
| | | |-- UUCP-HOWTO-5.html
| | | |-- UUCP-HOWTO-6.html
| | | |-- UUCP-HOWTO.html
| | | |-- XFree86-HOWTO-1.html
| | | |-- XFree86-HOWTO-2.html
| | | |-- XFree86-HOWTO-3.html
| | | |-- XFree86-HOWTO-4.html
| | | |-- XFree86-HOWTO-5.html
| | | |-- XFree86-HOWTO-6.html
| | | |-- XFree86-HOWTO-7.html
| | | |-- XFree86-HOWTO-8.html
| | | |-- XFree86-HOWTO.html
| | | `-- install-guide-2.2.2.html
| | | |-- .ID_MAP.dir
| | | |-- .ID_MAP.pag
| | | |-- .IMG_PARAMS.dir
| | | |-- .IMG_PARAMS.pag
| | | |-- .ORIG_MAP.dir
| | | |-- .ORIG_MAP.pag
| | | |-- TRANS.TBL
| | | |-- bdt.gif
| | | |-- change_begin.gif
| | | |-- change_delete.gif
| | | |-- change_end.gif
| | | |-- contents.xbm
| | | |-- contents_motif.gif
| | | |-- cross_ref_motif.gif
| | | |-- foot_motif.gif
| | | |-- footnode.html
| | | |-- gs.html
| | | |-- icons.html
| | | |-- image.gif
| | | |-- images.aux
| | | |-- images.idx
| | | |-- images.log
| | | |-- images.pl
| | | |-- images.tex
| | | |-- img1.gif
| | | |-- img10.gif
| | | |-- img100.gif
| | | |-- img101.gif
| | | |-- img102.gif
| | | |-- img103.gif
| | | |-- img104.gif
| | | |-- img105.gif
| | | |-- img106.gif
| | | |-- img107.gif
| | | |-- img108.gif
| | | |-- img109.gif
| | | |-- img11.gif
| | | |-- img110.gif
| | | |-- img111.gif
| | | |-- img112.gif
| | | |-- img113.gif
| | | |-- img114.gif
| | | |-- img115.gif
| | | |-- img116.gif
| | | |-- img117.gif
| | | |-- img118.gif
| | | |-- img119.gif
| | | |-- img12.gif
| | | |-- img120.gif
| | | |-- img121.gif
| | | |-- img122.gif
| | | |-- img123.gif
| | | |-- img124.gif
| | | |-- img125.gif
| | | |-- img126.gif
| | | |-- img127.gif
| | | |-- img128.gif
| | | |-- img129.gif
| | | |-- img13.gif
| | | |-- img130.gif
| | | |-- img131.gif
| | | |-- img132.gif
| | | |-- img133.gif
| | | |-- img134.gif
| | | |-- img135.gif
| | | |-- img136.gif
| | | |-- img137.gif
| | | |-- img138.gif
| | | |-- img139.gif
| | | |-- img14.gif
| | | |-- img140.gif
| | | |-- img141.gif
| | | |-- img142.gif
| | | |-- img143.gif
| | | |-- img144.gif
| | | |-- img145.gif
| | | |-- img146.gif
| | | |-- img147.gif
| | | |-- img148.gif
| | | |-- img149.gif
| | | |-- img15.gif
| | | |-- img150.gif
| | | |-- img151.gif
| | | |-- img152.gif
| | | |-- img153.gif
| | | |-- img154.gif
| | | |-- img155.gif
| | | |-- img156.gif
| | | |-- img157.gif
| | | |-- img158.gif
| | | |-- img159.gif
| | | |-- img16.gif
| | | |-- img160.gif
| | | |-- img161.gif
| | | |-- img162.gif
| | | |-- img163.gif
| | | |-- img164.gif
| | | |-- img165.gif
| | | |-- img166.gif
| | | |-- img167.gif
| | | |-- img168.gif
| | | |-- img169.gif
| | | |-- img17.gif
| | | |-- img170.gif
| | | |-- img171.gif
| | | |-- img172.gif
| | | |-- img173.gif
| | | |-- img174.gif
| | | |-- img175.gif
| | | |-- img176.gif
| | | |-- img177.gif
| | | |-- img178.gif
| | | |-- img179.gif
| | | |-- img18.gif
| | | |-- img180.gif
| | | |-- img181.gif
| | | |-- img182.gif
| | | |-- img183.gif
| | | |-- img184.gif
| | | |-- img185.gif
| | | |-- img186.gif
| | | |-- img187.gif
| | | |-- img188.gif
| | | |-- img189.gif
| | | |-- img19.gif
| | | |-- img190.gif
| | | |-- img191.gif
| | | |-- img192.gif
| | | |-- img193.gif
| | | |-- img194.gif
| | | |-- img195.gif
| | | |-- img196.gif
| | | |-- img197.gif
| | | |-- img198.gif
| | | |-- img199.gif
| | | |-- img2.gif
| | | |-- img20.gif
| | | |-- img200.gif
| | | |-- img201.gif
| | | |-- img202.gif
| | | |-- img203.gif
| | | |-- img204.gif
| | | |-- img205.gif
| | | |-- img206.gif
| | | |-- img207.gif
| | | |-- img208.gif
| | | |-- img209.gif
| | | |-- img21.gif
| | | |-- img210.gif
| | | |-- img211.gif
| | | |-- img212.gif
| | | |-- img213.gif
| | | |-- img214.gif
| | | |-- img215.gif
| | | |-- img216.gif
| | | |-- img217.gif
| | | |-- img218.gif
| | | |-- img219.gif
| | | |-- img22.gif
| | | |-- img220.gif
| | | |-- img221.gif
| | | |-- img222.gif
| | | |-- img223.gif
| | | |-- img224.gif
| | | |-- img225.gif
| | | |-- img226.gif
| | | |-- img227.gif
| | | |-- img228.gif
| | | |-- img229.gif
| | | |-- img23.gif
| | | |-- img230.gif
| | | |-- img231.gif
| | | |-- img232.gif
| | | |-- img233.gif
| | | |-- img234.gif
| | | |-- img235.gif
| | | |-- img236.gif
| | | |-- img237.gif
| | | |-- img238.gif
| | | |-- img239.gif
| | | |-- img24.gif
| | | |-- img240.gif
| | | |-- img241.gif
| | | |-- img242.gif
| | | |-- img243.gif
| | | |-- img244.gif
| | | |-- img245.gif
| | | |-- img246.gif
| | | |-- img247.gif
| | | |-- img248.gif
| | | |-- img249.gif
| | | |-- img25.gif
| | | |-- img250.gif
| | | |-- img251.gif
| | | |-- img252.gif
| | | |-- img253.gif
| | | |-- img254.gif
| | | |-- img255.gif
| | | |-- img256.gif
| | | |-- img257.gif
| | | |-- img258.gif
| | | |-- img259.gif
| | | |-- img26.gif
| | | |-- img260.gif
| | | |-- img261.gif
| | | |-- img262.gif
| | | |-- img263.gif
| | | |-- img264.gif
| | | |-- img265.gif
| | | |-- img266.gif
| | | |-- img267.gif
| | | |-- img268.gif
| | | |-- img269.gif
| | | |-- img27.gif
| | | |-- img270.gif
| | | |-- img271.gif
| | | |-- img272.gif
| | | |-- img273.gif
| | | |-- img274.gif
| | | |-- img275.gif
| | | |-- img276.gif
| | | |-- img277.gif
| | | |-- img278.gif
| | | |-- img279.gif
| | | |-- img28.gif
| | | |-- img280.gif
| | | |-- img281.gif
| | | |-- img282.gif
| | | |-- img283.gif
| | | |-- img284.gif
| | | |-- img285.gif
| | | |-- img286.gif
| | | |-- img287.gif
| | | |-- img288.gif
| | | |-- img289.gif
| | | |-- img29.gif
| | | |-- img290.gif
| | | |-- img291.gif
| | | |-- img292.gif
| | | |-- img293.gif
| | | |-- img294.gif
| | | |-- img295.gif
| | | |-- img296.gif
| | | |-- img297.gif
| | | |-- img298.gif
| | | |-- img299.gif
| | | |-- img3.gif
| | | |-- img30.gif
| | | |-- img300.gif
| | | |-- img301.gif
| | | |-- img302.gif
| | | |-- img303.gif
| | | |-- img304.gif
| | | |-- img305.gif
| | | |-- img306.gif
| | | |-- img307.gif
| | | |-- img308.gif
| | | |-- img309.gif
| | | |-- img31.gif
| | | |-- img310.gif
| | | |-- img311.gif
| | | |-- img312.gif
| | | |-- img313.gif
| | | |-- img314.gif
| | | |-- img315.gif
| | | |-- img316.gif
| | | |-- img317.gif
| | | |-- img318.gif
| | | |-- img319.gif
| | | |-- img32.gif
| | | |-- img320.gif
| | | |-- img33.gif
| | | |-- img34.gif
| | | |-- img35.gif
| | | |-- img36.gif
| | | |-- img37.gif
| | | |-- img38.gif
| | | |-- img39.gif
| | | |-- img4.gif
| | | |-- img40.gif
| | | |-- img41.gif
| | | |-- img42.gif
| | | |-- img43.gif
| | | |-- img44.gif
| | | |-- img45.gif
| | | |-- img46.gif
| | | |-- img47.gif
| | | |-- img48.gif
| | | |-- img49.gif
| | | |-- img5.gif
| | | |-- img50.gif
| | | |-- img51.gif
| | | |-- img52.gif
| | | |-- img53.gif
| | | |-- img54.gif
| | | |-- img55.gif
| | | |-- img56.gif
| | | |-- img57.gif
| | | |-- img58.gif
| | | |-- img59.gif
| | | |-- img6.gif
| | | |-- img60.gif
| | | |-- img61.gif
| | | |-- img62.gif
| | | |-- img63.gif
| | | |-- img64.gif
| | | |-- img65.gif
| | | |-- img66.gif
| | | |-- img67.gif
| | | |-- img68.gif
| | | |-- img69.gif
| | | |-- img7.gif
| | | |-- img70.gif
| | | |-- img71.gif
| | | |-- img72.gif
| | | |-- img73.gif
| | | |-- img74.gif
| | | |-- img75.gif
| | | |-- img76.gif
| | | |-- img77.gif
| | | |-- img78.gif
| | | |-- img79.gif
| | | |-- img8.gif
| | | |-- img80.gif
| | | |-- img81.gif
| | | |-- img82.gif
| | | |-- img83.gif
| | | |-- img84.gif
| | | |-- img85.gif
| | | |-- img86.gif
| | | |-- img87.gif
| | | |-- img88.gif
| | | |-- img89.gif
| | | |-- img9.gif
| | | |-- img90.gif
| | | |-- img91.gif
| | | |-- img92.gif
| | | |-- img93.gif
| | | |-- img94.gif
| | | |-- img95.gif
| | | |-- img96.gif
| | | |-- img97.gif
| | | |-- img98.gif
| | | |-- img99.gif
| | | |-- index_motif.gif
| | | |-- invis_anchor.xbm
| | | |-- labels.pl
| | | |-- linux.gif
| | | |-- next_group_motif.gif
| | | |-- next_group_motif_gr.gif
| | | |-- next_motif.gif
| | | |-- next_motif_gr.gif
| | | |-- node1.html
| | | |-- node10.html
| | | |-- node100.html
| | | |-- node101.html
| | | |-- node102.html
| | | |-- node103.html
| | | |-- node104.html
| | | |-- node105.html
| | | |-- node106.html
| | | |-- node107.html
| | | |-- node108.html
| | | |-- node109.html
| | | |-- node11.html
| | | |-- node110.html
| | | |-- node111.html
| | | |-- node112.html
| | | |-- node113.html
| | | |-- node114.html
| | | |-- node115.html
| | | |-- node116.html
| | | |-- node117.html
| | | |-- node118.html
| | | |-- node119.html
| | | |-- node12.html
| | | |-- node120.html
| | | |-- node121.html
| | | |-- node122.html
| | | |-- node123.html
| | | |-- node124.html
| | | |-- node125.html
| | | |-- node126.html
| | | |-- node127.html
| | | |-- node128.html
| | | |-- node129.html
| | | |-- node13.html
| | | |-- node130.html
| | | |-- node131.html
| | | |-- node132.html
| | | |-- node133.html
| | | |-- node134.html
| | | |-- node135.html
| | | |-- node136.html
| | | |-- node137.html
| | | |-- node138.html
| | | |-- node139.html
| | | |-- node14.html
| | | |-- node140.html
| | | |-- node141.html
| | | |-- node142.html
| | | |-- node143.html
| | | |-- node144.html
| | | |-- node145.html
| | | |-- node146.html
| | | |-- node147.html
| | | |-- node148.html
| | | |-- node149.html
| | | |-- node15.html
| | | |-- node150.html
| | | |-- node151.html
| | | |-- node152.html
| | | |-- node153.html
| | | |-- node154.html
| | | |-- node155.html
| | | |-- node156.html
| | | |-- node157.html
| | | |-- node158.html
| | | |-- node159.html
| | | |-- node16.html
| | | |-- node160.html
| | | |-- node161.html
| | | |-- node162.html
| | | |-- node163.html
| | | |-- node164.html
| | | |-- node165.html
| | | |-- node166.html
| | | |-- node167.html
| | | |-- node168.html
| | | |-- node169.html
| | | |-- node17.html
| | | |-- node170.html
| | | |-- node171.html
| | | |-- node172.html
| | | |-- node173.html
| | | |-- node174.html
| | | |-- node175.html
| | | |-- node176.html
| | | |-- node177.html
| | | |-- node178.html
| | | |-- node179.html
| | | |-- node18.html
| | | |-- node180.html
| | | |-- node181.html
| | | |-- node182.html
| | | |-- node183.html
| | | |-- node184.html
| | | |-- node185.html
| | | |-- node186.html
| | | |-- node187.html
| | | |-- node188.html
| | | |-- node189.html
| | | |-- node19.html
| | | |-- node190.html
| | | |-- node191.html
| | | |-- node192.html
| | | |-- node193.html
| | | |-- node194.html
| | | |-- node195.html
| | | |-- node196.html
| | | |-- node197.html
| | | |-- node198.html
| | | |-- node199.html
| | | |-- node2.html
| | | |-- node20.html
| | | |-- node200.html
| | | |-- node201.html
| | | |-- node202.html
| | | |-- node203.html
| | | |-- node204.html
| | | |-- node205.html
| | | |-- node206.html
| | | |-- node207.html
| | | |-- node208.html
| | | |-- node209.html
| | | |-- node21.html
| | | |-- node210.html
| | | |-- node211.html
| | | |-- node212.html
| | | |-- node213.html
| | | |-- node214.html
| | | |-- node215.html
| | | |-- node216.html
| | | |-- node217.html
| | | |-- node218.html
| | | |-- node219.html
| | | |-- node22.html
| | | |-- node220.html
| | | |-- node221.html
| | | |-- node222.html
| | | |-- node223.html
| | | |-- node224.html
| | | |-- node225.html
| | | |-- node226.html
| | | |-- node227.html
| | | |-- node228.html
| | | |-- node229.html
| | | |-- node23.html
| | | |-- node230.html
| | | |-- node231.html
| | | |-- node232.html
| | | |-- node233.html
| | | |-- node234.html
| | | |-- node235.html
| | | |-- node236.html
| | | |-- node237.html
| | | |-- node238.html
| | | |-- node239.html
| | | |-- node24.html
| | | |-- node240.html
| | | |-- node241.html
| | | |-- node242.html
| | | |-- node243.html
| | | |-- node244.html
| | | |-- node245.html
| | | |-- node246.html
| | | |-- node247.html
| | | |-- node248.html
| | | |-- node249.html
| | | |-- node25.html
| | | |-- node250.html
| | | |-- node251.html
| | | |-- node26.html
| | | |-- node27.html
| | | |-- node28.html
| | | |-- node29.html
| | | |-- node3.html
| | | |-- node30.html
| | | |-- node31.html
| | | |-- node32.html
| | | |-- node33.html
| | | |-- node34.html
| | | |-- node35.html
| | | |-- node36.html
| | | |-- node37.html
| | | |-- node38.html
| | | |-- node39.html
| | | |-- node4.html
| | | |-- node40.html
| | | |-- node41.html
| | | |-- node42.html
| | | |-- node43.html
| | | |-- node44.html
| | | |-- node45.html
| | | |-- node46.html
| | | |-- node47.html
| | | |-- node48.html
| | | |-- node49.html
| | | |-- node5.html
| | | |-- node50.html
| | | |-- node51.html
| | | |-- node52.html
| | | |-- node53.html
| | | |-- node54.html
| | | |-- node55.html
| | | |-- node56.html
| | | |-- node57.html
| | | |-- node58.html
| | | |-- node59.html
| | | |-- node6.html
| | | |-- node60.html
| | | |-- node61.html
| | | |-- node62.html
| | | |-- node63.html
| | | |-- node64.html
| | | |-- node65.html
| | | |-- node66.html
| | | |-- node67.html
| | | |-- node68.html
| | | |-- node69.html
| | | |-- node7.html
| | | |-- node70.html
| | | |-- node71.html
| | | |-- node72.html
| | | |-- node73.html
| | | |-- node74.html
| | | |-- node75.html
| | | |-- node76.html
| | | |-- node77.html
| | | |-- node78.html
| | | |-- node79.html
| | | |-- node8.html
| | | |-- node80.html
| | | |-- node81.html
| | | |-- node82.html
| | | |-- node83.html
| | | |-- node84.html
| | | |-- node85.html
| | | |-- node86.html
| | | |-- node87.html
| | | |-- node88.html
| | | |-- node89.html
| | | |-- node9.html
| | | |-- node90.html
| | | |-- node91.html
| | | |-- node92.html
| | | |-- node93.html
| | | |-- node94.html
| | | |-- node95.html
| | | |-- node96.html
| | | |-- node97.html
| | | |-- node98.html
| | | |-- node99.html
| | | |-- notes.html
| | | |-- previous_group_motif.gif
| | | |-- previous_group_motif_gr.gif
| | | |-- previous_motif.gif
| | | |-- previous_motif_gr.gif
| | | |-- up_motif.gif
| | | `-- up_motif_gr.gif
| | `-- rhcl_small.gif
| |-- TRANS.TBL
| |-- Users-Guide
| | |-- RHL-4.1-Users-Guide-HTML.tar.gz
| | |-- RHL-4.1-Users-Guide.a4.ps.gz
| | |-- RHL-4.1-Users-Guide.ps.gz
| | `-- TRANS.TBL
| |-- misc
| | |-- Boot-Process-Tips.txt
| | |-- CD-Type-HOWTO.txt
| | |-- Color-ls-Tips.txt
| | |-- Compile-Tips.txt
| | |-- Custom-X-Tips.txt
| | |-- FAQ -> RedHat-FAQ.txt
| | |-- FTP-Setup-Tips.txt
| | |-- Help-Tips.txt
| | |-- INN-Tips.txt
| | |-- NFS-Tips.txt
| | |-- NYS-Tips.txt
| | |-- PPP-Client-HOWTO.txt
| | |-- PPP-Tips.txt
| | |-- RPM-HOWTO.txt
| | |-- RPM-Tips.txt
| | |-- RedHat-FAQ.txt
| | |-- TRANS.TBL
| | |-- UUCP-Tips.txt
| | |-- WWW-Server-Tips.txt
| | `-- other-formats
| | |-- TRANS.TBL
| | |-- dvi
| | | |-- Boot-Process-Tips.dvi
| | | |-- CD-Type-HOWTO.dvi
| | | |-- Color-ls-Tips.dvi
| | | |-- Compile-Tips.dvi
| | | |-- Custom-X-Tips.dvi
| | | |-- FTP-Setup-Tips.dvi
| | | |-- Help-Tips.dvi
| | | |-- INN-Tips.dvi
| | | |-- NFS-Tips.dvi
| | | |-- NYS-Tips.dvi
| | | |-- PPP-Client-HOWTO.dvi
| | | |-- PPP-Tips.dvi
| | | |-- RPM-HOWTO.dvi
| | | |-- RPM-Tips.dvi
| | | |-- RedHat-FAQ.dvi
| | | |-- TRANS.TBL
| | | |-- UUCP-Tips.dvi
| | | `-- WWW-Server-Tips.dvi
| | |-- html.untarred
| | | |-- Boot-Process-Tips-1.html
| | | |-- Boot-Process-Tips-2.html
| | | |-- Boot-Process-Tips-3.html
| | | |-- Boot-Process-Tips.html
| | | |-- CD-Type-HOWTO-1.html
| | | |-- CD-Type-HOWTO-2.html
| | | |-- CD-Type-HOWTO-3.html
| | | |-- CD-Type-HOWTO-4.html
| | | |-- CD-Type-HOWTO-5.html
| | | |-- CD-Type-HOWTO-6.html
| | | |-- CD-Type-HOWTO-7.html
| | | |-- CD-Type-HOWTO-8.html
| | | |-- CD-Type-HOWTO-9.html
| | | |-- CD-Type-HOWTO.html
| | | |-- CD-Type-HOWTO.sgml.html
| | | |-- Color-ls-Tips.html
| | | |-- Compile-Tips.html
| | | |-- Custom-X-Tips.html
| | | |-- FTP-Setup-Tips.html
| | | |-- Help-Tips-1.html
| | | |-- Help-Tips-2.html
| | | |-- Help-Tips-3.html
| | | |-- Help-Tips-4.html
| | | |-- Help-Tips-5.html
| | | |-- Help-Tips-6.html
| | | |-- Help-Tips-7.html
| | | |-- Help-Tips.html
| | | |-- INN-Tips.html
| | | |-- NFS-Tips.html
| | | |-- NYS-Tips-1.html
| | | |-- NYS-Tips-2.html
| | | |-- NYS-Tips-3.html
| | | |-- NYS-Tips.html
| | | |-- PPP-Client-HOWTO-1.html
| | | |-- PPP-Client-HOWTO-10.html
| | | |-- PPP-Client-HOWTO-11.html
| | | |-- PPP-Client-HOWTO-12.html
| | | |-- PPP-Client-HOWTO-13.html
| | | |-- PPP-Client-HOWTO-14.html
| | | |-- PPP-Client-HOWTO-15.html
| | | |-- PPP-Client-HOWTO-16.html
| | | |-- PPP-Client-HOWTO-17.html
| | | |-- PPP-Client-HOWTO-18.html
| | | |-- PPP-Client-HOWTO-19.html
| | | |-- PPP-Client-HOWTO-2.html
| | | |-- PPP-Client-HOWTO-20.html
| | | |-- PPP-Client-HOWTO-21.html
| | | |-- PPP-Client-HOWTO-22.html
| | | |-- PPP-Client-HOWTO-23.html
| | | |-- PPP-Client-HOWTO-24.html
| | | |-- PPP-Client-HOWTO-3.html
| | | |-- PPP-Client-HOWTO-4.html
| | | |-- PPP-Client-HOWTO-5.html
| | | |-- PPP-Client-HOWTO-6.html
| | | |-- PPP-Client-HOWTO-7.html
| | | |-- PPP-Client-HOWTO-8.html
| | | |-- PPP-Client-HOWTO-9.html
| | | |-- PPP-Client-HOWTO.html
| | | |-- PPP-Tips.html
| | | |-- RH-2.0-Manual.sgml-1.html
| | | |-- RH-2.0-Manual.sgml-2.html
| | | |-- RH-2.0-Manual.sgml-3.html
| | | |-- RH-2.0-Manual.sgml-4.html
| | | |-- RH-2.0-Manual.sgml-5.html
| | | |-- RH-2.0-Manual.sgml-6.html
| | | |-- RH-2.0-Manual.sgml.html
| | | |-- RHCL-Installation-HOWTO.sgml-1.html
| | | |-- RHCL-Installation-HOWTO.sgml-2.html
| | | |-- RHCL-Installation-HOWTO.sgml-3.html
| | | |-- RHCL-Installation-HOWTO.sgml-4.html
| | | |-- RHCL-Installation-HOWTO.sgml-5.html
| | | |-- RHCL-Installation-HOWTO.sgml-6.html
| | | |-- RHCL-Installation-HOWTO.sgml-7.html
| | | |-- RHCL-Installation-HOWTO.sgml-8.html
| | | |-- RHCL-Installation-HOWTO.sgml-9.html
| | | |-- RHCL-Installation-HOWTO.sgml.html
| | | |-- RPM-HOWTO-1.html
| | | |-- RPM-HOWTO-2.html
| | | |-- RPM-HOWTO-3.html
| | | |-- RPM-HOWTO-4.html
| | | |-- RPM-HOWTO-5.html
| | | |-- RPM-HOWTO-6.html
| | | |-- RPM-HOWTO-7.html
| | | |-- RPM-HOWTO-8.html
| | | |-- RPM-HOWTO-9.html
| | | |-- RPM-HOWTO.html
| | | |-- RPM-HOWTO.sgml-1.html
| | | |-- RPM-HOWTO.sgml-2.html
| | | |-- RPM-HOWTO.sgml-3.html
| | | |-- RPM-HOWTO.sgml-4.html
| | | |-- RPM-HOWTO.sgml-5.html
| | | |-- RPM-HOWTO.sgml-6.html
| | | |-- RPM-HOWTO.sgml-7.html
| | | |-- RPM-HOWTO.sgml-8.html
| | | |-- RPM-HOWTO.sgml.html
| | | |-- RPM-Tips.html
| | | |-- RedHat-FAQ-1.html
| | | |-- RedHat-FAQ-2.html
| | | |-- RedHat-FAQ-3.html
| | | |-- RedHat-FAQ-4.html
| | | |-- RedHat-FAQ-5.html
| | | |-- RedHat-FAQ-6.html
| | | |-- RedHat-FAQ.html
| | | |-- RedHat-FAQ.sgml-1.html
| | | |-- RedHat-FAQ.sgml-2.html
| | | |-- RedHat-FAQ.sgml-3.html
| | | |-- RedHat-FAQ.sgml-4.html
| | | |-- RedHat-FAQ.sgml-5.html
| | | |-- RedHat-FAQ.sgml-6.html
| | | |-- RedHat-FAQ.sgml-7.html
| | | |-- RedHat-FAQ.sgml.html
| | | |-- RedHat-HOWTO-1.html
| | | |-- RedHat-HOWTO-2.html
| | | |-- RedHat-HOWTO-3.html
| | | |-- RedHat-HOWTO-4.html
| | | |-- RedHat-HOWTO-5.html
| | | |-- RedHat-HOWTO-6.html
| | | |-- RedHat-HOWTO-7.html
| | | |-- RedHat-HOWTO-8.html
| | | |-- RedHat-HOWTO.html
| | | |-- RedHat-HOWTO.sgml-1.html
| | | |-- RedHat-HOWTO.sgml-2.html
| | | |-- RedHat-HOWTO.sgml-3.html
| | | |-- RedHat-HOWTO.sgml-4.html
| | | |-- RedHat-HOWTO.sgml-5.html
| | | |-- RedHat-HOWTO.sgml-6.html
| | | |-- RedHat-HOWTO.sgml-7.html
| | | |-- RedHat-HOWTO.sgml-8.html
| | | |-- RedHat-HOWTO.sgml.html
| | | |-- SparcLinux-HOWTO-1.html
| | | |-- SparcLinux-HOWTO-2.html
| | | |-- SparcLinux-HOWTO-3.html
| | | |-- SparcLinux-HOWTO-4.html
| | | |-- SparcLinux-HOWTO-5.html
| | | |-- SparcLinux-HOWTO-6.html
| | | |-- SparcLinux-HOWTO.html
| | | |-- SparcLinux-HOWTO.sgml.html
| | | |-- TRANS.TBL
| | | |-- Test-HOWTO-1.html
| | | |-- Test-HOWTO.html
| | | |-- UUCP-Tips-1.html
| | | |-- UUCP-Tips-2.html
| | | |-- UUCP-Tips-3.html
| | | |-- UUCP-Tips-4.html
| | | |-- UUCP-Tips-5.html
| | | |-- UUCP-Tips-6.html
| | | |-- UUCP-Tips.html
| | | |-- WWW-Server-Tips.html
| | | `-- tar.gz
| | | |-- Boot-Process-Tips.html.tar.gz
| | | |-- CD-Type-HOWTO.html.tar.gz
| | | |-- Color-ls-Tips.html.tar.gz
| | | |-- Compile-Tips.html.tar.gz
| | | |-- Custom-X-Tips.html.tar.gz
| | | |-- FTP-Setup-Tips.html.tar.gz
| | | |-- Help-Tips.html.tar.gz
| | | |-- INN-Tips.html.tar.gz
| | | |-- NFS-Tips.html.tar.gz
| | | |-- NYS-Tips.html.tar.gz
| | | |-- PPP-Client-HOWTO.html.tar.gz
| | | |-- PPP-Tips.html.tar.gz
| | | |-- RPM-HOWTO.html.tar.gz
| | | |-- RPM-Tips.html.tar.gz
| | | |-- RedHat-FAQ.html.tar.gz
| | | |-- TRANS.TBL
| | | |-- UUCP-Tips.html.tar.gz
| | | `-- WWW-Server-Tips.html.tar.gz
| | `-- ps
| | |-- Boot-Process-Tips.ps
| | |-- CD-Type-HOWTO.ps
| | |-- Color-ls-Tips.ps
| | |-- Compile-Tips.ps
| | |-- Custom-X-Tips.ps
| | |-- FTP-Setup-Tips.ps
| | |-- Help-Tips.ps
| | |-- INN-Tips.ps
| | |-- NFS-Tips.ps
| | |-- NYS-Tips.ps
| | |-- PPP-Client-HOWTO.ps
| | |-- PPP-Tips.ps
| | |-- RPM-HOWTO.ps
| | |-- RPM-Tips.ps
| | |-- RedHat-FAQ.ps
| | |-- TRANS.TBL
| | |-- UUCP-Tips.ps
| | `-- WWW-Server-Tips.ps
| `-- redhat-digest
| |-- TRANS.TBL
| |-- volume95
| | |-- TRANS.TBL
| | |-- issue-1.gz
| | |-- issue-10.gz
| | |-- issue-100.gz
| | |-- issue-101.gz
| | |-- issue-102.gz
| | |-- issue-103.gz
| | |-- issue-104.gz
| | |-- issue-105.gz
| | |-- issue-106.gz
| | |-- issue-107.gz
| | |-- issue-108.gz
| | |-- issue-109.gz
| | |-- issue-11.gz
| | |-- issue-110.gz
| | |-- issue-111.gz
| | |-- issue-112.gz
| | |-- issue-113.gz
| | |-- issue-114.gz
| | |-- issue-115.gz
| | |-- issue-116.gz
| | |-- issue-117.gz
| | |-- issue-118.gz
| | |-- issue-119.gz
| | |-- issue-12.gz
| | |-- issue-120.gz
| | |-- issue-121.gz
| | |-- issue-122.gz
| | |-- issue-123.gz
| | |-- issue-124.gz
| | |-- issue-125.gz
| | |-- issue-126.gz
| | |-- issue-127.gz
| | |-- issue-128.gz
| | |-- issue-129.gz
| | |-- issue-13.gz
| | |-- issue-130.gz
| | |-- issue-131.gz
| | |-- issue-132.gz
| | |-- issue-133.gz
| | |-- issue-134.gz
| | |-- issue-135.gz
| | |-- issue-136.gz
| | |-- issue-137.gz
| | |-- issue-138.gz
| | |-- issue-139.gz
| | |-- issue-14.gz
| | |-- issue-140.gz
| | |-- issue-141.gz
| | |-- issue-142.gz
| | |-- issue-143.gz
| | |-- issue-144.gz
| | |-- issue-145.gz
| | |-- issue-146.gz
| | |-- issue-147.gz
| | |-- issue-148.gz
| | |-- issue-149.gz
| | |-- issue-15.gz
| | |-- issue-150.gz
| | |-- issue-151.gz
| | |-- issue-152.gz
| | |-- issue-153.gz
| | |-- issue-154.gz
| | |-- issue-155.gz
| | |-- issue-156.gz
| | |-- issue-157.gz
| | |-- issue-158.gz
| | |-- issue-159.gz
| | |-- issue-16.gz
| | |-- issue-160.gz
| | |-- issue-161.gz
| | |-- issue-162.gz
| | |-- issue-163.gz
| | |-- issue-164.gz
| | |-- issue-165.gz
| | |-- issue-166.gz
| | |-- issue-167.gz
| | |-- issue-168.gz
| | |-- issue-169.gz
| | |-- issue-17.gz
| | |-- issue-170.gz
| | |-- issue-171.gz
| | |-- issue-18.gz
| | |-- issue-19.gz
| | |-- issue-2.gz
| | |-- issue-20.gz
| | |-- issue-21.gz
| | |-- issue-22.gz
| | |-- issue-23.gz
| | |-- issue-24.gz
| | |-- issue-25.gz
| | |-- issue-26.gz
| | |-- issue-27.gz
| | |-- issue-28.gz
| | |-- issue-29.gz
| | |-- issue-3.gz
| | |-- issue-30.gz
| | |-- issue-31.gz
| | |-- issue-32.gz
| | |-- issue-33.gz
| | |-- issue-34.gz
| | |-- issue-35.gz
| | |-- issue-36.gz
| | |-- issue-37.gz
| | |-- issue-38.gz
| | |-- issue-39.gz
| | |-- issue-4.gz
| | |-- issue-40.gz
| | |-- issue-41.gz
| | |-- issue-42.gz
| | |-- issue-43.gz
| | |-- issue-44.gz
| | |-- issue-45.gz
| | |-- issue-46.gz
| | |-- issue-47.gz
| | |-- issue-48.gz
| | |-- issue-49.gz
| | |-- issue-5.gz
| | |-- issue-50.gz
| | |-- issue-51.gz
| | |-- issue-52.gz
| | |-- issue-53.gz
| | |-- issue-54.gz
| | |-- issue-55.gz
| | |-- issue-56.gz
| | |-- issue-57.gz
| | |-- issue-58.gz
| | |-- issue-59.gz
| | |-- issue-6.gz
| | |-- issue-60.gz
| | |-- issue-61.gz
| | |-- issue-62.gz
| | |-- issue-63.gz
| | |-- issue-64.gz
| | |-- issue-65.gz
| | |-- issue-66.gz
| | |-- issue-67.gz
| | |-- issue-68.gz
| | |-- issue-69.gz
| | |-- issue-7.gz
| | |-- issue-70.gz
| | |-- issue-71.gz
| | |-- issue-72.gz
| | |-- issue-73.gz
| | |-- issue-74.gz
| | |-- issue-75.gz
| | |-- issue-76.gz
| | |-- issue-77.gz
| | |-- issue-78.gz
| | |-- issue-79.gz
| | |-- issue-8.gz
| | |-- issue-80.gz
| | |-- issue-81.gz
| | |-- issue-82.gz
| | |-- issue-83.gz
| | |-- issue-84.gz
| | |-- issue-85.gz
| | |-- issue-86.gz
| | |-- issue-87.gz
| | |-- issue-88.gz
| | |-- issue-89.gz
| | |-- issue-9.gz
| | |-- issue-90.gz
| | |-- issue-91.gz
| | |-- issue-92.gz
| | |-- issue-93.gz
| | |-- issue-94.gz
| | |-- issue-95.gz
| | |-- issue-96.gz
| | |-- issue-97.gz
| | |-- issue-98.gz
| | `-- issue-99.gz
| `-- volume96
| |-- TRANS.TBL
| |-- issue-1.gz
| |-- issue-10.gz
| |-- issue-100.gz
| |-- issue-101.gz
| |-- issue-102.gz
| |-- issue-103.gz
| |-- issue-104.gz
| |-- issue-105.gz
| |-- issue-106.gz
| |-- issue-107.gz
| |-- issue-108.gz
| |-- issue-109.gz
| |-- issue-11.gz
| |-- issue-110.gz
| |-- issue-111.gz
| |-- issue-112.gz
| |-- issue-113.gz
| |-- issue-114.gz
| |-- issue-115.gz
| |-- issue-116.gz
| |-- issue-117.gz
| |-- issue-118.gz
| |-- issue-119.gz
| |-- issue-12.gz
| |-- issue-120.gz
| |-- issue-121.gz
| |-- issue-122.gz
| |-- issue-123.gz
| |-- issue-124.gz
| |-- issue-125.gz
| |-- issue-126.gz
| |-- issue-127.gz
| |-- issue-128.gz
| |-- issue-129.gz
| |-- issue-13.gz
| |-- issue-130.gz
| |-- issue-131.gz
| |-- issue-132.gz
| |-- issue-133.gz
| |-- issue-134.gz
| |-- issue-135.gz
| |-- issue-136.gz
| |-- issue-137.gz
| |-- issue-138.gz
| |-- issue-139.gz
| |-- issue-14.gz
| |-- issue-140.gz
| |-- issue-141.gz
| |-- issue-142.gz
| |-- issue-143.gz
| |-- issue-144.gz
| |-- issue-145.gz
| |-- issue-146.gz
| |-- issue-147.gz
| |-- issue-148.gz
| |-- issue-149.gz
| |-- issue-15.gz
| |-- issue-150.gz
| |-- issue-151.gz
| |-- issue-152.gz
| |-- issue-153.gz
| |-- issue-154.gz
| |-- issue-155.gz
| |-- issue-156.gz
| |-- issue-157.gz
| |-- issue-158.gz
| |-- issue-159.gz
| |-- issue-16.gz
| |-- issue-160.gz
| |-- issue-161.gz
| |-- issue-162.gz
| |-- issue-163.gz
| |-- issue-164.gz
| |-- issue-165.gz
| |-- issue-166.gz
| |-- issue-167.gz
| |-- issue-168.gz
| |-- issue-169.gz
| |-- issue-17.gz
| |-- issue-170.gz
| |-- issue-171.gz
| |-- issue-172.gz
| |-- issue-173.gz
| |-- issue-174.gz
| |-- issue-175.gz
| |-- issue-176.gz
| |-- issue-177.gz
| |-- issue-178.gz
| |-- issue-179.gz
| |-- issue-18.gz
| |-- issue-180.gz
| |-- issue-181.gz
| |-- issue-182.gz
| |-- issue-183.gz
| |-- issue-184.gz
| |-- issue-185.gz
| |-- issue-186.gz
| |-- issue-187.gz
| |-- issue-188.gz
| |-- issue-189.gz
| |-- issue-19.gz
| |-- issue-190.gz
| |-- issue-191.gz
| |-- issue-192.gz
| |-- issue-2.gz
| |-- issue-20.gz
| |-- issue-21.gz
| |-- issue-22.gz
| |-- issue-23.gz
| |-- issue-24.gz
| |-- issue-25.gz
| |-- issue-26.gz
| |-- issue-27.gz
| |-- issue-28.gz
| |-- issue-29.gz
| |-- issue-3.gz
| |-- issue-30.gz
| |-- issue-31.gz
| |-- issue-32.gz
| |-- issue-33.gz
| |-- issue-34.gz
| |-- issue-35.gz
| |-- issue-36.gz
| |-- issue-37.gz
| |-- issue-38.gz
| |-- issue-39.gz
| |-- issue-4.gz
| |-- issue-40.gz
| |-- issue-41.gz
| |-- issue-42.gz
| |-- issue-43.gz
| |-- issue-44.gz
| |-- issue-45.gz
| |-- issue-46.gz
| |-- issue-47.gz
| |-- issue-48.gz
| |-- issue-49.gz
| |-- issue-5.gz
| |-- issue-50.gz
| |-- issue-51.gz
| |-- issue-52.gz
| |-- issue-53.gz
| |-- issue-54.gz
| |-- issue-55.gz
| |-- issue-56.gz
| |-- issue-57.gz
| |-- issue-58.gz
| |-- issue-59.gz
| |-- issue-6.gz
| |-- issue-60.gz
| |-- issue-61.gz
| |-- issue-62.gz
| |-- issue-63.gz
| |-- issue-64.gz
| |-- issue-65.gz
| |-- issue-66.gz
| |-- issue-67.gz
| |-- issue-68.gz
| |-- issue-69.gz
| |-- issue-7.gz
| |-- issue-70.gz
| |-- issue-71.gz
| |-- issue-72.gz
| |-- issue-73.gz
| |-- issue-74.gz
| |-- issue-75.gz
| |-- issue-76.gz
| |-- issue-77.gz
| |-- issue-78.gz
| |-- issue-79.gz
| |-- issue-8.gz
| |-- issue-80.gz
| |-- issue-81.gz
| |-- issue-82.gz
| |-- issue-83.gz
| |-- issue-84.gz
| |-- issue-85.gz
| |-- issue-86.gz
| |-- issue-87.gz
| |-- issue-88.gz
| |-- issue-89.gz
| |-- issue-9.gz
| |-- issue-90.gz
| |-- issue-91.gz
| |-- issue-92.gz
| |-- issue-93.gz
| |-- issue-94.gz
| |-- issue-95.gz
| |-- issue-96.gz
| |-- issue-97.gz
| |-- issue-98.gz
| `-- issue-99.gz
|-- dosutils
| |-- TRANS.TBL
| |-- autoboot
| | |-- TRANS.TBL
| | |-- initrd.img
| | |-- kernel-2.013
| | `-- vmlinuz
| |-- autoboot.bat
| |-- copying
| |-- dos2unix
| | |-- TRANS.TBL
| | |-- dos2unix.c
| | |-- dos2unix.com
| | |-- dos2unix.msg
| | |-- file_id.diz
| | |-- makefile.msc
| | |-- makefile.unx
| | |-- makefile.ztc
| | |-- unix2dos.c
| | `-- unix2dos.com
| |-- fips.15
| | |-- TRANS.TBL
| | |-- copying
| | |-- errors.txt
| | |-- fips.doc
| | |-- fips.exe
| | |-- fips.faq
| | |-- fips15.zip
| | |-- history.txt
| | |-- manuelfr.txt
| | |-- readme.1st
| | |-- restorrb
| | | |-- TRANS.TBL
| | | |-- restorrb.c
| | | |-- rtypes.h
| | | `-- rversion.h
| | |-- restorrb.exe
| | |-- source
| | | |-- TRANS.TBL
| | | |-- calculat.cpp
| | | |-- check.cpp
| | | |-- cmdl_arg.cpp
| | | |-- disk_io.cpp
| | | |-- disk_io.h
| | | |-- fat.cpp
| | | |-- fat.h
| | | |-- fipsspec.cpp
| | | |-- fipsspec.h
| | | |-- getopt.c
| | | |-- getopt.h
| | | |-- global.cpp
| | | |-- global.h
| | | |-- hdstruct.cpp
| | | |-- hdstruct.h
| | | |-- host_os.cpp
| | | |-- host_os.h
| | | |-- input.cpp
| | | |-- input.h
| | | |-- logdr_st.cpp
| | | |-- logdr_st.h
| | | |-- main.cpp
| | | |-- primpart.h
| | | |-- save.cpp
| | | |-- types.h
| | | `-- version.h
| | |-- special.doc
| | `-- techinfo.txt
| |-- gzip124
| | |-- TRANS.TBL
| | |-- copying
| | |-- file_id.diz
| | |-- gzip.doc
| | |-- gzip.exe
| | |-- gzip386.exe
| | |-- readme
| | `-- readme.dos
| |-- loadlin.exe
| |-- lodlin16
| | |-- TRANS.TBL
| | |-- copying
| | |-- doc
| | | |-- TRANS.TBL
| | | |-- announce.txt
| | | |-- changes
| | | |-- initrd.txt
| | | |-- lodlin16.lsm
| | | |-- manual.txt
| | | |-- params.doc
| | | `-- quicksta.rt
| | |-- doc.fr
| | | |-- TRANS.TBL
| | | |-- initrd.txt
| | | |-- manuel.txt
| | | `-- params.doc
| | |-- files
| | |-- initrd
| | | |-- TRANS.TBL
| | | |-- freeramd.c
| | | |-- linuxrc.c
| | | |-- makefile
| | | `-- mkdisk
| | |-- initrd.tgz
| | |-- initrd.txt
| | |-- linux.bat
| | |-- loadlin.exe
| | |-- manuel.txt
| | |-- params.doc
| | |-- readme.1st
| | |-- src
| | | |-- TRANS.TBL
| | | |-- loadlin.asm
| | | |-- loadlina.asm
| | | |-- loadlini.asm
| | | |-- loadlinj.asm
| | | |-- loadlinm.asm
| | | |-- makefile
| | | |-- pgadjust.asm
| | | |-- srclinux
| | | | |-- TRANS.TBL
| | | | |-- loadlinh.s
| | | | |-- makefile
| | | | `-- pgadjust.c
| | | `-- srclinux.tgz
| | `-- test.par
| |-- rawrite3
| | |-- TRANS.TBL
| | |-- rawrite.exe
| | `-- rawrite3.doc
| |-- rdev
| | |-- TRANS.TBL
| | `-- rdev.exe
| |-- readme
| |-- restorrb
| | |-- TRANS.TBL
| | `-- restorrb.exe
| |-- tar320c
| | |-- TRANS.TBL
| | |-- file_id.diz
| | |-- license.txt
| | |-- read.me
| | |-- sources
| | | |-- !compile.bat
| | | |-- TRANS.TBL
| | | |-- aspi.c
| | | |-- aspient.asm
| | | |-- bits.c
| | | |-- compress.c
| | | |-- compress.h
| | | |-- crc32.c
| | | |-- crc32.h
| | | |-- cthandle.asm
| | | |-- ctquirks.asm
| | | |-- define.h
| | | |-- deflate.c
| | | |-- disk.c
| | | |-- diszip.c
| | | |-- extract.c
| | | |-- farnear.inc
| | | |-- fmatch.c
| | | |-- lzpack.c
| | | |-- lzpack.h
| | | |-- lzwbits.h
| | | |-- lzwhead.h
| | | |-- makefile
| | | |-- makefile.ix
| | | |-- match.asm
| | | |-- match.s
| | | |-- modern.h
| | | |-- nodedef.h
| | | |-- pclevel.asm
| | | |-- pctimer.asm
| | | |-- pctimer.h
| | | |-- percent.c
| | | |-- qic02.h
| | | |-- qicface.c
| | | |-- readopt.c
| | | |-- restore.c
| | | |-- roll.c
| | | |-- roll.h
| | | |-- savefile.c
| | | |-- stdinc.h
| | | |-- store.c
| | | |-- streamer.c
| | | |-- sysup.h
| | | |-- tape.c
| | | |-- tar.c
| | | |-- tar.prj
| | | |-- trees.c
| | | |-- unlzw.c
| | | |-- zalloc.h
| | | |-- zipdefs.h
| | | |-- ziperror.c
| | | |-- zipguts.h
| | | |-- ziposcod.h
| | | |-- zippipe.c
| | | `-- zippipe.h
| | |-- tar.exe
| | |-- tar.txt
| | `-- to.do
| `-- unz512x3
| |-- TRANS.TBL
| |-- copying
| |-- file_id.diz
| |-- funzip.doc
| |-- funzip.exe
| |-- readme
| |-- readme.dos
| |-- unzip.doc
| |-- unzip.exe
| |-- unzip386.exe
| |-- unzipsfx.doc
| |-- unzipsfx.exe
| |-- where
| `-- zipinfo.doc
|-- images
| |-- TRANS.TBL
| |-- boot.img
| |-- other
| | |-- README.FlashPoint
| | |-- TRANS.TBL
| | `-- bootFlashPoint.img
| `-- supp.img
|-- install.bat
|-- ls-lR
|-- man-rh41.txt
|-- misc
| |-- TRANS.TBL
| |-- boot
| | |-- TRANS.TBL
| | |-- autoboot.img
| | `-- boot.cat
| `-- src
| |-- TRANS.TBL
| |-- init
| | |-- Makefile
| | |-- TRANS.TBL
| | |-- init
| | |-- init.c
| | `-- init.o
| |-- install
| | |-- .depend
| | |-- Makefile
| | |-- TRANS.TBL
| | |-- bootp.h
| | |-- bootpc.c
| | |-- bootpc.h
| | |-- bootpc.o
| | |-- bptypes.h
| | |-- cdrom.c
| | |-- cdrom.o
| | |-- commands.c
| | |-- commands.h
| | |-- commands.o
| | |-- config.c
| | |-- config.h
| | |-- config.o
| | |-- debug.log
| | |-- devices.c
| | |-- devices.c.ewt
| | |-- devices.h
| | |-- devices.o
| | |-- dmphdlist
| | |-- dmphdlist.c
| | |-- doit.c
| | |-- doit.h
| | |-- doit.o
| | |-- earlymethods.c
| | |-- earlymethods.o
| | |-- entry.c
| | |-- entry.o
| | |-- fs.c
| | |-- fs.h
| | |-- fs.o
| | |-- ftp.c
| | |-- ftp.h
| | |-- ftp.o
| | |-- genhdlist
| | |-- genhdlist.c
| | |-- hash.c
| | |-- hash.h
| | |-- hash.o
| | |-- hd.c
| | |-- hd.h
| | |-- hd.o
| | |-- inet_aton.h
| | |-- install
| | |-- install.c
| | |-- install.h
| | |-- install.o
| | |-- install2
| | |-- install2.c
| | |-- install2.o
| | |-- kernel.c
| | |-- kernel.h
| | |-- latemethods.c
| | |-- latemethods.o
| | |-- lilo.c
| | |-- lilo.h
| | |-- lilo.o
| | |-- log.c
| | |-- log.h
| | |-- log.o
| | |-- methods.h
| | |-- mkswap.c
| | |-- mkswap.h
| | |-- mkswap.o
| | |-- modules.c
| | |-- mono.c
| | |-- mono.h
| | |-- mono.o
| | |-- mount.h
| | |-- mount.x
| | |-- mount_clnt.c
| | |-- mount_svc.c
| | |-- mount_xdr.c
| | |-- mount_xdr.o
| | |-- mtab.c
| | |-- mtab.o
| | |-- net.c
| | |-- net.h
| | |-- net.o
| | |-- nfsmount.c
| | |-- nfsmount.o
| | |-- perror.c
| | |-- perror.h
| | |-- perror.o
| | |-- pkgs.c
| | |-- pkgs.h
| | |-- pkgs.o
| | |-- run.c
| | |-- run.h
| | |-- run.o
| | |-- scsi.c
| | |-- scsi.h
| | |-- scsi.o
| | |-- upgrade.c
| | |-- upgrade.h
| | |-- upgrade.o
| | |-- windows.c
| | |-- windows.h
| | `-- windows.o
| |-- trees
| | |-- TRANS.TBL
| | |-- boot1
| | | |-- TRANS.TBL
| | | |-- boot
| | | | |-- TRANS.TBL
| | | | |-- boot.0200
| | | | |-- boot.b
| | | | `-- map
| | | |-- dev
| | | | |-- TRANS.TBL
| | | | `-- fd0
| | | |-- etc
| | | | |-- TRANS.TBL
| | | | |-- boot.msg
| | | | |-- lilo.conf
| | | | `-- mtab -> /proc/mounts
| | | `-- vmlinuz
| | |-- boot1.img
| | |-- boot2
| | | |-- .profile
| | | |-- TRANS.TBL
| | | |-- bin -> sbin
| | | |-- dev
| | | | |-- TRANS.TBL
| | | | |-- console
| | | | |-- null
| | | | |-- ram
| | | | |-- systty
| | | | |-- tty1
| | | | |-- tty2
| | | | |-- tty3
| | | | |-- tty4
| | | | `-- tty5
| | | |-- etc
| | | | |-- TRANS.TBL
| | | | |-- ld.so.cache
| | | | |-- nsswitch.conf
| | | | `-- pcmcia
| | | | |-- TRANS.TBL
| | | | |-- config
| | | | |-- network
| | | | |-- pcmem
| | | | |-- scsi
| | | | `-- serial
| | | |-- linuxrc -> /sbin/init
| | | |-- modules
| | | | |-- 3c501.o
| | | | |-- 3c503.o
| | | | |-- 3c509.o
| | | | |-- 3c59x.o
| | | | |-- 53c7,8xx.o
| | | | |-- 8390.o
| | | | |-- BusLogic.o
| | | | |-- NCR53c406a.o
| | | | |-- TRANS.TBL
| | | | |-- advansys.o
| | | | |-- aha152x.o
| | | | |-- aha1542.o
| | | | |-- aha1740.o
| | | | |-- aic7xxx.o
| | | | |-- apricot.o
| | | | |-- arcnet.o
| | | | |-- aztcd.o
| | | | |-- bpcd.o
| | | | |-- cdrom.o
| | | | |-- cdu31a.o
| | | | |-- cm206.o
| | | | |-- de4x5.o
| | | | |--=20de600.o
| | | | |-- de620.o
| | | | |-- depca.o
| | | | |-- dtc.o
| | | | |-- e2100.o
| | | | |-- eata_dma.o
| | | | |-- eata_pio.o
| | | | |-- eexpress.o
| | | | |-- ewrk3.o
| | | | |-- fdomain.o
| | | | |-- g_NCR5380.o
| | | | |-- gscd.o
| | | | |-- hp-plus.o
| | | | |-- hp.o
| | | | |-- hp100.o
| | | | |-- ibmtr.o
| | | | |-- in2000.o
| | | | |-- isp16.o
| | | | |-- loop.o
| | | | |-- mcd.o
| | | | |-- mcdx.o
| | | | |-- ncr53c8xx.o
| | | | |-- ne.o
| | | | |-- optcd.o
| | | | |-- pas16.o
| | | | |-- plip.o
| | | | |-- ppa.o
| | | | |-- qlogicfas.o
| | | | |-- qlogicisp.o
| | | | |-- sbpcd.o
| | | | |-- seagate.o
| | | | |-- sjcd.o
| | | | |-- smc-ultra.o
| | | | |-- smc9194.o
| | | | |-- sonycd535.o
| | | | |-- t128.o
| | | | |-- tulip.o
| | | | |-- u14-34f.o
| | | | |-- ultrastor.o
| | | | |-- wd.o
| | | | `-- wd7000.o
| | | |-- proc
| | | | `-- TRANS.TBL
| | | |-- sbin
| | | | |-- TRANS.TBL
| | | | |-- e2fsck
| | | | |-- init
| | | | |-- insmod
| | | | |-- install
| | | | `-- rmmod -> insmod
| | | |-- tmp
| | | | `-- TRANS.TBL
| | | `-- usr
| | | |-- TRANS.TBL
| | | `-- lib
| | | |-- TRANS.TBL
| | | |-- rpmrc
| | | `-- terminfo
| | | |-- TRANS.TBL
| | | `-- l
| | | |-- TRANS.TBL
| | | `-- linux
| | |-- boot2.img
| | |-- boot2.img.back
| | |-- boot2.img.gz
| | |-- boot2.img.nogz
| | |-- debug.log
| | |-- mkboot1
| | |-- mkboot2
| | |-- mkskel
| | |-- mksupp
| | |-- pcmcia
| | | |-- TRANS.TBL
| | | |-- etc
| | | | |-- TRANS.TBL
| | | | `-- pcmcia
| | | | |-- TRANS.TBL
| | | | |-- config
| | | | |-- config.opts
| | | | |-- fixed
| | | | |-- fixed.opts
| | | | |-- network
| | | | |-- scsi
| | | | `-- scsi.opts
| | | |-- lib
| | | | |-- TRANS.TBL
| | | | `-- modules
| | | | |-- 2.0.27
| | | | | |-- TRANS.TBL
| | | | | `-- pcmcia
| | | | | |-- 3c589_cs.o
| | | | | |-- TRANS.TBL
| | | | | |-- aha152x_cs.o
| | | | | |-- ds.o
| | | | | |-- fdomain_cs.o
| | | | | |-- fixed_cs.o
| | | | | |-- fmvj18x_cs.o
| | | | | |-- ftl_cs.o
| | | | | |-- i82365.o
| | | | | |-- ibmtr_cs.o
| | | | | |-- iflash2+_mtd.o
| | | | | |-- iflash2_mtd.o
| | | | | |-- memory_cs.o
| | | | | |-- nmclan_cs.o
| | | | | |-- pcmcia_core.o
| | | | | |-- pcmem_cs.o
| | | | | |-- pcnet_cs.o
| | | | | |-- qlogic_cs.o
| | | | | |-- serial_cs.o
| | | | | |-- smc91c92_cs.o
| | | | | |-- sram_mtd.o
| | | | | |-- tcic.o
| | | | | |-- wavelan_cs.o
| | | | | `-- xircnw_cs.o
| | | | `-- TRANS.TBL
| | | `-- sbin
| | | |-- TRANS.TBL
| | | |-- cardmgr
| | | `-- probe
| | |-- skeleton
| | | |-- TRANS.TBL
| | | |-- bin
| | | | |-- TRANS.TBL
| | | | |-- awk -> gawk
| | | | |-- bash
| | | | |-- cp
| | | | |-- cpio
| | | | |-- gawk
| | | | |-- gunzip -> gzip
| | | | |-- gzip
| | | | |-- hostname
| | | | |-- ln
| | | | |-- mv
| | | | |-- rm
| | | | |-- sed
| | | | |-- sh -> bash
| | | | `-- uname
| | | |-- dev
| | | | |-- TRANS.TBL
| | | | |-- null
| | | | `-- zero
| | | |-- etc
| | | | |-- TRANS.TBL
| | | | |-- ld.so.cache
| | | | |-- ld.so.conf
| | | | `-- mtab
| | | |-- lib
| | | | |-- TRANS.TBL
| | | | |-- ld-linux.so.1 -> ld-linux.so.1.7.14
| | | | |-- ld-linux.so.1.7.14
| | | | |-- ld.so -> ld.so.1.7.14
| | | | |-- ld.so.1.7.14
| | | | |-- libc.so.5 -> libc.so.5.3.12
| | | | |-- libc.so.5.3.12
| | | | |-- libm.so.5 -> libm.so.5.0.6
| | | | |-- libm.so.5.0.6
| | | | |-- libtermcap.so.2 -> libtermcap.so.2.0.5
| | | | `-- libtermcap.so.2.0.5
| | | |-- sbin
| | | | |-- TRANS.TBL
| | | | `-- ldconfig
| | | `-- usr
| | | |-- TRANS.TBL
| | | `-- bin
| | | |-- TRANS.TBL
| | | |-- egrep
| | | |-- grep
| | | `-- md5sum
| | |-- supp
| | | |-- TRANS.TBL
| | | |-- lib
| | | | |-- TRANS.TBL
| | | | |-- ld-linux.so.1
| | | | |-- ld-linux.so.1.7.14
| | | | |-- ld-linux.so.1.8.5
| | | | |-- libc.so.5 -> libc.so.5.3.12
| | | | |-- libc.so.5.3.12
| | | | |-- libcom_err.so -> /lib/libcom_err.so.2.0
| | | | |-- libcom_err.so.2 -> libcom_err.so.2.0
| | | | |-- libcom_err.so.2.0
| | | | |-- libe2p.so.2 -> libe2p.so.2.1
| | | | |-- libe2p.so.2.1
| | | | |-- libext2fs.so.2 -> libext2fs.so.2.0
| | | | |-- libext2fs.so.2.0
| | | | `-- modules -> /tmp
| | | |-- pcmcia.cgz
| | | `-- usr
| | | |-- TRANS.TBL
| | | `-- bin
| | | |-- TRANS.TBL
| | | |-- ash
| | | |-- badblocks
| | | |-- cpio
| | | |-- fdisk
| | | |-- gunzip -> gzip
| | | |-- gzip
| | | |-- insmod
| | | |-- install2
| | | |-- ls
| | | |-- mke2fs
| | | |-- open
| | | |-- runinstall2
| | | `-- sh -> ash
| | |-- updboots
| | `-- updsupp
| `-- upgrade
| |-- Makefile
| |-- TRANS.TBL
| |-- hash.c
| |-- hash.h
| |-- mkugdb.c
| `-- upgrade.c
`-- updates
|-- 00README.errata
|-- SRPMS
| |-- NetKit-B-0.09-1.src.rpm
| |-- TRANS.TBL
| |-- XFree86-3.2-5.src.rpm
| |-- adduser-1.3-1.src.rpm
| |-- amd-920824upl102-8.src.rpm
| |-- apache-1.1.3-3.src.rpm
| |-- bind-4.9.5p1-1.src.rpm
| |-- cmu-snmp-3.3-1.src.rpm
| |-- dosemu-0.64.1-3.src.rpm
| |-- efax-0.8a-2.src.rpm
| |-- gdb-4.16-6.src.rpm
| |-- glibc-0.961212-4.src.rpm
| |-- imap-4.1.BETA-3.src.rpm
| |-- initscripts-2.91-1.src.rpm
| |-- inn-1.5.1-6.src.rpm
| |-- jed-0.97.14-4.src.rpm
| |-- ld.so-sparc-1.8.3-3.src.rpm
| |-- logrotate-2.1-1.src.rpm
| |-- lpr-0.14-2.src.rpm
| |-- netcfg-2.15-1.src.rpm
| |-- printtool-3.0-14.src.rpm
| |-- python-1.4-4.src.rpm
| |-- pythonlib-1.16-1.src.rpm
| |-- rpm-2.3.2-1.src.rpm
| |-- rxvt-2.19-2.src.rpm
| |-- samba-1.9.16p9-8.src.rpm
| |-- screen-3.7.1-4.src.rpm
| |-- sendmail-8.8.5-2.src.rpm
| |-- sliplogin-2.1.0-6.src.rpm
| |-- tetex-0.4pl6-1.src.rpm
| |-- timeconfig-1.7-1.src.rpm
| |-- tmpwatch-1.1-2.src.rpm
| |-- usercfg-3.3-1.src.rpm
| |-- util-linux-2.5-34.src.rpm
| |-- wu-ftpd-2.4.2b12-4.src.rpm
| `-- ypbind-3.0-1.src.rpm
|-- TRANS.TBL
|-- i386
| |-- 00README.errata
| |-- NetKit-B-0.09-1.i386.rpm
| |-- TRANS.TBL
| |-- XFree86-3.2-5.i386.rpm
| |-- adduser-1.3-1.i386.rpm
| |-- amd-920824upl102-8.i386.rpm
| |-- apache-1.1.3-3.i386.rpm
| |-- bind-4.9.5p1-1.i386.rpm
| |-- cmu-snmp-3.3-1.i386.rpm
| |-- cmu-snmp-devel-3.3-1.i386.rpm
| |-- cmu-snmp-utils-3.3-1.i386.rpm
| |-- dosemu-0.64.1-3.i386.rpm
| |-- efax-0.8a-2.i386.rpm
| |-- imap-4.1.BETA-3.i386.rpm
| |-- initscripts-2.91-1.i386.rpm
| |-- inn-1.5.1-6.i386.rpm
| |-- inn-devel-1.5.1-6.i386.rpm
| |-- jed-0.97.14-4.i386.rpm
| |-- jed-xjed-0.97.14-4.i386.rpm
| |-- logrotate-2.1-1.i386.rpm
| |-- lpr-0.14-2.i386.rpm
| |-- netcfg-2.15-1.i386.rpm
| |-- printtool-3.0-14.i386.rpm
| |-- pythonlib-1.16-1.i386.rpm
| |-- rpm-2.3.2-1.i386.rpm
| |-- rxvt-2.19-2.i386.rpm
| |-- samba-1.9.16p9-8.i386.rpm
| |-- sendmail-8.8.5-2.i386.rpm
| |-- sendmail-cf-8.8.5-2.i386.rpm
| |-- sendmail-doc-8.8.5-2.i386.rpm
| |-- sliplogin-2.1.0-6.i386.rpm
| |-- tetex-0.4pl6-1.i386.rpm
| |-- tetex-afm-0.4pl6-1.i386.rpm
| |-- tetex-dvilj-0.4pl6-1.i386.rpm
| |-- tetex-dvips-0.4pl6-1.i386.rpm
| |-- tetex-latex-0.4pl6-1.i386.rpm
| |-- tetex-xdvi-0.4pl6-1.i386.rpm
| |-- timeconfig-1.7-1.i386.rpm
| |-- usercfg-3.3-1.i386.rpm
| |-- util-linux-2.5-34.i386.rpm
| |-- wu-ftpd-2.4.2b12-4.i386.rpm
| `-- xdosemu-0.64.1-3.i386.rpm
|-- images
| |-- TRANS.TBL
| `-- i386
| |-- README
| |-- TRANS.TBL
| |-- scsi
| | |-- README
| | |-- TRANS.TBL
| | |-- bootBusLogic.img
| | |-- bootaha1540.img
| | |-- bootaha1740.img
| | |-- bootaic7xxx.img
| | |-- booteata_dma.img
| | |-- bootultrastor.img
| | |-- config.BusLogic
| | |-- config.aha1540
| | |-- config.aha1740
| | |-- config.aic7xxx
| | |-- config.eata_dma
| | `-- config.ultrastor
| `-- supp.img
`-- scripts
|-- TRANS.TBL
|-- fix-shadow.sh
|-- i386
| |-- TRANS.TBL
| `-- lilo-dos.sh
`-- jed-xterm.Xdefaults
180 directories, 6606 files
_________________________________________________________________
Copyright © 1998, Eric Canal
Published in Issue 31 of Linux Gazette, August 1998
_________________________________________________________________
[ TABLE OF CONTENTS ] [ FRONT PAGE ] Back Next
_________________________________________________________________
"Linux Gazette...making Linux just a little more fun!"
_________________________________________________________________
EMACSulation
by Eric Marsden, emarsden@mail.dotcom.fr
This column is devoted to making the best use of Emacs, text editor
extraordinaire. Each issue I plan to present an Emacs extension
which can improve your productivity, make the sun shine more
brightly and the grass greener.
_________________________________________________________________
Customizing Emacs
Typical applications have a configuration file which allows you to set
the value of a few variables. Emacs goes a lot further, since the user
can customize pretty much any feature of the system. This flexibility
is due to a majority of the system being written in its extension
language. The first implementations of Emacs used a cryptic string
processing language named TECO (you thought Perl was cryptic? Look at
TECO), with support code in PDP-10 assembly; later versions use Emacs
Lisp as an extension language, with some components (the Lisp
interpreter and the display code) written in C.
This extensibility is fundamental to Emacs. Users can experiment with
modifications and improvements to the system and pass them on to
friends if they work well; ideas which catch on can be integrated in
the core distribution. The now defunct Lisp Machines at MIT extended
this openness to the level of the operating system, which was written
in Lisp (and ran on custom hardware, specially designed to run Lisp
efficiently). Lisp Machine users had a far greater degree of control
over their machine than Linux users today. The Smalltalk systems at
Xerox Parc provided a similarly deep level of customization.
Indeed, there is a profound difference between the development
philosophy which led to Emacs (the MIT approach), and that which led
to Unix and C (the New Jersey approach). These are compared in an
excellent paper by Richard Gabriel called Worse is Better, from which
I have extracted the following:
Two famous people, one from MIT and another from Berkeley (but
working on Unix) once met to discuss operating system issues. The
person from MIT was knowledgeable about ITS (the MIT AI Lab
operating system) and had been reading the Unix sources. He was
interested in how Unix solved the PC loser-ing problem. The PC
loser-ing problem occurs when a user program invokes a system
routine to perform a lengthy operation that might have significant
state, such as IO buffers. If an interrupt occurs during the
operation, the state of the user program must be saved. Because the
invocation of the system routine is usually a single instruction,
the PC of the user program does not adequately capture the state of
the process. The system routine must either back out or press
forward. The right thing is to back out and restore the user
program PC to the instruction that invoked the system routine so
that resumption of the user program after the interrupt, for
example, re-enters the system routine. It is called PC loser-ing
because the PC is being coerced into loser mode, where loser is the
affectionate name for user at MIT.
The MIT guy did not see any code that handled this case and asked
the New Jersey guy how the problem was handled. The New Jersey guy
said that the Unix folks were aware of the problem, but the
solution was for the system routine to always finish, but sometimes
an error code would be returned that signaled that the system
routine had failed to complete its action. A correct user program,
then, had to check the error code to determine whether to simply
try the system routine again. The MIT guy did not like this
solution because it was not the right thing.
The New Jersey guy said that the Unix solution was right because
the design philosophy of Unix was simplicity and that the right
thing was too complex. Besides, programmers could easily insert
this extra test and loop. The MIT guy pointed out that the
implementation was simple but the interface to the functionality
was complex. The New Jersey guy said that the right tradeoff has
been selected in Unix: namely, implementation simplicity was more
important than interface simplicity.
Let me come back to more concrete issues. The traditional way of
customizing [X]Emacs is to write simple Emacs Lisp expressions in a
file called .emacs in your home directory. These expressions can
either set the value of a variable, or call a function, or load a
library :
;; set the values of a few variables. `t' stands for true and `nil' for
;; false
(setq dired-listing-switches "-alF")
(setq tab-width 4)
(setq line-number-mode t)
(setq global-font-lock-mode t)
(setq next-line-add-newlines nil)
;; call a function which will organize to have the time displayed in
;; the modeline
(display-time)
;; load an Emacs Lisp library and call its initialization function
(require 'jka-compr)
(auto-compression-mode 1)
The syntax tends to irritate people (who deride the presence of ``Lots
of irritating spurious parentheses''), but using a fully-featured
programming language in a configuration file has genuine and
significant advantages. It allows you to test for features of the
local setup, for example :
(if (file-exists-p "/bin/bash")
(setq explicit-shell-file-name "/bin/bash"))
which makes Emacs use the bash in *shell* buffers if it exists on the
machine. Another reason for using a real language for setup files is
that it avoids the endless proliferation of configuration files, each
with its own ideosyntractic syntax (think ~/.Xdefaults, window manager
setup files, ~/.inputrc, ~/.procmailrc, etc). Hopefully the spreading
use of Guile as an embedded scripting language will resolve this
problem. A last advantage is that a genuine programming language
empowers the user. Indeed, in one of the first technical reports about
Emacs, Richard Stallman presents this as an important goal:
When large numbers of nontechnical workers are using a programmable
editor, they will be tempted constantly to begin programming in the
course of their day-to-day lives. This should contribute greatly to
computer literacy, especially because many of the people thus
exposed will be secretaries taught by society that they are
incapable of doing mathematics, and unable to imagine for a moment
that they can learn to program. But that won't stop them from
learning it if they don't know that it is programming that they are
learning!
Customize
Recent versions of [X]Emacs include a package called Customize, which
helps you adapt Emacs to your liking without writing any Lisp.
Customize is written by Per Abrahamsen, also the author of the popular
Auc-TeX package for TeXnical typists. It allows users to visualize the
list of all the user-configurable variables in Emacs, and to modify
them to their liking. You can reach Customize (it only exists on
recent Emacsen) from the Help -> Customize menubar. In XEmacs it looks
like this:
Customize screenshot
Customize requires each Emacs Lisp library to declare the
user-modifiable variables it exports. The type of the variable is
specified, whether boolean or integer or string or selection from
several options, and several variables can be put in the same group,
which allows a hierarchical presentation of information. The
modification screens are then generated automatically on demand. It's
an elegant design, since programming the thousands of dialog boxes
manually would be a huge job, and require large amounts of storage.
The modifications made by the user are stored in a file which is read
by [X]Emacs at initialization time.
An unfortunate aspect of Customize is that it introduces two methods
of doing the same thing. Users wanting to go beyond the simple
customizations possible with the graphical interface will be
confronted with an entirely new way of doing things, and may be put
off. There is a difficult path to tread between making simple things
simple and complex things possible and the old adage Build a system
that a fool can use, and only a fool will use it.
Keybindings
Keybindings are a particularly treacherous field for customization,
the principal problems comings from differences between X11 and
console operation (particularly with the backspace key), and between
the syntax used by Emacs and XEmacs. One of the first things you might
want to do is set the Delete, Home and EndOfLine keys to their
standard meanings in the PC world :
(pc-selection-mode) ; pc-select.el
This will also allow you to select regions of text with shift and the
cursor keys, and Cut/Copy/Paste with Shift-Delete, Control-Insert and
Shift-Insert respectively. You can bind function keys as follows (this
syntax should work equally well with Emacs and XEmacs) :
(define-key global-map [(f2)] 'save-buffer)
(define-key global-map [(f4)] (lambda () (interactive) (kill-buffer nil)))
The first line makes the F2 key save the current buffer (by binding to
the built-in function save-buffer), and the second shows how to bind
to your own function: the lambda introduces an anonymous function in
Lisp; the (interactive) means that you will be able to access the
function interactively, the rest kills the current buffer without
asking confirmation. The global-map means that these bindings apply
everywhere in Emacs, whether you're reading email or composing some
HTML. You can also define local key bindings, which apply only to
buffers which are in specific modes :
(define-key emacs-lisp-mode-map [(control c) (control e)] 'eval-buffer)
(define-key c-mode-map [(f5)] 'compile)
The Emacs FAQ (available online by saying C-h F) presents another
method of binding keys, which may not work across Emacs versions. Jari
Aalto has written a long guide to keybindings which describes many
different ways of rebinding keys.
If you are lucky enough to have a Windows 95 keyboard you can put
those lovely keys to use in X11 with a little xmodmapping. The X
Window System has five possible key modifiers, the first three being
Shift, Control and Alt on PC keyboards. You can set the windows keys
to Super and Hyper modifiers as follows (this is for a French
keyboard; use xev to work out the keycodes for your keyboard) :
(shell-command (concat "xmodmap "
"-e 'keycode 115 = Hyper_L' "
"-e 'keycode 116 = Hyper_R' "
"-e 'keycode 117 = Super_L' "
"-e 'add mod4 = Hyper_L' "
"-e 'add mod4 = Hyper_R' "
"-e 'add mod3 = Super_L' "))
(message "Setting up Hyper and Super keys")
(define-key global-map [(hyper tab)] 'complete-tag)
(define-key global-map [(super !)] 'speedbar-get-focus)
Backups
In its default configuration, Emacs makes backups with a tilde
appended to the filename, in the same directory as the original file.
If you would prefer having all backups in one spot, try the following
code. Emacs can also keep a series of numbered backups à la VMS; look
at the variable version-control.
;; make backup files in ~/.backups/ rather than scattered around all
;; over the filesystem.
(defun make-backup-file-name (file-name)
"Create the non-numeric backup file name for `file-name'."
(require 'dired)
(if (file-exists-p "~/.backups")
(concat (expand-file-name "~/.backups/")
(dired-replace-in-string "/" "|" file-name))
(concat file-name "~")))
;; disable backups for files in /tmp or in my Mail or News directories.
(defun ecm-backup-enable-predicate (filename)
(and (not (string= "/tmp/" (substring filename 0 5)))
(not (string-match "/Mail/" filename))
(not (string-match "/News/" filename))))
(setq backup-enable-predicate 'ecm-backup-enable-predicate)
Further information
These are only a few examples of things which can be customized in
[X]Emacs. Here are a few pointers to further sources of inspiration :
* The online manuals contain extensive, well-written explanations
which can be browsed from within [X]Emacs (type C-h i), and
include a page of examples to put in your ~/.emacs.
* The Emacs Lisp manual describes the details and ideosyncraties of
Emacs' extension language.
* The Emacs FAQ.
* The XEmacs FAQ.
* The newsgroup gnu.emacs.help for GNU Emacs-specific questions,
comp.emacs.xemacs for XEmacs users, comp.emacs for general
questions, and alt.religion.emacs for questions regarding the
Church of Emacs.
* Typically a new package you can pick up will include comments near
the beginning of the source code explaining which variables may
usefully be modified.
* XEmacs is distributed with a sample ~/.emacs file.
* Erik Sundermann's XEmacs Customization Page is mentioned in the
XEmacs FAQ.
Feedback
Vincent Zweije wrote to me regarding my gnuserv column, where I
suggested using cat /etc/passwd | md5sum as a means of generating a
cookie for xauth.
_________________________________________________________________
In <URL:http://www.linuxgazette.com/issue29/marsden.html>, you wrote:
[...]
While allowing access to your X display is bad enough (someone
could capture all your keystrokes, for example), giving remote
access to your Emacs process is much more worrying, since Emacs can
execute arbitrary commands under your id, delete files, send
insulting email to the President of the United States, etc.
Or maybe more dangerous, send insulting email to the president of an
arbitrary banana republic. :-)
Since release 2.1, gnuserv is able to use MIT-MAGIC-COOKIE-1
authentication for remote requests. This protocol uses the contents
of your ~/.Xauthority file, as described in the xauth(1) man page.
Gnuserv requires a cookie for display number 999, which you can
create as follows (blade is the name of the machine) :
~$ xauth add blade:999 . `cat /etc/passwd | md5sum`
~$ xauth list
blade/unix:0 MIT-MAGIC-COOKIE-1 bc1d627babdbabe9d1f288d2b57c348f
blade:999 MIT-MAGIC-COOKIE-1 d89570b20925d401c05a79be67159cae
You have picked an unlucky example. There is a real danger that
/etc/passwd is stable over a long period. This means that it will
generate the same magic cookie for many times.
This is a problem when you have given a cookie away (either
voluntarily or involuntarily), and intend to revoke permissions by
generating a new cookie.
Best is to select a source of data that is volatile such as the output
of ps -al or /proc/interrupts, or use mcookie, as you indicated later.
_________________________________________________________________
These remarks are particularly important if the site is using shadow
passwords. Vincent noted that security issues are too important to be
left to ordinary users :
_________________________________________________________________
Come to think of it, it's probably just a bad idea to let ordinary
users arrange their own security, as with magic cookies. They're just
not enough concerned with security - they want to get their job done.
You'd be amazed at how many times on usenet I've seen suggested to do
"xhost +" to allow X connections from anywhere. Such people often
don't even realise that they're dealing with security. They see
disallowing X (gnuserv) connections as a hindrance, and just want a
magic incantation to remove it. It's a perception thing.
Someone who deals with security simply has to know what he's doing.
However, first you have to realise that it is security that you're
playing with.
_________________________________________________________________
Next time ...
Next month I'll look at the different abbreviation facilities in
Emacs. Don't hesitate to contact me at <emarsden@mail.dotcom.fr> with
comments, corrections or suggestions (what's your favorite
couldn't-do-without Emacs extension package?). C-u 1000 M-x hail-emacs
!
PS : Emacs isn't in any way limited to Linux, since implementations
exist for many other operating systems (and some systems which only
halfway operate). However, as one of the leading bits of free
software, one of the most powerful, complex and customizable, I feel
it has its place in the Linux Gazette.
_________________________________________________________________
Copyright © 1998, Eric Marsden
Published in Issue 31 of Linux Gazette, August 1998
_________________________________________________________________
[ TABLE OF CONTENTS ] [ FRONT PAGE ] Back Next
_________________________________________________________________
"Linux Gazette...making Linux just a little more fun!"
_________________________________________________________________
A Linux Journal Preview: This article will appear in the October issue
of Linux Journal.
_________________________________________________________________
[Don't Fear the Penguins.]
The Future of Linux, 14 July 1998
By Greg Roelofs
_________________________________________________________________
Photo Album
_________________________________________________________________
The Future of Linux was set up as a panel discussion and was held at
the Santa Clara Convention Center (in the heart of Silicon Valley) on
the evening of 14 July 1998. It was hosted by Taos Mountain and the
Silicon Valley Linux Users Group (SVLUG), and it was sponsored by
them, Intel, Red Hat, Linux Journal, and VA Research. Apparently it
was considerably more popular than Taos expected; people stood in line
between 40 and 60 minutes to register, and the free food and free VA
Research/Linux t-shirts ran out. I didn't get a firm count, but Taos
said 850 people had RSVP'd, and it appeared that at least 700 chairs
were occupied, possibly upwards of 900 or more. (Other reports have
claimed ``more than 850'' and ``more than 1000''; apparently quite a
few people chose to stand near the front rather than sit in back.)
The panel was a distinguished group: Jeremy Allison, one of the lead
Samba developers; Larry Augustin, founder of VA Research and member of
the Linux International (LI) Board of Directors; Robert Hart, from Red
Hat Software; Sunil Saxena, from Intel's Unix Performance Lab; and, of
course, The Man himself, Linus Torvalds. [And while I know there are a
lot of Linux fans who like to pronounce ``Linux'' with a long `i'
sound (LYE-nucks), and despite the fact that Linus himself doesn't
care how anyone else pronounces it, he unquestionably did so with a
short `i' as in ``linen'' (LINN-ucks). In Swedish he presumably still
pronounces it the third way, roughly ``LEE-nooks.'']* It was moderated
by Michael Masterson of Taos, who traded off questioning duties with
Phil Hughes, all-around hairy guy and the publisher of Linux Journal.
The panelists were given a pair of questions ahead of time and five
minutes (per panelist) to respond to each. The evening progressed more
or less as follows:
wait in line...keep waiting...trade RSVP form for name sticker
get free t-shirt / whimper about missing food and lack of dinner
demos / sit down
panel's semi-prepared responses to first question
audience Q & A
moderator Q & A
panel's semi-prepared responses to second question
more audience Q & A
door prizes
demos / schmoozing / fall-on-knees-and-worship-Linus / etc.
Note that in each section I've included various editorial comments in
[green brackets], usually [italicized].
Thanks to the following people for their corrections and additional
info; any remaining errors or omissions are solely my fault:
* Jeffrey Chapman
* Michael Cope
* Michael Hicks
* Dan Kaminsky
* Joe Klemmer
* Ian Kluft
* Anas Nashif
* Brent J. Nordquist
* Alexandre Petit-Bianco
* Jason Riedy
* David Sundqvist
See also Taos Mountain's announcement (including a streaming video of
highlights), SVLUG's summary/reviews page, EE Times' article and
Slashdot's discussion of it, InfoWorld's article, Rafael Skodlar's
report at the Tasty Bits archive, Forbes' cover story, Mark Tebbe's
InfoWorld column, and, of course, Slashdot's discussion of this very
report.
Finally, here are some interesting developments from the week
following the event:
* Informix's Linux press release (Informix-SE and free developer's
kit)
* Oracle's Linux press release (Oracle8) and feature article
* Netscape's Linux press release (Netscape Messaging Server and
Netscape Directory Server)
* IBM's fast Java compiler and debugger (Jikes, just ported to
Linux, and JikesDebugger)
* Dean Olson's Slashdot article on Linux and Corporations
Note that a number of other relational databases, including Computer
Associates' Ingres II, have already been ported to Linux. And, of
course, the most popular web server in the world (Apache) has run on
Linux for years and happens to be freely available as well.
_________________________________________________________________
* Oh yeah, and vi rules, too. Here, take two of these :-) :-) and
don't flame me in the morning... We all love Linux regardless of how
it's pronounced, right??
_________________________________________________________________
Last modified 28 July 1998 by newt@pobox.com , you betcha.
Copyright © 1998 Greg Roelofs.
_________________________________________________________________
Copyright © 1998, Greg Roelofs
Published in Issue 31 of Linux Gazette, August 1998
_________________________________________________________________
[ TABLE OF CONTENTS ] [ FRONT PAGE ] Back Next
_________________________________________________________________
"Linux Gazette...making Linux just a little more fun!"
_________________________________________________________________
Welcome to the Graphics Muse
Set your browser as wide as you'd like now. I've fixed the Muse to
expand to fill the aviailable space!
© 1998 by mjh
______________________________________________________________________
Button Bar muse:
1. v; to become absorbed in thought
2. n; [ fr. Any of the nine sister goddesses of learning and the arts
in Greek Mythology ]: a source of inspiration
W elcome to the Graphics Muse! Why a "muse"? Well, except for the
sisters aspect, the above definitions are pretty much the way I'd
describe my own interest in computer graphics: it keeps me deep in
thought and it is a daily source of inspiration.
[Graphics Mews][WebWonderings][Musings] [Resources]
T his column is dedicated to the use, creation, distribution, and
discussion of computer graphics tools for Linux systems.
[INLINE] Well, its been a couple of months since we last spoke. I've
been working on a major project for the past year and the last 3
months have been exceptionally busy. But the project is done, or very
nearly so (a few minor details left to handle) - and that project is a
book on the Gimp. Its called The Artists Guide to the Gimp and should
hit the shelves sometime in September. All I can say is, I hope you
like it. Writing a technical book is harder than I thought. My next
one is going to be fictional novel. You don't have to do a CD, tons
of images, or 2nd editions for those.
There were plenty of graphics related news announcements since the
last Muse. Unfortunately, I just didn't keep up with them and they've
expired from my news feed. So what I've got this month is pretty
recent info. I did hang onto a few tidbits from mailing lists I've
been scanning, plus email from a few readers. Its funny - I get email
about really old versions of the Muse every now and then. I think
people are still just finding out about it.
In this months column I'll be covering ...
* creating dynamic web pages with msql and CGI.pm
* Gimp 1.0 - well, just a little.
I'll have more for next month, but I just finished the book with only
3 days to get the Muse done.
Graphics Mews Disclaimer: Before I get too far into this I
should note that any of the news items I post in this section are just
that - news. Either I happened to run across them via some mailing
list I was on, via some Usenet newsgroup, or via email from someone.
I'm not necessarily endorsing these products (some of which may be
commercial), I'm just letting you know I'd heard about them in the
past month.
indent
Xi Graphics releases fully integrated Linux distribution
This isn't really graphics related, but Xi is an X server vendor. And
X server vendors are pretty important to the Linux graphics world.
So, here it is.
Xi Graphics is now providing a commercial Linux distribution which
includes their Accelerated X server and their maximum/CDE desktop
product. Unit price is $214.95 for the Executive Edition and $364.95
for the Developers Edition.
For more details:
Kyle Fink
Xi Graphics
(303) 298-7478
kyle@xig.com indent
Panasonic PalmCam utility
Fredrik Roubert has released a very early version (v0.3) of a driver
for the Panasonic PalmCam, an NV-DC1000 digital camera. According to
Robert a couple of the features include the ability to specify ranges
to download and to preview or delete several images in one session.
For more information, check out his web page at
http://www.df.lth.se/~roubert /NV-DC1000.html
The package is available from the following sites:
ftp://ftp.df.lth.se/ pub/users/roubert/Linux
ftp://sunsite.unc.edu/ pub/Linux/apps/graphics/capture
[INLINE] [INLINE]
Linux / 3-D SIGGRAPH Report
At SIGGRAPH '98 in Orlando, Florida Daryll Strauss and Brian Paul
organized a special interest group (SIG) session to talk
about Linux, 3-D hardware acceleration, and related topics.
Attendence was greater than expected with 100-150 people attending.
A summary of presentations taken by Brian Paul, author of the Mesa
package, can be found at
http://glide.xxedgexx.com/ SIGNotes.html
______________________________________________________________________
Blender News
There were a number of updates to Blender, the 3D modelling page from
NeoGeo. Here is a snapshot of annoucements from their News page:
Blender manual (1998-07-10)
All information you need, packed in cool design at paper: the Blender
1.5 manual is scheduled to ship in October. Information about
pricing and pre-ordering will be available in August.
The Unofficial Blender Mailing list (1998-06-16)
To subscribe: send mail to majordomo@iqm.unicamp.br with the text
subscribe blender3d your@email.address
To post, send your message to blender3d@iqm.unicamp.br
Version 1.34 for Linux/FreeBSD available today. (1998-06-04)
Many bugs fixed and included some features: Play (flipbook). Use it
for playback test animations (Hamx) Frame counter during anim
playback. Read the BlenderBeta page for more.
Linux IEEE-1394 (FireWire) Subsystem - Status report
Emanuel Pirker is working on the Linux IEEE-1394 (FireWire) Subsystem
for a while now and thought it would be a good idea to give a small
status report.
IEEE-1394 is the name of a high-speed but low-cost serial bus. Apple
has trademarked it as "FireWire". Current implementations reach 200
Mbit/s, soon we will have 400 and then 800 and so on. FireWire is
designed for consumer multimedia (e. g. connecting a digital video
camera to your PC) and high-speed peripherals (hard disks, CD ROMs,
but also scanners, printers). Since it provides quality of service
(guaranteed bandwith and bounded latency) it can also be used in
industrial real-time applications.
Support for Windows (NT) and Rhapsody is coming (some items are
already operational) but Linux users also want to benefit from this
technology - so Emanual started the development as a university
project last winter.
He now has a clearly designed subsystem, an Adaptec AIC-5800 driver
and some code to test it. Not all FireWire functions can be used now
but he has reached a point where the API is stable and other people
can also contribute work (e.g. a video camera driver).
So if you are interested in this, just email Emanual - more
(wo)manpower is desperately needed.
Contact addresses:
WWW: http://www.edu.uni-klu.ac.at/ ~epirker/ieee1394/
E-Mail: epirker@edu.uni-klu.ac.at
______________________________________________________________________
Some late entries:
ImageMagick 4.0.8
Panard Vision - Portable Real-time 3D Engine for Linux
Mesa 3.0 beta 7
SANE 0.74
FreeWRL 0.14
For more details on these, check out Freshmeat.net.
[INLINE]
XVScan 1.80 Scanning software
tummy.com, ltd. is pleased to announce XVScan Version 1.80, which now
includes support for Microtek ScanMaker E3 and E6 scanners as well as
HP SCSI ScanJet scanners. Currently the Microtek support is available
on Linux and Solaris, but our other platforms will include that
support shortly.
XVScan is based on the popular xv image manipulation software for X
Windows and includes a fully licensed copy of xv. It is source
available commercial software.
If you've never used John Bradley's XV image manipulation software,
it's difficult to describe how powerful it is. XV reads and writes
files in a dozen different formats, provides powerful color-map
editing, window capture, color-space conversion, cropping, image
manipulation algorithms, and the list goes on.
XV gives you powerful image and color-map manipulation, support for
over a dozen image formats, as well as the Visual Schnauzer, and an
easy to use graphical interface to view and catalog your scanned
images. Supported images formats include: PNG, GIF, JPEG, progressive
JPEG, TIFF (compressed and uncompressed), PostScript (requires
ghostscript), PBM/PGM/PPM (raw and ascii), X11 Bitmap, XPM (X PixMap),
Sun Rasterfile,
With XVScan, you now have the ability to scan directly into XV in a
very cost efficient (and more importantly time efficient) manner.
See our website http://www.tummy.com/xvscan/ for a full list of
supported scanners.
What's New in Version 1.80
1. Microtek ScanMaker E3 and E6 support
2. HP ScanJet 5P push button scanning
3. Updated JPEG and TIFF conversions
The Linux version requires working generic SCSI driver. It has been
tested with versions 1.2.7 and higher of the kernel.
The current version of XVScan is 1.80 dated 1998-06-11 based upon XV
version 3.10a dated 12/29/94.
XVScan is $US50 for Linux, HP-UX, FreeBSD and BSD/OS for free ftp
delivery. XVScan is $US80 for Solaris bundled with SGLite SCSI
driver. CD-ROM Media $US20. Contact xvscan@tummy.com to order or
order on the web at https://www.tummy.com/ordering/onlineorder.phtml.
Payment accepted via check, Visa/Mastercard/Discover/AMEX cards.
Contact tummy.com, ltd, phone: (970) 223-8215, fax: (408) 490-2728,
URL: <http://www.tummy.com/xvscan/>
email: <xvscan@tummy.com>
______________________________________________________________________
S.u.S.E. releases new X servers for Rendition, Cyrix, SiS and 3DLabs
S.u.S.E. is proud to announce the release of a new set of X servers
for several popular graphic chipsets.
To avoid confusion and to clearly state that these servers are part of
XFree86, S.u.S.E. has changed the naming scheme of its servers.
Instead of the XSuSE prefix, they now use XFCom, which is short for
XFree86 Compliant. XFree86 compliance is intended to mean that the
sources for these servers are ALREADY part of the XFree86 development
sources and will be released as part of one of the next XFree86
releases. This is the major difference to servers with the XBF
prefix, which stands for X Binary Free and means that sources for
these servers are only available under NDA and therefore cannot be
included in XFree86.
Following this naming scheme, we have renamed the XSuSE_Elsa_GLoria
server to XFCom_3DLabs and XSuSE_SiS to XFCom_SiS. Additionally, we
have added to new servers that support the very popular Rendition
Verite chipsets and the all-in-one Cyrix MediaGX CPU that includes
graphics functionality.
XFCom_Rendition supports the Rendition Verite V1000, V2100 and V2200
chips. Among the boards supported are
* miroCRYSTAL VRX
* Diamond Stealth II S220
* Hercules Thriller3D
* Creative Labs 3D Blaster PCI
* Canopus Total-3D
* Sierra Screaming 3D
XFCom_Cyrix supports the Cyrix MediaGX CPU
XFCom_SiS supports
* SiS 6201
* SiS 6202
* SiS 6205
* SiS 5597
* SiS 5598
XFCom_3DLabs supports
* GLINT 500TX + GLINT Delta + IBM RGB 526DB
+ Elsa GLoria L
+ Diamond Fire GL 3000
* GLINT MX + GLINT Delta + IBM RGB 526DB
+ Elsa GLoria L/MX
* Permedia + GLINT Delta + IBM RGB 526DB
+ Elsa GLoria S
+ Diamond Fire GL 1000
* Permedia 2
+ Elsa GLoria Synergy
+ Elsa Winner 2000/Office
+ Diamond Fire GL 1000 PRO
+ Creative Blaster Exxtreme
+ Leadtek WinFast 2300
+ Accelstar Permedia II
All these servers are available as Linux x86 libc5 binaries at
http://www.suse.de/ XSuSE/XSuSE_E.html.
Binaries for other operating systems as well as glibc binaries will be
released, soon. For all questions and support concerning these
servers please do NOT contact XFree86 but send email to x@suse.de
instead.
______________________________________________________________________
Did You Know?
A comment on IRTC-L stated:
As I understand, in a cinema, the width is twice as long as the
height.
Bernd Sieker, regular contributer to the IRTC list, offered the
following responses:
No, that's not really true. The most commonly used formats are:
Name Aspect Ratio
Super 35 1:1.33
Academy 1:1.37
Wide Screen 1:1.66
Wide Screen 1:1.85
16:9 1:1.77
Cinemascope 1:2.35
So most common cinama formats are not twice as wide as high, only
Cinemascope is more than twice as wide as it is high. But this
format is not as common as some people think. It requires a
special aspherical distortion lens on both the projector and the
camera.
As far as I remember the scenes for Jurassic Park were rendered in
8000x6000 (1:1.33), but often much less is sufficient, like
4000x3000.
Another question from the same list: What are NTSC and PAL?
Again, Bernd Sieker supplies an answer:
These are the two most common colour encoding stamdards for
television. NTSC is used in the United States and, I think, Japan,
PAL is used in most parts of Western Europe (except France. There
is a third standard, called SECAM, which is used in France and
parts of Eastern Europe.
PAL and SECAM use 50 fields/s (a field is half a frame), NTSC uses 60
fields/s and fewer lines, so the bandwidth of the signals is
almost equal in all formats (Something on the order of 5 MHz).
For TV the horizontal resolution is not fixed, whereas the number
of lines is; use the following for sqaure pixel aspect ratio:
PAL: 768x576
NTSC: 640x480
Note that the number of lines are fixed and should not be altered,
all systems work with these values.
Q and A
Q: Anyone know how to set up an Wacom Artpad for use with Gimp, or if
this is possible. I think I have to use XInput or something.
A: Juergen Schlag responded:
A few months ago I tried to set up my Wacom PenPartner with X11. You
need to configure your system like the following:
* run Linux with a X11 server which supports the Xinput Extension
(my old S3-Board running under the XFree-Server works well, but
the XSuSE-Server for PERMEDIA2-Boards doesn't work).
* install the Xinput driver for the Artpad (see the docs). I used a
patched driver for the PenPartner.
Muse: What driver and what docs? Anyone know what he meant by this?
* edit the Xinput-Section of your /etc/XF86Config to load the driver
when X11 starts (see the man-pages for XF86Config and your
X-server)
* recompile the GTK toolkit with the Xinput-support enabled. see the
README and INSTALL file for the command switch to do this.
* restart your computer, start X11 and Gimp. if no error message
occured your artpad should work well
[INLINE]
Reader Mail
Dan Schmitt wrote:
The polyray site seems to have moved. It now seems to live at:
http://www.inf.fu-berlin.de/tec/software/
public/public_html/grafik/polyray.html
Michael B. East wrote:
Check out the new home page for sceda, now called sceda II! Let me
know what you think!
It's at www.tls.com/mbeast.
Scott Manley wrote:
You might be interested to add this little programm to your list of
Unix 3D graphics utilities - it generates fractal asteroids using
a few parameters given to it on the command line.
http://star.arm.ac.uk/~spm/ asteroid_impact/gen_asteroid.c
'Muse: Thanks for the pointers guys!
Steve Martin wrote me about some information in the Linux Graphics
mini-Howto:
Regarding the page http://www.graphics-muse.org/linux/lgh.html, in the
section Creation Tools, you mention that:
"If you wish to write shaders in BMRT, you really need The
Renderman Companion book by Steve Upstill which is available
from Addison Wesley. This text also describes the RIB
format. Shaders in BMRT are just text files written in the
Renderman Shading Language (described in the book - it's a
subset of C); the shader is run through the BMRT shader
compiler "slc" and then it can be used in your renderings."
I would point out a couple of inaccuracies if I may. First, Mr.
Upstill's book completely ignores the RIB format; he concentrates
exclusively on the procedural binding (i.e. the C-language API).
Secondly, regarding the Renderman Shading Language, Mr. Upstill
writes:
"The most obvious characteristic of this shader is a superficial
resemblance to a function in the C programming language."...
"This makes the shading language easier to learn, but one
must beware of assuming the shading language is C."
The text makes it clear that, while there are some syntactic
similarities between the two languages, the RSL is *not* a "subset
of C".
'Muse: You are completely correct. I stand corrected.
Finally, I would recommend that anyone wanting to learn to write
shaders for Renderman read, in addition to the Renderman
Companion, Texturing and Modelling: A Procedural Approach by
David S. Ebert et al. It is a much more thorough and intensive
work on procedural texturing than is RC, and uses examples written
almost exclusively in the Renderman Shading Language.
'Muse: It is indeed. I've got that text. Its not an easy read, but
its certainly a thorough coverage of the subject.
Hope this helps. Keep up the good work.
'Muse: It does help. Thanks for clearing this up. I intend on doing
a complete rewrite of the LGH soon, but I don't know when it will be
complete.
Roderick A. Anderson asked about converting GIF's to interlaced GIF's.
Are there any programs that run on a Linux platform to convert GIFs to
an interlaced format? Free first (of course),then commercial,
then
'Muse: NetPBM, I think. ImageMagick may also do so. A commercial
package is Image Alchemy, but its priced for corporate use and not so
much for individual use (I think - its been awhile since I checked).
hostageware or some variation. I've been too busy to upgrade my
system to RedHat Linux 5.0 (semester is almost over soon) so I
haven't been able to try a recent version of gimp. (The version I
have is less powerful then xpaint.)
'Muse: Boy, thats an old version. If you have time try the 1.0
version from www.gimp.org. You'll need to grab the GTK 1.0 libs first
- www.gtk.org. The Gimp can read in non-interlaced GIF's and convert
them to interlaced. Its pretty easy to do.
______________________________________________________________________
[INLINE]
Building dynamic web pages
Recently I started a complete rewrite of my web site,
graphics-muse.org. This is the 5th time I've done this over the past
5 years although I haven't had my own domain that long. This rewrite
comes from the obvious need to make the my graphics resources
searchable and easier to update. So, I've had to add a database and
learn to create dynamic pages. The database part is easy - I'm going
to use msql. I've used it for a few simple databases at home and its
quite sufficient for my relatively simple needs. Dynamic pages are
something new, however. And for this, I need to step into the world
of Perl.
I used to pride myself on the number of languages I had taught myself
over the years. In recent times, however, I've found myself falling
behind the curve, having grown comfortable and satisfied with C.
Although I still think C suffices for most projects I realize that I
need to move on to newer, object oriented, languages. I hate C++.
I've done a little work with it and its just a perversion of C in my
eyes. Java is my long term goal, primarily because I make a living
doing graphical interfaces and Java is the future for people like me.
Perl, on the other hand, is simply the tool of choice for the Web. I
didn't want to learn yet another scripting language, but its hard to
avoid if I'm going to try to do Web developement. So, Perl it is.
Fortunately, creating dynamic Web pages with Perl turns out to be
pretty simple. A perl module called, conveniently, Msql allows me
easy access to my databases and the CGI.pm module makes generation of
HTML a breeze. Both the msql database and CGI.pm have printed texts
available so learning both is a bit easier than the traditional
man-page browsing with which I've grown up. We'll take a look at how
we can use both the Msql and CGI.pm modules to create a very simple
dynamic page.
This discussion does not expect you to understand how to program in
perl, but it would help. We're going to step through the process
without going into huge detail here. Also, when I talk about the
database I'll use lowercase - msql - but when I talk about the perl
module I'll use uppercase - Msql. You should, however, be a little
familiar with how SQL statements look, or at least not be afraid of
looking at them. What we'll use in this example is pretty basic and
you should be able to interpret whats going on from the code and the
explanations.
First, what tools do you need for this experiment?
Perl 5.003 patchlevel 7 or higher
msql 1.0.x
CGI.pm 2.38
The Msql module
These just happen to be the versions I installed on the server that
hosts my domain. I don't know what the version of the Msql module is,
but you can find it on a CPAN mirror. Apparently if you have perl
5.004 you already have CGI.pm (its part of the standard distribution
since 5.004). If not you'll need to grab the module from one of the
CPAN mirrors. CPAN is the Comprehensive Perl Archive Network and is
where you can find all sorts of modules for use with Perl. Modules
are extensions to perl. The CGI.pm module allows you to use methods
and functions to generate HTML output in a CGI script. Similarly, the
Msql module allows you methods for accessing an msql database. The
current version of the msql database is 2.0.x, but this seemed to have
some problems when I tested simple inserts on a Solaris box, so I'm
working with the more stable 1.0.x version, which happens to be whats
on my server anyway.
Ok, now lets create a simple database. Make sure the msql database is
installed properly (follow the directions with the package - its
pretty straightforward to build and install). Start the database
daemon:
% msqld&
Next you need to create an empty database, which we'll call "muse".
Use the msqladmin command for this:
% msqladmin create muse
We can now use the msql monitor to interactively add a table and
populate the table, but lets do this the easy way. We'll create a
text file with the commands and then feed it to the monitor in batch
mode. The text file looks like this (including comments):
# drop existing table. If it doesn't exist, msql will basically
ignore this.
drop table tools
\g
# Create a new table in the database
create table tools (
tooltype int not null, # 0: hand tool; 1:
power tool
toolname char(255) not null # name of the tool
)
\p\g
# Insert a few entries into the table
insert into tools values (0, 'hammer') \g
insert into tools values (0, 'screwdriver') \g
insert into tools values (1, 'table saw') \g
Save this to a file called "tools.msql". The filename is arbitrary.
The "\p" and "\g" tell the monitor to print the command as its run and
to actually run the command, respectively. Note that the text names
are enclosed in single, not double, quotes! You can feed this to the
monitor using the following command:
% msql muse < tools.msql
Its a simple database, but this is a simple example. Now lets build a
CGI script using perl that will display a couple of tables, one of
which will contain the entries from the database. The first thing is
to tell the script to use perl5 and to load the Msql and CGI.pm
modules:
#!/usr/bin/perl5
# Import modules of interst.
use CGI qw/:standard :html3 :netscape/;
use Msql;
The location of your perl5 binary may be different, so check that
first. The stuff after "use CGI" tells perl which functions from CGI
to load. In this case we're loading the standard functions, plus the
HTML3 and netscape extensions. There are multiple methods for
specifying these extensions. You'll need to check the Perl or CGI.pm
documentation (see end of this article) for details on how to use a
different syntax.
# print out the HTML HEAD section
print header,
start_html(
-author=>'webmaster@graphics-muse.org',
-title=>'My Little Tools',
-bgcolor=>'#FFFFFF', -text=>'#000000'
);
This prints out the <HEAD> section for you. Just modify the author
and title lines to suite your needs. Next comes our connection to the
msql database:
# Open the Msql connections and select the databases of interest.
my $dbh1 = Msql->connect();
$dbh1->selectdb('muse');
The first line after the comment assigns a database handle to the
variable dbh. The next line use the selectdb() method to access the
database named "muse". Pretty simple, eh? You can specify a remote
host in the connect() method in the first line. You can also specify
the name of the database there. But I think explicitly calling them
out like this makes the code a little easier to maintain for someone
who might come along later and not quite understand what was going on.
Ok, you've opened the connection to the database. Lets grab the tools
table entries.
my $sth = $dbh1->query("SELECT * from tools");
my @rows;
my @result;
while (@result = $sth->fetchrow)
{
push( @rows, td({-align=>'CENTER', -valign=>'CENTER'},
$result[1]) );
}
my $tools_list =
table( {-border=>1, -cellpadding=>'1', -cellspacing=>'5'},
Tr(@rows)
);
Looks a little confusing, but its not really. The first line assigns
a handle from the SELECT statement to the variable sth. The handle is
used to access each row of the table that matched the SELECT query.
In this case, the query() method selected all rows from the table
"tools". If we had opened another database (besides the "muse"
database) we would have used a different database handle, such as
dbh2, instead. Of course we would have had to selected that database
with the selectdb() method like we did with dbh1 earlier.
The next two lines just define the variables rows and result to be
local. However, these variables will both be list variables. Lists
are special in perl - you can access all the entries in the list using
the @ symbol as a prefix, or you can access individual elements of the
list by prefixing the variable name with a $ symbol and using an array
element number. We'll see examples of both in a moment.
The next 4 lines are a while() loop that process each row returned
from our SELECT query. The fetchrow() method is used to assign the
current row to the @result list. A row, of course, consists of two
entries: the tooltype and the toolname. The push() line says to
append the following to the @rows list:
td({-align=>'CENTER', -valign=>'CENTER'}, $result[1])
The @rows list is empty to start, so each time through we're adding a
new entry to the list. Each entry is the CGI.pm modules code for
specifying a table element. The stuff between the curly braces are
the table element arguments. After that comes a list of what goes
into the element. In this case, you get the tools name - $result[1].
Remember we assigned the current table row to the @result list, and
we're accessing an element of that list by using the $ prefix and an
array index. The index always starts at 0, so an index of 1 means the
second element of the list. What happens after this while() loop is
run is that you have a list of table elements with all the tools names
in them. We'll be using these when we create a table in just a
moment.
Below the while() loop is another local variable, tools_list. This
variable will be used to output a table in our page. The table()
function comes from CGI.pm and is used to generate a table. Note that
neither this nor the td() functions in the while() loop have actually
been output yet. We're just storing these in variables for later
output. Again, the curly braces enclose arguments for the table HTML
tag. After that is another embedded CGI.pm function - Tr(). This
function has an uppercase first letter only because perl has its own
"tr" function and there needs to be a distinction between the two. In
most cases, the CGI.pm functions will use lowercase only. The Tr()
function creates a table row. Embedded within this is are all the
table elements we stuffed into the @rows list. Still with me?
Great! All thats left is to output this back to the browser.
# Now print the complete table
print
center(
table(
{-border=>1, -width=>'100%', -cellpadding=>1,
-cellspacing=>5},
Tr(
td({-align=>'CENTER', -valign=>'CENTER'}, $tools_list),
)
)
);
# End of HTML output.
print end_html;
The print() command is from perl. It just prints to standard output,
which is what you want for CGI scripts. The center() function comes
from CGI.pm and will center the following table. The table() function
comes from CGI.pm also. We've already created a table earlier, in our
$tools_list variable. Now we're going to embed that earlier table
inside another table. We define the new tables arguments, followed by
a single table row (Tr()) and a single element in which we add the
$tools_list table.
Save all this to a file called web.pl in your cgi-bin directory on
your web server. Make sure the script has execute permissions. You
can see this little scripts output by accessing
www.graphics-muse.org/cgi-bin/web.pl. Its not much, but it shows how
easy it is to integrate a little bit of database info into a web
page. For what its worth, it only took me about 2 days to get all
this down, mostly by experimenting with examples in the printed
texts. It would have been quicker, but I did it at work and ducking
from coworkers took most of my time.
Speaking of documentation, the texts you want are
* Offical Guide to Programming with CGI.pm by Lincoln Stein,
published by Wiley Press.
* Official Guide to MiniSQL 2.0 by Briand Jepson and David J.
Hughes, by Wiley Press.
The msql guide is applicable to the 2.0 release, but I found it useful
for a refresher on using msql. If you need 1.0.x documentation, you
can check out the msql web site.
______________________________________________________________________
Musings
[INLINE]
Gimp 1.0
For those of you who have been
1. living under a rock
2. tied up and held captive by aliens
3. or changing your oil for the past 3 months
I have news for you: Gimp 1.0 has been released. The announcement
came back on June 5th. Since I haven't done a 'Muse column since
April perhaps you missed it. For some reason the trumpets didn't seem
to blare as loud as I expected they might when the announcement hit
the mailing lists and comp.os.linux.announce. I guess I expected more
fanfare. Maybe there was and I missed it. I was changing my oil for
a while back then, too. Or maybe that was the month I was with the
aliens. Its been a long summer.
As I mentioned at the top of this column (you know, the part you
probably don't read each month), I've spent the last year working on a
book on the Gimp. SSC, the publishers of the Linux Journal and the
host of the Linux Gazette, had contacted me in June of 1997 about the
possibility of doing the book. I thought it was a great idea, so I
jumped into it. The hard part has been trying to keep the work up to
date. Much of the writing had to wait till there was some light at
the end of the 1.0 development tunnel. Not suprisingly, the past 3
months I've been buried in updates and last minute details. This has
been the longest last minue of my life.
But I'm fairly happy about the book. It will be printed in 4-color on
glossy paper and there are lots of images and examples. There is also
a CD which will include all the images from the book, plus lots of
other good stuff. There are some things I didn't get in because there
just wasn't any time left. They'll have to wait for the next edition
or for articles in the Linux Journal. Or maybe in the 'Muse. Anyway,
one year is plenty for the first edition.
Gimp 1.0 source actually comes in three packages: the core
distribution, the extras package, and the unstable package. The core
and extras package build and install fairly easy. The unstable
package includes a number of very handy plug-ins but you have to
understand how to build them a little more than the core and extras
packages.
Some of the more interesting features of the 1.0 release include a
rather good Print plug-in that can work with a number of HP and Epson
printers directly and also supports Postscript output. So you can
print directly to a postscript capable printer or run the output
through Ghostscript.
-Top of next column-
[INLINE]
More Musings...
No more musing this month.
[INLINE] [INLINE]
Another great Plug-in is the GFig plug-in, which allows you some
limited drawing capabilities. You can draw circles, curves, boxes and
other shapes, repositions them, render them on separate layers using
any brush shape and color. The interface is a bit clunky, but its
still an improvement on the default drawing tools.
Other recent improvements over older development releases include:
* runtime configuration via the Preferences dialog
* a Netscape interface to access online resources
* a better menu organization
* frequently used layer functions accessible via buttons now
* lots of Script-Fu scripts
The Gimp has gotten quite a bit of press recently, including some
blurbs in the online version of Publish magazine and on NPR (National
Public Radio). Check Zach's Gimp News site for more information on
these.
There are still a few things that need work, not the least of which is
support for more color models. But this has been discussed at length
on the developers list and a few people appear to be working on it, at
least to some extent, for the 1.2 release. The Gimp will have a
numbering scheme like the Linux kernel, where even numbers are public
releases and odd numbers are developers releases. Currently, the
1.0.4 version is the latest public release. There is a 1.1
I intend to focus more of my energies towards the Gimp from now on.
The 'Muse columns future depends on some discussions I'm having with
SSC about another project, but for now its just discussion. In any
case, after all this time, I finally plan on working on some plug-ins
and scripts. Since 1.0 is out, I can't whine about not having a
stable version anymore. I'll be hanging out on the Gimp-User mailing
list trying to help out there. With 1.0 out, its time for the user
community to show what can be done with the tools.
Besides, maybe we have another Gimp-based Diane Fenster out there.
[INLINE]
Resources The following links are just starting points for finding
more information about computer graphics and multimedia in general for
Linux systems. If you have some application specific information for
me, I'll add them to my other pages or you can contact the maintainer
of some other web site. I'll consider adding other general references
here, but application or site specific information needs to go into
one of the following general references and not listed here.
Online Magazines and News sources
C|Net Tech News
Linux Weekly News
Slashdot.org
General Web Sites
Linux Graphics mini-Howto
Unix Graphics Utilities
Linux Multimedia Page
Some of the Mailing Lists and Newsgroups I keep an eye on and where I
get much of the information in this column
The Gimp User and Gimp Developer Mailing Lists.
The IRTC-L discussion list
comp.graphics.rendering.raytracing
comp.graphics.rendering.renderman
comp.graphics.api.opengl
comp.os.linux.announce [INLINE]
Future Directions
Next month:
As usual, I'm not sure exactly what will be covered next month. My
next major project is a rewrite of my graphics-muse.org web site so
you can expect I'll probably have something for Web Wonderings.
POV-Ray 3.0 is out in beta, I hear. Anyway, we'll see which way the
winds blow by the end of August.
Let me know what you'd like to hear about!
______________________________________________________________________
© 1998 Michael J. Hammel
_________________________________________________________________
Copyright © 1998, Michael J. Hammel
Published in Issue 31 of Linux Gazette, August 1998
_________________________________________________________________
[ TABLE OF CONTENTS ] [ FRONT PAGE ] Back Next
_________________________________________________________________
"Linux Gazette...making Linux just a little more fun!"
_________________________________________________________________
A Linux Journal Preview: This article will appear in the October issue
of Linux Journal.
_________________________________________________________________
The Great Linux Revolt of 1998
By Chris Dibona
_________________________________________________________________
Photo Album
_________________________________________________________________
Sam Ockman's notice hit Slashdot (http://www.slashdot.org/) at 6:21PM,
it read:
The 500 members of SVLUG are going to have a big rally tonight at
the largest/most prestigious computer store in Silicon Valley,
Fry's, when they stay open until 1AM to distribute Windows 98.
We're going to hand out Linux CDs and stuff like that as well. We'd
like to have more people at the rally then go to buy Windows 98.
While it was obvious that the entire membership of the LUG was not
planning on showing up for a midnight rally, it was clear that this
was an idea with great potential. A little after 10PM, Sam and I
arrived at the Chili's restaurant near the rally site to meet with
people beforehand. We were hopeful that we were not going to be alone
at the table.
We were not disappointed. There were about 15 people waiting for Sam
to arrive. Some we recognized from the SVLUG, and some that had seen
the notice on Slashdot. Remember only four hours had gone by since the
original posting. By the time we left, the crowd had grown to 25
people.
After consuming some munchies and a stout or two, we headed out for
Fry's electronics in Sunnyvale. For those of you who aren't familiar
with Fry's, they are a warehouse-sized electronics, software,
hardware, test equipment, junk food, books and magazine retailer out
here on the west coast. Picture Price-Costco except with resistors.
Most people have a love hate relationship with Fry's, mainly for
customer service issues. It's important to note that this rally was
not a protest against Fry's, but a rally for Linux on MS Windows 98's
birthday.
We arrived at the Fry's around 11:30PM. The 500 compact discs hadn't
arrived from the generous folks from S.u.S.E. yet, and we were a
little nervous they would be late. At Fry's our numbers had doubled to
a little over 50 people. By now, our signs had been pulled out and we
were actively agitating for Linux. This was a peaceful gathering, we
made a point of not being too annoying and staying out of the way of
cars.
The CDs arrived around midnight, coinciding with the beginning of the
sale of the Windows 98 CDs. We started handing them out along with
pamphlets designed by Adam Richter (of Yggdrasil) to people who were
coming into and out of Fry's. At this point we had two reporters show
up to document the event (see links below).
Also, at this point we started noticing worried looking guys with
walkie-talkies watching us from the parking lot, and some Fry's
managerial types talking into their cell phones. One of the protestors
overheard one of their managers call the police, and then frustratedly
say to another Fry's guy, ``Why can't we just go over there and rip
those signs out of their geek hands?'' When we heard that, we were
taken aback, but it did consolidate our desire to continue.
A few minutes later the Sunnyvale police began to arrive in numbers.
Four police cars pulled forward into the lot. I offered myself up as
their contact, while Sam controlled the Linux people.
The police officer asked us what we were doing there, I described
Linux and how we were trying to get the word out about it. The police
officer was cool about it, telling me that we'd have to wait for his
Lieutenant to arrive to find out what to do. We were on Fry's private
property, their parking lot. It turns out there are certain situations
where it's okay to protest on someone's private property. It's pretty
much always okay to protest on the sidewalk. We had been expecting to
be asked to move to the sidewalk eventually.
Before his Lieutenant arrived, one of the other police officers asked
more about Linux, the word is one of the Linux people got a CD into
his hands on his way out of the lot. He did say, ``Hey, good luck with
your system'' to me.
Additionally, the manager of Fry's came up to me (the same one that
wanted to rip the signs out of our ``geek hands'') and asked me why I
was doing this, as Fry's sold Linux in their book section. I pointed
out that we knew this and indeed had a sign showing people which aisle
to go to for the book. He then asked why I had not had the Linux
marketing people or my (as if I'm in charge of Linux!) vendor
relations people, contact Fry's management to arrange a similar event
to the Windows 98 launch. Needless to say I was like a deer in the
headlights, I told him that, in fact, Linux was a free operating
system, and that this was one way we saw to market it (not to mention
the fact that no company could match a MS launch when it comes down to
the checkbook).
He was visibly upset, so I thought it was best to stop talking with
him at this point. I told him any further communication between us
would come to no good end, and we should only talk through the police.
(His brains were melting out his ears at this point.)
The Lieutenant arrived and said we should move to the sidewalk, so we
did, and it was just as cool, cars were actually pulling over and
picking up a copy of the Linux CD.
After about 15 minutes of this, we decided to hit the CompUSA, a few
miles away. When we arrived, there were still a lot of people in line
there. It turns out CompUSA was not only promoting Windows 98, but
they were also doing all kinds of things to bring people into the
store. They were selling the first 10 people in line computers for
$98, and paying people $4 to take away 32MB of RAM. (Actually, the RAM
was $32, but there was a $38 rebate--or something like that, it was
weird.) This also meant that there were a lot of people to promote
Linux to. CompUSA's management were cool, they just took the rally in
stride, telling Sam the rally was okay, as that was what the first
amendment was all about. Fry's had sent one of their security drones
to CompUSA to warn them of our existence, but CompUSA just let us do
our thing.
After CompUSA petered out, we converged on a local Denny's to nosh.
Denny's flipped when they saw all the people, so we moved to a braver
restaurant down the street. I got home around 3AM to find people were
already uploading pictures to the web.
By the end of the night we had given out 500 CDs, and hundreds of
pamphlets. A total of six press people showed up and there were over a
half-dozen mentions in major newspapers. This is not counting the
coverage we received from other on-line sources such as CNN and the
BBC. Everyone involved had a rocking good time promoting Linux.
Whether or not you agree with this direct action model of Linux
marketing, we feel confident that we passed the Linux Message to many
thousands of people who otherwise had no real knowledge about the
Linux revolution. Viva El Revolution!
Resources
SVLUG: http://www.svlug.org/
SVLUG Rally: http://www.penguincomputing.com/svlug-rally.html
Slashdot: http://www.slashdot.org/
SuSE: http://www.suse.com/
_________________________________________________________________
Copyright © 1998, Chris DiBona
Published in Issue 31 of Linux Gazette, August 1998
_________________________________________________________________
[ TABLE OF CONTENTS ] [ FRONT PAGE ] Back Next
_________________________________________________________________
"Linux Gazette...making Linux just a little more fun!"
_________________________________________________________________
How I got my Adaptec AVA 1502 SCSI card to work with Linux and SANE
By James M. Rogers
_________________________________________________________________
I have a Microtek ScanMaker E3 that I have ran under windows for a few
years to allow me to convert from hard copy to digital. I have never
been satisfied with the performance of this scanner under windows
because I was so limited in the size of the images that I could
process. I won't bore you with the details, suffice it to say that it
was slow, tedious and the results were only adequate.
I have heard about Scanner Access Now Easy (SANE) for a few years. It
is a project to implement a consistent scanner interface across all
scanners, digital cameras, and other items. It only works with SCSI
scanners at this time.
It took me three tries to get the program to work for me.
Try one:
The SCSI driver card that came with my scanner claimed to be an
AVA-1502E. I couldn't find a driver to work with this under Linux.
Try two:
I thought that this card is an Adaptec card so I tried to load the
Adaptec modules, concentrating on the aha152x.o The most I got was
the insmod program seeming to lock up. At no point in this process
did it recognize my card.
Try three:
I peeled the sticker off of the main chip and saw that it was an 6360
chip (Doing this probably voids the warranty.) So I dug into the
Linux source code. In /usr/src/linux-2.0.32/drivers/scsi/ there is a
file called aha152x.c. I read this file several times and got a
general picture of how this file worked. I then modified the file
/usr/src/linux-2.0.32/drivers/scsi/Makefile and commented out the line
following line:
AHA152X = -DDEBUG_AHA152X -DAUTOCONF
turns to:
#AHA152X = -DDEBUG_AHA152X -DAUTOCONF
I then added this line right below the commented line:
AHA152X = -DDEBUG_AHA152X -DSKIP_BIOSTEST -DSETUP0="{ 0x140, 11,
7, 0, 0, 0, 100, 0 }"
Basically we are telling the module to stop trying to autoconfigure
the card, don't try to see which card it is and to use the given
settings. I will contact the maintainers of this code and work with
them on getting this driver to autorecognize this card, if possible.
The first two numbers are the ones that you care about. These numbers
correspond to the the jumpers on the card. The first number is 0x140
if the jumper is on the card , or 0x340 if the jumper is removed. The
11 corresponded to the irq setting on my card. This number can be 9,
10, 11 or 12 depending on how the jumper was set.
If you want to know more about these other settings look in the source
code and
I then changed to /usr/src/linux-2.0.32/ put a floppy disk in the
drive and did a
make dep ; make clean ; make zdisk
Once the disk had been made I put the disk in my Linux box with the
scanner attached and rebooted. It came up and saw my card and told me
that the card was device /dev/sga. When I looked in /dev/ for a
device called sga I couldn't find one. So I made a link from
/dev/scanner to /dev/sg0 instead with the following command:
cd /dev
ln -s sg0 scanner
I then configured my /etc/sane.d/dll.conf to look like this:
# enable the next line if you want to allow access through the
network:
#net
microtek
pnm
I configured my /etc/sane.d/microtek.conf to look like this:
#Uncomment the following if you are tired of seeing the dump of the
# scanner INQUIRY every time the backend starts up...
nodump
/dev/scanner
Then I ran the following command and it worked!!!:
scanimage --help -d microtek
This tells you the other commands that will work with the scanner.
I then scanned in stuff with the command line command and with
xscanner
scanimage -dmicrotek -x214 -y296 --resolution 97 > test.pnm
The above command is a full scan of the entire page at 200dpi. The
output of these programs is pnm format which allows you access to
hundreds of filters to process and convert your output to the exact
format that you desire. See the man pnm page for more details.
I have already done some 11MB graphics files and used some pnm
utilities to filter them, edited them with gimp, cut out the area that
I wanted and saved them as jpg's. The neat thing is that I am testing
out SANE by running it on a machine with only 16MB of memory and no
swap. (I am processing the files on a different, faster machine) So
far SANE has only failed on full screen images above 200dpi which is
not bad. Once I have a baseline I will put this machine to 32MB RAM
and 32MB swap space.
I love the ability of Linux to get in there and let me really control
my hardware configuration. With Microsoft the only option that I
would have had would have been to buy a "compatible" product and
install one of the manufactures full featured (bloated), buggy driver
programs. The support tech would have probably sneered at me as he
said this. This is the first time that I have "dug into" the kernel
driver code, researched a problem and found a solution. Just the
satisfaction of being able to fix the kernel to recognize the hardware
that I have already paid for is very rewarding.
Next month I will talk about getting the networking portion of SANE up
and running.
_________________________________________________________________
Copyright © 1998, James M. Rogers
Published in Issue 31 of Linux Gazette, August 1998
_________________________________________________________________
[ TABLE OF CONTENTS ] [ FRONT PAGE ] Back Next
_________________________________________________________________
"Linux Gazette...making Linux just a little more fun!"
_________________________________________________________________
Debian GNU-Linux image
A New Stable Release of Debian
_________________________________________________________________
by Larry Ayers
_________________________________________________________________
Introduction
In 1993 Ian Murdock created the Debian Linux distribution, initially
under the auspices of the Free Software Foundation's GNU project.
Although the direct connection with FSF/GNU is a thing of the past,
Debian is still the only major distribution which is not connected
with a commercial entity and which is maintained solely by a
loosely-knit band of volunteers. The parallels with Linux itself make
this distribution appealing to Linux users who value the ideals of the
free-software world, including those who may disagree with the purist
views of the FSF.
Debian hasn't exactly swept the Linux world by storm. The installation
procedure in the past has relied on the creation of several floppy
disk images, and due to the idiosyncrasies of the floppy medium at
least one disk in the set would be bad (in my experience), forcing the
irritated user to recreate the faulty disk and start over from the
beginning. Debian 2.0 thankfully doesn't require starting over if
(say) disk 5 is bad; it just starts the installation again from where
it left off. Luckily machines with BIOS support for booting from a
CDROM are becoming common and cheap, and Debian CDs are set up so they
can be booted directly. Once the base system was installed the dselect
package installer, a functional but unintuitive and visually
unappealing application, would further discourage new users.
Once these hurdles were overcome, the user would find that the Debian
system was very well thought out. As an example, the configuration of
sendmail has been a stumbling block for many new Linux users. In my
Slackware days I had a painfully developed sendmail configuration
which sort of worked, but even getting it to that point involved a lot
of FAQ-reading and searching of usenet messages. The first time I
installed the Debian sendmail package, I was asked a few pertinent
questions about my system and its relationship to my mail-server. The
result was a sendmail configuration which works flawlessly, due to the
invocation of some obscure options which I'd never heard of. The
printer configuration, as a final step of installing the magicfilter
package, also has worked very well for me. These installations may not
have the fancy graphical interfaces found in some other distributions,
but they work well and don't require a working X Windows set-up along
with various X toolkit libraries.
The core of Debian's strength is in the exceptionally versatile *.deb
package format. This format, comparable in many ways to Redhat's RPM,
does everything possible to prevent a new package from conflicting
with others or rendering a system unstable. The dependencies (i.e,
what other packages are required for a new one to function) are
enforced in a flexible manner and can be over-ridden by the user.
Pre-install and post-install scripts are automatically run when a
package is installed. These scripts will update default configuration
files, delete obsolete files from earlier package versions, and prompt
the user if choices need to be made.
The dpkg command-line program can be used to install, update, or
remove packages. Dselect, a full-screen front-end for dpkg, can
automatically fetch and install entire dependency hierarchies; in
other words if you select a package with dselect it can determine what
other packages are needed and install them as well. I have to confess
that I rarely use dselect if I can help it. I usually obtain packages
as I need them and install them by hand with dpkg. The problem with
dselect is that it is usually used in an installation from scratch; by
the time a system needs a major upgrade most users have forgotten the
keystrokes. It's not a tool which is used often enough to justify
really learning how to use efficiently, and toggling back and forth
between the main screen and the help pages is cumbersome. My
seventeen-year-old son first installed Linux because of the Gimp
graphics program. I installed Debian 1.3 for him, but he's a hardware
junky and is continually changing hard disks and video-cards. The
second time he had to reinstall Linux I tried to get him to run
dselect himself but he hated it. By this time he had convinced some
friends to try Linux, and after several lengthy sessions on the phone
attempting to walk these kids through package installation with
dselect, I gave up and ordered a Redhat 5.0 CD, which they are all
running now. Debian has a ways to go before a non-technical novice can
easily install it without assistance.
Debian 2.0
Debian 2.0 has been delayed for several months, due to the existence
of unresolved bugs in several packages. This is probably inevitable
given the volunteer nature of the work, as well as the difficulties
involved in the transition to the glibc libraries upon which all
programs depend. Redhat 5.0 was the first glibc-based distribution,
released last year. The release had several major problems, many but
not all of which have been fixed with the release of version 5.1 this
year. I surmise that the Debian developers resolved to forgo haste in
order to avoid similar problems with Debian 2.0.
The Debian community was somewhat demoralized earlier this year when
Bruce Perens, Debian's leader and spokesman, resigned. It seems that
Perens thought Debian wasn't moving quickly enough towards
user-friendliness. There is some truth to this opinion, as Debian
seems to appeal to many seasoned Linux users who aren't put off by the
lack of graphical administration tools. This illustrates on a smaller
scale a problem Linux itself has: to gain a larger user-base easier
configuration and installation is helpful, but the very people
qualified to develop the necessary tools tend not to need or even want
them. Linuxconf and COAS, two projects which attempt to address this
need, may eventually fill this void.
Libc5 and Libc6
This release is noteworthy for its skillful and painless handling of
the lib5/libc6 issue. Both versions of the essential libraries and
support files can be installed and used simultaneously in a manner
which is transparent to the user. This is important because most
commercial, binary-only Linux applications are compiled to use libc5.
This also allows incremental upgrading of an existing Debian 1.3
system; the minimal base files to upgrade from 1.3 to 2.0 can be
downloaded in a couple of hours while further packages can be obtained
and installed as time permits (or when the CD comes in the mail!). The
old libc5 packages will continue to function normally until they are
upgraded.
Libc5 itself isn't sufficient to run any but the most basic
applications. Other shared libraries are needed; under Debian they are
installed in /usr/lib/libc5-compat . Ldd, the shared library loader,
is smart enough to use these libraries for libc5 executables. You will
probably need the libc5 XFree86 libraries as well as libXpm in order
to run the older binaries. It's easy to determine which libraries are
needed by a libc5 executable. Just look at the output of ldd (i.e.,
run ldd netscape, substituting the name of the program for
"netscape"). If both libc.so.5 and libc.so.6 are shown don't even try
starting the program, as it will die immediately. If only libc.so.5 is
shown, and the remainder of the shared libs are located in
/usr/lib/libc5-compat then the program should run. Here is the output
of ldd when run on libc5 version of Netscape:
libXt.so.6 => /usr/lib/libc5-compat/libXt.so.6 (0x4000c000)
libSM.so.6 => /usr/lib/libc5-compat/libSM.so.6 (0x4004e000)
libICE.so.6 => /usr/lib/libc5-compat/libICE.so.6 (0x40057000)
libXmu.so.6 => /usr/lib/libc5-compat/libXmu.so.6 (0x4006c000)
libXpm.so.4 => /usr/lib/libc5-compat/libXpm.so.4 (0x4007e000)
libXext.so.6 => /usr/lib/libc5-compat/libXext.so.6 (0x4008c000)
libX11.so.6 => /usr/lib/libc5-compat/libX11.so.6 (0x40097000)
libdl.so.1 => /lib/libdl.so.1 (0x40135000)
libc.so.5 => /lib/libc.so.5 (0x40138000)
And here is the ldd output when run on a libc6 version of Netscape:
libXt.so.6 => /usr/X11R6/lib/libXt.so.6 (0x40010000)
libSM.so.6 => /usr/X11R6/lib/libSM.so.6 (0x40052000)
libICE.so.6 => /usr/X11R6/lib/libICE.so.6 (0x4005b000)
libXmu.so.6 => /usr/X11R6/lib/libXmu.so.6 (0x40070000)
libXpm.so.4 => /usr/X11R6/lib/libXpm.so.4 (0x40084000)
libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x40092000)
libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x4009d000)
libdl.so.2 => /lib/libdl.so.2 (0x4013b000)
libc.so.6 => /lib/libc.so.6 (0x4013e000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
libg++.so.2.7.2 => /usr/lib/libg++.so.2.7.2 (0x401e3000)
libstdc++.so.2.7.2 => /usr/lib/libstdc++.so.2.7.2 (0x4021b000)
libm.so.6 => /lib/libm.so.6 (0x40258000)
Of course if you install from scratch (and don't have any old programs
you need to run) everything will be libc6-based and the above won't be
necessary.
Installation
Debian 2.0 CDs should be available by the time this issue of LG is on
the net, and for everyone but the fortunate few with fast and
unlimited net connections a CD is the easiest installation method.
Since my installation was an upgrade (done over the course of a couple
of weeks) from a Debian 1.3 set-up, I didn't get to see if the
installation process had improved until the other day, when I happened
to notice that my wife's laptop had several hundred megabytes of free
disk space. Unfortunately the machine (a 486 Thinkpad) lacks a CDROM
drive and its modem is slow. After splitting off half of the single
disk partition with Partition Magic I had two hundred megabytes to
work with. Back at my machine, I proceeded to download seven disk
image files from a mirror of ftp.debian.org, a total of nine and
one-half megabytes. This may seem like a lot, but those seven disks
provide a minimal but functional Linux system complete with internet
access.
Once the tedious job of transferring the disk images to floppy was
completed, I booted the Thinkpad from the first disk and began the
installation. Like Redhat's, Debian's installation interface is
full-screen and menu-driven, though it's not as fancy. One major
difference is that while Redhat's installation segues right into
package installation and X configuration, Debian is more of a
two-stage process. After the base installation is complete, the user
reboots the machine; once the new Debian system has booted up (either
from a custom boot-disk created during installation or directly from
the hard disk) the user is prompted to set the root password and
create a user account. The dselect package installer/manager then
starts up, but selecting and installing packages can be postponed,
which is what I decided to do.
Debian's two-stage installation method makes sense to me. Why mess
with packages before ascertaining that the installation is truly
bootable and error-free? Another reason for waiting to run dselect
involves network connections. Although both Redhat and Debian have PPP
configuration tools, neither has ever worked flawlessly for me. I
always have to do some fine-tuning of the /etc/ppp files, though
Debian's pppconfig utility came the closest to getting my
configuration right. My ISP is a particularly difficult one to connect
to using Linux; I'm certain that for many other providers these net
configuration tools work without the necessity of file-tweaking
afterwards.
Once a PPP connection can be established, dselect can be used to
retrieve via FTP any of the distribution's numerous packages. Dselect
can also install packages from an NFS-mounted filesystem, a local
disk, or a mounted CDROM.
Eventually there will be some sort of graphical interface to dselect
and dpkg, but this task has proven to be a difficult one. As a first
step, an application called apt is under development; in its current
state it enable a user to install packages from a combination of
remote and local sources in one operation. If a package from the
remote server is more recent than the local one the remote package
will be installed instead. In effect apt allows installation primarily
from a CDROM, with any superseded packages downloaded from a remote
server.
The Debian developers are very careful to keep the main distribution
packages completely free in the GNU sense of the word. The least bit
of restrictive licensing, even if source is available, causes the
package to be placed in a separate directory, /nonfree. These packages
are still freely available, but licensing restrictions prevent some
from being included on CDROMs.
_________________________________________________________________
Conclusion
I predict that even with the installation improvements in Debian 2.0,
it will continue to be a technical user's distribution. This may
change when the proposed replacement for dselect is finished. The
Debian community nonetheless continues to grow, with over four hundred
developers maintaining packages. The selection of available packages
is immense, with at least as many pieces of software available in
*.deb format as there are in *.rpm format. I would recommend Debian
for users who have cut their teeth on another distribution, but for
beginners I still will recommend Redhat. Just remember, if you can get
past the unintuitiveness of dselect package installation, the rest is
a breeze!
_________________________________________________________________
Last modified: Mon 27 Jul 1998
_________________________________________________________________
Copyright © 1998, Larry Ayers
Published in Issue 31 of Linux Gazette, August 1998
_________________________________________________________________
[ TABLE OF CONTENTS ] [ FRONT PAGE ] Back Next
_________________________________________________________________
"Linux Gazette...making Linux just a little more fun!"
_________________________________________________________________
A Somewhat Far-Fetched Analogy
by Larry Ayers
_________________________________________________________________
Lately I've been musing about the effects Linux and free software in
general have had upon my world-view. It occurred to me that analogies
can be drawn between the realm of free software and another unrelated
pursuit which intermittently occupies my attention. Growing plants may
seem about as far from the realm of software and computers as it is
possible to get, but I've noticed some parallels.
First, I'll ask why running Linux (and using free software in general)
is satisfying for so many computer users. These factors come to mind:
* It frees the user from reliance upon unpredictable corporate
entities.
* It's efficient, modifiable, and develops rapidly.
* There is a strong community spirit.
* Linux adheres to truly open standards.
* Networks well "out of the box", no additional components
necessary.
* Bugs are usually fixed quickly, partly because
* the developers are accessible, responsive, and interested.
Open pollinated seeds are seeds which can be planted and yield a plant
very similar to its parents. Hybrid seeds are crosses between species
or strains of plants. Planting a seed from a hybrid plant will give
unpredictable and generally undesirable results. Large seed companies
prefer marketing hybrids, as the customer will have to buy new seed
year after year, rather than saving seeds from productive plants to
plant in subsequent years. Beginning to see where this is headed?
In contrast, a grower who saves seed from open-pollinated plants can
exert an influence on the variety by selecting seed from especially
healthy and productive plants. This evolving strain will eventually
become better adapted to the local soil and climate. Coincidentally
enough, someone who keeps a plant variety alive through the years is
referred to as the maintainer of the variety, and like a maintainer of
a free software package, attempts to pass the responsibility on when
he or she is unable to continue the effort.
All too often a favorite vegetable or flower variety is discontinued
by a large seed company; if the plant was a hybrid it's probably gone
forever, but even if the variety comes true from seed it won't survive
unless someone happened to save seed. Ever seen a favorite piece of
commercial software become abandoned by the company which supported
it?
If the multinational seed houses have points in common with the large
commercial software firms, there is also a parallel between vendors of
Linux distributions and the growing number of small seed companies
which sell open-pollinated and heirloom seeds. Both of these types of
companies service a niche market, and their customers can duplicate
and redistribute the products sold. The potential for great profit is
less than when selling proprietary and unreproducible goods, but the
customer-base in both instances is growing.
Both the free-software and non-hybrid seed communities exist rather
quietly in society. There is little advertising, especially in the
mass media, because large commercial interests who can afford such
publicity aren't involved. The free software and Linux communities
have benefited greatly from the ubiquity of internet access, while the
heirloom plant growers network through such organizations as the Seed
Savers Exchange.
What's really at stake here is the ability to control and mold one
segment of a person's environment, whether that segment is composed of
bits or genes. I think that as society becomes more complex,
heavily-populated, and bureaucratic, the areas of individual autonomy
dwindle. These two fringe realms discussed above, as well as others
with similar characteristics, will surely increase in prominence as
time passes.
_________________________________________________________________
Last modified: Mon 27 Jul 1998
_________________________________________________________________
Copyright © 1998, Larry Ayers
Published in Issue 31 of Linux Gazette, August 1998
_________________________________________________________________
[ TABLE OF CONTENTS ] [ FRONT PAGE ] Back Next
_________________________________________________________________
"Linux Gazette...making Linux just a little more fun!"
_________________________________________________________________
A Linux Journal Preview: This article will appear in the November
issue of Linux Journal.
_________________________________________________________________
Open Source's First Six Months
By Eric Raymond
_________________________________________________________________
Six months ago yesterday as I write, Netscape announced their
intention to release the source code of Navigator. In that time, we've
seen once again that there are very few things as powerful as an idea
whose time has come.
I'm reminded of this every time I surf the Web these days. The Open
Source meme is everywhere. It seems you can't open a technical or
business magazine these days without tripping over an admiring article
about Linux. Or an interview with Linus Torvalds. Or an interview
with...er...me.
I've ended up near the center of the crazy and wonderful things
happening now half by accident. When I composed The Cathedral and the
Bazaar a bit more than a year ago, I was aiming to explain the Linux
culture to itself, and explore some interesting and somewhat heterodox
ideas about software development. If anybody had suggested to me then
that the paper was going to motivate something like the Netscape
source release, I would have wondered what drugs they'd been smoking.
But that's what happened, and I found myself thrust into the role of
leading advocate and semi-official speaker-to-journalists for a hacker
community suddenly feeling its oats. I decided to take that job
seriously, because somebody needed to do it and I knew how and nobody
else was really trying very hard. (I had the advantage of experience;
I'd been in this role before, for lesser stakes, after the New
Hacker's Dictionary came out in 1991.)
The point of all this personal stuff is that I've had an almost
uniquely privileged view of the early days of the open-source
revolution -- as an observer, as a theorist, as a communicator, and as
an active player in helping shape some of the major events.
We've come a long way, baby...
In this essay, I intend to do three things. One: celebrate the
incredible victories of the last six months. Two: share my thinking
about the battles being fought right now. And three: consider where we
need to go in the future and what we need to do, to ensure that open
source is no mere fad but a genuine transformative revolution that
changes the rules of the software industry forever.
When you're living on Internet time, I know it can be hard to remember
last week, let alone last year. But take a moment to think back to New
Year's Day 1998. Before the Netscape announcement. Before Corel.
Before IBM got behind Apache. Before Oracle and Informix and Interbase
announced they'd be porting their flagship database projects to Linux.
We've come a long way, baby!
In fact, we've come an astonishingly long way in a short time. Six
months ago `free software' was barely a blip on the radar screens of
the computer trade press and the corporate world -- and what they
thought they knew, they didn't like. Today, `open source' is a hot
topic not just in the trade press but in the most influential of the
business-news magazines that shape corporate thinking.
The Economist's July 10 article was a milestone; another is coming up
August 10th, when I'm told Forbes will run an explanation of the
concept as their cover story.
The campaign also went after corporate endorsement of open-source
software. We've got it, in spades. IBM -- IBM! -- is in our corner
now. The symbolism and the substance of that fact alone is astounding.
We haven't shot ourselves in the foot...
The last six months are also notable for some things I feared early on
that did not happen. Despite initially sharp debate and continuing
objections in some quarters, the hacker community did not get bogged
down in a loud and divisive factional fight over the new tactics and
terminology. Bruce Perens and I and the other front-line participants
in the Open Source campaign did not get publically savaged for trying
to gently lead the community in a new direction. And nobody burnt us
in effigy for actually succeeding!
The maturity and pragmatism with which the community backed our play
made a critical difference. It has meant that the story stayed
positive, that we have been able to present open source as the product
of a coherent and effective engineering tradition, one able to sustain
the momentum and meet the challenge of what the corporate word
considers "real support". It has denied the would-be bashers and
Gates-worshippers among the press the easy option to dismiss us all as
a bunch of fractious flakes.
We've all done well. We've gotten our message out and we've kept our
own house in order -- and all this while continuing to crank out key
advances that undermine the case for closed software and increase our
leverage, like Kaffe 1.0. What comes next?
Towards world domination...
I see several challenges before us:
First: the press campaign isn't over by any means. When I first
conceived it back in February, I already knew where I wanted to see
positive stories about open source. The Wall Street Journal, the
Economist, Forbes, Barron, and the New York Times.
Why those? Because if we truly desire world domination, we've got to
get our LSD into the corporate elite's conceptual water supply and
alter the beast's consciousness. That means we need to co-opt the
media that shape decision-making at the highest corporate levels of
the Fortune 500. Personally, all the press interviews and stuff I've
done have been aimed towards the one goal of becoming visible enough
to those guys that they would come to us wanting to know the open
source community's story.
This has begun to happen (besides the Forbes interview, I was a
background source for the Economist coverage) -- but it's nowhere near
finished. It won't be finished until they have all gotten and spread
the message, and the superior reliability/quality/cost advantages of
open source have become diffused common knowledge among the CEOs,
CTOs, and CIOs who read them.
Second: When I first wrote my analysis of business models, one of my
conclusions was that we'd have our best short-term chances of
converting established `name' vendors by pushing the clear advantages
of widget frosting. Therefore my master plan included concerted
attempts to persuade hardware makers to open up their software.
Though my personal approaches to a couple of vendors were
unsuccessful, then-president of Corel Computer's speech at UniForum
made it clear that CatB and the Netscape example had tipped them over
the edge. Subsequently Leonard Zuboff scored big working from the
inside with Adaptec (one of the companies I had originally targeted
but never got to). So we know this path can be fruitful.
A lot more evangelizing remains to be done here. Any of you who work
on with vendors of network cards, graphics cards, disk controllers and
other peripherals should be helping us push from the inside. Write
Bruce Perens or me about this if you think you might be positioned to
help; combination Mister-Inside/Mister-Outside approaches are known to
work well here.
Third: The Oracle/Informix/Interbase announcements and SGI's official
backing for Samba open up another front. (Actually we're ahead of my
projections here; I wasn't expecting the big database vendors to roll
over for another three months or so.) That third front is the ability
to get open-source software into large corporate networks and data
centers in roles outside of its traditional territory in Internet
sevices and development.
One of the biggest roadblocks in our way was the people who said ``OK,
so maybe Linux is technically better, but we can't get real enterprise
applications for it.'' Well, somehow I don't think we'll be hearing
that song anymore! The big-database announcements should put the `no
real apps' shibboleth permanently to rest.
So our next challenge is to actually get some Fortune 500 companies to
cut over from NT to Linux or *BSD-based enterprise servers for their
critical corporate databases, and go public about doing that.
Getting them to switch shouldn't be very hard, given the dog's-vomit
reliability level of NT (waving a copy of John Kirch's white paper at
a techie should often be sufficient). In fact, I expect this will
swiftly begin to happen even without any nudging from us.
But that will only be half the battle. Because the ugly political
reality is this: The techies with day-to-day operational
responsibility that are doing the actual switching are quite likely to
feel pressure to hide the switch from their NT-brainwashed bosses.
Samba is a huge win for these beleaguered techies; it enables
open-source fans to stealth their Linux boxes so they look like
Microsoft servers that somehow miraculously fail to suck.
There's a problem with this, however, that's almost serious enough to
make me wish Samba didn't exist. While stealthing open-source boxes
will solve a lot of individual problems, it won't give us what we need
to counteract the attack marketing and FUD-mongering that we are going
to start seeing big-time (count on it) as soon as Microsoft wakes up
to the magnitude of the threat we actually pose. It won't be enough to
have a presence; we'll need a visible presence, visibly succeeding.
So I have a challenge for anybody reading this with a job in a Fortune
500 data-center; start laying the groundwork now. Pass around the
Kirch paper to your colleagues and bosses. Start whatever process you
need to get an Oracle- or Informix- or Interbase-over-Linux pilot
approved -- or get prepared to just go ahead and do it on the
forgiveness-is-easier-than-permission principle. Some of these vendors
say they're planning to offer cheap evaluation copies; grab them and
go!
I and the other front-line participants in the Open Source campaign
will be doing our damnedest to smooth your path, working the media to
convince your bosses that everybody's doing it and it's a safe, soft
option that will look good on their performance reports. This, of
course, will be a self-fulfilling prophecy...
Fourth: Finally, of course, there's the battle for the desktop --
Linus's original focus in the master plan for world domination.
Yes, we still need to take the desktop. And the most fundamental thing
we still need for that is a zero-administration desktop environment.
Either GNOME or KDE will give us most of that; the other must-have,
for the typical non-techie user, is absolutely painless setup of
Ethernet, SLIP, and PPP connections.
Beyond that, we need a rock-solid office suite, integrated with the
winning environment, that includes the Big Three applications --
spreadsheet, light-duty database and a word processor. I guess Applix
and StarOffice come close, but neither are GNOME- or KDE-aware yet.
Corel's port of WordPerfect will certainly help.
Beyond repeating these obvious things there's not much else I'll say
about this, because there's little the Open Source campaign can do to
remedy the problem directly. Everybody knows that native office
applications, well documented and usable by non-techies, are among the
few things we're still missing. Looking around Sunsite, I'd say there
might be a couple of promising candidates out there, like Maxwell and
Xxl. What they mainly need, I'd guess, is documentation and testing.
Would somebody with tech-writing please volunteer?
But this is probably getting into too much detail. The important
thought I'd like to leave you with is this:
We're winning!
Yes, we're winning. We're on a roll. The Linux user base is doubling
every year. The big software vendors are being forced to take notice
by their customers. Datapro even says Linux gets the best overall
satisfaction ratings from managers and directors of information
systems in large organizations. I guess that means not all of them are
pointy-haired bosses...
The explosive growth of the Internet and the staggering complexity of
modern software development have clearly revealed the fatal weaknesses
of the closed-source model. The people who get paid big bucks to worry
about these things for Fortune 500 have understood for a while that
something is deeply wrong with the conventional development process.
They've seen the problem become acute as the complexity of software
requirements has escalated. But they've been unable to imagine any
alternative.
We are offering that alternative. I believe this is why the Open
Source campaign has been able to make such remarkable progress in
changing the terms of debate over the last six months. It's because
we're moving into a conceptual vacuum with a simple but powerful
demonstration -- that hierarchy and closure and secrecy are weak,
losing strategies in a complex and rapidly-changing environment. The
rising complexity of software requirements has reached a level such
that only open source and peer review have any prayer of being
effective tactics in the future.
The Economist article was titled ``Revenge of the Hackers'', and
that's appropriate -- because we are now re-making the software
industry in the image of the hacker culture. We are proving every day
that we are the people with the drive and the vision that will lead
the software industry into the next century.
Eric S. Raymond <esr@thyrsus.com>
_________________________________________________________________
Copyright © 1998, Eric Raymond
Published in Issue 31 of Linux Gazette, August 1998
_________________________________________________________________
[ TABLE OF CONTENTS ] [ FRONT PAGE ] Back Next
_________________________________________________________________
"Linux Gazette...making Linux just a little more fun!"
_________________________________________________________________
A PERSONAL LINUX/ALPHA SYSTEM: 64 BITS FOR UNDER $500
by Russell C. Pavlicek
_________________________________________________________________
BACKGROUND
This article is the result of my efforts to build a personal Digital
Alpha workstation to run Linux/Alpha. For under $500 (US), I assembled
a 166 MHz Universal Desktop Box (often called a UDB or Multia) with a
half gigabyte of disk space, 32 megabytes of memory, 2x CD ROM drive,
ethernet port, 2 serial ports, and a parallel port. For a few dollars
more, this could easily be expanded with more disk and RAM.
Rather than engage in a lengthy discourse on how I went about building
my particular Linux/Alpha workstation, I'd like to share my
observations regarding the Alpha-specific peculiarities I encountered.
I had used Linux/x86 for years, but I found that there were some Alpha
installation issues which were brand new to me. Once I understood
these few issues, it was simple to construct a useful Linux/Alpha
system.
WHY MAKE AN INEXPENSIVE ALPHA SYSTEM?
Why indeed? When the usual x86 offerings are inexpensive and
omnipresent, why bother constructing a low-end Linux/Alpha box?
1. It makes a decent, inexpensive 64-bit development and testing
platform.
There's lots of talk today about running 64-bit applications. But
much of the discussion is nothing more than that -- talk. If you
want to find out if your application will survive and thrive in 64
bits, here is a very low cost opportunity to try it out. A low
cost Linux/Alpha platform represents an excellent opportunity for
porting and testing software in a true 64-bit environment.
2. It is an excellent proof-of-concept system for faster Alpha
systems.
Just as many organizations are beginning to see that Linux can be
used to their competitive advantage, others are beginning to see
that the Linux/Alpha combination can be used in environments where
extreme horsepower is required for certain tasks. However, those
who hold the purse strings are wary of pouring money into a
different hardware architecture until they have concrete proof
that the new system will do the job (and rightfully so). An
inexpensive Linux/Alpha system becomes an ideal prototype that can
demonstrate the possible effectiveness of the proposed solution
without incurring high costs. Once the concept is validated, it
may be possible to secure management backing for a full-blown
Linux/Alpha solution.
3. It is a development tool for Linux/IA64.
The Intel IA64 architecture is coming with the expected release of
Intel's "Merced" processor around the year 2000. Many UNIX vendors
are lining up to make sure that their particular UNIX
implementation becomes the standard UNIX for the new architecture.
Many Linux folks, of course, would like to see Linux/IA64 enter
the fray early so that early adopters of the IA64 architecture
might find themselves looking at Linux/IA64 as a viable first
64-bit operating system.
So what does Linux/Alpha have to do with this? Well, some programs
in the mountain of Open Source code that we find in the Linux
world are not currently functional in the 64 bit world of
Linux/Alpha. And many new programs have to be tested on a 64-bit
environment to make sure they will make the jump to Linux/IA64. We
need to make sure that all those programs that add value to Linux
are 64-bit friendly when IA64 hits the streets. An excellent way
of doing that is through porting the code to the 64-bit
Linux/Alpha platform. Not only will the Linux world be ready to
invade the IA64 space when it is birthed, but this will also serve
to further solidify the Linux/Alpha offering.
4. Linux/Alpha solutions are becoming more cost effective
I've met many people over the past few years who desired to use
Linux/Alpha, but could not afford the price tag. Now, however, it
is clear that falling hardware prices and the availability of used
Alpha machines is clearing the way for people to use Linux/Alpha.
Just recently, retailers like Linux Systems Labs began selling
low-priced Red Hat Linux/Alpha CDs (GPL distribution). And the
long-awaited Debian V2 will support the Alpha platform as well.
There has never been a better time to take a look at Linux/Alpha.
5. Experience, experience, experience!
It never hurts to add more current technical expertise to your
resume. And experience in a 64-bit UNIX implementation could look
awfully nice on the resume when many companies begin employing
64-bit architectures like Alpha and IA64.
6. My reason...
I work for Compaq Computer Corporation (in the part of Compaq
which used to be Digital Equipment Corporation) as a Technical
Consultant in the Networks and Systems Integration Services (NSIS)
organization in the US Federal Government Region. It is my desire
to be ready to serve Linux/Alpha customers in the Federal
Government, so I decided to prepare myself by personally
purchasing, installing, and using a Linux/Alpha system.
I have already used Linux/x86 successfully as a part of two
customer engagements within the past year. A few of my coworkers
locally have also used Linux/x86 in customer engagements during
that timeframe. I haven't seen any Linux/Alpha work yet, but I
intend to be ready when it comes!
7. My other reason...
And let's not forget the big reason: Linux/Alpha is a blast! If
you thought Linux was fun to work with on the x86 architecture,
wait until you have 64 bits to play with!
THE COSTS:
As the sole breadwinner for a family of four in the greater Washington
DC area, I do not have great sums of money to pour into development of
a computer system of any sort. I've built several PCs over the years
and I've always followed the same basic rules: stay well behind the
technology curve and keep it CHEAP! Quality is a concern (building
junk is a total waste of money; you lose more by building garbage than
by building something that is more expensive but functional), but
financial limitations are quite real. So, by buying good used products
and/or non-current unused products, I can shave the price down to
acceptable levels without sacrificing usability. Sure, I'd like to run
dual 600 MHz Alpha processors with 50 gigabytes of disk and a gigabyte
of RAM -- but I'd prefer to stay married, thank you!
With these guidelines in mind, I purchased all of the following pieces
through on-line auctions (I used eBay, Haggle, and Onsale) and local
computer shows in the first few months of 1998.
Here is what I assembled:
1. DEC Universal Desktop Box (UDB; aka Multia) $189
2. TI 16 MB 72 Pin Parity Memory $29
3. 16 MB 72 Pin Parity Memory $38
4. IBM 540 MB SCSI Disk $44
5. Toshiba SCSI 2x CD $25
6. Generic SCSI Cable $16
7. Generic Internal SCSI Cable $13
8. Mitsumi Keyboard (PS/2 style) $13
9. NEC SVGA Monitor $94
10. DEC Mouse (PS/2 style) (free; included with UDB)
11. Generic SCSI Case (free; had this already)
12. Red Hat Powertools 5.0 $19
*** TOTAL *** $480
THE GOTCHAS:
As a user of Linux/x86 since 1995, I've grown accustomed to the
capabilities and methodologies of the Linux/x86 world. I found a
handful of differences in the Linux/Alpha world which are worth noting
to someone who wants to make the jump to 64 bits:
1. A Linux/Alpha system with a single hard drive uses at least three
partitions
The Alpha system needs to load the initial boot code from a
partition that the Alpha console (in ROM) understands. So, a
single disk Linux/Alpha system is likely to have at least three
partitions:
1. /dev/sda1 tiny DOS FAT partition containing the loader
2. /dev/sda2 root partition
3. /dev/sda3 swap partition
Linux/x86 folks will obviously be used to the need for root and
swap partitions, but the floppy-sized FAT partition containing
LINLOAD.EXE and MILO is a different concept.
2. MILO instead of LILO
Linux/x86 has the simple, yet highly useful, LILO (LInux LOader)
to boot Linux from the hard drive. Linux/Alpha has MILO (MIni
LOader) to accomplish the same task, but using a slightly
different methodology. Rather than residing in a boot block, MILO
resides in the tiny DOS-formatted partition on the SCSI drive
(normally /dev/sda1). The Alpha console boots MILO from the DOS
FAT partition, then MILO boots Linux/Alpha from the Ext2 partition
(/dev/sda2).
3. Multiple kernels
Since there are often differences between the hardware standardly
found on different Alpha machines, you are given a choice of
pre-built kernels to use when installing the operating system. It
is generally quite easy to select the appropriate kernel for your
machine, since the documentation very clearly maps the available
kernels to most common Alpha models. But it is still different
than most Linux/x86 installation procedures.
4. Different processor architecture
The Alpha processor family and the x86 processor family are two
different animals. As one might expect, a 64-bit RISC processor
and a 32-bit CISC processor go about their respective tasks in
very different ways. What does this mean to someone who wants to
build a Linux/Alpha workstation? Don't be stingy with memory or
processor speed if you can help it. In particular, I've found that
my Linux/Alpha system performs much better with additional memory.
There is quite a noticeable improvement in speed when running at
32 megabytes as opposed to 16 megabytes. In fact, the first real
upgrade I hope to perform is to add more memory to the system.
Thankfully, memory is much more affordable than it was at the
beginning of the decade, so adding a few more megabytes isn't a
particularly expensive proposition.
5. Check out the limitations of the Alpha you intend to purchase
It is important to remember that some Alpha machines (notably the
older Turbochannel bus machines) do not currently run Linux. Make
certain that the Alpha system you intend to purchase is listed on
the Linux/Alpha Home Page. Also, if you select the UDB, be aware
that it is a bounded box -- there is essentially no room for an
internal disk drive (yes, you can use a 2.5 inch SCSI drive, but
that is expensive compared to a 3.5 inch SCSI drive), there is
absolutely no room for a CDROM drive in the box, and the processor
speed is relatively slow. If you intend to upgrade the system to a
faster Alpha processor in the future, you'd probably be better off
with an Alpha with a more standard case and motherboard. I chose
the UDB because it was available very cheaply and I already owned
an external drive cabinet that I could use to mount the hard drive
and CDROM drive. I found some excellent technical information
online provided by Annex Technology.
6. Use an installation "cookbook", if available
While the Red Hat 5.0 Linux/Alpha installation is quite good, it
is not quite as simple as the Linux/x86 installation. As I've
already mentioned, you'll need to select a kernel for your
machine, create a small FAT boot partition, as well as a few other
simple steps which you didn't need to perform on a Linux/x86
install. It is helpful, then, to locate and use a "cookbook" or
"cheat sheet" to help you during the installation.
The UDB I purchased was originally sold by Starship Computer via
one of the Internet auctions. I purchased the UDB used from the
original buyer who no longer needed the unit. This person included
the original installation instructions supplied by Starship in the
box. The instructions were quite good and very detailed. I have
already seen similar documents circulating in the newsgroups
pertaining to the installation of Red Hat 5.1 for Alpha. If you
can obtain such an installation guide, it can save you time and
keep you from forgetting small Alpha-specific details.
7. Beware unmatched memory
For the UDB, at least, matched memory SIMMs are critical. The
first set I obtained from an auction which advertised new SIMMs
shipped together. They did not specifically say that they were
matched. They were not. That's one mistake I will not make again.
The SIMMs did work together for a while, but once the machine ran
for a while, it began to generate memory errors. I replaced them
with a set of matched SIMMs and all memory problems ceased.
8. Thinwire Ethernet problem for UDB kernel ("noname") for Red Hat
5.0
I found out that the kernel supplied in Red Hat 5.0 for the UDB
(noname.img) had a bug that prevented it from using the thinwire
ethernet adapter. I simply downloaded the kernel supplied with Red
Hat 4.2 and I was back in business.
This was a problem that took much longer to identify than to fix.
The Red Hat errata page
(http://www.redhat.com/support/docs/errata.html), one of the first
places to turn with possible distribution errors, was silent on
this subject at the time. As there are less Linux/Alpha users in
the world than Linux/x86, the newsgroups were not spilling over
with information on this problem as one would expect if there was
a kernel problem in a Linux/x86 distribution. Yet the newsgroups
held the answer nonetheless; it just took a little longer to
locate the message which gave me the key to the problem.
9. PPP was broken in Red Hat 5.0
The pppd package supplied in Red Hat 5.0 didn't work properly on
Alpha. I consulted the Red Hat errata on the Red Hat homepage and
downloaded the corrected PPP kit. One rpm command later, I had a
working PPP protocol. Again, it took longer to identify the
problem than it did to correct it.
10. X Windows
While X Windows is usable with only 16 MB of memory, it will need
to swap out jobs just to start up. 32 MB will yield a much faster
X Windows system, as it will be able to load without swapping. If
you can afford more memory, it is to your benefit.
11. Where's the browser?
Perhaps my greatest frustration was the lack of a
fully-functional, native, graphical, 64-bit web browser. Lynx, a
character-cell browser, is useful for downloading software
upgrades, if needed, such as the kernel and PPP kits mentioned
above. Unfortunately, it is not as helpful for general browsing,
due to its non-graphical nature. There is Grail, which is written
in Python, but the current version (0.4) seems too flaky for
normal use. One common solution seems to be to use Netscape for
x86 under the EM86 emulator (below), but it's not a "native" Alpha
solution.
As of this writing, the best native solution I've found is
QtMozilla, Mozilla compiled using the Qt libraries. It was created
as a demonstration of Troll Tech's Qt libraries, but it is quite
usable. I have also seen reports of other Linux/Alpha Mozilla
implementations, so I hope that we will see a stable,
full-featured Mozilla for Alpha before very long.
12. EM86
Don't forget about EM86, Digital's software for running Linux/x86
binaries on Linux/Alpha. You can find the latest kits at Digital's
FTP location. Red Hat kernels included in the 5.0 and 5.1
distributions now support EM86 right out of the box (no longer any
need to rebuild the kernel). Also, kernels starting with 2.0.34
(as well as the latest 2.1.x development kernel) have integrated
EM86 support without requiring the use of patches before building.
Be aware, though, that you may not find the emulation speed
acceptable on older, slower Alpha boxes.
13. Always read the documentation
Make sure you read the FAQ
(http://www.azstarnet.com/~axplinux/FAQ.html) and the chapter on
the Alpha installation in the Red Hat Installation Guide. And
don't forget to check the Red Hat errata page
(http://www.redhat.com/support/docs/errata.html) for any known
problems in the distribution.
CONCLUSION:
I found that building the UDB was an enlightening experience, as was
installing Red Hat Linux for Alpha 5.0. I have already used the system
to port 32-bit applications to a 64-bit platform. Even if it is not
exactly a whirlwind by current system standards, my inexpensive
Linux/Alpha UDB system has been a very worthwhile (and fun)
acquisition.
_________________________________________________________________
Copyright © 1998, Russell C. Pavlicek
Published in Issue 31 of Linux Gazette, August 1998
_________________________________________________________________
[ TABLE OF CONTENTS ] [ FRONT PAGE ] Back Next
_________________________________________________________________
"Linux Gazette...making Linux just a little more fun!"
_________________________________________________________________
A Linux Journal Preview: This article will appear in the November
issue of Linux Journal.
_________________________________________________________________
Product Review: The Roxen Challenger Web Server
By Michael Pelletier
_________________________________________________________________
* Manufacturer: Idonex
* E-mail: info@idonex.com
* URL: http://www.roxen.com/
* Price: $795 US for Idonex License Free download of 1.2 beta (GPL)
* Reviewer:
_________________________________________________________________
The Roxen Challenger HTTP Web Server is a marvel ahead of it's time.
That's a bold, hard-to-prove statement for a web server when compared
to the amazing success of the Apache HTTP Server. Before you stop
reading this, you should consider that there is nothing wrong with
having two subtly different, but very good tools.
Apache is designed from the ground up to be a simple, open, secure,
high-performance HTTP server, and it pays up in spades. Apache is the
natural choice for almost all web administrators weaned on NCSA CERN
or a commercial HTTP server like Netscape. However, Apache is not
exactly intuitive to configure, the configuration in question being
three flat text files. Apache also suffers from a monolithic structure
(albeit plug-in modularity is a new option if you compile it in) which
requires recompiling the source code when making changes or adding
modules (such as proxy, database access, etc.).
Roxen takes a different approach to HTTP server design. Roxen is
easily installed and configured. The user need only do the normal
./configure and make sequences after unpacking the tar file and
reading the README file. This has worked flawlessly for me a dozen
times on Intel Red Hat 4.2 and 5.0 machines. After compiling the Pike
interpreter (we'll get to that), the installation script tells you to
point your browser to http://localhost:x/, x being some random
unassigned port. Where the configuration interface server listens for
your browser.
Pointing a browser to that URL brings up the on-line, web-centric
configuration interface. The first screen sets the configuration user
and password information for subsequent configuration sessions.
Immediately, virtual servers can be added, and adding a virtual server
is a snap. My usual sequence is to find a free IP and bind the
hostname.domain to it. Create the aliased Ethernet interface with
netcfg specifying the chosen IP, switch to the Roxen configuration
interface and add a new server binding it (using simple, point and
click menus) to the interface just created, which Roxen automatically
detects and reverse looks up for me. Voil, I have an instant virtual
server; the whole process taking less time than making a cup of
coffee.
When creating the server, Roxen asks questions about what kind of
server is desired. The choices of Bare Bones, Standard, IPP (Internet
Presence Provider), Proxy or a copy of the configurations for any
current servers in the system. This gives lots of flexibility when
working with more than just a few virtual servers.
Each of the four choices is a certain set of loaded modules for each
server. Modules can be mixed and matched to make custom servers.
Modules, also written in Pike, can be loaded and unloaded on the fly,
and all Modules have a standard configuration interface that plugs
into the server configuration interface. Modules include the file
system, authentication, database access, CGI and FCGI execution,
on-the-fly graphics manipulation and more.
So how is this marvelous server put together? Roxen is written in the
Pike language. Pike is an interpreted, threaded C-like language based
on an older programming language for MUD systems. Pike is full blown
and has a graceful, clean style so much like C that any C programmer
can pick it up in minutes. This makes writing custom Roxen modules a
snap. Pike's home page has excellent, intelligently written
documentation that is completely cross-referenced, and includes a
handy function index where many old familiar buddies from the ANSI C
libraries can be found.
The downside is that Pike, being a byte code interpreted language, is
slower than compiled and optimized C by a noticeable margin. Roxen 1.1
is also a bit buggy, and Roxen 1.2 is still in beta. Having dabbled in
1.2 (which installed just as cleanly as 1.1), I found it very cool
with many new modules, some of which are not available for Apache,
such as on-the-fly wizard generators and automatic table-formatting of
SQL retrieved data. A new update module contacts the Roxen central
server in Sweden and upgrades the server and all the modules to the
newest debugged versions, as well as offering to download any new
modules Idonex has created. 1.2 also uses the new threading built into
the latest version of Pike, increasing its performance for high or
eccentric load systems and allowing it to take advantage of
multi-processor systems.
The most powerful module in the Roxen set is the Roxen Mark-up
Language (RXML). RXML looks like HTML and is written directly into the
HTML code. When a client retrieves a document from the server, the
server first parses the document for RXML tags, changing the HTML
output based on the tags used. This is basically server side scripting
ala server side Includes, in the Apache parlance, but cleaner. For
example:
<html>
<head>
<body>
<if user=jane>
<gtext scale=0.5 nfont="arial" fg="blue"
bg="white">Hi there Jane.</gtext><br>
<else>
<h1>Hey get outta here!</h1>
</if>
</body></head></html>
The <if><else></if> construct outputs different HTML depending on
whether the client fetching the page has authenticated itself as the
user jane. The <gtext> tag takes the text and renders a gif image of
it, on the fly, replacing the <gtext> tag with an <img> tag whose src
is the generated image. Many options to gtext are available including
transparency, sizes, bevels, automatic Javascript mouse responses and
more. Check out Roxen's home page for an example, or the American
Association for the Surgery of Trauma web page, where I used gtext and
RXML extensively.
Roxen's extreme ease of use and modularity make it a powerful tool for
web managers of all needs. The GNU GPL license for Roxen and Pike make
the price just right. Like all good GPL software, Pike and Roxen are
backed by an active, sharp Internet crowd of Pike programmers and
Roxen-heads eager to help you with your questions. Idonex also offers
various levels of support for very reasonable prices. The Roxen Server
comes pre-packaged with a manual and other non-GPL goodies (like
128bit SSL) from Idonex.
Resources
Pike Home Page: http://pike.idonex.se/
Idonex Home Page: http://www.idonex.se/
Roxen Module Source: http://www.riverweb.com/source/
American Association for the Surgery of Trauma: http://www.aast.org/
_________________________________________________________________
Copyright © 1998, Michael Pelletier
Published in Issue 31 of Linux Gazette, August 1998
_________________________________________________________________
[ TABLE OF CONTENTS ] [ FRONT PAGE ] Back Next
_________________________________________________________________
"Linux Gazette...making Linux just a little more fun!"
_________________________________________________________________
A Linux Journal Review: This article appeared in the August issue of
Linux Journal.
_________________________________________________________________
Selecting a Linux Distribution
By Phil Hughes
_________________________________________________________________
Any current Linux distribution most likely contains the software
needed to do your job, including kernel and drivers, libraries,
utilities and applications programs. Still, one of the most common
questions I hear is ``which distribution should I get?'' This question
is answered by an assortment of people, each proclaiming their
favorite distribution is better than all the rest.
My new theory is that most people favor the first distribution they
successfully installed. Or, if they had problems with the first, they
favor the next distribution they install which addresses the problems
of the first.
Let's use me as an example. SLS was my first Linux installation.
Unfortunately, SLS had a few bugs--in both the installation and the
running system. This, of course, isn't a surprise since this
installation took place five years ago.
Now, about this time, Patrick Volkerding came along and created
Slackware. Pat took the SLS distribution and fixed some problems. The
result looked the same as SLS and worked the same, but without bugs.
To this day, I find Slackware the easiest distribution to install.
I have, however, progressed beyond installation problems and found
some serious shortcomings in Slackware which have been addressed by
other distributions. Before I get into specifics, here is a rough
estimate of the number of times I have installed various
distributions, in order of first installation. I give you this
information to help you understand the basis of my opinions.
* 100+ SLS/Slackware
* 5 MCC (a small distribution done for university students)
* 5 Yggdrasil
* 20 Red Hat
* 10 Caldera
* 20 Debian
* 5 S.u.S.E.
That said, here is my blow-by-blow analysis of what is right and wrong
with each distribution. Note that this is my personal opinion--your
mileage will vary.
SLS/Slackware/MCC
All these distributions are easy to install and understand. They were
all designed to install from floppy disk, and packages were in
floppy-sized chunks. At one time, I could successfully install
Slackware without even having a monitor on the computer.
There are, however, costs associated with this simplicity. Software is
saved in compressed tar files. There is no information within the
distribution that shows how files interrelate, no dependencies and no
good path for upgrades. Not a problem if you just want to try
something, but for a multi-computer shop with long-term plans, this
initial simplicity can have unforeseen costs in the long run.
Yggdrasil
Yggdrasil offered the most promise with a GUI-based configuration.
Unfortunately, development stopped (or at least vanished from the
public eye), and it no longer offers anything vaguely current.
Red Hat
When I first looked at Marc Ewing's creation, I was impressed. It had
some GUI-based configuration tools and showed a lot of promise. Over
the years, Red Hat has continued to evolve and is easy to install and
configure. Red Hat introduced the RPM packaging system that offers
dependencies to help ensure loaded applications work with each other
and updating is easy. RPMs also offer pre- and post-install and remove
scripts which appear to be underutilized.
Version 4.2 has proven to be quite stable. The current release is 5.0,
and a 5.1 release with bug fixes is expected to again produce a stable
product.
The install sequence is streamlined to make it easy to do a standard
install. I see two things missing that, while making the install
appear easier, detract from what is actually needed:
1. The ability to save the desired configuration to floppy disk
during the installation process (something that both Caldera and
S.u.S.E. offer) would simplify subsequent installations on the
same or other machines.
2. The ability to create a boot floppy disk during installation.
Red Hat has evolved into the most ``retailed'' distribution. First it
was in books by O'Reilly, then MacMillan and now IDG Books Worldwide.
It also appears to have a large retail shrink-wrap distribution in the
U.S.
Versions of Red Hat are available for Digital Alpha and SunSPARC, as
well as Intel.
Caldera
The Caldera distribution was assembled by the Linux Support Team (LST)
in Germany--now a part of Caldera. Caldera, like Red Hat, uses the RPM
package format. Installation is similar to Red Hat with the addition
of the configuration save/restore option.
Caldera is different from other distributions at this time in that it
offers a series of systems including various commercial packages such
as a secure web server and an office suite. Caldera is also the most
``commercial feeling'' as far as packaging and presentation.
One complaint I received from a reviewer of my original version of
this article is that you cannot perform an upgrade. That is, you must
save your configuration files and then re-install.
Debian
Debian is one of the oldest distributions, but because development is
strictly by a team of volunteers, it has tended to evolve more slowly.
Since development is performed by a geographically diverse group, the
ability to manage and integrate upgrades is of primary importance. To
that end, you can always upgrade a system by pointing it at an FTP
site and instructing it to get the latest versions of all the packages
currently installed. In some cases, a service needs to be stopped.
(For example, to upgrade sendmail, you would need to stop it, replace
the program and then restart it.) This is all done automatically.
Debian deviates from the common RPM packaging format (although it can
install RPMs) by using its own .deb format. The .deb format is the
most versatile and includes dependency checking as well as pre- and
post-install and remove scripts. This is why the sendmail example in
the previous paragraph can be handled automatically.
The most difficult thing about Debian is the initial installation. Or,
put another way, fear of dselect, the installer program. The design of
dselect is old, and while it made sense when there were only 50-100
packages in a Linux install, it is out of control now that there are
around 1000. A replacement for dselect is being developed and will be
available in Debian 2.1.
Versions of Debian (with limited applications/utilities) are available
for Digital Alpha and M68k.
S.u.S.E.
S.u.S.E. is a German distribution with an installation ``look and
feel'' similar to Caldera. It also uses the RPM package format and
offers a save/restore configuration option during installation.
Two things make S.u.S.E. stand out from the others. First, XFree86
support tends to be better than other distributions because S.u.S.E.
works closely with the XFree86 team. Second, there are more
applications and utility programs in this distribution. A full
installation takes over 2GB of disk space.
YAST, the install/administration tool, can handle .deb and .tgz
packages as well as RPMs. Also, upgrades are quite easy and can be
performed by putting in a new CD or pointing YAST at the files and
telling it to perform the upgrade.
Which Do I Choose?
It depends. I have one system running Caldera, three running Red Hat
(a PC, a Digital Alpha and a SunSPARC), two running Slackware, one
running S.u.S.E. (a laptop) and quite a few running Debian. (Yes, I
personally own too many computers.)
Further, there are problems with all the distributions--not the same
problems, but problems nevertheless. As a result, I don't see a
perfect answer--yet. This is not to say they don't work--just that
each has its inconsistencies and limitations. They all suffer from the
lack of a common administration tool.
At USENIX in 1997, Caldera announced a project called COAS (Caldera
Open Administration System). The discussion at the conference showed
there were more concepts to consider and a lot of implementation work
before COAS could offer a uniform installation system that would meet
the needs of the majority of Linux users.
Today, for a general-purpose system I tend to install Debian. I do,
however, install other systems for other purposes. For example, I have
S.u.S.E. on a new laptop because the volume of software included makes
a more impressive demo system.
A better question is, ``which one should you choose?'' The answer is
still, ``it depends.'' Here are some hints to help you along the way:
* If everyone you know is running a particular distribution and you
are a newcomer, use the same one they do.
* If you like to roll your own--that is, you expect to compile and
install everything yourself--Slackware is probably for you.
* If you want to ``go with the crowd'' today, install Red Hat.
* If you want ``everything'', install S.u.S.E.
* If you need the most ``commercial'' looking product or you are a
VAR (value-added reseller), pick Caldera.
* If the politics of free software is important to you and/or you
want to get involved in development of a distribution, pick
Debian.
* If you have a bunch of systems you need to interconnect and
upgrade, pick Debian or hope Caldera gets COAS completed.
Conclusion
There is my input. Ask any other Linux user, and you will probably get
a different opinion from mine. If you are not sure you have the right
answer, there are some things you can do to make it possible to change
distributions in the future with minimal impact.
* Make /home a separate file system. Then, if you change
distributions, you don't have to save and restore your files. This
also means you could have multiple distributions on one computer
and share /home between them.
* Select hardware supported by most distributions.
* If you need to add applications that don't come with the Linux
distribution, try to get ones that come with source code so you
can upgrade them and port them to different distributions.
* Start with a Linux archive CD set (such as InfoMagic's Developer's
Resource). That will give you at least three distributions
(Slackware, Debian and Red Hat) with which to play.
Good luck and happy Linuxing.
_________________________________________________________________
Copyright © 1998, Phil Hughes
Published in Issue 31 of Linux Gazette, August 1998
_________________________________________________________________
[ TABLE OF CONTENTS ] [ FRONT PAGE ] Back Next
_________________________________________________________________
"Linux Gazette...making Linux just a little more fun!"
_________________________________________________________________
Some History and Other Things
By Marjorie Richardson
_________________________________________________________________
I am often asked about the history of Linux Journal and Linux Gazette
and how I think Linux has changed over the year. Here's the scoop.
Back in 1993, Phil Hughes saw the enormous potential for the Linux
operating system and its creator Linus Torvalds. Being a firm believer
in open software, he decided to start a magazine dedicated to Linux to
encourage the growth of this fledgling operating system. That magazine
is Linux Journal. Phil founded the magazine and acted as Editor for
the first two issues.
The first issue was published in March 1994 and had 48 pages. It
contained an interview with Linus and articles by many now familiar
names: Michael Johnson, Mark Komarinski, Ian Murdock, Arnold Robbins,
Matt Welsh and Robert Young. The first issue was primarily given away
at trade shows and sent to mailing lists; the second had over 900
subscribers. The subscriber base and newsstand presence of the
magazine has steadily increased to over 60,000 since that time, and we
are currently at 100 pages.
The first two issues of Linux Journal were published by Robert Young.
After the second issue, Robert decided to start up Red Hat Software,
and Specialized Systems Consultants took over as publisher. Also with
the third issue, Michael Johnson took on the role of Editor and
continued in that role through the September 1996 issue. I became
Editor on February 1, 1997 and began work on the May issue.
I had begun work for SSC in April 1996 and the project I had the most
fun with was Linux Gazette. John Fisk had decided he just didn't have
the time to devote to the Gazette--what he had started as a learning
experience had blossomed into a very popular webzine. He posted issues
whenever he had time and in between got mail from people requesting he
put it out on a more regular basis. At any rate, he approached Phil
requesting that Linux Journal take over the Gazette. Phil said yes and
gave the project to me in August. This turned out to be a shrewd move
on his part as taking care of the Gazette gave me the necessary
confidence to say yes when he asked me to be Editor of Linux Journal
the following February. Although I tried for a while to outsource LG,
it didn't work out and it is still in my hands. Good thing I love it,
since I do most of the work on it on my own time--outside working
hours.
Linux Gazette
Linux Gazette is the most popular page on our web site, helping to
generate over 150,000 hits a day. All the authors are volunteer, and I
am constantly amazed at how much great content people are willing to
spend their time generating and then give it away. We have mirror
sites worldwide and three translation sites in Italy, France and
Russia.
When I first began work at Linux Journal and people asked me where I
worked, the usual response was "What's Linux?" Today, not only do
people know what Linux is, they approach me to tell me how much they
love it and the magazine--this mainly happens when I am wearing a
Linux T-shirt.
A Bit About Linux
This year has been a banner year for Linux in terms of market
expansion with two block-buster announcements. The first was
Netscape's decision to make Mozilla open source. Linux Journal had a
great interview with Marc Andreessen and Tom Paquin of Netscape in our
August issue and the second part of the interview is exclusively in
this issue of LG. With Netscape Navigator going Open Source, can Sun's
Java be far behind? Second, Corel and Corel Computer announced they
would be porting all their software to Linux and that the new
NetWinder would be sold with Linux installed. This announcement came
in May after our April issue which contained an interview with Corel
Computer's Eid Eid. I'm sure there was a direct correlation between
our interview and their decision. (smile)
Actually, it seems like we get a press release each week from someone
announcing their product will be supporting Linux. About two months
ago, one of these was from Interbase telling us about the recent port
of its popular database to Linux. Now, on July 22, Informix has
announced that they now support Linux, and that it is available with
both S.u.S.E. and Caldera. An announcement from Oracle that they will
be porting to Linux was made July 21. In my opinion, sooner or later,
Sybase will be following suit. Cobalt's Qube microserver is yet
another coup for Linux.
With companies like these supporting Linux, Linux will continue to
expand across the globe and, perhaps, even reach Linus' stated goal of
world domination.
While I was not able to attend the recent Linux Expo put on by Red Hat
in North Carolina, I have heard glowing reports. The vi editor won
again over Emacs in the "editor war". This year the war was a held as
a paintball tournament with vi winning three out of four games.
Linus' talk was well attended as usual. In it, he announced a code
freeze will be coming for the 2.2 kernel in the next month, with the
release due in late July or early August. This is good news indeed.
The addition of symmetrical multi-processing (SMP) has been a feature
eagerly awaited by many.
_________________________________________________________________
Copyright © 1998, Marjorie Richardson
Published in Issue 31 of Linux Gazette, August 1998
_________________________________________________________________
[ TABLE OF CONTENTS ] [ FRONT PAGE ] Back Next
_________________________________________________________________
"Linux Gazette...making Linux just a little more fun!"
_________________________________________________________________
Hello, I wrote the first of these articles in January. I am planning
on many more articles in the future but have just finished moving my
family to the Olympic Peninsula from Ohio after having been hired to
work as a systems programmer for the University of Washington.
_________________________________________________________________
The Standard C Library for Linux
Part Two: <stdio.h> character input/output
By James M. Rogers
_________________________________________________________________
The last article was on file operations in the standard input/output
library <stdio.h>. This article is on reading and writing characters,
strings and arrays to and from a stream. I am assuming a knowledge
of c programming on the part of the reader. There is no guarantee of
accuracy in any of this information nor suitability for any purpose.
As an example of character based processing we will use a program that
reads the number of characters, words and lines of a file from
standard input and prints the results out to standard out. Any errors
encountered will be printed to standard error. This will be a weak
version of wc. (type `man wc` for more information on this UNIX
utility program.
The code examples given for each function will typically not run
unless the the <angle bracked> items are replaced with real code.
Normally these are things that have to be treated differently
depending on what you are trying to do. As always, if you see an
error in my documentation please tell me and I will correct myself in
a later document.
-----------------------------------------------------------------
#include <stdio.h> /* include the proper headers */
#define IN 1 /* looking inside a word */
#define OUT 0 /* looking at white space */
/* count the number of lines, words and characters in standard input
*/
main() {
int c, /* holds the character returned by getchar */
characters, /* the number of characters */
lines, /* the number of lines */
words, /* the number of words */
state; /* are we currently in or out of a word */
/* initialize the count and set the state to outside a word */
state=OUT;
characters = words = lines = 0;
/* get one character at a time from standard in, until EOF */
while ((c = getchar()) != EOF) {
characters++; /* increment the count of characters */
switch(c) {
case '\n' :
lines++; /* increment the count of lines */
state = OUT; /* new-line is white space, outside word
*/
break;
case ' ' :
state = OUT; /* space is white space, outside word */
break;
case '\t':
state = OUT; /* tab is white space, outsides word */
break;
default : /* otherwise we are in a word */
if (state == OUT) {
/* if state is still out and we are in a
word */
/* then we are at the first letter of the
word */
state = IN; /* set the state to in */
words++; /* increment the count of words */
}
break;
}
}
/* print the results with a formatted print statement */
printf("%d %d %d\n", characters, words, lines);
}
-----------------------------------------------------------------
To read a character from a stream,
int getchar (void);
int getc(FILE *stream);
int fgetc(FILE *stream);
int ungetc(int c, FILE *stream);
void this is left blank.
FILE *stream is an already existing stream.
int c is a character to be pushed back into the stream.
These functions return an int with the value of the next character
from the stream. If there are no more characters then the end-of-file
indicator is set for the stream and the function returns EOF. If
there was a read error then the error indicator is set for the stream
and the function returns EOF.
getchar is used to read a single character from standard input.
int c;
while((c = getchar()) != EOF) {
<while not the end of file read and process each character>
}
getc is used to read a single character from a stream.
int c;
FILE *stream;
if((stream = fopen ("filename", "r")) != (FILE *)0) {
while((c = getc(stream)) != EOF) {
<process each character>
}
} else {
<do error handling>
}
fgetc is used to read a single character from a stream. getchar and
getc are written in terms of fgetc: getchar() is the same as
fgetc(STDIN) and getc(x) is the same as fgetc(x).
int c;
FILE *stream;
if((stream = fopen ("filename", "r")) != (FILE *)0) {
while((c = fgetc(stream)) != EOF) {
<process each character>
}
} else {
<do error handling>
}
ungetc is used to push a character back into the stream when you have
read one character too many. This is a common problem for compilers
and pattern scanners. It is possible to push back more than one
character but this is not recommended as it is not portable. An
ungetc should follow a read and only push back a single character.
int c;
FILE *stream;
if((stream = fopen ("filename", "r")) != (FILE *)0) {
while((c = fgetc(stream)) != EOF) {
<process each character>
if (some_condition) {
ungetc(c,stream);
break;
}
}
} else {
do error handling
}
To write a character to a stream,
int putchar(int c);
int putc(int c, FILE *stream);
int fputc(int c, FILE *stream);
FILE *stream is an already existing stream.
int c is the character to be written to the stream.
These functions return the character written upon success. If a write
error occurs the error indicator is set for the stream and the
function returns an EOF.
putchar writes a character to standard out. putchar(x) is the same as
fputc(x, STDIN)
putchar('x');
putc writes a character to the stream. putc(x,y) is the same as
fputc(x,y)
int c;
FILE *stream;
c='x';
if((stream = fopen ("filename", "w")) != (FILE *)0) {
putc(c, stream);
} else {
<error handling>
}
fputc writes a character to the stream.
int c;
FILE *stream;
c='y';
if((stream = fopen ("filename", "w")) != (FILE *)0) {
fputc(c, stream);
} else {
<error handling>
}
To read a string from a stream,
char *gets(char *s);
char *fgets(char *s, int n, FILE *stream);
char *s the string that will hold the result.
int n the maximum number of characters to read.
FILE *stream is an already existing stream.
If the read is successful then the pointer to s is returned. If EOF
is encountered and no characters have been read into the string then
the string remains unchanged and a null pointer is returned. If a
read error occurs then the string contents are possibly changed in an
undefined manner and a null pointer is returned.
gets reads from the stream into the string until the new line
character or end-of-file marker is reached. Never use this function.
Use fgets instead. There is no bounds checking to see if the returned
string fits into the space allowcated for it. Many applications have
been used as security holes in the past based on overwriting the end
of a string.
fgets reads at most n characters from the stream into the string.
char s[1024];
FILE *stream;
if((stream = fopen ("filename", "r")) != (FILE *)0) {
while((fgets(s, 1023, stream)) != (char *)0 ) {
<process each line>
}
} else {
<do fopen error handling>
}
To write a string to a stream,
int puts(const char *s);
int fputs(const char *s, FILE *stream);
const char *s
FILE *stream is an already existing stream.
Returns a non-negative value upon success. Returns an EOF on a write
error.
puts writes the string pointed to by s to the stream STDIO and appends
a new-line to the end. The terminating null character is not written
to the stream.
char s[1024];
FILE *stream;
strcpy(s,"a typical string");
if((stream = fopen ("filename", "w")) != (FILE *)0) {
if(puts(s, stream) == EOF ) {
<handle error on write>
}
} else {
<handle error on open>
}
fputs writes the string pointed to by s to the named stream. The
terminating null character is not written to the stream.
char s[1024];
FILE *stream;
strcpy(s,"a typical string");
if((stream = fopen ("filename", "w")) != (FILE *)0) {
if(fputs(s, stream) == EOF ) {
<handle error on write>
}
} else {
<handle error on open>
}
To read/write between arrays and streams,
size_t fread(const void *ptr, size_t size, size_t nmemb, FILE
*stream);
size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE
*stream);
const void *ptr is a pointer to the array.
size_t size is the size of each element of the array
size_t nmemb is the number of elements to be processed.
FILE *stream is an already existing stream.
fread reads into the array pointed to by ptr, no more than nmemb
elements of the size size, from the stream. The function returns the
number of elements that were successfully read, this value can be less
than what was requested, if the function encounters a read failure or
an EOF. A read failure leaves the element that failed in an undefine
state. If size or nmemb are zero then the function returns a zero.
int a[10];
FILE *stream;
if((stream = fopen ("filename", "r")) != (FILE *)0) {
if (fread(a, sizeof(a), 10, stream) < 10){
<handle a read error>
}
} else {
<handle a file open error>
}
fwrite writes from the array pointed to by ptr, no more than nmeb
elements of the size size, to the stream. The function returns the
number of elements successfully written, which should match nmemb only
if no write errors were encountered.
int a[10];
FILE *stream;
if((stream = fopen ("filename", "w")) != (FILE *)0) {
if (fwrite(a, sizeof(a), 10, stream) < 10){
<handle a write error>
}
} else {
<handle a file open error>
}
_________________________________________________________________
Bibilography:
The ANSI C Programming Language, Second Edition, Brian W. Kernighan,
Dennis M. Ritchie, Printice Hall Software Series, 1988
The Standard C Library, P. J. Plauger, Printice Hall P T R, 1992
The Standard C Library, Parts 1, 2, and 3, Chuck Allison, C/C++ Users
Journal, January, February, March 1995
STDIO(3), BSD MANPAGE, Linux Programmer's Manual, 29 November 1993
The Standard C Library for Linux, Part One, James M. Rogers, January
1998
_________________________________________________________________
Copyright © 1998, James M. Rogers
Published in Issue 31 of Linux Gazette, August 1998
_________________________________________________________________
[ TABLE OF CONTENTS ] [ FRONT PAGE ] Back Next
Linux Gazette Back Page
Copyright © 1998 Specialized Systems Consultants, Inc.
For information regarding copying and distribution of this material see the
Copying License.
_________________________________________________________________
Contents:
* About This Month's Authors
* Not Linux
_________________________________________________________________
About This Month's Authors
_________________________________________________________________
Larry Ayers
Larry lives on a small farm in northern Missouri, where he is
currently engaged in building a timber-frame house for his family. He
operates a portable band-saw mill, does general woodworking, plays the
fiddle and searches for rare prairie plants, as well as growing
shiitake mushrooms. He is also struggling with configuring a Usenet
news server for his local ISP.
Jim Dennis
Jim is the proprietor of Starshine Technical Services. His
professional experience includes work in the technical support,
quality assurance, and information services (MIS) departments of
software companies like Quarterdeck, Symantec/ Peter Norton Group, and
McAfee Associates -- as well as positions (field service rep) with
smaller VAR's. He's been using Linux since version 0.99p10 and is an
active participant on an ever-changing list of mailing lists and
newsgroups. He's just started collaborating on the 2nd Edition for a
book on Unix systems administration. Jim is an avid science fiction
fan -- and was married at the World Science Fiction Convention in
Anaheim.
Chris DiBona
Chris (chris@dibona.com) is a computer security consultant and is the
Vice President of the Silicon Valley Linux User's Group.
(http://www.svlug.org/). He enjoys Linux, studying terrorism and
population statistics. He also grooves on a good Pale Ale. His
personal web page can be found at http://www.dibona.com/.
Michael J. Hammel
Michael is a transient software engineer with a background in
everything from data communications to GUI development to Interactive
Cable systems--all based in Unix. His interests outside of computers
include 5K/10K races, skiing, Thai food and gardening. He suggests if
you have any serious interest in finding out more about him, you visit
his home pages at http://www.csn.net/~mjhammel. You'll find out more
there than you really wanted to know.
Phil Hughes
Phil Hughes is the publisher of Linux Journal, and thereby Linux
Gazette. He dreams of permanently tele-commuting from his home on the
Pacific coast of the Olympic Peninsula. As an employer, he is
"Vicious, Evil, Mean, & Nasty, but kind of mellow" as a boss should
be.
Mike List
Mike is a father of four teenagers, musician, and recently reformed
technophobe, who has been into computers since April,1996, and Linux
since July, 1997.
Eric Marsden
Eric is studying computer science in Toulouse, France, and is a member
of the local Linux Users Group. He enjoys programming, cycling and Led
Zeppelin. He admits to once having owned a Macintosh, but denies any
connection with the the Eric Conspiracy Secret Labs.
Russell C. Pavlicek
Russell is employed by Compaq Computer Corporation (formerly with
Digital Equipment Corporation) as a software consultant serving US
Federal Government customers in the Washington D.C. area. He runs the
Corporate Linux Advocate Homepage and can be reached at
pavlicek@altavista.net. He lives with his lovely wife and wonderful
children in rural Maryland where they serve Yeshua and surround
themselves with a variety of furry creatures. His opinions are
entirely his own (but he will allow you to adopt one or two if you ask
nicely).
Michel Pelletier
Michel has been breaking Linux machines in the ISP business for years.
His idols are K&R, Godel and Duke Ellington. When not in the mountains
Michel can be found at michel@colint.com.
Eric S. Raymond
Eric is a semi-regular contributor to Linux Journal. You can find more
of his writings, including his paper ``The Cathedral and the Bazaar'',
at http://www.ccil.org/~esr/.
Greg Roelofs
Greg Roelofs escaped from the University of Chicago with a degree in
astrophysics and fled screaming to Silicon Valley, where he now does
outrageously cool graphics, 3D and compression stuff for Philips
Research. He is a member of Info-ZIP and the PNG group, and he not
only maintains web pages for both of those but also for himself and
for the Cutest Baby in the Known Universe. He can be reached by e-mail
at newt@pobox.com, or on the web at http://pobox.com/~newt/.
James M. Rogers
James, his wife, and their pets have moved to a new home on the
Olympic Peninsula In Washington State. I am now a Systems Programmer
for the University of Washington Medical Center and Harbor View
Medical Center. I work on the interfaces between medical computer
systems.
Doc Searls
Doc is President of The Searls Group, a Silicon Valley consultancy,
and a co-founder of Hodskins Simone and Searls. He has been writing on
technology and other issues for most of his life. The Flack Jacket
series of essays is collected in Reality 2.0,
http://www.batnet.com/searls/docworks.html). Other series are
Positions and Milleniana. He can be reached via e-mail at
searls@batnet.com.
_________________________________________________________________
Not Linux
_________________________________________________________________
Thanks to all our authors, not just the ones above, but also those who
wrote giving us their tips and tricks and making suggestions. Thanks
also to our new mirror sites.
My grandaughter, Rebecca is visiting me this week. We've been having a
good time going to all the fun places around Seattle and have a lot
more to visit. Her sister Sarah will be arriving on Friday to visit a
week with me too. I feel very fortunate to have 2 such wonderful
granddaughters. Rebecca loves to dance and is taking ballet, jazz and tap.
Sarah is a Tae Kwon Do student. Pictures of both can be found on my
home page.
Have fun!
_________________________________________________________________
Marjorie L. Richardson
Editor, Linux Gazette, gazette@ssc.com
_________________________________________________________________
[ TABLE OF CONTENTS ] [ FRONT PAGE ] Back
_________________________________________________________________
Linux Gazette Issue 31, August 1998, http://www.linuxgazette.com
This page written and maintained by the Editor of Linux Gazette,
gazette@ssc.com