1. Introduction and General Information

1.1. What Is Linux?

Linux is the kernel of operating systems that look like and perform as well or better than the famous operating system from AT&T Bell Labs. Linus Torvalds and a loosely knit team of volunteer hackers from across the Internet wrote (and still are writing) Linux from scratch. It has all of the features of a modern, fully fledged operating system: true multitasking, threads, virtual memory, shared libraries, demand loading, shared, copy-on-write executables, proper memory management, loadable device driver modules, video frame buffering, and TCP/IP networking.

Most people, however, refer to the operating system kernel, system software, and application software, collectively, as ``Linux,'' and that convention is used in this FAQ as well.

Linux was written originally for 386/486/586-based PC's, using the hardware facilities of the 80386 processor family to implement its features. There are now many ports to other hardware platforms. (``Ports to Other Processors.'')

There are also Linux distributions specifically for mobile and handheld platforms. An API specification and developers kit for the Crusoe Smart Microprocessor developed by Transmeta Corporation are at http://www.transmeta.com/. Information on the Linux distribution for the Compaq iPAQ is at http://www.handhelds.org/

Refer also to the Linux INFO-SHEET for more details as well as the answers to ``Where Is the Documentation?'', ``What Hardware Is Supported?'', and ``Ports to Other Processors.'', below. A list updated weekly is at: http://lwn.net/ Archive of many of the distributions are on line at: ftp://ftp.tux.org/ and http://planetmirror.com/pub/linux.

