
Dateitypen in Linux
Wie erkennt ein Betriebssystem mit welchem Programm eine Datei zu öffnen ist?
Linux funktioniert ein bisschen anders als Windows. Die meisten Benutzer sind so an das Windows, oder eher MSDOS-System, das hinter Windows die Arbeit verrichtet
gewohnt, dass ich hier den Artikel als Vergleich dazu schreibe. Wenn Du das erste Mal mit Computern in Berührung kommst und nicht die Windows-Denkweise gewohnt bist,
empfehle ich diesen Artikel nicht unbedingt, da das System das in Linux verwendet wird während der Benutzung gelernt werden kann, genauso wie bei dem MSDOS-System auch.
MSDOS / Windows
Windows basiert heute noch auf dem Betriebssystem MSDOS. Zwar werkelt im Hintergrund nicht mehr MSDOS selbst, sondern verbesserte Schnittstellen, aber da Windows auch
abwärtskompatibel sein möchte, kann man auf Windows immer noch wie vor 20 Jahren arbeiten. Du kannst auf Start klicken, ausführen wählen und cmd ausführen, so bekommst Du die
MSDOS Eingabemaske, wie sie schon seit Informatik-Ewigkeiten auf Bildschirmen flimmert.
Ursprünglich war in MSDOS nur Dateinamen mit maximal 8 Zeichen, einem Punkt und drei Zeichen für die Dateitypkennung erlaubt. Sie bestanden aus Buchstaben, Zahlen und
ein paar wenigen Sonderzeichen, wie zum Beispiel _ oder -.
Die Dateien sahen demnach so aus:
dateinam.txt
dateinam ist der gewählte Dateinamen, der Punkt markiert die Trennung von der Typbezeichnung und nach dem Punkt kommt hier die Bezeichnung TXT, was für eine reine Textdatei steht.
Dieses System nennt man 8.3 System.
Mittlerweile werden auch längere Dateinamen unterstützt, aber das Grundprinzip, wonach MSDOS/Windows erkennt welche Datei mit welchem Programm geöffnet werden muss gilt immer noch.
Wenn man also eine Datei mit der Endung .EXE (executable = ausführbar) umbenennt in .TXT, versucht Windows die Datei mit dem Texteditor zu öffnen, anstatt sie als Anwendung auszuführen.
Linux
In Linux werden die Magic Numbers aus den Dateien ausgelesen. Das sind HEX oder Bytewerte ganz am Anfang einer Datei die bestimmen, was für ein Dateityp
Die jeweilige Datei ist. Mehr Infos hier (mit Beispielen!)
Die gänigsten Dateitypen haben alle im header (Kopf; meist die erste Zeile einer Datei) die Dateitypenbezeichnung.
Bekannte Dateitypen
- GIF-Dateien enthalten am Anfang den ASCII-Code für GIF89a (0x474946383961) oder GIF87a (0x474946383761)
- JPEG/JFIF-Dateien fangen mit 0xFFD8FF an und enthalten weiterhin die ASCII-Entsprechung für JFIF (0x4A464946)
- PNG-Dateien beginnen mit einer 8-Byte-Signatur, die die Datei als PNG identifiziert und eine Erkennung von Dateiübertragungsproblemen ermöglicht: \211 P N G \r \n \032 \n (0x89504e470d0a1a0a)
- Standard-MIDI-Dateien enthalten die ASCII-Zeichenfolge MThd (0x4D546864) gefolgt von Metadaten.
- Unix-Scripte aller Art starten normalerweise mit einem Shebang, #! (0x23 0x21), gefolgt von einem Pfad zum Interpreter (z. B. ,#!/usr/bin/perl für Perl, oder für Shellprogramme/Batches #!/bin/sh)
- MS-DOS-EXE-Dateien und Microsoft-Windows-PE-Dateien (Portable Executable) starten mit den ASCII-Zeichen MZ (0x4D5A) bzw. selten auch ZM (0x5A4D), den Initialen des Erfinders dieses Formats, Mark Zbikowski.
Infos zum Dokument
Author: Christoph Iseli
Datum: 07.07.2013