A: Linux is an operating system kernel that behaves and performs similarly to the famous UNIX™ operating system from AT&T Bell Labs. It has all of the features of a modern 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.
Linus Torvalds and a loosely knit team of volunteer hackers from across the Internet wrote (and still are writing) Linux from scratch.
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.
A: Linux was written originally for Intel processor based PC's, using the hardware facilities of the 80386 processor and its successors to implement its features. The 80386 family includes the 80486, and all of the Pentium chips. However, 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.
A: At any given time, there are several "stable" versions of Linux, and one "development" version. Unlike most proprietary software, older stable versions continue to be supported for as long as there is interest, which is why multiple versions exist.
Linux version numbers follow a longstanding tradition. Each version has three numbers, i.e., X.Y.Z. The "X" is only incremented when a really significant change happens, one that makes software written for one version no longer operate correctly on the other. This happens very rarely -- in Linux's history it has happened exactly once.
The "Y" tells you which development "series" you are in. A stable kernel will always have an even number in this position, while a development kernel will always have an odd number.
The "Z" specifies which exact version of the kernel you have, and it is incremented on every release.
The current stable series is 2.4.x, and the current development series is 2.5.x. However, many people continue to run 2.2.x and even 2.0.x kernels, and they also continue to receive bugfixes. The development series is the code that the Linux developers are actively working on, which is always available for public viewing, testing, and even use, although production use is not recommended! This is part of the "open source development" method.
Eventually, the 2.5.x development series will be "sprinkled with holy penguin pee" and become the 2.6.0 kernel and a new stable series will then be established, and a 2.7.x development series begun. Or, if any really major changes happen, it might become 3.0.0 instead, and a 3.1.x series begun.
A: If you are new to Linux, you should start by buying or downloading a general-purpose Linux distribution. A distribution is a complete operating system, including the Linux kernel and all the utilities and software you are likely to need, ready to install and use. Most distributions include thousands of software packages, including user-friendly desktops, office suites, and games.
There are a handful of major Linux distributions, and as a beginner you are probably safer using one of them. For information about them, and how they are installed, see the ERROR: LDP namespace resolution failure on Distributions-HOWTO from the Linux Documentation Project. Also, a list of distributions is updated weekly at http://lwn.net.
Before you select which distribution you want to try, read their descriptions carefully and compare them to your needs. Each distribution is tailored to a particular type of user. Some are optimized to function as servers, some are optimized for gaming, and some are optimized for desktop and office use.
There are a few distributions which are considered to be outstanding choices for new users:
Red Hat is particularly good for servers
Mandrake is excellent as a desktop system
SuSE is also excellent as a desktop system
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.
A: If you can, please dig into your wallet and buy a copy of your distribution. Linux distributions are extremely inexpensive - usually around $30 for a complete system, and anywhere from $70 to around $150 for a larger system with more server software or development tools. Even the $30 "basic" systems contain the equivalent of thousands of dollars in proprietary tools, and are an incredible value. The distributors invest many of your dollars into further development, and most of them fund outside open source projects.
Commercial distributions are available from book and electronics stores, or you can order from their websites.
If you use Debian GNU/Linux, which is a volunteer project and a non-profit, you can donate directly to them instead.
A: There are some websites that sell Linux CD's very inexpensively. Try:
A: Every distribution provides a download on their home page. This is a requirement of the licensing terms of the software, so if you cannot afford to pay for your distribution, you can get a copy this way. Some people compromise between paying and downloading, for example by buying each major release (such as 6.0) but downloading the point releases (such as 6.1 and 6.2).
Also, archives of many of the distributions are on line at: ftp://ftp.tux.org and http://planetmirror.com/pub/linux.
A: Some hardware vendors now ship systems with Linux pre-installed. However, they sometimes make it very difficult to buy them - they offer Linux on only a few systems, which are server machines, or they require you to go to a special "Linux" section on their website.
A: Once you obtain a distribution, it will contain instructions on installation. Each distribution has its own installation program.
A: There is a very thorough installation guide on line at http://heather.cs.ucdavis.edu/~matloff/linux.html
A: Some distributions (e.g., Debian GNU/Linux) can be installed via anonymous FTP from various Linux archive sites, but unless you have cable, DSL, or some other broadband Internet access, the size of the distribution makes this impractical. ("")
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?")
A: Linux runs 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, that lets Linux run programs written for DOS. 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 pointit doesn't cover the most recent version of the program), at ftp://metalab.unc.edu/pub/Linux/docs/HOWTO.
Work has been progressing on WINE, an emulator for Microsoft Windows binaries. ("Can Linux Run Microsoft Windows Programs?")
Intel Binary Compatibility Standard (iBCS2) 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.
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?").
A: Look first in the Linux Software Map. It's at: ftp://metalab.unc.edu/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 ("") 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 ("How Do I Port XXX to Linux?"). If it's a large package that may require some porting, post a message to comp.os.linux.development.apps. The popularity of Linux makes this an extremely unlikely occurrence. The great majority of software available on other UNIX-type systems has already been ported to Linux.
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 firstname.lastname@example.org.
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.
A: 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", "What are the Disk Space Requirements for Minimal, Server, and Workstation Use?", and "What are the 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 Do I 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 ERROR: LDP namespace resolution failure on INFO-SHEET, ERROR: LDP namespace resolution failure on Laptop-HOWTO, and the ERROR: LDP namespace resolution failure on Unix-Hardware-Buyer-HOWTO. ("Where Is the Documentation?")
A: 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.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.
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 email@example.com.
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.
A: Linux needs 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 500Mb1GB, 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 15.1 GB of disk space, approximately.
A: Linux needs 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: ""
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], the ERROR: LDP namespace resolution failure on LILO-HOWTO, and the answer for: "How Do I Set the Boot-Time Configuration?", below.
A: 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?")
Support for USB version 2.0 was recently added to development kernels, but is not yet available in the 2.4 series.
A: 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. Some other major programs often included in Linux distributions are under a BSD license and other licenses.
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?'')
A: Officially and operating system is not allowed to be called a UNIX until it passes the Open Group's certification tests, and supports the necessary API's. 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.
A: Unofficially, Linux is very similar to the operating systems which are known as UNIX, and for many purposes they are equivalent.