file: LINUX.TXT G. Moody 6 February 1995 Last revised: 18 May 1997 Notes on installing and using the DB Software Package and WAVE under Linux For general information on the DB Software Package and WAVE, see the file `software/README.TXT'. Linux is a freely available clone of the UNIX operating system for 386 and later PCs. See "General information on Linux" below. Binary executable file formats ============================== Two formats have been widely used for Linux executable binary files (compiled programs). The standard format used in all recent distributions is known as ELF; the older format, still supported in many newer distributions, is known as `a.out' or COFF. It is possible to compile the software provided here in source form in either ELF or a.out format, and precompiled ELF and a.out binaries are also provided. If you don't know which format your system supports, one way to find out is to run the command file `which gcc` (note the backquotes in this command must be typed as shown). If the output of this command contains the word `ELF', you have an ELF-capable Linux and gcc. If your installation doesn't support ELF, an upgrade to an ELF-capable Linux is highly recommended. (Note that you do not have to replace all of your existing `a.out'-format binaries in order to do this, since modern versions can be configured to support both ELF and a.out binaries.) Compiling the DB Software Package (optional) ============================================ Both sources and Linux binaries for the DB Software Package, version 9.7, are provided on this disk (in `software/db'). If you wish, you can compile the sources using `gcc' under Linux without modification. Copy the contents of the `db' directory hierarchy from the CD-ROM to a writable directory on your hard disk, and rename `db/Makefile-linux' as `db/Makefile'. Follow the instructions there to set configuration variables for your system and to compile the software. If you wish to compile the DB Software Package in ELF format, you do not need to do anything special. If you wish to compile the shared DB library in `a.out' format, you will need the programs `getvars', `getfuncs', `getsize', `jumpas' `mkimage', `mkstubs', and `verify-shlib'. If these programs are not installed on your system, they may be unpacked from `linuxmsc/tools216.tgz', a gzip-compressed `tar' archive. The most recent version may be retrieved by anonymous FTP from tsx-11.mit.edu; get `pub/linux/packages/GCC/src/tools-2.NN.tar.gz'. Be sure to replace `slib' with `slib-linux' in LIBTARGETS within `software/db/Makefile' if you choose to use `a.out' format. Sources for WAVE are not included; if you wish to install WAVE, you must do so from the binaries on this disk. Installing the DB Software Package and WAVE =========================================== To simplify typical installations, two complete sets of Linux binaries are provided on this disk. The archive `linux.tar' contains the DB Software Package (version 9.7) and WAVE (version 6.1) in ELF binary form for all current Linux distributions. The archive `linuxold.tar' contains the DB Software Package (version 9.5) and WAVE (version 5.3 for X11R5, and version 5.8 for X11R6) in a.out binary form for older (pre-1996) Linux distributions. To use the ELF binaries, you must have installed (in /lib or /usr/lib) the standard C library, libc.so.5.0.9 or later; to use the a.out binaries, you must have libc.so.4.5.26 or later. At least one of these has been included with most if not all distributions of Linux since mid-1994. WAVE and all of the applications in the DB Software Package use the shared version of the DB library in order to read the recordings on this disk and others in a variety of supported formats. Since the sources for the library are provided (in `software/db/lib'), you can modify the library, for example to add support for additional file formats, without the need to recompile the applications that use it. Root permissions are needed in order to install the shared library in /usr/lib and in order to run `ldconfig' after doing so. In order to use WAVE, you must also have installed X11R5 or X11R6, and XView 3.2 (a freely available Open Look toolkit for X11), on your Linux system. Current Linux distributions include XFree86 version 3.x (X11R6); older a.out kernels may have either XFree86 version 3.x or version 2.1.1 (X11R5). Compatible versions of XView 3.2 are included in most distributions. Three versions of WAVE for Linux are provided on this disk. If your system supports ELF (all current distributions do), `wave' (version 6.1, in linux.tar) is the best choice; it requires the X11R6 libraries (standard with Linux ELF distributions). If you have an older a.out-only Linux distribution, your best choice is to upgrade to one with ELF support before installing the software on this CD-ROM. If this is not possible, `wave.r5' (version 5.3, in linuxold.tar) is an a.out binary intended for use with X11R5, although you may use it with X11R6 if you have the R5 shared libraries. `wave.r6' (version 5.8, also in linuxold.tar) is an a.out binary that requires the X11R6 libraries, and is a better choice if you have installed R6. Note that `wave.r5' and `wave.r6' do not have all of the capabilities of version 6.1; since a.out format is obsolete, they will not be updated further. To use any version of WAVE, the following shared libraries must have been installed (in addition to the shared DB library and the standard C library): libxview.so.3 (in a.out format, libxv3.so.3) XView version 3.2, included in the Red Hat, Slackware (see below) and most other Linux distributions; also included on this disk (see below) libolgx.so.3 (in a.out format, libolg.so.3) the Open Look graphics library, provided with XView and on this disk libX11.so.* the X11 intrinsics library; wave and wave.r6 require libX11.so.6 (X11R6, provided with XFree86 3.x), and wave.r5 requires libX11.so.3 (X11R5, provided with XFree86 2.1.1) If your distribution is missing the XView and Open Look graphics libraries, you can compile them from the sources in `xview32.tgz'. Precompiled ELF-format versions of these libraries may also be found in that directory. To install the binaries in the standard places, log in with root permissions, and (from the `software' directory) type sh install.unx This installation script checks your system configuration and installs the proper (ELF or a.out) binaries. If you have ELF support, the script also installs the XView and Open Look graphics libraries if they are missing. If you have only a.out support, the script checks if you have X11R6, and links the correct a.out WAVE binary to `wave'; if you need a.out versions of the XView and Open Look graphics libraries, you must install these manually, either by building them from the sources in `xview32.tgz', or from your Linux distribution. Using the DB Software Package under Linux ========================================= Refer to the ECG Database Programmer's Guide (in `../html/dbpg/') and the ECG Database Applications Guide (in `../html/dbag') for details on using the applications provided and on writing your own applications to read the recordings on this disk. Using WAVE under Linux ====================== For general information about using WAVE, refer to the WAVE User's Guide (in `../html/wug/') or to the on-line manual. Type `wave' with no command-line arguments to get a brief summary of options and instructions for printing the manual. There are a few quirks in using WAVE under Linux, described briefly below. Since all of these appear to be related to the X11 server or the XView library, you may not encounter them on your system. Please send details of any other problems (and work-arounds, if possible) to me (george@hstbme.mit.edu). Window managers --------------- I haven't explored all of the possibilities yet (Linux offers many), but past experience suggests that WAVE will probably coexist most happily with an Open Look window manager. Linux distributions usually include both `olwm' and `olvwm'; both work well with WAVE. To try out `olvwm', it is usually sufficient to type the command `openwin' in a text mode session; this starts the X server and the window manager. (If you have heavily customized your `.xinitrc', you may need to replace it with a bare-bones version in order to get `openwin' to work properly.) If you find problems related to using WAVE with other window managers, please let me know about them, especially if you have discovered solutions or work-arounds. Two-button mice --------------- XFree86 can make a two-button mouse emulate a three-button mouse. When this feature is enabled, press both buttons simultaneously to simulate pressing the middle button. To make it possible for XFree86 to recognize this even if the button-down events are not exactly simultaneous, each button-down event is delayed pending the next mouse event (a button-down or button-up event, or a mouse motion event). As a result, annotation editing in WAVE may be awkward, particularly if you are accustomed to using WAVE with a three-button mouse. You may wish to replace your two-button mouse with a Logitech or other three-button mouse in this case; if you do so, be sure to remove the line "Emulate3Buttons" from your `Xconfig' or `XF86Config' file (see the XFree86 documentation for details). Enabling XView spot help ------------------------ In at least some XFree86 distributions, XView spot help is not enabled. (This feature, if enabled, opens a help window describing the XView control to which the pointer points, whenever a special "Help" key is pressed. WAVE includes full support for XView spot help.) To enable XView spot help when you press the F1 key, type: xmodmap -e "keysym F1 = Help" Once you have tested the effect of this command, you can make this change permanent for future sessions by typing: xmodmap >~/.Xmodmap (This file is read by your `.xinitrc' whenever you start the X window system; see `.xinitrc' for details.) To make this behavior a default for all users, copy .Xmodmap into the directory /usr/X386/lib/X11/xinit (be sure the copy is readable by all users). To enable spot help for other XView applications, you may need to set the environment variable HELPPATH. If you use sh or bash, do this by: HELPPATH=/usr/openwin/lib/help export HELPPATH Include these commands in your .profile so that they are executed whenever you log in. If you use csh or tcsh, add the command setenv HELPPATH /usr/openwin/lib/help to your .cshrc. Extraneous error messages ------------------------- Messages of the form ttysw_sigwinch, can't get tty process group: Not a typewriter may appear in a terminal window of a controlling process while running WAVE (or other XView applications) under Linux. These messages may be safely ignored. Special considerations for XFree86 version 2.1.1 (X11R5) -------------------------------------------------------- Dotted lines used by WAVE (and other applications such as olvwm) are improperly rendered by some versions of the XFree86 server. WAVE normally uses dotted lines to draw annotation marker bars (enabled by selecting `markers' in the `View' panel); if these bars are not uniform for all annotations, your X11 server has this bug. As a work-around in this case, add the line Wave.AllowDottedLines: False to the `.Xdefaults' file in your home directory, or to the system-wide file `/usr/openwin/lib/app-defaults/Wave'. Special considerations for XFree86 version 3.1.x (X11R6) ---------------------------------------------------------------- If you use `olwm' or `olvwm' (recommended) as your X11 window manager, or if you use other XView applications under Linux, you may wish to update your XView libraries so that these applications can also display icons, spot help, and other server images properly. The easiest way to do this is by installing WAVE and the DB Software Package first, then by unpacking the corrected Linux binaries in linuxmsc/xv32r6b.tgz (contributed by Alex Shah, ashah@scripps.edu). Follow the directions in the README file contained in this archive to install libxv3.so.3.0 (the shared library) and libxview.a (the statically linked library). Alternatively, you can unpack the sources in xview32.tgz, apply the patches for Linux in linuxmsc/xv32pat.tgz, and compile them (be sure to define the symbol `i386' when doing so, in order to avoid the server image rendering bug). It is not necessary to recompile XView applications after installing the corrected library unless they were statically linked to libxview.a. The problem with rendering dotted lines appears to have been partially fixed in XFree86 version 3.1, at least when using a color or greyscale display. If you use WAVE and XFree86 on a monochrome display, or with the `-m' option to simulate monochrome output, you may need to disallow rendering of dotted lines as described for X11R5 above. General information on Linux ============================ Linux is available by anonymous FTP from many sources (see below). Many commercial distributions of Linux are available on CD-ROMs, at prices typically between US$10 and US$40; see advertisements in Byte, Dr. Dobb's Journal, PC Magazine, and the Linux Journal (see below), among others. The remainder of this file is a verbatim copy of the Linux Documentation Project's `INFO-SHEET'. An up-to-date copy of this document can be obtained by anonymous FTP from tsx-11.mit.edu (/pub/linux/docs/INFO-SHEET) or from sunsite.unc.edu (/pub/Linux/docs/INFO-SHEET). Linux Information Sheet Michael K. Johnson, johnsonm@redhat.com v4.11, 13 January 1997 This document provides basic information about the Linux operating system, including an explanation of Linux, a list of features, some requirements, and some resources. 1. Introduction to Linux Linux is a completely free reimplementation of the POSIX specification, 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 (Linus.Torvalds@Helsinki.FI) and other contributors, and is freely redistributable under the terms of the GNU Public License. Linux is not public domain, nor is it `shareware'. It is `free' software, commonly called freeware, and you may give copies away, but you must also give the source with it or make it available in the same way. If you distribute any modifications, you are legally bound to distribute the source for those modifications. See the GNU General Public License for details. A copy is included with the Linux source, or you can get a copy via ftp from prep.ai.mit.edu in /pub/gnu/COPYING Linux is still free as of version 2.0, and will continue to be. Because of the nature of the GNU copyright which Linux is subject to, it would be illegal for it to be made not free. Note carefully: it is perfectly legal to charge money for distributing Linux, so long as you also distribute the source code. This is a generalization; if you want the fine points, read the GPL. Linux runs on 386/486/Pentium machines with ISA, EISA, PCI and VLB busses. MCA (IBM's proprietary bus) is not currently well-supported, although support has been added to the current development tree, 2.1.x. If you are interested, see There is a port in progress for multiple Motorola 680x0 platforms (currently running on some Amigas, Ataris, and VME machines), which now works quite well. It requires a 68020 with an MMU, a 68030, 68040, or a 68060, and also requires an FPU. Networking and X now work. Linux runs well on DEC's Alpha CPU, currently supporting the "Jensen", "NoName", "Cabriolet", "Universal Desktop Box" (better known as the Multia), and many other platforms. For more information, see Linux runs well on Sun SPARCs; most sun4c and sun4m machines now run Linux, with support for sun4u in active development. Red Hat Linux is (as of this writing) the only Linux distribution available for SPARCs; see Linux is being actively ported to the PowerPC architecture, including PowerMac (Nubus and PCI), Motorola, IBM, and Be machines. Ports to other machines, including MIPS and ARM, are under way and showing various amounts of progress. Don't hold your breath, but if you are interested and able to contribute, you may well find other developers who wish to work with you. Linux is no longer considered to be in beta testing, as version 1.0 was released on March 14, 1994. There are still bugs in the system, and new bugs will creep up and be fixed as time goes on. Because Linux follows the ``open development model'', all new versions will be released to the public, whether or not they are considered ``production quality''. However, in order to help people tell whether they are getting a stable version or not, the following scheme has been implemented: Versions 1.x.y, where x is an even number, are stable versions, and only bug fixes will be applied as y is incremented. So from version 1.2.2 to 1.2.3, there were only bug fixes, and no new features. Versions 1.x.y, where x is an odd number, are beta-quality releases for developers only, and may be unstable and may crash, and are having new features added to them all the time. >From time to time, as the currect development kernel stabilizes, it will be frozen as the new ``stable'' kernel, and development will continue on a new development version of the kernel. The current stable version is 2.0.27 (this will continue to change as new device drivers get added and bugs fixed), and developement has also started on the experimental 2.1.x kernels. If 2.0.x is too new for you, you may want to stick with 1.2.13 for the time being. However, the latest releases of 2.0 have proved quite stable. Do note that in order to upgrade from 1.2 to 2.0, you need to upgrade some utilities as well; you may wish to upgrade to the latest version of your Linux distribution in order to obtain those utilities. The Linux kernel source code also contains a file, Documentation/Changes, which explains these changes and more. Most versions of Linux, beta or not, 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 had a computer running version 0.97p1 (dating from the summer of 1992) 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...) Others have posted uptimes in excess of a year. One site still had a computer running Linux 0.99p15s over 600 days at last report. 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 of 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. 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 January 13, 1997, the current stable version of Linux is 2.0.27, and the latest development version is 2.1.20. 2. Linux Features · multitasking: several programs running at once. · multiuser: several users on the same machine at once (and no two- user licenses!). · multiplatform: runs on many different CPUs, not just Intel. · multiprocessor: SMP support is available on the Intel and SPARC platforms (with work currently in progress on other platforms), and Linux is used in several loosely-coupled MP applications, including Beowulf systems (see ) and the Fujitsu AP1000+ SPARC-based supercomputer. · runs in protected mode on the 386. · 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 of 2 GB of useable swap space. It is simple to increase this if necessary, by changing a few lines of source code. · 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), and 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. · through an iBCS2-compliant emulation module, mostly compatible with SCO, SVR3, and SVR4 at the binary 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. Plenty of commercial programs are being provided for Linux without source, but everything that has been free, including the entire base operating system, 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 dynamically. · multiple virtual consoles: several independent login sessions through the console, you switch by pressing a hot-key combination (not dependent on video hardware). These are dynamically allocated; you can use up to 64. · Supports several common filesystems, including minix, Xenix, and all the common 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 without a patch (dmsdosfs). VFAT (WNT, Windows 95) support is available in Linux 2.0 · special filesystem called UMSDOS which allows Linux to be installed on a DOS filesystem. · read-only HPFS-2 support for OS/2 2.1 · HFS (Macintosh) file system support is available separately as a module. · CD-ROM filesystem which reads all standard formats of CD-ROMs. · TCP/IP networking, including ftp, telnet, NFS, etc. · Appletalk server · Netware client and server · Lan Manager (SMB) client and server · Many networking protocols: the base protocols available in the latest development kernels include TCP, IPv4, IPv6, AX.25, X.25, IPX, DDP (Appletalk), NetBEUI, Netrom, and others. Stable network protocols included in the stable kernels currently include TCP, IPv4, IPX, DDP, and AX.25. 3. Hardware Issues 3.1. Minimal configuration The following is probably the smallest possible configuration that Linux will work on: 386SX/16, 1 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. See for minimal Linux configurations 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. 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 will want 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. If you use many programs at once, 16 MB will reduce swapping considerably. If you don't want to swap appreciably under any normal load, 32 MB will probably suffice. Of course, if you run memory-hungry applications, you may want more. 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 Red Hat, Debian, Slackware, or another distribution, and assume that you will need 60 to 300 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 500 MB, preferably 1GB or more, 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, which is completely nonexistent under Linux. 3.3. Supported hardware CPU: Anything that runs 386 protected mode programs (all models of 386's 486's, 586's, and 686's should work. 286s and below may someday be supported on a smaller kernel called ELKS (Embeddable Linux Kernel Subset), but don't expect the same capabilities. A version for the 680x0 CPU (for x = 2 with external MMU, 3, 4, and 6) which runs on Amigas and Ataris can be found at tsx-11.mit.edu in the 680x0 directory. Many DEC Alphas are supported. Many SPARCs are now supported. Ports are also being done to the PowerPC, ARM, and MIPS architectures. More details are available elsewhere. Architecture: ISA or EISA bus. MCA (mostly true blue PS/2's) support is incomplete but improving (see above). Local busses (VLB and PCI) work. Linux puts higher demands on hardware than DOS, Windows, and in fact most operating systems. This means that some marginal hardware that doesn't fail when running less demanding operating system may fail when running Linux. Linux is an excellent memory tester... RAM: Up to 1 GB on Intel; more on 64-bit platforms. Some people (including Linus) have noted that adding ram without adding more cache at the same time has slowed down their machine extremely, so if you add memory and find your machine slower, try adding more cache. Some machines can only cache certain amounts of memory regardless of how much RAM is installed (64 MB is the most one popular chipset can cache). Over 64 MB of memory will require a boot-time parameter, as the BIOS cannot report more than 64MB, because it is ``broken as designed.'' Data storage: Generic AT drives (EIDE, IDE, 16 bit HD controllers with MFM or RLL, or ESDI) 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 also supported. Supported SCSI adaptors: Advansys, Adaptec 1542, 1522, 1740, 27xx, and 29xx (with some exceptions) series, Buslogic MultiMaster controllers (Flashpoint support is in beta-testing), NCR53c810-based controllers, DPT controllers, Qlogic ISP and FAS controllers, 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, Western Digital wd7000, and others. SCSI, QIC-02, and some QIC-80 tapes are also supported. Several CD-ROM devices are also supported, including Matsushita/Panasonic, Mitsumi, Sony, Soundblaster, Toshiba, ATAPI (EIDE), SCSI, and others. For exact models, check the hardware compatibility 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), S3, 8514/A, ATI MACH8/32/64, and hercules. (Linux uses the Xfree86 X server, so that determines what cards are supported. A full list of supported chipsets alone takes over a page.) Networking: Ethernet support includes 3COM 503/509/579/589 (501/505/507 are supported but not recomended), AT&T GIS (neé NCR) WaveLAN, most WD8390-based cards, most WD80x3-based cards, NE1000/2000 and most clones, AC3200, Apricot 82596, AT1700, ATP, DE425/434/435/500, D-Link DE-600/620, DEPCA, DE100/101, DE200/201/202 Turbo, DE210, DE422, Cabletron E2100 (not recommended), Intel EtherExpress (not recommended), DEC EtherWORKS 3, HP LAN, HP PCLAN/plus, most AMD LANCE-based cards, NI5210, ni6510, SMC Ultra, DEC 21040 (tulip), Zenith Z-Note ethernet, All Zircom cards and all Cabletron cards other than the E2100 are unsupported, due to the manufacturers unwillingness to release programming information freely. FDDI support currently includes the DEFxx cards from DEC. Point-to-Point networking support include PPP, SLIP, CSLIP, and PLIP. Serial: Most 16450 and 16550 UART-based boards, including AST Fourport, the Usenet Serial Card II, and others. Intelligent boards supported include Cyclades Cyclom series (supported by the manufacturer), Comtrol Rocketport series (supported by the manufacturer), Stallion (most boards; supported by the manufacturer), and Digi (some boards; not manufacturer- supported). Some ISDN, frame relay, and leased line hardware is supported. Other hardware: SoundBlaster, ProAudio Spectrum 16, Gravis Ultrasound, most other sound cards, most (all?) flavours of bus mice (Microsoft, Logitech, PS/2), etc. 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 as many end-user applications yet as we would like, but this is changing rapidly. Contact the vendor of your favorite commercial Unix application and ask if they have ported it to Linux. 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, Linux probably has it). Development tools: gcc, gdb, make, bison, flex, perl, rcs, cvs, prof. Languages and Environments: C, C++, Objective C, Java, Modula-3, Modula-2, Oberon, Ada95, Pascal, Fortran, ML, scheme, Tcl/tk, Perl, Python, Common Lisp, and many others. Graphical environments: X11R5 (XFree86 2.x), X11R6 (XFree86 3.x), MGR. Editors: GNU Emacs, XEmacs, MicroEmacs, jove, ez, epoch, elvis (GNU vi), vim, vile, joe, pico, jed, and others. Shells: bash (POSIX sh-compatible), zsh (includes ksh compatiblity mode), pdksh, tcsh, csh, rc, es, ash (mostly sh-compatible shell used as /bin/sh by BSD), and many more. Telecommunication: Taylor (BNU-compatible) UUCP, SLIP, CSLIP, PPP, kermit, szrz, minicom, pcomm, xcomm, term (runs multiple shells, redirects network activity, and allows remote X, all over one modem line), Seyon (popular X-windows communications program), and several fax and voice-mail (using ZyXEL and other modems) packages are available. Of course, remote serial logins are supported. News and mail: C-news, innd, trn, nn, tin, smail, elm, mh, pine, etc. Textprocessing: TeX, groff, doc, ez, LyX, Lout, Linuxdoc-SGML, and others. Games: Nethack, several Muds and X games, and lots of others. One of those games is looking through all the games available at tsx-11 and sunsite. Suites: AUIS, the Andrew User Interface System. ez is part of this suite. All of these programs (and this isn't even a hundredth of what is available) are freely available. Commercial software is becoming widely available; ask the vendor of your favorite commercial software if they support Linux. 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-counter@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. 6. Getting Linux 6.1. Anonymous FTP Matt Welsh has released a new version of his Installation and Getting Started guide, version 2.1.1. 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. The Linux Documentation Project home page is at 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/comp/os/linux ftp.dfv.rwth-aachen.de 137.226.4.111 /pub/linux ftp.informatik.rwth-aachen.de 137.226.225.3 /pub/Linux ftp.Germany.EU.net 192.76.144.75 /pub/os/Linux ftp.ibp.fr 132.227.60.2 /pub/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 133.137.4.3 /pub/os/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 cnuce_arch.cnr.it 131.114.1.10 /pub/Linux ftp.monash.edu.au 130.194.11.8 /pub/linux ftp.dstc.edu.au 130.102.181.31 /pub/linux ftp.sydutech.usyd.edu.au 129.78.192.2 /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 ftpmail@sunsite.unc.edu or ftp@informatik.tu- muenchen.de for help. If you are lost, try looking at sunsite.unc.edu:/pub/Linux/distributions/, where several distributions are offered. Red Hat Linux, Debian, and Slackware appear to be the most popular distributions at the moment. 6.2. CDROM Most people now install Linux from CDROM's. The distributions have grown to hundreds of MBs of Linux software, and downloading that over even a 28.8 modem takes a long time. There are essentially two ways to purchase a Linux distribution on CDROM: as part of an archive of FTP sites, or directly from the manufacturer. If you purchase an archive, you will almost always get several different distributions to choose from, but usually support is not included. When you purchase a distribution directly from the vendor, you usually only get one distribution, but you usually get some form of support, usually installation support. 6.3. 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. 7. 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). 8. 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 General Public License, sometimes referred to as the ``copyleft''. 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). 9. News About Linux A monthly magazine, called Linux Journal, was launched over two years ago. It includes articles intended for almost all skill levels, and is intended to be helpful to all Linux users. One-year subscriptions are $22 in the U.S., $27 in Canada and Mexico, and $32 elsewhere, payable in US currency. Subscription inquiries can be sent via email to subs@ssc.com, or faxed to +1-206-782-7191, or phoned to +1-206-782-7733, or mailed to Linux Journal, PO Box 85867, Seattle, WA 98145-1867 USA. SSC has a PGP public key available for encrypting your mail to protect your credit card number; finger info@ssc.com to get the key. 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.answers is a moderated newsgroup to which the Linux FAQ, HOWTO documents, and other documentation postings are made. The newsgroup comp.os.linux.admin is an unmoderated newsgroup for discussion of administration of Linux systems. The newsgroup comp.os.linux.development.system 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, unless they are very Linux-specific applications questions, in which case they should be directed at comp.os.linux.development.apps. The newsgroup comp.os.linux.development.apps is an unmoderated newsgroup specifically for discussion of Linux-related applications development. It is not for discussion of where to get applications for Linux, nor a discussion forum for those who would like to see applications for Linux. The newsgroup comp.os.linux.hardware is for Linux-specific hardware questions. The newsgroup comp.os.linux.networking is for Linux-specific networking development and setup questions. The newsgroup comp.os.linux.x is for Linux-specific X Windows questions. 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... Linux is on the web at the URL 10. The Future After Linux 1.0 was released, work was done on several enhancements. Linux 1.2 included disk access speedups, TTY improvements, virtual memory enhancements, multiple platform support, quotas, and more. Linux 2.0, the current stable version, has even more enhancements, including many performance improvements, several new networking protocols, one of the fastest TCP/IP implementations in the world, and far, far more. Even higher performance, more networking protocols, and more device drivers will be available in Linux 2.2. Even with over 3/4 million lines of code in the kernel, there is plenty of code left to write, and even more documentation. Please join the linux-doc@vger.rutgers.edu mailing list if you would like to contribute to the documentation. Send mail to majordomo@vger.rutgers.edu with a single line containing the word ``help'' in the body (NOT the subject) of the message. 11. This document This document is maintained by Michael K. Johnson, johnsonm@redhat.com. 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 at 12. 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.