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.