8.3, auch8-Punkt-3-Namen und retronymshort name(s) fürkurze Dateinamen genannt, ist eine häufig verwendete Schreibweise, die die historische Beschränkung vonacht Zeichen für denDateinamen unddrei Zeichen für dieDateinamenserweiterung beschreibt. Diese Beschränkung ist in denBetriebssystemenCP/M vonDigital Research (ab ca. 1974)[1] und davon abgeleitetenPC-kompatiblenDisk Operating Systemen (ab 1980) ebenso zu finden wie imFile Allocation Table (FAT), einem ursprünglich 1977 vonMicrosoft fürBASIC entwickeltenDateisystem, das später über86-DOS auch inMS-DOS übernommen wurde.
Durch die große Verbreitung von MS-DOS undWindows in den 1980er und 1990er Jahren war 8.3 lange Zeit die vorherrschende Konvention für Dateinamen und galt auch darüber hinaus bis in die 2000er Jahre alsIndustriestandard für den Datenaustausch zwischen denPlattformen.[2] Erst mit der LFN-Erweiterung durchVFAT (LFN steht fürLong File Name, VFAT fürVirtual File Allocation Table), die mitWindows 95 undWindows NT 3.5 Mitte der 1990er Jahre eingeführt wurde, konnte die 8.3-Beschränkung bei Systemen, die auf dem FAT-Dateisystem basieren, aufgehoben werden.
Beim BetriebssystemCP/M, das Mitte der 1970er für Computer für die8-Bit-ProzessorenIntel 8080 undZilog Z80 entwickelt wurde, orientierte sich dessen EntwicklerGary Kildall an den Konventionen des BetriebssystemsTOPS-10 für dieDECPDP-10.[3] Viele Systeme der späten 1960er und frühen 1970er Jahre hatten ein Limit von sechs[4] oder acht Zeichen für den Dateinamen. Auch gab es auf vielen dieser Systeme bereits eine Dateinamenserweiterung, die auf drei Zeichen beschränkt war.[5] Inspiriert vom 6.3-Limit von TOPS-10[6] nutzt das Dateisystem von CP/M daher eine 8.3-Konvention.
Ab 1978 war mit dem8086 der erste16-Bit-Prozessor vonIntel verfügbar, gefolgt von dessen voll kompatiblem kleineren Bruder8088 ab 1979. Als der Nachfolger des 8-Bit-8080 waren ihm der 16-Bit-8086 bzw. -8088 so ähnlich, dassAssembler-Code meist mit nur wenigen kleinen Anpassungen neu übersetzt werden konnte; 8080-Binärcode war jedoch nicht kompatibel. Das Interesse am neuen 16-Bit-Prozessor war zwar groß, doch gab es keine kompatible Version des damals bereits verbreiteten Betriebssystems CP/M. 1980 schließlich begann der EntwicklerTim Paterson vonSeattle Computer Products mit der Entwicklung eines nahezu identischen Systems namens QDOS, für „quick and dirty operating system“, das zwar keine 8-Bit-Programme ausführen konnte, CP/M jedoch in großen Teilen nachempfunden war. Als Dateisystem wählte Tim Petterson den bereits vonMicrosoft BASIC verwendetenFile Allocation Table, der wie das Dateisystem von CP/M auch die 8.3-Konvention verwendete.
Durch den weiteren Verlauf der Geschichte wurde mit jedemIBM PC ab 1981 dieses86-DOS genannte Betriebssystem alsIBMPC DOS ausgeliefert, dasMicrosoft inzwischen gekauft hatte und das alsMS-DOS zum Industriestandard auf allenIBM-PC-kompatiblen Computern der 1980er und frühen 1990er Jahre werden sollte. Mit CP/M-86 kam 1982 zwar CP/M endlich ebenfalls auf den 16-Bit-Prozessor des IBM PC, war aber teurer als MS-DOS/PC DOS und konnte sich nicht mehr durchsetzen. Als Weiterentwicklung von CP/M besetzte in den späten 1980er und frühen 1990er Jahren jedoch das zu MS-DOS kompatibleDR DOS von Digital Research (später Novell DOS und schließlich wieder DR-DOS) eine kleine Nische im Markt der IBM-PC-kompatiblen Computer.
Aufgrund des großen Erfolgs des IBM-PC-Designs und der zahlreichen dazu kompatiblen Computer wurde FAT zum Industriestandard für den Datenaustausch mit anderen Systemen. Eine Vielzahl von Geräten, die einenDatenspeicher nutzen, verwenden ebenfalls FAT und sind somit von der 8.3-Beschränkung bzw. deren Implementierung in VFAT betroffen.[2]
8.3 bedeutet, dass das Dateisystem bei Datei- und Verzeichnisnamen auf höchstens acht Buchstaben oder Ziffern, gefolgt von einem Punkt („.“) und derNamenserweiterung, die aus maximal drei Zeichen bestehen darf, limitiert ist. Bei der Verarbeitung der Datei- und Verzeichnisnamen wird dabei nicht zwischen Groß- und Kleinschreibung unterschieden. Ein 8.3-Dateisystem ist dahercase-insensitive. Kleinbuchstaben werden dazu vom Betriebssystem in Großbuchstaben umgewandelt, im Dateisystem sind Kleinbuchstaben dadurch prinzipiell unzulässig. Weiterhin sind einige Sonderzeichen unzulässig, die unter CP/M und MS-DOS als Steuerzeichen reserviert sind (z. B. Doppelpunkt, Fragezeichen, Stern) oder in unterschiedlichenCodepages unterschiedlich belegt sind, bspw. ist der Pfadbegrenzer in Deutschland (Codepage 850) der Backslash („\“) und in Japan (Codepage 932) das Yen-Symbol („¥“), obwohl ihre Dateisystem-interne Kodierung identisch ist.
MitWindows 95 undWindows NT 3.5 wurdeVFAT als Variante des FAT-Dateisystems mit erweiterten Verzeichniseinträgen eingeführt. Damit wurden längere, groß- und kleinbuchstabig geschriebeneDateinamen als sog. „Long File Names“ (abgekürzt LFN) zusätzlich zum 8.3-Schema auch in der MS-DOS- (für MS-DOS gibt esDOSLFN[7]) und Windows-„Welt“ möglich. Die Schreibweise wird jedoch weiterhin vom Betriebssystem unabhängig von der Groß- und Kleinschreibung akzeptiert, sodass auch VFAT weiterhincase-insensitive ist, jedoch auchcase-preserving, die bei der Erstellung einer Datei verwendete Schreibweise also erhält. Dies ist für dieAbwärtskompatibilität mit bestehender Software notwendig.
Ebenfalls der Abwärtskompatibilität geschuldet wird für jeden langen Dateinamen zusätzlich eine klassische 8.3-Variante im Verzeichnis eingetragen, unter der ältere Programme mit derartigen Dateien umgehen können. Diese nun doppelten Einträge werdenretronym auchshort (file) names,deutschkurze Dateinamen, genannt. Sie betreffen dabei nicht nur das FAT-Dateisystem, mit VFAT auf den Varianten FAT12, FAT16 und FAT32, sondern auch das modernereNTFS.[8][9]
Unter Windows wird hierzu folgendermaßen vorgegangen:
TEXTFILE.TXTTextFile.Txt wird zusätzlich alsTEXTFILE.TXT registriert.TextFile1.Mine.txt wird zuTEXTFI~1.TXT (oderTEXTFI~2.TXT, fallsTEXTFI~1.TXT bereits existiert).WordFile1.docx wird zuWORDFI~1.DOC (oderWORDFI~2.DOC, fallsWORDFI~1.DOC bereits existiert).TextFile.Mine.txt könnte zuTE021F~1.TXT werden.Auch auf anderen Betriebssystemen ist diese Funktion oft vorhanden, kann aber teilweise auch beeinflusst werden. Unter Betriebssystemen, die traditionell eher die Kleinschreibung bevorzugen wie etwaUnix undUnix-artige Betriebssysteme, gibt es daher auch oft die Möglichkeit, 8.3-Dateien für den Zugriff automatisch in die Kleinschreibung umzuwandeln, obwohl sie der 8.3-Konvention folgend im Dateisystem in Großbuchstaben abgespeichert sind. Dies macht bei der unter Unix üblichencase-sensitiven Nutzung einen wesentlichen Unterschied, denn dadurch ist z. B.FILENAME.TXT nur alsfilename.txt ansprechbar. UnterLinux kann das genaue Verhalten für den Dateisystemtreibervfat durch verschiedeneMount-Optionen festgelegt werden: Die Konvertierung der Großbuchstaben bei 8.3-Dateinamen in die entsprechende Kleinschreibung ist über den Parametershortname einstellbar, und für die bei LFN automatisch erzeugten kurzen Dateinamen ermöglicht die Optionnonumtail, dass diese nach Möglichkeit einfach nach den ersten acht Zeichen abgeschnitten werden. Damit würdeLangerDateiname.txt zuLANGERDA.TXT, falls dieser 8.3-Name noch verfügbar ist, bevorLANGER~1.TXT versucht wird.
Auf allen Betriebssystemen werden die kurzen 8.3-Namen bei Dateioperationen in jedem Verzeichnis neu generiert. Da dies transparent und automatisch passiert, kann es bei mehreren ähnlichen Dateinamen zu einer veränderten Nummerierung beim kurzen Dateinamen aufgrund der Reihenfolge der Abarbeitung kommen, z. B. wenn Dateien kopiert oder verschoben werden. Beispiel: Es wird zuerstMeine Datei.txt erstellt, welche den KurznamenMEINED~1.TXT erhält. Danach wirdMeine Daten.txt erstellt, welcheMEINED~2.TXT erhält. Wird die zweite Datei als erstes in ein neues Verzeichnis kopiert oder verschoben, erhältMeine Daten.txt den KurznamenMEINED~1.TXT und die als zweite kopierteMeine Datei.txt den KurznamenMEINED~2.TXT. Für den Anwender ist bei den allermeisten automatischen Dateioperationen, z. B. wenn mehrere Dateien markiert und kopiert oder verschoben werden, die Reihenfolge der Abarbeitung generell unvorhersehbar.
Probleme können entstehen wenn Dateien ihren langen Dateinamen verloren haben (beispielsweise Bearbeitung mit alten Programmen, Weitergabe über nicht kompatible Systeme) und eine LFN-Datei mit diesem Namen als Kurznamen schon existiert. Dann wird gefragt ob die Datei überschrieben werden soll. Dies kann auch passieren, wenn beide Dateien vorher friedlich in einem gemeinsamen Verzeichnis existierten. Beispiel: In einem Verzeichnis existiert bereits die DateiMEINED~1.TXT. Dazu kommt eine Datei mit dem NamenMeine Datei.txt, welche automatisch den KurznamenMEINED~2.TXT erhält, da „~1“ schon vergeben ist. Wird jetzt in der Abarbeitungsreihenfolge zuerstMeine Datei.txt bewegt (weil beispielsweise nach Dateidatum abgearbeitet wird) erhält sie den NamenMEINED~1.TXT. Bei der nachher bewegtenMEINED~1.TXT, welche nur diesen und keinen langen Dateinamen hat, wird dann festgestellt, dass der Dateiname schon vergeben ist. Gefährlich ist es nun in einer grafischen Dateioperation, wenn der Benutzer kurzerhand auf „Überschreiben“ klickt, denn damit geht eine der beiden Dateien verloren (wird im Endresultat beim Verschieben gelöscht).
DasNTFS-Dateisystem derWindows-NT-basierten Windows-Versionen unterstützt ebenfalls das LFN-System, es werden daher auch immer kurze Dateinamen im 8.3-Schema automatisch erstellt, was ebenfalls der Abwärtskompatibilität geschuldet war. Obwohl der Tipp, kurze Dateinamen für NTFS generell abzuschalten, gelegentlich sogar von Medien und Fachzeitschriften aufgegriffen wurde,[10] empfiehlt dies Microsoft nur für Datei-Server[11] u. a. zwecks Erhöhung der Abarbeitungsgeschwindigkeit[9] – der Effekt ist aber wohl ziemlich gering.[12]
Unter Windows NT kontrolliert das DWORD32NtfsDisable8dot3NameCreation unterHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem in derRegistrierungsdatenbank die zusätzliche Erstellung der kurzen Dateinamen auf NTFS-Laufwerken. Hat der Eintrag den Wert0, was der Standard unter allen früheren Windows-NT-Versionen war, so werden 8.3-Dateinamen auf allen NTFS-Laufwerken automatisch erstellt. Der Wert1 deaktiviert die zusätzlichen kurzen Dateinamen. Moderne Windows-Versionen erstellen kurze Dateinamen nur noch auf demSystemlaufwerk (Wert2),[13] wo sie allerdings auch durchaus noch in Verwendung sein könnten, z. B. in der Registrierungsdatenbank.[14] Alternativ kann das abWindows XP mitgelieferte Programmfsutil[15] verwendet werden, um diesen Wert festzulegen:fsutil behavior set disable8dot3 <Wert>.[16] Auf bestehende Dateien haben diese Änderungen keinen Einfluss.
Auf den Nachfolge-DateisystemenexFAT undReFS wird das LFN-System nicht mehr unterstützt, sodass auch keine kurzen Dateinamen mehr automatisch zu den regulären „langen“ Namen erstellt werden.
Das vonCDs genutzte DateisystemISO 9660 erlaubt zwar Dateinamen mit bis zu 31 Zeichen, allerdings wurde früher aus Kompatibilitätsgründen von vielen Brennprogrammen auch hier das 8.3-Namensschema genutzt.