8. Miscellaneous Information and Questions Answered

8.1. How To Program XYZ Under Linux.

Read the manuals, or a good book on Unix and the manual pages (type man man). There is a lot of GNU Info documentation, which is often more useful as a tutorial. Run Emacs and type F1-i, or type info info if you don't have or don't like Emacs. Note that the Emacs libc node may not exactly describe the latest Linux libc, or GNU glibc2. But the GNU project and LDP are always looking for volunteers to upgrade their library documentation.

Anyway, between the existing Texinfo documentation, and the manual pages in sections 2 and 3, should provide enough information to get started.

As with all free software, the best tutorial is the source code itself.

The latest release of the Linux manual pages, a collection of useful GNU Info documentation, and various other information related to programming Linux, can be found on metalab.unc.edu/pub/Linux/docs/man-pages/.

8.2. What's All This about ELF? glibc?

See the ELF HOWTO by Daniel Barlow. Note that this is not the file move-to-elf, which is a blow-by-blow account of how to upgrade to ELF manually.

Linux has two different formats for executables, object files, and object code libraries, known as, ``ELF.'' (The old format is called ``a.out.'') They have advantages, including better support for shared libraries and dynamic linking.

Both a.out and ELF binaries can coexist on a system. However, they use different shared C libraries, both of which have to be installed.

If you want to find out whether your system can run ELF binaries, look in /lib for a file named, ``libc.so.5.'' If it's there, you probably have ELF libraries. If you want to know whether your installation actually is ELF you can pick a representative program, like ls, and run file on it:

   -chiark:~> file /bin/ls
   /bin/ls: Linux/i386 impure executable (OMAGIC) - stripped

   valour:~> file /bin/ls
   /bin/ls: ELF 32-bit LSB executable, Intel 80386, version 1, stripped

There is a patch to get 1.2.x to compile using the ELF compilers, and produce ELF core dumps, at ftp://tsx-11.mit.edu/pub/packages/GCC/. You do not need the patch merely to run ELF binaries. 1.3.x and later do not need the patch at all.

The GNU glibc2 libraries are essentially more recent versions of ELF libraries that follow most of the same processes for dynamic linking and loading. Upgrade information is contained in (``How To Upgrade the Libraries without Trashing the System.'')

8.3. How To Determine What Packages Are Installed on a System.

For distributions that use RPM format packages, use the command:

   $ rpm -qa

You need to be logged in as root. You can save the output to a text file for future reference, a command like:

   $ rpm -qa >installed-packages

For Debian systems, the equivalent command is:

   $ dpkg -l

8.4. What Is a .gz File? And a .tgz? And .bz2? And... ?

.gz (and .z) files are compressed using GNU gzip. You need to use gunzip (which is a symlink to the gzip command that comes with most Linux installations) to unpack the file.

.taz, .tar.Z, and .tz are tar files (made with tar) and compressed using compress. The standard *nix compress is proprietary software, but free equivalents like ncompress exist.

.tgz (or .tpz) is a tar file compressed with gzip.

.bz2 is a file compressed by the more recently introduced (and efficient) bzip2.

.lsm is a Linux Software Map entry, in the form of a short text file. Details about the LSM project and the LSM itself are available in the subdirectory on ftp://metalab.unc.edu/pub/Linux/docs/.

