Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Linux Features

Download as doc, pdf, or txt
Download as doc, pdf, or txt
You are on page 1of 5

2.

Linux Features
• multitasking: several programs running at the same time.
• multiuser: several users on the same machine at the same time (and no two-user
licenses!).
• multiplatform: runs on many different CPUs, not just Intel.
• multiprocessor: SMP support is available on the Intel and SPARC platforms (with
work currently in progress on other platforms), and Linux is used in several
loosely-coupled MP applications, including Beowulf systems (see
http://cesdis.gsfc.nasa.gov/linux-web/beowulf/beowulf.html) and the Fujitsu
AP1000+ SPARC-based supercomputer.
• multithreading: has native kernel support for multiple independent threads of
control within a single process memory space.
• runs in protected mode on the 386.
• has memory protection between processes, so that one program can't bring the
whole system down.
• demand loads executables: Linux only reads from disk those parts of a program
that are actually used.
• 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.
• 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 (2GB in recent kernels) swapping areas can be used at
the same time, for a theoretical total of 2 GB of useable swap space. It is simple to
increase this if necessary, by changing a few lines of source code.
• 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.
• dynamically linked shared libraries (DLL's), and static libraries too, of course.
• 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.
• mostly compatible with POSIX, System V, and BSD at the source level.
• through an iBCS2-compliant emulation module, mostly compatible with SCO,
SVR3, and SVR4 at the binary level.
• 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.
Plenty of commercial programs are being provided for Linux without source, but
everything that has been free, including the entire base operating system, is still
free.
• POSIX job control.
• pseudoterminals (pty's).
• 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.
• support for many national or customized keyboards, and it is fairly easy to add
new ones dynamically.
• 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.
• Supports several common filesystems, including minix, 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.
• 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 without a patch (dmsdosfs). VFAT (WNT, Windows 95) support and
FAT-32 is available in Linux 2.0
• special filesystem called UMSDOS which allows Linux to be installed on a DOS
filesystem.
• read-only HPFS-2 support for OS/2 2.1
• HFS (Macintosh) file system support is available separately as a module.
• CD-ROM filesystem which reads all standard formats of CD-ROMs.
• TCP/IP networking, including ftp, telnet, NFS, etc.
• Appletalk server
• Netware client and server
• Lan Manager/Windows Native (SMB) client and server
• Many networking protocols: the base protocols available in the latest development
kernels include TCP, IPv4, IPv6, AX.25, X.25, IPX, DDP (Appletalk), Netrom,
and others. Stable network protocols included in the stable kernels currently
include TCP, IPv4, IPX, DDP, and AX.25.

1. Introduction to Linux
Linux is a completely free reimplementation of the POSIX specification, 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. Its copyright
is owned by Linus Torvalds <torvalds@transmeta.com> and other contributors, and is
freely redistributable under the terms of the GNU General Public License (GPL). A copy
of the GPL is included with the Linux source; you can also get a copy from
ftp://prep.ai.mit.edu/pub/gnu/COPYING

Linux, per se, is only the kernel of the operating system, the part that controls hardware,
manages files, separates processes, and so forth. There are several combinations of Linux
with sets of utilities and applications to form a complete operating system. Each of these
combinations is called a distribution of Linux. The word Linux, though it in its strictest
form refers specifically to the kernel, is also widely and correctly to refer to an entire
operating system built around the Linux kernel. For a list and brief discription of various
distributions, see http://sunsite.unc.edu/LDP/HOWTO/Distribution-HOWTO.html None
of these distributions is ``the official Linux''.

Linux is not public domain, nor is it `shareware'. It is `free' software, commonly called
freeware or Open Source Software[tm] (see http://www.opensource.org), and you may
give away or sell copies, but you must include the source code or make it available in the
same way as any binaries you give or sell. If you distribute any modifications, you are
legally bound to distribute the source for those modifications. See the GNU General
Public License for details.

Linux is still free as of version 2.0, and will continue to be free. Because of the nature of
the GPL to which Linux is subject, it would be illegal for it to be made not free. Note
carefully: the `free' part involves access to the source code rather than money; 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 on 386/486/Pentium machines with ISA, EISA, PCI and VLB busses. MCA
(IBM's proprietary bus) is not well-supported in 2.0.x and earlier versions, but support
has been added to the current development tree, 2.1.x. If you are interested, see
http://glycerine.itsmm.uni.edu/mca

There is a port to multiple Motorola 680x0 platforms (currently running on some Amigas,
Ataris, and VME machines), which now works quite well. It requires a 68020 with an
MMU, a 68030, 68040, or a 68060, and also requires an FPU. Networking and X now
work. See news:comp.os.linux.m68k

Linux runs well on DEC's Alpha CPU, currently supporting the "Jensen", "NoName",
"Cabriolet", "Universal Desktop Box" (better known as the Multia), and many other
platforms. For more information, see http://www.azstarnet.com/~axplinux/FAQ.html

Linux runs well on Sun SPARCs; most sun4c, sun4m, and sun4u machines now run
Linux, with support for sun4 in development. Red Hat Linux is (as of this writing) the
only Linux distribution available for SPARCs; see
http://www.redhat.com/support/docs/rhl-sparc/

Linux is being actively ported to the PowerPC architecture, including PowerMac (Nubus
and PCI), Motorola, IBM, and Be machines. See http://www.cs.nmt.edu/~linuxppc/ and
http://www.linuxppc.org/

Ports to other machines, including MIPS (see http://linus.linux.sgi.com and


http://lena.fnet.fr/) and ARM, 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 n.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.2.2 to 1.2.3, there were only bug fixes, and no new features. Versions n.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 development will continue on a new development version of the kernel. Note that
most releases of the Linux kernel, beta or not, are relatively robust; ``stable'' in this
context means ``slow to change'' in addition to ``robust''.

The current stable version is 2.0.35 (this will continue to change as new device drivers
get added and bugs fixed), and development has also started on the experimental 2.1.x
kernels. The Linux kernel source code contains a file, Documentation/Changes, which
explains changes that you should be aware of when upgrading from one kernel version to
another. However, the great majority of Linux users simply update their Linux
distribution occasionally to get a new kernel version.

Most versions of Linux, beta or not, are quite robust, 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.97p1 (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
site still had a computer running Linux 0.99p15s over 600 days at last report.

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 of 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. The latest release of such software to the public is sometimes of higher
quality, but the development speed is generally much slower.

For a discussion of these two models, read ``The Cathedral and the Bazaar'' at
http://sagan.earthspace.net/~esr/writings/cathedral-bazaar/ by Eric Raymond.
As of September 1, 1998, the current stable version of Linux is 2.0.35, and the latest
development version is 2.1.119.

Next Previous Contents

You might also like