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 (torvalds@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-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. 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 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. 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 torvalds@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-activists@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, johnsonm@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.