8. Miscellaneous information and questions answered.

-------------------------------------------------------------------------------

8.1 How do I program XYZ under Linux?

Read the manuals, or a good book on Unix. Manual pages (type ``man man'') are usually a good source of reference information on exactly how to use a particular command or function.

There is also a lot of GNU Info documentation, which is often more useful as a tutorial. Run Emacs and type C-h 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 progject 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 sunsite.unc.edu in /pub/Linux/docs/man-pages.

-------------------------------------------------------------------------------

8.2 What's all this about ELF?

See the ELF HOWTO by Daniel Barlow--note, 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 tsx-11.mit.edu in /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.

-------------------------------------------------------------------------------

8.3 What is a .gz file ? And a .tgz ? And ... ?

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

.taz and .tz are tar files (made with Unix tar) compressed using standard Unix compress.

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

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

.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.debian.org).

.rpm is a Red Hat RPM package, which is used in the Red Hat distribution. They can be found on ftp.redhat.com.

.bz2 is a file compressed by the more recent bzip program.

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

If you find that gzip complains when you try to uncompress a gzip'ed file you probably downloaded it in ASCII mode by mistake. You must download most things in binary mode--remember to type binary as a command in FTP before using, ``get,'' to get the file.

-------------------------------------------------------------------------------

8.4 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.5 What is a BogoMip?

``BogoMips'' is a contraction of ``Bogus MIPS.'' MIPS stands for (depending who you listen to) 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.

As a very rough guide, the BogoMips rating for your machine will be approximately:

     386SX              clock * 0.14
     386DX              clock * 0.18
     486Cyrix/IBM       clock * 0.33
     486SX/DX/DX2       clock * 0.50
     586                clock * 0.39
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 I add more memory, the system slows to a crawl. .'')

For values people have seen with other, rarer, chips, see the BogoMips Mini-HOWTO, on sunsite.unc.edu in /pub/Linux/docs/howto/mini/BogoMips/.

-------------------------------------------------------------------------------

8.6 What is the Linux Journal and where can I get it?

The Linux Journal is a monthly magazine (printed on paper) that is available on news stands and via subscription worldwide. Email linux@ssc.com for details. Their URL is http://www.ssc.com/.

-------------------------------------------------------------------------------

8.7 What online/free periodicals exist for Linux?

There are a number of recent additions to the list of periodicals devoted to Linux.

[Jim Dennis, Robert Kiesling]

-------------------------------------------------------------------------------

8.8 How many people use Linux?

Linux is freely available, and no one is required to register their copy with any central authority, so it is difficult to know. Several businesses survive solely on selling and supporting Linux. The Linux newsgroups are some of the most heavily read on Usenet, so the number is likely in the hundreds of thousands. Accurate numbers probably don't exist.

However, one brave soul, Harald T. Alvestrand, Harald.T.Alvestrand@uninett.no, has decided to try, and asks that if you use Linux, 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 will also accept `third party' registrations--ask him for details.

Alternatively, you can register using the WWW forms found at http://domen.uninett.no/~hta/linux/counter.html.

He posts his counts to aun.uninett.no in /pub/misc/linux-counter/ or at the web page above.

-------------------------------------------------------------------------------

8.9 How should I pronounce Linux?

This is a matter of religious debate, of course!

If you want to hear Linus himself say how he pronounces it, download english.au or swedish.au from ftp.funet.fi (in /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).

===============================================================================