Linux Information Sheet
Michael K. Johnson,
[email protected]
v4.1, 31 March 1994
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 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
(
[email protected]) 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 redistribute any modifications, you are legally bound to
distribute the source for those modifications. See the GNU 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 1.2, 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 only on 386/486/Pentium machines with an ISA or EISA bus.
MCA (IBM's proprietary bus) is not currently supported because there
is little available documentation, although some patches are available
for a few machines. VLB and PCI local busses are both supported, and
the driver for the NCR SCSI chip that is used in many PCI machines is
included in the latest development versions, and will be in Linux 1.2
There is a port in progress for multiple Motorola 680x0 platforms
(currently running on some Amigas and Ataris), which now works quite
well. It requires a 68020 with an MMU, a 68030, or a 68040, and also
requires an FPU.
Ports to other machines, including Alpha, MIPS, PowerPC, and PowerMAC,
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.0.2 to 1.0.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 developement will
continue on a new development version of the kernel.
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.97
patchlevel 1 (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 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.
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 March 27, 1995, the current stable version of Linux is 1.2.1,
and the new development tree, 1.3.x, has not yet been started, but
will be inaugurated with 1.3.0 within weeks.
2. Linux Features
o multitasking: several programs running at once.
o multiuser: several users on the same machine at once (and no two-
user licenses!).
o runs in 386 protected mode.
o has memory protection between processes, so that one program can't
bring the whole system down.
o demand loads executables: Linux only reads from disk those parts of
a program that are actually used.
o 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.
o 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.
o 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.
o dynamically linked shared libraries (DLL's), and static libraries
too, of course.
o 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.
o mostly compatible with POSIX, System V, and BSD at the source
level.
o through an iBCS2-compliant emulation module, mostly compatible with
SCO, SVR3, and SVR4 at the binary level.
o 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.
o POSIX job control.
o pseudoterminals (pty's).
o 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.
o support for many national or customized keyboards, and it is fairly
easy to add new ones dynamically.
o 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.
o Supports several common filesystems, including minix-1, 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.
o 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, and are not expected to. VFAT (WNT, Windows 95)
support is being tested.
o special filesystem called UMSDOS which allows Linux to be installed
on a DOS filesystem.
o read-only HPFS-2 support for OS/2 2.1
o CD-ROM filesystem which reads all standard formats of CD-ROMs.
o TCP/IP networking, including ftp, telnet, NFS, etc.
3. Hardware Issues
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.
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, or (soon, we hope) Debian, 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, preferably 500MB 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 non-existant under Linux.
3.3. Supported hardware
CPU:
Anything that runs 386 protected mode programs (all models of
386's 486's, and 586's should work; 286s don't work, and never
will). Also, a version for the 680x0 CPU (for x = 2 with
external MMU, 3, and 4) which runs on Amigas and Ataris is being
developed, and can be found at tsx-11.mit.edu in the 680x0
directory. Ports are also being done to the PowerPC, Alpha, and
MIPS architecture. More details are available elsewhere.
Architecture:
ISA or EISA bus. MCA (mostly true blue PS/2's) does not work,
although a few brave souls are doing some work to help remedy
this for a few machines). Local busses (VLB and PCI) work.
RAM:
Theoretically up to 1 GB. This has not been tested. 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. Over 64MB 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 (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: Adaptec 1542, 1522, 1740, and 27xx series, Buslogic
controllers via the Adaptek compatibility or with their own
driver, NCR53c810-based 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 and some QIC-02 and QIC-80
tapes are also supported. Several CD-ROM devices are also
supported, including Matsushita/Panasonic, Mitsumi, Sony,
Soundblaster, Toshiba, ATAPI, 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, 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, 3com589
PCMCIA, Allied Telliesis AT1500, most LANCE boards, d-link
pocket adaptors, PPP, SLIP, CSLIP, PLIP (Parallel Link IP), and
more.
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 (some boards; not manufacturer-
supported), and Digi (some boards; not manufacturer-supported).
Other hardware:
SoundBlaster, ProAudio Spectrum 16, Gravis Ultrasound, several
flavours of bus mice (Microsoft, Logitech, PS/2).
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, but recently, this has begun to change. 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, Modula-3, Modula-2, Oberon, ADA, 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, Lucid Emacs, 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, 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
available, ask the vendor of your favorite package 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
[email protected]
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.
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
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 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
monu1.monash.edu.au 130.194.1.101 /pub/linux
cnuce_arch.cnr.it 131.114.1.10 /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
[email protected] or
[email protected]
muenchen.de for help.
If you are lost, try looking at
sunsite.unc.edu:/pub/Linux/distributions/, where several distributions
are offered. Slackware is well-tested, being one of the most popular
Linux distributions.
6.2. 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 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 a year
ago. It includes articles intended for almost all skill levels, and
is intended to be helpful to all Linux users. One-year subscriptions
are $19 in the U.S., $24 in Canada and Mexico, and $29 elsewhere,
payable in US currency. Subscription inquiries can be sent via email
to
[email protected], 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. Please do not send credit card numbers via email; the
internet is not secure, and it is entirely possible that a
technologically adept thief may steal your credit card number and cost
you a large sum of money if you do.
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.admin is an unmoderated newsgroup for
discussing Linux-related administration questions.
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 (World Wide Web, WWW, W3, etc.) The URL is
(
http://sunsite.unc.edu/mdw/linux.html)
10. The Future
After Linux 1.0 has been released, work was done on several
enhancements. Disk access speedups, TTY improvements, and many more
things are now available in Linux 1.2.
Linux 1.2 has now been released, and many new enhancements, including
virtual memory enhancements, multiple platform support, and quotas are
being considered for the 1.3.x development series. Linux 1.0 was not
the end of Linux, nor was it even very important; it is mostly
intended to provide a stable version that people can use without being
afraid that they are using beta software, and that can be standardized
on to some extent. After one stable year of Linux 1.0, Linux 1.2 will
now fill that same role
There is plenty of code left to write, and even more documentation.
Please join the DOC channel of the mailing list if you would like to
contribute to the documentation.
11. This document
This document is maintained by Michael K. Johnson,
[email protected]. 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 PostScript
version can be found as INFO-SHEET.ps, in the same directory.
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.