Linux INFO-SHEET

Linux INFO-SHEET

Post by johns.. » Mon, 07 Feb 1994 19:37:24



Archive-name: linux/info-sheet
Last-modified: 21 Jan 94
Version: 3.05
                             Linux Information Sheet

                                  Version 3.05

        0.1 Introduction to Linux

        Linux is a completely free reimplementation of the POSIX spec,
        with SYSV and BSD extensions (which means, it looks like unix,
        but does not come from the same source code base), which is
        available in both source code and binary form. It is copyrighted
        by Linus B. Torvalds (torva...@kruuna.helsinki.fi) and other
        contributors and is freely redistributable under the terms of
        the GNU Public License. Linux runs only on 386/486 machines with
        an ISA or EISA bus. MCA (IBM's proprietary bus) is not currently
        supported because there is little available documentation. Some
        people have started support for PCI, but it is currently not
        ready for the standard distribution on Linux.

        Porting to other CPU's is likely to be difficult, as the kernel
        makes extensive use of 386 memory management and task
        primitives. However, this is becoming easier as the kernel
        becomes more general, and there is a port in progress for
        multiple Motorola 680x0 platforms, and ports are being
        considered to other platforms as well. Don't hold your breath,
        but if you are interested and able to contribute, you may find
        other developers who wish to work with you.

        Linux is still considered to be in beta testing. There are still
        bugs in the system, and since Linux develops rapidly (new
        versions come out about once every two weeks), new bugs creep
        up. However, these bugs are fixed quickly as well. Most versions
        are quite stable, and you can keep using those if they do what
        you need and you don't want to be on the bleeding edge. One site
        has had a computer running version 0.97 patchlevel 1 (dating
        from last summer) for over 136 days without an error or crash.
        (It would have been longer if the backhoe operator hadn't
        mistaken a main power transformer for a dumpster...)

        One thing to be aware of is that Linux is developed using an
        open and distributed model, instead of a closed and centralized
        model like much other software. This means that the current
        development version is always public (with up to a week or two's
        delay) so that anybody can use it. The result is that whenever a
        version with new functionality is released, it almost always
        contains bugs, but it also results in a very rapid development
        so that the bugs are found and corrected quickly, often in
        hours, as many people work to fix them. Furthermore, the bugs
        are generally discovered within hours of a kernel release,
        especially those which might endanger a user's data, so it is
        easy for an end-user to avoid these bugs.

        In contrast, the closed and centralized model means that there
        is only one person or team working on the project, and they only
        release software that they think is working well. Often this
        leads to long intervals between releases, long waiting for bug
        fixes, and slower development. Of course, the latest release of
        such software to the public is often of higher quality, but the
        development speed is generally much slower.

        As of October 25, 1993, the current version of Linux is 0.99
        patchlevel 13.

        0.2 Linux Features

         * multitasking: several programs running at once.

         * multiuser: several users on the same machine at once (and NO
           two-user licenses!).

         * runs in 386 protected mode.

         * has memory protection between processes, so that one program
           can't bring the whole system down.

         * demand loads executables: Linux only reads from disk those
           parts of a program that are actually used.

         * shared copy-on-write pages among executables. This means that
           multiple process can use the same memory to run in. When one
           tries to write to that memory, that page (4KB piece of
           memory) is copied somewhere else. Copy-on-write has two
           benefits: increasing speed and decreasing memory use.

         * virtual memory using paging (not swapping whole processes) to
           disk: to a separate partition or a file in the filesystem, or
           both, with the possibility of adding more swapping areas
           during runtime (yes, they're still called swapping areas). A
           total of 16 of these 128 MB swapping areas can be used at
           once, for a theoretical total 2 GB of useable swap space.

         * a unified memory pool for user programs and disk cache (so
           that all free memory can be used for caching, and the cache
           can be reduced when running large programs).

         * dynamically linked shared libraries (DLL's)(static libraries
           too, of course).

         * does core dumps for post-mortem analysis, allowing the use of
           a debugger on a program not only while it is running but also
           after it has crashed.

         * mostly compatible with POSIX, System V, and BSD at the source
           level.

         * all source code is available, including the whole kernel and
           all drivers, the development tools and all user programs;
           also, all of it is freely distributable. There are some
           commercial programs being provided for Linux now without
           source, but everything that has been free is still free.

         * POSIX job control.

         * pseudoterminals (pty's).

         * 387-emulation in the kernel so that programs don't need to do
           their own math emulation. Every computer running Linux
           appears to have a math coprocessor. Of course, if your
           computer already contains an FPU, it will be used instead of
           the emulation, and you can even compile your own kernel with
           math emulation removed, for a small memory gain.

         * support for many national or customized keyboards, and it is
           fairly easy to add new ones.

         * multiple virtual consoles: several independent login sessions
           through the console, you switch by pressing a hot-key
           combination (not dependent on video hardware).

         * Supports several common filesystems, including minix-1,
           Xenix, and all the system V filesystems, and has an advanced
           filesystem of its own, which offers filesystems of up to 4
           TB, and names up to 255 characters long.

         * transparent access to MS-DOS partitions (or OS/2 FAT
           partitions) via a special filesystem: you don't need any
           special commands to use the MS-DOS partition, it looks just
           like a normal Unix filesystem (except for funny restrictions
           on filenames, permissions, and so on). MS-DOS 6 compressed
           partitions do not work at this time.

         * read-only HPFS-2 support for OS/2 2.1

         * CD-ROM filesystem which reads all standard formats of
           CD-ROMs.

         * TCP/IP networking, including ftp, telnet, NFS, etc.

        0.3 Hardware Issues

        0.3.1 Minimal configuration

        The following is probably the smallest possible configuration
        that Linux will work on: 386SX/16, 2 MB RAM, 1.44 MB or 1.2 MB
        floppy, any supported video card (+ keyboards, monitors, and so
        on of course). This should allow you to boot and test whether it
        works at all on the machine, but you won't be able to do
        anything useful.

        In order to do something, you will want some hard disk space as
        well, 5 to 10 MB should suffice for a very minimal setup (with
        only the most important commands and perhaps one or two small
        applications installed, like, say, a terminal program). This is
        still very, very limited, and very uncomfortable, as it doesn't
        leave enough room to do just about anything, unless your
        applications are quite limited. It's generally not recommended
        for anything but testing if things work, and of course to be
        able to brag about small resource requirements.

        0.3.2 Usable configuration

        If you are going to run computationally intensive programs, such
        as gcc, X, and TeX, you will probably want a faster processor
        than a 386SX/16, but even that should suffice if you are
        patient.

        In practice, you need at least 4 MB of RAM if you don't use X,
        and 8 MB if you do. Also, if you want to have several users at a
        time, or run several large programs (compilations for example)
        at a time, you may want more than 4 MB of memory. It will still
        work with a smaller amount of memory (should work even with 2
        MB), but it will use virtual memory (using the hard drive as
        slow memory) and that will be so slow as to be unusable.

        The amount of hard disk you need depends on what software you
        want to install. The normal basic set of Unix utilities, shells,
        and administrative programs should be comfortable in less than
        10 MB, with a bit of room to spare for user files. For a more
        complete system, get Slackware, MCC, TAMU, or (soon) Debian or
        Linux/PRO, and assume that you will need 60 to 200 MB, depending
        on what you choose to install and what distribution you get. Add
        whatever space you want to reserve for user files to these
        totals. With today's prices on hard drives, if you are buying a
        new system, it makes no sense to buy a drive that is too small.
        Get at least 200 MB, and you will not regret it.

        Add more memory, more hard disk, a faster processor and other
        stuff depending on your needs, wishes and budget to go beyond
        the merely usable. In general, one big difference from DOS is
        that with Linux, adding memory makes a large difference, whereas
        with dos, extra memory doesn't make that much difference. This
        of course has something to do with DOS's 640KB limit.

        0.3.3 Supported hardware

        CPU: Anything that runs 386 protected mode programs (all models
        of 386s and 486s should work; 286s don't work, and never will).

        Architecture: ISA or EISA bus. MCA (mostly true blue PS/2's)
        does not work. Local bus works.

        RAM: Theoretically up to 1 GB. This has not been tested. Some
        people (including Linus) have noted that adding ram has slowed
        down their machine extremely without adding more cache at the
        same time, so if you add memory and find your machine slower,
        try adding more cache.

        Data storage: Generic AT drives (IDE, 16 bit HD controllers with
        MFM or RLL) are supported, as are SCSI hard disks and CD-ROMs,
        with a supported SCSI adaptor. Generic XT controllers (8 bit
        controllers with MFM or RLL) are now also supported. Supported
        SCSI adaptors: Adaptec 1542, 1522, and 1740 in extended (not
        1542 compatible) mode, Seagate ST-01 and ST-02, Future Domain
        TMC-88x series (or any board based on the TMC950 chip) and
        TMC1660/1680, Ultrastor 14F, 24F and 34F, and Western Digital
        wd7000. SCSI and QIC-02 tapes are also supported. Support for
        QIC-80 tapes is now in ALPHA testing. Several CD-ROM devices are
        also supported, including Mitsubishi, soundblaster, toshiba, and
        others. For exact models, check the hardware compatability
        HOWTO.

        Video: VGA, EGA, CGA, or Hercules (and compatibles) work in text
        mode. For graphics and X, there is support for (at least) normal
        VGA, some super-VGA cards (most of the cards based on ET3000,
        ET4000, Paradise, and some Trident chipsets), most S3 cards (not
        Diamond Stealth, because the manufacturer won't tell how to
        program it), 8514/A, ATI MACH8, ATI MACH32, and hercules. (Linux
        uses the Xfree86 X server, so that determines what cards are
        supported.)

        Networking: Western Digital 80x3, ne1000, ne2000, 3com503,
        3com509, Allied Telliesis AT1500 (said to be some of the
        fastest, as well as quite cheap), d-link pocket adaptors, SLIP,
        CSLIP, PLIP (Parallel Link IP), and more I have forgotten at the
        moment.

        Other hardware: SoundBlaster, ProAudio Spectrum 16, Gravis
        Ultrasound, AST Fourport cards (with 4 serial ports), several
        models of Boca serial boards, the Usenet Serial Card II, several
        flavours of bus mice (Microsoft, Logitech, PS/2).

        0.4 An Incomplete List of Ported Programs and Other Software

        Most of the common Unix tools and programs have been ported to
        Linux, including almost all of the GNU stuff and many X clients
        from various sources. Actually, ported is often too strong a
        word, since many programs compile out of the box without
        modifications, or only small modifications, because Linux tracks
        POSIX quite closely. Unfortunately, there are not very many
        end-user applications at this time. Nevertheless, here is an
        incomplete list of software that is known to work under Linux.

        Basic Unix commands: ls, tr, sed, awk and so on (you name it,
        we've probably got it).

        Development tools: gcc, gdb, make, bison, flex, perl, rcs, cvs,
        gprof.

        Graphical environments: X11R5 (Xfree86), MGR.

        Editors: GNU Emacs, Lucid Emacs, MicroEmacs, jove, epoch, elvis
        (GNU vi), vim, vile, joe, pico, jed.

        Shells: Bash (POSIX sh-compatible), zsh (include ksh
        compatiblity mode), pdksh, tcsh, csh, rc, ash (mostly
        sh-compatible), and many more.

        Telecommunication: Taylor (BNU-compatible) UUCP, kermit, szrz,
        minicom, pcomm, xcomm, term/slap (runs multiple shells over one
        modem line), and Seyon (popular X-windows communications
        program).

        News and mail: C-news, innd, trn, nn, tin, smail, elm, mh.

        Textprocessing: TeX, groff, doc.

        Games: Nethack, several Muds and X games.

        All of these programs (and this isn't even a hundredth of what
        is available) are freely available.

        0.5 Who uses Linux?

        Linux is freely available, and no one is required to register
        their copies with any central authority, so it is difficult to
        know how many people use Linux. Several businesses are now
        surviving solely on selling and supporting Linux, and very few
        Linux users use those businesses, relatively speaking, and the
        Linux newsgroups are some of the most heavily read on the
        internet, so the number is likely in the hundreds of thousands,
        but hard numbers are hard to come by. However, one brave soul,
        Harald T. Alvestrand, has decided to try, and asks that if you
        use Linux, you send a message to linux-coun...@uninett.no with
        one of the following subjects: ``I use Linux at home'', ``I use
        Linux at work'', or ``I use Linux at home and at work''. He is
        also counting votes of ``I don't use Linux'', for some reason.
        He posts his counts to comp.os.linux.misc.

        0.6 Getting Linux

        0.6.4 Anonymous FTP

        New information: Matt Welsh has released a new version of hiw
        Installation and Getting Started guide. Also, the Linux
        documentation project (the LDP) has put out several other books
        in various states of completion, and these are available at
        sunsite.unc.edu:/pub/Linux/docs/LDP. Stay tuned to
        comp.os.linux.announce.

        At least the following anonymous ftp sites carry Linux.

         Textual name                   Numeric address  Linux directory
         =============================  ===============  ===============
         tsx-11.mit.edu                 18.172.1.2       /pub/linux
         sunsite.unc.edu                152.2.22.81      /pub/Linux
         ftp.funet.fi                   128.214.248.6    /pub/OS/Linux
         net.tamu.edu                   128.194.177.1    /pub/linux
         ftp.mcc.ac.uk                  130.88.203.12    /pub/linux
         src.doc.ic.ac.uk               146.169.2.1      /packages/linux
         fgb1.fgb.mw.tu-muenchen.de     129.187.200.1    /pub/linux
         ftp.informatik.tu-muenchen.de  131.159.0.110    /pub/Linux
         ftp.dfv.rwth-aachen.de         137.226.4.111    /pub/linux
         ftp.informatik.rwth-aachen.de  137.226.112.172  /pub/Linux
         ftp.ibp.fr                     132.227.60.2     /pub/linux
         kirk.bond.edu.au               131.244.1.1      /pub/OS/Linux
         ftp.uu.net                     137.39.1.9       /systems/unix/linux
         wuarchive.wustl.edu            128.252.135.4    mirrors/linux
         ftp.win.tue.nl                 131.155.70.100   /pub/linux
         ftp.stack.urc.tue.nl           131.155.2.71     /pub/linux
         srawgw.sra.co.jp                                /Linux
         cair.kaist.ac.kr                                /pub/Linux
         ftp.denet.dk                   129.142.6.74     /pub/OS/linux
         NCTUCCCA.edu.tw                140.111.1.10     /Operating-Systems/Linux
         nic.switch.ch                  130.59.1.40      /mirror/linux/sunsite
         monu1.ccmonash.edu.au          130.194.1.101    /pub/linux

        tsx-11.mit.edu and fgb1.fgb.mw.tu-muenchen.de are the official
        sites for Linux' GCC. Some sites mirror other sites. Please use
        the site closest (network-wise) to you whenever possible.

        At least SunSite.unc.edu and ftp.informatik.tu-muenchen.de offer
        ftpmail services. Mail ftpm...@sunsite.unc.edu or
        f...@informatik.tu-muenchen.de for help.

        If you are lost, try looking at
        SunSite.unc.edu:/pub/Linux/distributions/, where several
        distributions are offered.

        0.6.5 Other methods of obtaining Linux

        There are many BBS's that have Linux files. A list of them is
        occasionally posted to comp.os.linux.announce. Ask friends and
        user groups, or order one of the commmercial distributions. A
        list of these is contained in the Linux distribution HOWTO,
        available as
        sunsite.unc.edu:/pub/Linux/docs/HOWTO/distribution-HOWTO, and
        posted regularily to the comp.os.linux.announce newsgroup.

        0.6.6 Getting started

        As mentioned at the beginning, Linux is not centrally
        administered. Because of this, there is no ``official'' release
        that one could point at, and say ``That's Linux.'' Instead,
        there are various ``distributions,'' which are more or less
        complete collections of software configured and packaged so that
        they can be used to install a Linux system.

        The first thing you should do is to get and read the list of
        Frequently Asked Questions (FAQ) from one of the FTP sites, or
        by using the normal Usenet FAQ archives (e.g. rtfm.mit.edu).
        This document has plenty of instructions on what to do to get
        started, what files you need, and how to solve most of the
        common problems (during installation or otherwise).

        0.7 Legal Status of Linux

        Although Linux is supplied with the complete source code, it is
        copyrighted software, not public domain. However, it is
        available for free under the GNU Public License. See the GPL for
        more information. The programs that run under Linux each have
        their own copyright, although many of them use the GPL as well.
        X uses the MIT X copyright, and some utilities are under the BSD
        copyright. In any case, all of the software on the FTP site is
        freely distributable (or else it shouldn't be there).

        0.8 News About Linux

        There are several Usenet newsgroups for Linux discussion, and
        also several mailing lists. See the Linux FAQ for more
        information about the mailing lists (you should be able to find
        the FAQ either in the newsgroup or on the FTP sites).

        The newsgroup comp.os.linux.announce is a moderated newsgroup
        for announcements about Linux (new programs, bug fixes, etc).

        The newsgroup comp.os.linux.admin is an unmoderated newsgroup
        for discussion of administration of Linux systems.

        The newsgroup comp.os.linux.development is an unmoderated
        newsgroup specifically for discussion of Linux kernel
        development. The only application development questions that
        should be discussed here are those that are intimately
        associated with the kernel. All other development questions are
        probably generic UNIX development questions and should be
        directed to a comp.unix group instead.

        The newsgroup comp.os.linux.help is an unmoderated newsgroup for
        any Linux questions that don't belong anywhere else.

        The newsgroup comp.os.linux.misc is the replacement for
        comp.os.linux, and is meant for any discussion that doesn't
        belong elsewhere.

        In general, do not crosspost between the Linux newsgroups. The
        only crossposting that is appropriate is an occasional posting
        between one unmoderated group and comp.os.linux.announce. The
        whole point of splitting comp.os.linux into many groups is to
        reduce traffic in each. Those that do not follow this rule will
        be flamed without mercy...

        For the current status of the Linux kernel and a summary of the
        most recent versions, finger torva...@kruuna.helsinki.fi

        0.9 The Future

        Work is underway on Linux version 1.0, which will close some of
        the gaps in the present implementation. Documentation is also
        sorely missing, but is being worked on by those on the ``Linux
        Documentation Project'' (the DOC channel of the
        linux-activi...@niksula.hut.fi mailing list). Over 600 pages of
        documentation in book form have been released by the LDP alone,
        plus a large group of man pages. More to come! Movie at six!
        Stay tuned...

        0.10 This document

        This document is maintained by Michael K. Johnson,
        johns...@Sunsite.unc.edu. Please mail me with any comments, no
        matter how small. I can't do a good job of maintaining this
        document without your help. A more-or-less current copy of this
        document can always be found as
        tsx-11.mit.edu:/pub/linux/docs/INFO-SHEET, and a DVI version can
        be found as INFO-SHEET.dvi, in the same directory.

        0.11 Legalese

        Trademarks are owned by their owners. There is no warranty about
        the information in this document. Use and distribute at your own
        risk. The content of this document is in the public domain, but
        please be polite and attribute any quotes.