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 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 file system, 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.