Datei Format
A Datei Format ist ein Standard wie diese Informationen für die Speicherung in a codiert werden Computerdatei. Es gibt an, wie Bits werden verwendet, um Informationen in einem digitalen Speichermedium zu codieren. Dateiformate können entweder sein proprietär oder frei.
Einige Dateiformate sind für ganz bestimmte Arten von Daten ausgelegt: Png Dateien speichern zum Beispiel bitmapped Bilder Verwendung Verlustlose Datenkomprimierung. Andere Dateiformate sind jedoch für die Speicherung verschiedener Datenarten ausgelegt: die Ogg Format kann als Container für verschiedene Arten von Multimedia einschließlich einer beliebigen Kombination von Audio- und Video, mit oder ohne Text (wie z. Untertitel), und Metadaten. EIN Textdatei kann einen Strom von Zeichen enthalten, einschließlich möglicher Zeichen Steuerzeichenund ist in einem von verschiedenen codiert Charakter -Codierungsschemata. Einige Dateiformate wie z. Html, Skalierbare Vektorgrafiken, und die Quellcode von Computer Software sind Textdateien mit definiert Syntaxe Dadurch können sie für bestimmte Zwecke verwendet werden.
Spezifikationen
Dateiformate haben oft eine veröffentlichte Spezifikation Beschreibung der Codierungsmethode und Ermöglichung von Testen der beabsichtigten Funktionalität. Nicht alle Formate haben frei verfügbare Spezifikationsdokumente, teilweise, weil einige Entwickler ihre Spezifikationsdokumente als als ansehen Geschäftsgeheimnisseund teilweise, weil andere Entwickler niemals ein formales Spezifikationsdokument erstellen, das von anderen bereits vorhandenen Programmen, die das Format verwenden, das Format durch die Verwendung dieser vorhandenen Programme durch andere vorhandene Programme festlegen.
Wenn der Entwickler eines Formats keine kostenlosen Spezifikationen veröffentlichen, muss ein anderer Entwickler, der diese Art von Datei verwenden möchte, entweder Rückwärtsingenieur Die Datei, um herauszufinden, wie Sie es lesen oder das Spezifikationsdokument aus den Entwicklern des Formats gegen eine Gebühr und durch Unterzeichnung a erwerben Geheimhaltungsvereinbarung. Der letztere Ansatz ist nur möglich, wenn ein formales Spezifikationsdokument vorliegt. Beide Strategien erfordern erhebliche Zeit, Geld oder beides; Daher werden Dateiformate mit öffentlich verfügbaren Spezifikationen in der Regel durch weitere Programme unterstützt.
Patente
Patent Gesetz und nicht Urheberrechte ©, wird häufiger zum Schutz eines Dateiformats verwendet. Obwohl Patente für Dateiformate nach dem US -Gesetz nicht direkt gestattet sind, codieren einige Formate Daten mit patentiertem Algorithmen. Beispielsweise verwenden Sie die Komprimierung mit dem GIF Das Dateiformat erfordert die Verwendung eines patentierten Algorithmus, und obwohl der Patentbesitzer sein Patent zunächst nicht durchsetzte, begannen sie später mit dem Sammeln Lizenzgebühren. Dies hat zu einer signifikanten Verringerung der Verwendung von GIFs geführt und ist teilweise für die Entwicklung der Alternative verantwortlich Png Format. Das GIF-Patent lief jedoch Mitte 2003 in den USA und weltweit Mitte 2004 ab.
Dateityp identifizieren
Anders Betriebssysteme haben traditionell unterschiedliche Ansätze zur Bestimmung des Formats einer bestimmten Datei verfolgt, wobei jeder Ansatz seine eigenen Vor- und Nachteile hat. Die meisten modernen Betriebssysteme und einzelnen Anwendungen müssen alle folgenden Ansätze verwenden, um "Fremd" -Dateiformate zu lesen, wenn nicht vollständig mit ihnen zusammenarbeiten.
Dateiname Erweiterung
Eine beliebte Methode, die von vielen Betriebssystemen verwendet wird, einschließlich Fenster, Mac OS, CP/m, DOS, VMs, und VM/CMS, soll das Format einer Datei basierend am Ende seines Namens bestimmen, genauer gesagt die Buchstaben nach der endgültigen Periode. Dieser Teil des Dateinamens ist als der bekannt Dateiname Erweiterung. Zum Beispiel, Html Dokumente werden mit Namen identifiziert, die mit enden mit .html (oder .htm), und GIF Bilder von .gif. Im Original FETT Dateisystem, Dateinamen wurden auf eine Kennung von acht Zeichen und eine Drei-Charakter-Erweiterung beschränkt, die als ein bekannt ist 8.3 Dateiname. Es gibt eine begrenzte Anzahl von Drei-Buchstaben-Erweiterungen, die dazu führen können, dass eine bestimmte Erweiterung von mehr als einem Programm verwendet wird. Viele Formate verwenden weiterhin Drei-Charakter-Erweiterungen, obwohl moderne Betriebssysteme und Anwendungsprogramme diese Einschränkung nicht mehr aufweisen. Da es keine Standardliste von Erweiterungen gibt, kann mehr als ein Format dieselbe Erweiterung verwenden, was sowohl das Betriebssystem als auch die Benutzer verwirren kann.
Ein Artefakt dieses Ansatz Html Die Datei kann beispielsweise leicht als behandelt werden einfacher Text durch Umbenennen von Dateiname.html zu Dateiname.txt. Obwohl diese Strategie für fachkundige Benutzer nützlich war, die diese Informationen leicht verstehen und manipulieren konnten, war sie für weniger technische Nutzer oft verwirrend, die versehentlich eine Datei unbrauchbar machen (oder sie "verlieren"), indem sie sie falsch umbenennen.
Dies führte die meisten Versionen von Windows und Mac OS, um die Erweiterung beim Auflisten von Dateien auszublenden. Dies verhindert, dass der Benutzer den Dateityp versehentlich ändert, und ermöglicht es Experten -Benutzern, diese Funktion auszuschalten und die Erweiterungen anzuzeigen.
Durch das Verstecken der Erweiterung kann jedoch zwei oder mehr identische Dateinamen im selben Ordner erscheint. Zum Beispiel kann ein Firmenlogo beides in erforderlich sein .eps Format (zum Veröffentlichen) und .png Format (für Websites). Mit den sichtbaren Erweiterungen würden diese als einzigartige Dateinamen erscheinen: "CompanyLogo.eps" und "CompanyLogo.png". Andererseits würde das Verstecken der Verlängerungen beide als" erscheinen lassen "Firmenlogo", was zu Verwirrung führen kann.
Das Verstecken von Erweiterungen kann auch ein Sicherheitsrisiko darstellen.[1] Zum Beispiel könnte ein böswilliger Benutzer eine erstellen ausführbares Programm mit einem unschuldigen Namen wie "Urlaubsfoto.jpg.exe". Das ".exe"wäre versteckt und ein ahnungsloser Benutzer würde sehen"Urlaubsfoto.jpg", was scheint ein JPEG Bild, normalerweise nicht in der Lage, die Maschine zu schaden. Das Betriebssystem würde jedoch immer noch das "sehen".exeErweiterung und Ausführen des Programms, das dann den Computer schaden könnte. Gleiches gilt für Dateien mit nur einer Erweiterung: Da es dem Benutzer nicht angezeigt wird, können keine Informationen über die Datei abgeleitet werden, ohne explizit zu untersuchen Die Datei. Um Benutzer weiter zu wecken, ist es möglich, ein Symbol innerhalb des Programms zu speichern. In diesem Fall einige Betriebssystem -Symbolzuweisung für die ausführbare Datei ((.exe) würde mit einem Symbol überschrieben, das üblicherweise zur Darstellung von JPEG -Bildern verwendet wird, sodass das Programm wie ein Bild aussieht. Erweiterungen können auch gefälscht werden: einige Microsoft Word Makroviren erstellen eine Wortdatei im Vorlagenformat und speichern Sie sie mit a .doc Verlängerung. Da Word im Allgemeinen Erweiterungen ignoriert und das Format der Datei betrachtet, würden diese das Virus als Vorlagen geöffnet, ausgeführt und verbreitet. Dies stellt ein praktisches Problem für Windows-Systeme dar, bei dem standardmäßig die Erweiterung eingeschaltet wird.
Interne Metadaten
Ein zweiter Weg, um ein Dateiformat zu identifizieren, besteht darin Informationen verwenden In Bezug auf das in der Datei selbst gespeicherte Format entweder für diesen Zweck bestimmte Informationen oder Binäre Saiten Das befindet sich immer an bestimmten Stellen in Dateien einiger Formate. Da der einfachste Ort, um sie zu lokalisieren Dateiheader Wenn es größer als ein paar ist Bytes, oder ein magische Zahl Wenn es nur ein paar Bytes lang ist.
Dateiheader
Die Metadaten enthalten in a Dateiheader werden normalerweise zu Beginn der Datei gespeichert, können jedoch auch in anderen Bereichen vorhanden sein, häufig auch das Ende, abhängig vom Dateiformat oder der Art der enthaltenen Daten. Zeichenbasierte (Text-) Dateien haben normalerweise charakterbasierte Header, während binäre Formate normalerweise binäre Header aufweisen, obwohl dies keine Regel ist. Textbasierte Dateiheader nehmen normalerweise mehr Platz ein, aber da sie jedoch von Menschen gelesen werden, können sie problemlos mit einer einfachen Software wie einem Texteditor oder einem Hexadezimal-Editor untersucht werden.
Die Datei -Header können nicht nur das Dateiformat identifizieren, sondern auch Metadaten über die Datei und deren Inhalt enthalten. Zum Beispiel die meisten Bilddateien Speichern Sie Informationen zu Bildformat, Größe, Auflösung und Farbraumund optional Authoring Informationen wie wer das Bild gemacht hat, wann und wo es gemacht wurde, welche Kameratomodell und fotografische Einstellungen wurden verwendet (Exif), usw. Solche Metadaten können durch Software verwendet werden, die die Datei während des Ladevorgangs und danach liest oder interpretiert.
Dateiheader können von einem Betriebssystem verwendet werden, um schnell Informationen über eine Datei zu sammeln, ohne alles in den Speicher zu laden. Dadurch verwendet dies jedoch mehr Ressourcen eines Computer Verzeichnis Information. Zum Beispiel wenn a Grafik Dateimanager Muss den Inhalt eines Ordners angezeigt werden, muss die Header vieler Dateien gelesen werden, bevor die entsprechenden Symbole angezeigt werden können. Diese befinden sich jedoch an verschiedenen Stellen auf dem Speichermedium, wodurch der Zugriff länger dauert. Ein Ordner mit vielen Dateien mit komplexen Metadaten wie z. Miniaturansicht Informationen erfordern möglicherweise eine beträchtliche Zeit, bevor sie angezeigt werden können.
Wenn ein Kopfball ist Binär hartcodiert So dass der Header selbst eine komplexe Interpretation benötigt, um anerkannt zu werden, insbesondere für den willen des Metadateninhaltsschutzes, besteht das Risiko, dass das Dateiformat falsch interpretiert werden kann. Es könnte sogar schlecht in der Quelle geschrieben worden sein. Dies kann zu korrupten Metadaten führen, die in extrem schlechten Fällen die Datei sogar unlesbar machen könnten.[Klarstellung erforderlich]
Ein komplexeres Beispiel für Dateiheader sind diejenigen, für die verwendet wird Verpackung (oder Container) Dateiformate.
magische Zahl
Eine Möglichkeit, Metadaten vom Dateityp zu integrieren, häufig mit dem mit Unix und seine Derivate besteht darin, nur eine "magische Nummer" in der Datei selbst zu speichern. Ursprünglich wurde dieser Begriff für einen bestimmten Satz von 2-Byte-Identifikatoren an den Anfängen von Dateien verwendet. Da jedoch jede binäre Sequenz als Zahl angesehen werden kann, kann jedes Merkmal eines Dateiformats, das sie einzigartig unterscheidet, zur Identifizierung verwendet werden. GIF Bilder beginnen beispielsweise immer mit dem ASCII Darstellung von beides Gif87a oder Gif89a, abhängig von dem Standard, an dem sie haften. Viele Dateitypen, insbesondere einfache Textdateien, sind nach dieser Methode schwerer zu erkennen. HTML -Dateien können beispielsweise mit der Zeichenfolge beginnen (was nicht fallsempfindlich ist) oder eine angemessene Dokumenttypdefinition Das beginnt mit , oder für Xhtml, das Xml Kennung, der mit beginnt mit . Die Dateien können auch mit HTML -Kommentaren, zufälligem Text oder mehreren leeren Zeilen beginnen, aber dennoch nutzbar HTML.
Der Magic Number -Ansatz bietet bessere Garantie dafür, dass das Format korrekt identifiziert wird und häufig genauere Informationen über die Datei ermitteln kann. Da einigermaßen zuverlässige "Magic Number" -Tests ziemlich komplex sein können und jede Datei effektiv gegen jede Möglichkeit in der Magic-Datenbank getestet werden muss, ist dieser Ansatz relativ ineffizient, insbesondere für die Anzeige großer Listen von Dateien (im Gegensatz zu Dateinamen und Metadaten- Basierte Methoden müssen nur ein Datenstück überprüfen und gegen einen sortierten Index anpassen). Außerdem müssen Daten aus der Datei selbst gelesen werden, wodurch die Latenz im Gegensatz zu Metadaten erhöht wird, die im Verzeichnis gespeichert sind. Wenn sich Dateitypen auf diese Weise nicht zur Erkennung eignen, muss das System auf Metadaten zurückfallen. Es ist jedoch der beste Weg für ein Programm, um zu überprüfen ist ein ziemlich sicheres Zeichen dafür, dass die Datei entweder beschädigt oder vom falschen Typ ist. Andererseits garantiert eine gültige Zaubernummer nicht, dass die Datei nicht beschädigt oder korrekt ist.
Sogenannt Shebang Linien in Skriptdateien sind ein Sonderfall von magischen Zahlen. Hier ist die magische Nummer der menschliche lesbare Text, der einen bestimmten identifiziert Befehlsinterpreter und Optionen, die an den Befehlsinterpreter übergeben werden sollen.
Ein weiteres Betriebssystem mit magischen Zahlen ist Amigaos, wo magische Zahlen als "magische Cookies" bezeichnet wurden und als Standardsystem übernommen wurden, um ausführbare Säle in zu erkennen Stück Ausführbares Dateiformat und auch einzelne Programme, Tools und Dienstprogramme mit ihren gespeicherten Datendateien oder anderen Dateitypen beim Speichern und Laden von Daten automatisch behandeln. Dieses System wurde dann mit dem verbessert Amiga Standard Datentyp Erkennungssystem. Eine andere Methode war die Viercc Methode von Ursprung von Ostype auf Macintosh, später angepasst von Interchange -Dateiformat (IFF) und Derivate.
Externe Metadaten
Eine letzte Möglichkeit, das Format einer Datei zu speichern, besteht darin, Informationen über das Format im Dateisystem explizit zu speichern und nicht innerhalb der Datei selbst.
Dieser Ansatz hält die Metadaten sowohl von den Hauptdaten als auch vom Namen getrennt, ist aber auch weniger tragbar als entweder Dateiname -Erweiterungen oder "magische Zahlen", da das Format vom Dateisystem in das Dateisystem konvertiert werden muss. Dies gilt zwar auch in gewissem Maße mit Dateiname -Erweiterungen - zum Beispiel für die Kompatibilität mit MS-DOSDie drei Zeichengrenze - die meisten Speicherformen haben eine ungefähr äquivalente Definition der Daten und des Namens einer Datei, können jedoch eine unterschiedliche oder keine Darstellung weiterer Metadaten haben.
Beachten Sie, dass ZIP -Dateien oder Archivdateien das Problem der Handhabung von Metadaten lösen. Ein Versorgungsprogramm sammelt mehrere Dateien zusammen mit Metadaten über jede Datei und die Ordner/Verzeichnisse, aus denen sie innerhalb einer neuen Datei stammten (z. B. a Postleitzahl Datei mit Erweiterung .Postleitzahl). Die neue Datei ist auch komprimiert und möglicherweise verschlüsselt, ist aber jetzt als einzelne Datei über Betriebssysteme hinweg übertragbar Ftp Übertragungen oder per E -Mail als Anhang gesendet. Am Ziel muss die empfangene einzelne Datei von einem kompatiblen Dienstprogramm entpackt werden, um nützlich zu sein. Die Probleme der Handhabung von Metadaten werden auf diese Weise mit ZIP -Dateien oder Archivdateien gelöst.
Mac OS-Typ-Codes
Das Mac OS' Hierarchischer Dateisystem Speichert Codes für Schöpfer und Typ als Teil des Verzeichniseintrags für jede Datei. Diese Codes werden als Ostypen bezeichnet. Diese Codes könnten eine 4-Byte-Sequenz sein, wurden jedoch häufig so ausgewählt, dass die ASCII-Darstellung eine Sequenz sinnvoller Zeichen bildete, wie z. B. eine Abkürzung des Namens der Anwendung oder der Initialen des Entwicklers. Zum Beispiel a Hypercard "Stack" -Datei hat eine Schöpfer von WILD (aus Hypercards früherer Name "Wildcard") und a Typ von Stak. Das Bbedit Texteditor hat einen Erstellungscode von R*ch
In Bezug auf seinen ursprünglichen Programmierer Rich Siegel. Der Typ-Code gibt das Format der Datei an, während der Erstellungscode das Standardprogramm angibt, mit dem es beim Doppelklick vom Benutzer geöffnet wird. Zum Beispiel könnte der Benutzer mehrere Textdateien mit dem Typ -Code von haben TEXT, aber die jeweils in einem anderen Programm öffnen, weil sie unterschiedliche Schöpfercodes haben. Diese Funktion war so beabsichtigt, dass beispielsweise die menschlichen lesbaren Klartextdateien in einem Generalzweck-Texteditor geöffnet werden konnten, während Programmierdateien oder HTML-Code-Dateien in einem speziellen Editor oder geöffnet würden Ide. Diese Funktion war jedoch häufig die Quelle der Benutzerverwirrung, da das Programm startete, wenn die Dateien doppelt klickten, war oft unvorhersehbar. RISC OS Verwendet ein ähnliches System, das aus einer 12-Bit-Zahl besteht, die in einer Tabelle mit Beschreibungen nachgeschlagen werden kann-e.g. das hexadezimal Nummer FF5
ist "aliased" zu Poskript, darstellen a PostScript Datei.
Mac OS X Uniform Type Identifiers (UTIs)
Eine einheitliche Typidentifikatorin (UTI) ist eine Methode, die in verwendet wird Mac OS Für eindeutige Identifizierung von "Typed" -Kassen von Entität, wie z. B. Dateiformaten. Es wurde von entwickelt von Apfel als Ersatz für Ostype (Typ- und Erstellungscodes).
Die UTI ist a Kernfundament Saite, was a verwendet Reverse-DNS Saite. Einige gemeinsame und Standardtypen verwenden eine Domäne genannt Öffentlichkeit (z.B. public.png Für ein Tragbare Netzwerkgrafiken Bild), während andere Domänen für Drittentypen verwendet werden können (z. com.adobe.pdf zum Tragbares Dokumentformat). UTIs können in einer hierarchischen Struktur definiert werden, die als Konformitätshierarchie bezeichnet wird. Daher, public.png entspricht einem Supertyp von öffentliches Bild, was selbst einem Supertyp von entspricht public.data. Eine UTI kann in mehreren Hierarchien existieren, was eine große Flexibilität bietet.
Zusätzlich zu Dateiformaten können UTIs auch für andere Entitäten verwendet werden, die in macOS existieren können, einschließlich:
- Pasteboarddaten
- Ordner (Verzeichnisse)
- Übersetzbare Typen (wie vom Übersetzungsmanager behandelt)
- Bündel
- Frameworks
- Streaming -Daten
- Aliase und Symlinks
OS/2 erweiterte Attribute
Das HPFS, FAT12 und FAT16 (aber nicht fat32) Dateisysteme ermöglichen die Speicherung von "erweiterten Attributen" mit Dateien. Diese umfassen einen willkürlichen Satz von Tripletts mit einem Namen, einen codierten Typ für den Wert und einen Wert, bei dem die Namen eindeutig sind und die Werte bis zu 64 kb lang sein können. Es gibt standardisierte Bedeutungen für bestimmte Typen und Namen (unter OS/2). Eine davon ist, dass das erweiterte Attribut ".typ" verwendet wird, um den Dateityp zu bestimmen. Der Wert umfasst eine Liste von einer oder mehreren Dateitypen, die der Datei zugeordnet sind, von denen jedes eine Zeichenfolge wie "Klartext" oder "HTML -Dokument" ist. Somit kann eine Datei mehrere Typen haben.
Das NTFS Das Dateisystem ermöglicht auch die Speicherung von OS/2 -erweiterten Attributen als eine der Datei GabelnDiese Funktion ist jedoch lediglich vorhanden, um das OS/2 -Subsystem (nicht in XP vorhanden) zu unterstützen, sodass das Win32 -Subsystem diese Informationen als einen undurchsichtigen Datenblock behandelt und nicht verwendet. Stattdessen beruht es auf andere Dateigabeln, um die Meta-Information in Win32-spezifischen Formaten zu speichern. OS/2 -erweiterte Attribute können weiterhin von Win32 -Programmen gelesen und geschrieben werden, die Daten müssen jedoch vollständig von Anwendungen analysiert werden.
POSIX erweiterten Attribute
Auf Unix und Unix-artig Systeme, die ext2, ext3, ext4, Reiserfs Version 3, Xfs, JFS, Ffs, und HFS+ Dateisysteme ermöglichen die Speicherung erweiterter Attribute mit Dateien. Dazu gehören eine willkürliche Liste von "name = value" -Schaiteln, in denen die Namen eindeutig sind und über seinen zugehörigen Namen auf einen Wert zugegriffen werden kann.
Pronom einzigartige Identifikatoren (Puids)
Das Pronom persistent einzigartiger Kennung (Puid) ist ein erweiterbares Schema von anhaltenden, einzigartigen und eindeutigen Kennungen für Dateiformate, die von entwickelt wurden von Das Nationalarchive Großbritanniens als Teil seiner Pronom Technisches Register Service. Puiden können ausgedrückt werden als Einheitliche Ressourcenidentifikatoren Verwendung der Info: Pronom/ Namespace. Obwohl außerhalb der britischen Regierung und einige noch nicht weit verbreitet Digitale Erhaltung Programme, das PUID -Schema bietet eine größere Granularität als die meisten alternativen Programme.
MIME types
MIME Typen werden in vielen häufig verwendet Internet-Bezogene Anwendungen und zunehmend an anderer Stelle, obwohl ihre Verwendung für Informationen über die E-Disc-Art selten ist. Diese bestehen aus einem standardisierten Identifikationssystem (verwaltet von durch Iana) bestehend aus a Typ und ein Untertyp, getrennt durch a Schrägstrich-zum Beispiel, Text/HTML oder Bild/Gif. Diese waren ursprünglich als eine Möglichkeit, zu identifizieren, welche Art von Datei an einen beigefügt war Emailunabhängig von den Quell- und Zielbetriebssystemen. MIME -Typen identifizieren Dateien auf Beos, Amigaos 4.0 und Morphosund speichern Sie einzigartige Anwendungssignaturen für die Anwendungseinführung. In Amigaos und Morphos arbeitet das MIME -System parallel zu amigaspezifischem Datentypsystem.
Es gibt jedoch Probleme mit den MIME -Typen; Mehrere Organisationen und Personen haben ihre eigenen Mime -Typen erstellt, ohne sie ordnungsgemäß bei IANA zu registrieren, was die Verwendung dieses Standards in einigen Fällen unangenehm macht.
Dateiformatidentifikatoren (FFIDs)
Dateiformat -Identifikatoren sind eine andere, nicht weit verbreitete Möglichkeit, Dateiformate gemäß ihrem Ursprung und ihrer Dateikategorie zu identifizieren. Es wurde für die Beschreibung Explorer Suite von Software erstellt. Es besteht aus mehreren Ziffern der Form NNNNNNNNN-XX-YYYYYYY
. Der erste Teil gibt den Ursprung/den Betreuer der Organisation an (diese Zahl darstellt einen Wert in einer Unternehmensdatenbank für Unternehmen/Standards), die 2 folgenden Ziffern kategorisieren den Typ der Datei in hexadezimal. Der endgültige Teil besteht aus der üblichen Dateiname -Erweiterung der Datei oder der internationalen Standardnummer der Datei, die mit Nullen gepolstert wurde. Zum Beispiel hat die PNG -Dateispezifikation die FFID von 000000001-31-0015948
wo 31
Zeigt eine Bilddatei an, 0015948
ist die Standardzahl und 000000001
Zeigt die an Internationale Standardisierungsorganisation (ISO).
Datei inhaltsbasierte Formatidentifikation
Eine weitere, aber weniger beliebte Möglichkeit, das Dateiformat zu identifizieren, besteht darin, den Dateiinhalt für unterscheidbare Muster zwischen Dateitypen zu untersuchen. Der Inhalt einer Datei ist eine Abfolge von Bytes und ein Byte hat 256 eindeutige Permutationen (0–255). Das Zählen des Auftretens von Byte -Mustern, die häufig als Byte -Frequenzverteilung bezeichnet werden, ergibt unterscheidbare Muster, um Dateitypen zu identifizieren. Es gibt viele inhaltsbasierte Dateityp-Identifikationsschemata, die die Byte-Frequenzverteilung verwenden, um die repräsentativen Modelle für den Dateityp zu erstellen und statistische und Data-Mining-Techniken zu verwenden, um Dateitypen zu identifizieren[2]
Dateistruktur
Es gibt verschiedene Arten von Möglichkeiten, Daten in einer Datei zu strukturieren. Die üblichsten werden unten beschrieben.
Unstrukturierte Formate (Rohspeichermumpen)
Frühere Dateiformate verwendeten Rohdatenformate, die darin bestand, die Speicherbilder einer oder mehrerer Strukturen direkt in die Datei zu entfernen.
Dies hat mehrere Nachteile. Sofern die Speicherbilder auch nicht reservierte Räume für zukünftige Erweiterungen haben, ist es sehr schwierig, diese Art der strukturierten Datei zu erweitern und zu verbessern. Es erstellt auch Dateien, die möglicherweise für eine Plattform oder eine Programmiersprache spezifisch sind (z. B. eine Struktur mit a Pascal String wird nicht als solches in anerkannt C). Auf der anderen Seite ist es sehr einfach, Tools zum Lesen und Schreiben dieser Dateien zu entwickeln.
Die Einschränkungen der unstrukturierten Formate führten zur Entwicklung anderer Arten von Dateiformaten, die leicht erweitert werden und gleichzeitig rückwärtskompatibel sind.
Chunk-basierte Formate
In dieser Art von Dateistruktur wird jedes Datenstück in einen Container eingebettet, der die Daten irgendwie identifiziert. Der Umfang des Containers kann durch Start- und Endmarkter, irgendwo durch ein explizites Längenfeld oder durch feste Anforderungen der Definition des Dateiformats identifiziert werden.
In den 1970er Jahren verwendeten viele Programme Formate dieser allgemeinen Art. Zum Beispiel Wortprozessoren wie z. TROFF, Skript, und Schreiberund Datenbank -Exportdateien wie z. CSV. Electronic Arts und Kommodore-Amiga Außerdem verwendete diese Art von Dateiformat 1985 mit ihrem IFF -Dateiformat (Interchange -Dateiformat).
Ein Behälter wird manchmal als als genannt "Chunk", obwohl "Chunk" auch implizieren kann, dass jedes Stück klein ist und/oder dass Stücke keine anderen Brocken enthalten; Viele Formate stellen diese Anforderungen nicht auf.
Die Informationen, die einen bestimmten "Chunk" identifizieren, können als viele verschiedene Dinge bezeichnet werden, oft Begriffe, einschließlich "Feldname", "Kennung", "Label" oder "Tag". Die Kennungen sind häufig von Menschen lesbar und klassifizieren Teile der Daten: Zum Beispiel als "Nachname", "Adresse", "Rechteck", "Schriftname" usw. Dies sind nicht dasselbe wie Kennungen im Sinne einer Datenbankschlüssel oder einer Seriennummer Zugeordnete Daten als solcher Schlüssel).
Mit dieser Art von Dateistruktur überspringen Tools, die bestimmte Chunk -Kennung nicht kennen, einfach diejenigen, die sie nicht verstehen. Abhängig von der tatsächlichen Bedeutung der übersprungenen Daten kann dies nützlich sein oder nicht (CSS definiert ein solches Verhalten explizit).
Dieses Konzept wurde immer wieder von verwendet RIFF (Microsoft-IBM-Äquivalent von IFF), PNG, JPEG Storage, Der (Distinguished Codierungsregeln) codierte Streams und Dateien (die ursprünglich in CCITT X.409: 1984 beschrieben wurden und daher vor der IFF - Strukturiertes Datenaustauschformat (SDXF).
In der Tat muss jedes Datenformat muss irgendwie Identifizieren Sie die Bedeutung seiner Komponententeile, und eingebettete Grenzmarken sind ein offensichtlicher Weg, dies zu tun:
- Mime -Header Tun Sie dies zu Beginn jeder logischen Linie mit einem dicker getrennten Etikett. MIME-Header können keine anderen MIME-Header enthalten, obwohl der Datengehalt einiger Header Unterparts enthält, die von anderen Konventionen extrahiert werden können.
- CSV Und ähnliche Dateien verwenden dies häufig mit einem Header -Datensätze mit Feldnamen und mit Kommas, um die Feldgrenzen zu markieren. CSV hat wie MIME keine Bereitstellung für Strukturen mit mehr als einer Ebene.
- Xml und seine Verwandtschaft kann lose als Art von Chunk-basiertem Format betrachtet werden, da Datenelemente durch Markup identifiziert werden, das mit Chunk-Kennung ähnelt. Es hat jedoch formelle Vorteile wie z. Schemas und Validierungsowie die Fähigkeit, komplexere Strukturen zu repräsentieren, wie z. Bäume, Dags, und Diagramme. Wenn XML als "Chunk" -Format angesehen wird, dann SGML und sein Vorgänger IBM GML gehören zu den frühesten Beispielen solcher Formate.
- JSON ähnelt XML ohne Schemata, Querverweise oder eine Definition für die Bedeutung wiederholter Feldnamen und ist für Programmierer häufig zweckmäßig.
- Yaml ähnelt JSON, verwenden Sie jedoch die Einführung, um Datenbrocken zu trennen und zielen darauf ab, mehr Menschen zu lesen als JSON oder XML.
- Protokollpuffer sind wiederum ähnlich wie JSON, insbesondere das Ersetzen von Grenzmarken in den Daten mit Feldnummern, die von einem externen Mechanismus auf/von Namen zugeordnet werden.
Verzeichnisbasierte Formate
Dies ist ein weiteres erweiterbares Format, das einem Dateisystem stark ähnelt (Ole Dokumente sind tatsächliche Dateisysteme), in denen die Datei aus „Verzeichniseinträgen“ besteht, die den Speicherort der Daten in der Datei selbst sowie deren Signaturen (und in bestimmten Fällen ihres Typs) enthalten. Gute Beispiele für diese Arten von Dateistrukturen sind Festplattenbilder, Ole Dokumente Tiff, Bibliotheken. ODT und docx sein sein PKZIP-Basierend sind geschnappt und tragen auch ein Verzeichnis.
Siehe auch
- Audiodateiformat
- Chemisches Dateiformat
- Vergleich der ausführbaren Dateiformate
- Digitales Containerformat
- Dokumentdateiformat
- Droid Dateiformat -Identifikation Dienstprogramm
- Datei (Befehl), ein Dateityp -Identifikationsdienstprogramm
- Dateikonvertierung
- Zukünftige Beweise
- Zusammenfassung der Grafikdateiformat
- Bilddateiformate
- Liste der Archivformate
- Liste der Dateiformate
- List of file signatures, oder "magische Zahlen"
- Liste der Dateinamen -Erweiterungen (alphabetisch)
- Liste der kostenlosen Dateiformate
- Liste der Bewegungs- und Gestendateiformate
- Zaubernummer (Programmierung)
- Objektdatei
- Videodateiformat
- Windows -Dateitypen
Verweise
- ^ PC World (23. Dezember 2003). "Windows -Tipps: Aus Sicherheitsgründen lohnt es sich, Ihre Dateierweiterungen zu kennen". Archiviert von das Original am 23. April 2008. Abgerufen 20. Juni 2008.
- ^ "Dateiformatidentifikation". Archiviert von das Original am 2009-08-14. Abgerufen 2009-07-21.
- "Erweiterte Attributdatentypen". Rexx Tipps & Tricks, Version 2.80. Archiviert von das Original am 25. Dezember 2004. Abgerufen 9. Februar, 2005.
- "Erweiterte Attribute, die vom WPS verwendet werden". Rexx Tipps & Tricks, Version 2.80. Archiviert von das Original am 21. März 2005. Abgerufen 9. Februar, 2005.
- "Erweiterte Attribute - Was sind sie und wie können Sie sie verwenden?". Roger Orr. Archiviert von das Original am 21. März 2008. Abgerufen 9. Februar, 2005.
Externe Links
- Datei Format bei Curlie
- Best Practices für Dateiformate, UNS: Bibliotheken der Stanford University, Datenverwaltungsdienste ("Die von Ihnen verwendeten Dateiformate haben einen direkten Einfluss auf Ihre Fähigkeit, diese Dateien zu einem späteren Zeitpunkt und auf die Fähigkeit anderer Personen zu öffnen, auf diese Daten zuzugreifen")