The Linux kernel is distributed under the GNU General Public License. (``What Is Linux's Open-Source License?'')

There is a historical archive of all versions of the Linux kernel at http://ps.cus.umist.ac.uk/~rhw/kernel.versions.html.

1.2. How to Get Started.

There are a handful of major Linux distributions. For information about them, and how they are installed, see Matthew Welsh's Installation and Getting Started, or IGS for short. It's located at the Linux Documentation Project Home Page, http://www.linuxdoc.org/, and on the Linux FAQ home page, http://www.mainmatter.com/

The information in IGS is somewhat dated now. More up-to-date information about first-time Linux installation is located in the LDP's Installation HOWTO, also located at the LDP Home Page.

Postings on the Usenet News groups, including the FAQ, are archived on http://groups.google.com/. Search for ``comp.os.linux.*,'' ``alt.uu.comp.os.linux.*, or whatever is appropriate, to retrieve articles from the Linux News groups. (``What News Groups Are There for Linux?'')

Commercial distributions are available from book and electronics stores. Some hardware vendors now ship systems with Linux pre-installed.

There is a very thorough installation guide on line at http://heather.cs.ucdavis.edu/~matloff/linux.html.

Some distributions can still be installed via anonymous FTP from various Linux archive sites, but in many cases, the size of the distribution makes this impractical. (``Where Are the Linux FTP Archives?'') There are also a large number of releases which are distributed less globally that suit special local and national needs. Many of them are archived at ftp://ftp.tux.org/

1.3. What Software does Linux Support?

All of the standard open source utilities, like GCC, (X)Emacs, the X Window System, all the standard Unix utilities, TCP/IP (including SLIP and PPP), and all of the hundreds of programs that people have compiled or ported to it.

There is a DOS emulator, called DOSEMU. The latest stable release is 0.98.3. The FTP archives are at ftp://ftp.dosemu.org/dosemu The Web site is http://www.dosemu.org.

The emulator can run DOS itself and some (but not all) DOS applications. Be sure to look at the README file to determine which version you should get. Also, see the DOSEMU-HOWTO (slightly dated at this point—it doesn't cover the most recent version of the program), at ftp://metalab.unc.edu/pub/Linux/docs/HOWTO.

Work has been progressing on an emulator for Microsoft Windows binaries. (``Can Linux Run Microsoft Windows Programs?'')

iBCS2 (Intel Binary Compatibility Standard) emulator code for SVR4 ELF and SVR3.2 COFF binaries can be included in the kernel as a compile-time option. There is information at ftp://tsx-11.mit.edu/pub/linux/BETA/ibcs2/README.

For more information see the INFO-SHEET, which is one of the HOWTO's (``Where Is the Documentation?'' and ``How To Port XXX to Linux.'')

Some companies have commercial software available. They often announce their availability on comp.os.linux.announce— try searching the archives. (``Are the News Groups Archived Anywhere?'')

1.4. How to Find a Particular Application.

Look first in the Linux Software Map. It's at: ftp://ibiblio.org/pub/Linux/docs/linux-software-map/, and on the other FTP sites. A search engine is available on the World Wide Web at http://www.boutell.com/lsm/.

Also check out the Freshmeat Web site: http://www.freshmeat.net, which is where many new announcements of free software first appear. Freshmeat is basically a site index that continuously updates the notices of new or upgraded software for Linux, and maintains indexes of the announcements and links to their URL's.

The FTP sites (``Where Are the Linux FTP Archives?'') often have ls-lR or INDEX directory listings which you can search using grep or a text editor. The directory listings files can be very large, however, making them unwieldy for quick searches.

Also look at the Linux Projects Map: ftp://ftp.ix.de/pub/ix/Linux/docs/Projects-Map.gz.

There's a search engine for Linux FTP archives at: http://lfw.linuxhq.com/.

Searching for ``Linux'' on the World Wide Web provides copious references. (``Where Is the Linux Stuff on the World Wide Web?'')

If you don't find anything, you could download the sources to the program yourself and compile them. See (See: ``How To Port XXX to Linux.'') If it's a large package that may require some porting, post a message to comp.os.linux.development.apps.

If you compile a large-ish program, please upload it to one or more of the FTP sites, and post a message to comp.os.linux.announce (submit your posting to ).

If you're looking for an application program, the chances are that someone has already written a free version. The comp.sources.wanted FAQ has instructions for finding the source code.

1.5. What Hardware Is Supported?

A minimal Linux installation requires a machine for which a port exists, at least 2Mb of RAM, and a single floppy drive. But to do anything even remotely useful, more RAM and disk space are needed. Refer to: ``Ports to Other Processors.'', ``Disk Space Requirements: Minimal, Server, and Workstation.'', and ``Minimum and Maximum Memory Requirements.''

Intel CPU, PC-compatible machines require at least an 80386 processor to run the standard Linux kernel.

Linux, including the X Window System GUI, runs on most current laptops. Refer to the answer for: ``How To Find Out If a Notebook Runs Linux.'' There are numerous sources of information about specific PC's, video cards, disk controllers, and other hardware. Refer to the INFO-SHEET, Laptop HOWTO, and the Hardware HOWTO. (``Where Is the Documentation?'')

1.6. Ports to Other Processors.

The Web site, Overview of Linux Ports: http://www.itp.uni-hannover.de/~kreutzm/de/lin_plattforms.html provides a listing of known ports.

Another site with a list of ports is: http://lodda.igo.uni-hannover.de/ports/linux_ports.html

In addition, the following information is available about specific ports:

On Intel platforms, VESA Local Bus and PCI bus are supported.

MCA (IBM's proprietary bus) and ESDI hard drives are mostly supported. There is further information on the MCA bus and what cards Linux supports on the Micro Channel Linux Web page, http://www.dgmicro.com/mca. Refer also to the answer for: ``Where Is the Linux Stuff on the World Wide Web?''

There is a port of Linux to the 8086, known as the Embeddable Linux Kernel Subset (ELKS). This is a 16-bit subset of the Linux kernel which will mainly be used for embedded systems, at: http://www.linux.org.uk/Linux8086.html. Standard Linux does not run 8086 or 80286 processors, because it requires task-switching and memory management facilities found on 80386 and later processors.

Linux supports multiprocessing with Intel MP architecture. See the file Documentation/smp.tex in the Linux kernel source code distribution.

A project has been underway for a while to port Linux to suitable 68000-series based systems like Amigas and Ataris. The Linux/m68K FAQ is located at http://www.clark.net/pub/lawrencc/linux/faq/faq.html. The URL of the Linux/m68k home page is http://www.linux-m68k.org/faq/faq.html.

There is a m68k port for the Amiga by Jes Sorensen, which is located at ftp://sunsite.auc.dk/pub/os/linux/680x0/redhat/. The installation FAQ for the package, by Ron Flory, is at http://www.feist.com/~rjflory/linux/rh/.

There is also a linux-680x0 mailing list. (``What Mailing Lists Are There?'')

There is (or was) a FTP site for the Linux-m68k project on ftp.phil.uni-sb.de/pub/atari/linux-68k, but this address may no longer be current.

Debian GNU/Linux is being ported to Alpha, Sparc, PowerPC, and ARM platforms. There are mailing lists for all of them. See http://www.debian.org/MailingLists/subscribe

One of the Linux-PPC project pages has moved recently. Its location is http://www.debian.org/MailingLists/subscribe. http://www.linuxppc.org, and the archive site is ftp://ftp.linuxppc.org/linuxppc.

There is a Linux-PPC support page at http://www.cs.nmt.edu/~linuxppc/. There you will find the kernel that is distributed with Linux.

There are two sites for the Linux iMac port: http://w3.one.net/~johnb/imaclinux, and http://www.imaclinux.net:8080/content/index.html.

A port to the 64-bit DEC Alpha/AXP is at http://www.azstarnet.com/~axplinux/. There is a mailing list at vger.redhat.com: (``What Mailing Lists Are There?'')

Ralf Baechle is working on a port to the MIPS, initially for the R4600 on Deskstation Tyne machines. The Linux-MIPS FTP sites are ftp://ftp.fnet.fr/linux-mips and ftp://ftp.linux.sgi.com/pub/mips-linux. Interested people may mail their questions and offers of assistance to .

There is (or was) also a MIPS channel on the Linux Activists mail server and a linux-mips mailing list. (``What Mailing Lists Are There?'')

There are currently two ports of Linux to the ARM family of processors. One of these is for the ARM3, fitted to the Acorn A5000, and it includes I/O drivers for the 82710/11 as appropriate. The other is to the ARM610 of the Acorn RISC PC. The RISC PC port is currently in its early to middle stages, owing to the need to rewrite much of the memory handling. The A5000 port is in restricted beta testing. A release is likely soon.

For more, up-to-date information, read the newsgroup comp.sys.acorn.misc. There is a FAQ at http://www.arm.uk.linux.org.

The Linux SPARC project is a hotbed of activity. There is a FAQ and plenty of other information available from the UltraLinux page, http://www.ultralinux.org/.

The Home Page of the UltraSPARC port ("UltraPenguin") is located at http://sunsite.mff.cuni.cz/linux/ultrapenguin-1.0/, although the URL may not be current.

There is also a port to SGI/Indy machines ("Hardhat"). The URL is http://www.linux.sgi.com/.

1.7. Disk Space Requirements: Minimal, Server, and Workstation.

About 10Mb for a very minimal installation, suitable for trying Linux, and not much else.

You can fit a typical server installation, including the X Window Systemt GUI, into 80Mb. Installing Debian GNU/Linux takes 500Mb–1GB, including kernel source code, some space for user files, and spool areas.

Installing a commercial distribution that has a desktop GUI environment, commercial word processor, and front-office productivity suite, will claim 1–1.5 GB of disk space, approximately.

1.8. Minimum and Maximum Memory Requirements.

At least 4MB, and then you will need to use special installation procedures until the disk swap space is installed. Linux will run comfortably in 4MB of RAM, although running GUI apps is impractically slow because they need to swap out to disk.

Some applications, like StarOffice, require 32 MB of physical memory, and compiling C++ code can easily consume over 100 MB of combined physical and virtual memory.

There is a distribution, ``Small Linux,'' that will run on machines with 2MB of RAM. Refer to the answer to: ``Where Are the Linux FTP Archives?''

A number of people have asked how to address more than 64 MB of memory, which is the default upper limit in most standard kernels. Either type, at the BOOT lilo: prompt:


Or place the following in your /etc/lilo.conf file:


The parameter ``XXM'' is the amount of memory, specified as megabytes; for example, ``128M.''

If an ``append='' directive with other configuration options already exists in /etc/lilo.conf, then add the mem= directive to the end of the existing argument, and separated from the previous arguments by a space; e.g.:

# Example only; do not use.
append="parport=0x3bc,none serial=0x3f8,4 mem=XXM"

Be sure to run the ``lilo'' command to install the new configuration.

If Linux still doesn't recognize the extra memory, the kernel may need additional configuration. Refer to the /usr/src/linux/Documentation/memory.txt file in the kernel source as a start.

For further information about LILO, refer to the manual pages for lilo and lilo.conf, the documentation in /usr/doc/lilo, and the answer for: ``Boot-Time Configuration.'', below.

1.9. Does Linux Support Universal System Bus Devices?

Linux supports a few dozen USB devices at present, and work is underway to develop additional device drivers. There is a Web page devoted to the subject, at http://www.linux-usb.org/. There is also LDP documentation, at: (``Where Is the Linux Stuff on the World Wide Web?'')

1.10. What Is Linux's Open-Source License?

The Linux trademark belongs to Linus Torvalds. He has placed the Linux kernel under the GNU General Public License, which basically means that you may freely copy, change, and distribute it, but you may not impose any restrictions on further distribution, and you must make the source code available.

There is a FAQ for the GPL at: http://www.gnu.org/copyleft/gnu-faq.html.

This is not the same as Public Domain. See the Copyright FAQ, ftp://rtfm.mit.edu/pub/usenet/news.answers/law/copyright, for details.

Full details are in the file COPYING in the Linux kernel sources (probably in /usr/src/linux on your system).

The licenses of the utilities and programs which come with the installations vary. Much of the code is from the GNU Project at the Free Software Foundation, and is also under the GPL.

Note that discussion about the merits or otherwise of the GPL should be posted to the news group gnu.misc.discuss, and not to the comp.os.linux hierarchy.

For legal questions, refer to the answer: (``Where Are Linux Legal Issues Discussed?'')

1.11. Is Linux *nix?

Not officially, until it passes the Open Group's certification tests, and supports the necessary API's. Even very few of the commercial operating systems have passed the Open Group tests. For more information, see http://www.unix-systems.org/what_is_unix.html.

[Bob Friesenhahn]