
           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 &#151; mail, news and
   all that &#151; 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 &#151; this practically-oriented
   problem-solving population &#151; 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 &#151; 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: &#151;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 &#151;
   specifically the one Microsoft is in today &#151; 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 &#151; where they
   have monopoly profits &#151; 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 &#151; in this case
   service &#151; 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 &#151; 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 &#151; 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 &#151; 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