.deb is a Debian Binary Package—the binary package format used by the Debian GNU/Linux distribution. It is manipulated using dpkg and dpkg-deb (available on Debian systems and from ftp://ftp.debian.org//).

.rpm is a Red Hat RPM package, which is used in the Red Hat and similar distributions.

.sit is a compressed Macintosh archive made with StuffIt, a commercial program. Aladdin Systems Inc., the manufacturer of StuffIt, has a free expander utility that will uncompress these archives. You can download it at http://www.aladdinsys.com/expander/.

The file command can often tell you what a file is.

If you find that gzip complains when you try to uncompress a file, you probably downloaded it in ASCII mode by mistake. You must download most things in binary mode: ``get,'' to download the file.

8.5. What Does VFS Stand For?

Virtual File System. It's the abstraction layer between the user and real file systems like ext2, Minix and MS-DOS. Among other things, its job is to flush the read buffer when it detects a disk change on the floppy disk drive.

   VFS: Disk change detected on device 2/0

8.6. What is a BogoMip?

``BogoMips'' is a combination of Bogus and Mips. MIPS stands for (depending on who you ask) Millions of Instructions per Second, or Meaningless Indication of Processor Speed.

The number printed at boot time is the result of a kernel timing calibration, used for very short delay loops by some device drivers.

According to the BogoMips mini-HOWTO, the rating for your machine will be:

                      Common BogoMips Ratings

   Processor                  BogoMips         Comparison
   ---------                  --------         ----------
   Intel 8088                 clock * 0.004    0.02
   Intel/AMD 386SX            clock * 0.14     0.8
   Intel/AMD 386DX            clock * 0.18     1 (definition)
   Motorola 68030             clock * 0.25     1.4
   Cyrix/IBM 486              clock * 0.34     1.8
   Intel Pentium              clock * 0.40     2.2
   Intel 486                  clock * 0.50     2.8
   AMD 5x86                   clock * 0.50     2.8
   Mips R4000/R4400           clock * 0.50     2.8
   Nexgen Nx586               clock * 0.75     4.2
   PowerPC 601                clock * 0.84     4.7
   Alpha 21064/21064A         clock * 0.99     5.5
   Alpha 21066/21066A         clock * 0.99     5.5
   Alpha 21164/21164A         clock * 0.99     5.5
   Intel Pentium Pro          clock * 0.99     5.5
   Cyrix 5x86/6x86            clock * 1.00     5.6
   Intel Pentium II/III       clock * 1.00     5.6
   Intel Celeron              clock * 1.00     5.6
   Mips R4600                 clock * 1.00     5.6
   Alpha 21264                clock * 1.99     11.1
   AMD K5/K6/K6-2/K6-III      clock * 2.00     11.1
   UltraSparc II              clock * 2.00     11.1
   Pentium MMX                clock * 2.00     11.1
   PowerPC 604/604e/750       clock * 2.00     11.1
   Motorola 68060             clock * 2.01     11.2
   Motorola 68040             Not enough data (yet).
   AMD Athlon                 Not enough data (yet).
   IBM S390                   Not enough data (yet).

If the number is wildly lower, you may have the Turbo button or CPU speed set incorrectly, or have some kind of caching problem (as described in (``When Adding More Memory, the System Slows to a Crawl.'')

For values people have seen with other, rarer, chips, or to calculate your own BogoMips rating, please refer to the BogoMips Mini-HOWTO, on ftp://metalab.unc.edu/. (``Where Is the Documentation?'')

[Wim van Dorst]

8.7. What Online/Free Periodicals Exist for Linux?

There are a number of recent additions to the list of periodicals devoted to Linux and free software:

Please send additions to this list to the FAQ maintainer.

[Jim Dennis, Robert Kiesling]

8.8. How Many People Use Linux?

Linux is freely available, and no one is required to register with any central authority, so it is difficult to know. Several businesses survive solely on selling and supporting Linux. Linux news groups are some of the most heavily read on Usenet. Accurate numbers are hard to come by, but the number is almost certainly in the millions.

However, people can register as Linux users at the Linux Counter project, which has been in existence since 1993. In August, 1998, the project counted more than 70,000 users.

Visit the Web site at http://counter.li.org/ and fill in the registration form. If you don't want to use the Web, send E-mail to with the subject line, ``I use Linux at home,'' or ``I use Linux at work.''

The current count is posted monthly to comp.os.linux.misc, and is always available from the Web site.

[Harald Tveit Alvestrand]

8.9. How Many People Use Linux? (Redux.)

In 1999, International Data Corporation released its first commercial forecast of Linux sales. The report quantifies Linux vendor sales in 1996, 1997, and 1998, and forecasts through the year 2003.

To obtain the report, contact IDC at . Their Web site is http://www.itresearch.com/.

8.10. What Is the Best (Distribution|SCSI Card|Editor|CD-ROM Drive|....)

The ``best'' of anything depends on your particular needs. Discussions like these frequently occur on Usenet. Most often they're flame bait. Answering is generally a waste of time. Free software licensing is unrestrictive enough, that, with a little experience, you can perform your own testing on your own hosts.

A better way to phrase a specific inquiry might be: ``Where can I find....''

8.11. How Does One Pronounce Linux?

This question produces an outrageous amount of heated debate.

If you want to hear Linus himself say how he pronounces it, download english.au or swedish.au from ftp.funet.fi/pub/Linux/PEOPLE/Linus/SillySounds/. If you have a sound card or the PC-speaker audio driver you can hear them by typing

   $ cat english.au >/dev/audio

The difference isn't in the pronunciation of Linux but in the language Linus uses to say, ``hello.''

For the benefit of those who don't have the equipment or inclination: Linus pronounces Linux approximately as Leenus, where the ``ee'' is pronounced as in ``feet,'' but rather shorter, and the ``u'' is like a much shorter version of the French ``eu'' sound in ``peur'' (pronouncing it as the ``u'' in ``put'' is probably passable).