- Multitasking: mehrere Programme laufen zur selben Zeit.
- Multiuser: mehrere Benutzer arbeiten gleichzeitig auf demselben Rechner
(und keine Lizenzen für mehrere Benutzer!).
- Multiplattform: läuft auf vielen verschiedenen CPUs, nicht nur Intel.
- Multiprozessor: SMP-Unterstützung steht auf Intel- und
SPARC-Plattformen zur Verfügung (an anderen Plattformen wird gearbeitet).
Linux wird für verschiedene »loosely-coupled« MP-Applikationen benutzt,
Beowulf-Systeme (siehe
http://cesdis.gsfc.nasa.gov/linux-web/beowulf/beowulf.html
)
und der SPARC-basierte Fujitsu AP1000+ Supercomputer eingeschlossen.
- läuft im geschützten Modus auf dem 386
- hat Speicherschutz zwischen Prozessen, sodaß ein Programm nicht das
ganze System zum Absturz bringen kann
- Ausführbarer Code wird nach Bedarf geladen: Linux liest nur diejenigen
Teile eines Programms von Platte, die tatsächlich benutzt werden.
- Shared copy-on-write Pages für ausführbaren Code. Das heißt, daß
mehrere Prozesse denselben Speicherbereich belegen können. Wenn ein
Prozeß versucht, in eine Speicherseite zu schreiben, dann wird die
Speicherseite (4KB an Speicher) woanders hinkopiert. Copy-on-write hat
zwei Vorteile: die Geschwindigkeit erhöht sich und es wird weniger
Speicher belegt.
- Virtueller Speicher benutzt Paging auf Festplatte: Es werden nicht
komplette Prozesse ausgelagert, sondern nur soviele Speicherseiten, wie
ein anderer Prozeß gerade anfordert. Dies geschieht auf eine separate
Partition oder in eine Datei im Dateisystem oder beides, mit der
Möglichkeit, während des Betriebs Auslagerungsbereiche hinzuzufügen
(ja, man spricht immer noch von Auslagerungsbereichen). Insgesamt
können 16 dieser 128 MB großen Bereiche auf einmal benutzt werden.
Das ergibt theoretisch einen Gesamtwert von 2 GB an verwendbarem
Auslagerungsbereich. Bei Bedarf kann dies leicht durch ändern einiger
Zeilen im Quellcode erweitert werden.
- Ein gemeinsamer Speicherpool für Anwender-Programme und Plattenpuffer,
sodaß der gesamte freie Speicher für den Cache verwendet werden kann,
der Cache aber reduziert werden kann, wenn große Programme laufen.
- Dynamisch gelinkte Shared Libraries (DLL's), und natürlich auch
statisch gelinkte Libraries.
- Führt »core dumps« (Speicherabzüge) für Post-Mortem-Analysen aus.
Dadurch wird die Anwendung eines Debuggers auf ein Programm nicht nur
während dieses läuft, sondern auch nachdem es abgestürzt ist, möglich.
- Weitgehend kompatibel mit POSIX, System V und BSD auf der Ebene des
Quellcodes.
- Durch ein iBCS2-verträgliches Emulationsmodul auf Binärebene weitgehend
mit SCO, SVR3 und SVR4 kompatibel.
- Der gesamte Quellcode ist verfügbar, das komplette Kernel, alle
Treiber, die Entwicklungswerkzeuge und alle Nutzerprogramme
eingeschlossen. Alles ist auch frei verteilbar. Es gibt eine Vielzahl
an kommerziellen Programmen für Linux, die ohne Sourcecode ausgeliefert
werden, aber alles, was einmal frei war, das gesamte Betriebssystem
eingeschlossen, ist immer noch frei erhältlich.
- POSIX Job Control.
- Pseudoterminals (pty's).
- 387-Emulation im Kernel, sodaß Anwendungen nicht selbst einen
Koprozessor emulieren müssen. Jeder Rechner unter Linux stellt sich so
dar, als hätte er einen mathematischen Koprozessor. Falls natürlich
der Rechner tatsächlich eine FPU enthält, dann wird diese anstelle der
Emulation benutzt. Man kann sogar einen eigenen Kernel ohne
Koprozessoremulation kompilieren, um ein bißchen Speicher zu sparen.
- Unterstützung für viele nationale oder speziell angepaßte Tastaturen.
Es ist auch ganz einfach, dynamisch neue hinzuzufügen.
- Mehrere virtuelle Konsolen: mehrere unabhängige Zugänge zugleich über
die Konsole. Man kann dabei durch eine spezielle Tastenkombination
hin- und herschalten (unabhängig von der Grafikhardware). Die
virtuellen Konsolen werden dynamisch angelegt. Bis zu 64 Stück kann
man benutzen.
- Unterstützt verschiedene gängige Dateisysteme, wie z.B. Minix,
Xenix und alle gängigen System-V-Dateisysteme; hat ein ausgefeiltes
eigenes Dateisystemschema, welches Dateisysteme bis zu 4 TB mit
Dateinamen von bis zu 255 Zeichen Länge bietet.
- Transparenter Zugriff auf MS-DOS Partitionen (oder OS/2 FAT-Partitionen)
über ein spezielles Dateisystem: man braucht keine speziellen Befehle
zur Benutzung der MS-DOS-Partition, sie präsentiert sich einfach wie
ein normales UNIX-Dateisystem (abgesehen von komischen Beschränkungen
für Dateinamen, Berechtigungen, etc). Mit MS-DOS 6 komprimierte
Partitionen funktionieren derzeit nicht ohne Patch (dmsdosfs). VFAT
(WNT, Windows 95) wird in Linux 2.0 unterstützt.
- Ein spezielles Dateisystem namens UMSDOS, das es ermöglicht, Linux in
einem DOS-Dateisystem zu installieren.
- Lesezugriff für HPFS-2 von OS/2 2.1 wird unterstützt.
- HFS-Dateisystem-Unterstützung (Macintosh) ist separat als Modul
erhältlich.
- CD-ROM-Dateisystem, das alle gängigen CD-ROM-Formate liest.
- TCP/IP Netzwerkunterstützung, einschließlich ftp, telnet, NFS etc.
- Appletalk Server
- Netware Client und Server
- Lan Manager (SMB) Client und Server
- Viele Netzwerkprotokolle: die Basisprotokolle der neuen
Entwicklungskernel beinhalten TCP, IPv4, IPv6, AX.25, X.25, IPX,
DDP (Appletalk), NetBEUI, Netrom u.a. Stabile Netzwerkprotokolle der
stabilen Kernel beinhalten derzeit TCP, IPv4, IPX, DDP und AX.25.