Heute ist 2018, und die Fehlermeldung sendet uns Grüße aus dem Jahr 1974. Diese Einschränkung, die in den neuesten Versionen von Windows 10 enthalten ist, geht auf die Zeit zurück, als keine einzige Episode
von Star Wars gedreht wurde. Dieser Fehler ist so alt wie
Watergate . Als es geschrieben wurde, hatte kein einziges Produkt einen
UPC-Barcode, weil es nur erfunden wurde. Damals gab es nur eine
Telefongesellschaft , die nicht geteilt war.
Ted Bundy war frei. Beiba Ruta Rekord für Homeruns nur
bereit zu fallen .
Das Glücksrad war noch nicht gezeigt worden, und niemand hatte die
Rocky Horror Horror Show gesehen .
Steven Spielberg war damals ein wenig bekannter Regisseur,
"Saturday Night Live" erschien nicht auf den Bildschirmen.
"Edmund Fitzgerald" beim Tragen von Eisenerz. Es war das Jahr der Premiere von Teil 2 von
The Godfather !
Damals hatte Unix, das erst
5 Jahre alt war , die coole Idee, dass "alles eine Datei ist". Dies bedeutet, dass Sie mit denselben Befehlen und Anweisungen verschiedene Aufgaben ausführen können, z. B. das Schreiben in Sockets, Pipes, Konsolen usw. Das Konzept wurde 1974 von
Gary Kildall zu
CP / M verschoben. Sie können Daten von der seriellen Schnittstelle in eine Textdatei kopieren oder eine Textdatei direkt über die Befehlszeile drucken! Unter Unix werden dazu spezielle Dateien verwendet, die sich in speziellen Verzeichnissen befinden, z. B. / dev / tty für die Konsole oder / dev / lp0 für den ersten Drucker. Sie können endlose Nullen von / dev / zero, zufällige Bytes von / dev / random usw. erhalten.
Es gibt jedoch ein Problem: CP / M wurde für 8-Bit-Computer mit sehr wenig Speicher und ohne Festplatten entwickelt. Im besten Fall hatten sie 8 "Disketten. Und Verzeichnisse? Sie brauchen sie nicht. Anstelle von Verzeichnissen haben Sie nur verschiedene Datenträger verwendet. Aber ohne Verzeichnisse konnten Sie nicht alle Ihre speziellen Dateien in / dev / ablegen. Daher waren sie tatsächlich" überall ". Das heißt, wenn Sie FOO.TXT hatten und es drucken mussten, können Sie PIP LST: = FOO.TXT ausführen, um FOO.TXT in die LST-Datei zu kopieren, die der Drucker ist, und es hat einfach überall funktioniert, weil dass das Verzeichnis nicht existierte.
Was ist mit Erweiterungen? Alles ist auch nicht einfach: Programme ziehen es vor, ihren Dateien die richtigen Erweiterungen hinzuzufügen. Das heißt, wenn Sie das Programm ausführen und "Geben Sie einen Dateinamen ein, um die Liste zu speichern", können Sie LST eingeben, um es zu drucken, oder PTP, um es auf Band zu schreiben (weil Sie 1974 sind, erinnern Sie sich?). Das Programm versucht jedoch möglicherweise, .TXT am Ende der Datei hinzuzufügen! Aber LST.TXT ist kein Drucker mehr, oder? Egal wie. Das ist es. Gerätenamen werden unabhängig von Erweiterungen erkannt. Das heißt, wenn der Tastatur „CON“ zugewiesen ist, dann auch sowohl CON.TXT als auch CON.BUG. Hm. Dies ist ein Hack, aber es funktioniert. Darüber hinaus ist es egal, ob es sich um Müll mit 4 KB RAM handelt?
Nun, CP / M hat sich in den späten 70ern - frühen 80ern verbreitet. Sie wurde zu einem der wichtigsten Betriebssysteme für Unternehmen und definierte eine Standardschnittstelle. Dies bedeutete, dass Sie CP / M-Code auf
NorthStar Horizon schreiben und auf
Seequa Chameleon ausführen konnten . Das Fehlen eines Grafikstandards ermöglichte es größtenteils nicht, in den Spielemarkt einzutreten (obwohl es
Infocom- Versionen gab), die sich hauptsächlich auf Geschäftsanwender konzentrierten. Trotzdem war es bedeutsam, und so wurde der Wunsch von IBM, es in den frühen 80er Jahren in seinem PC-Projekt zu verwenden, selbstverständlich. Dann wollte IBM einen IBM-PC mit mehreren Betriebssystemen starten und erwartete, dass CP / M zu einem der wichtigsten wird. CP / M für x86 wurde jedoch sechs Monate nach dem Start des IBM-PCs nicht veröffentlicht und kostete 240 US-Dollar gegenüber 40 US-Dollar für DOS.
Infolgedessen begann die überwiegende Mehrheit der Benutzer, PC-DOS von Microsoft zu verwenden. Dies war die Weiterentwicklung des neuen Betriebssystems, das von
Seattle Computer Products entwickelt wurde . Microsoft kaufte das Projekt von Tim Paterson und erstellte darauf basierend PC-DOS, das später zu MS-DOS wurde. Das Betriebssystem von Tim Paterson hieß
"QDOS", was "schnelles und schmutziges Betriebssystem" bedeutete. Es basierte auf CP / M, das keine x86-Version hatte, und versuchte, einige der Einschränkungen von CP / M zu lösen. In vielerlei Hinsicht waren dies sehr ähnliche Systeme. Eines der gemeinsamen Merkmale war die Idee, spezielle Dateien zu verwenden, und das Fehlen von Verzeichnissen. Daher hatten QDOS und PC-DOS 1.0 all diese AUX, PRN, CON, LPT usw.
Mit der Veröffentlichung von PC-DOS 2.0 im Jahr 1983 hat Microsoft PC-DOS für das neue IBM XT erheblich überarbeitet. Sie brauchten offensichtlich nur Verzeichnisse, um Ihre riesigen 10-Megabyte-Festplatten in Ordnung zu halten, die dann auf dem Markt erschienen. Und wieder Pech: Seit der Veröffentlichung der Vorgängerversion von PC DOS 1.0 arbeiten Benutzer seit einigen Jahren mit ihren Spezialdateien. Programme und Skripte wurden geschrieben, um diese Dateien zu verwenden. Mit der Unterstützung von Verzeichnissen konnte Microsoft endlich alles in C: \ DEV entfernen ... aber nicht. Wie es mehrmals vorkommen wird, hat Microsoft den gesunden Menschenverstand auf den Altar der Abwärtskompatibilität gebracht: In jedem Verzeichnis blieben spezielle Dateien mit einer beliebigen Erweiterung. Dieses Erbe wurde in allen Versionen bis Windows 95 übertragen. Aber hey, jetzt verwenden wir Windows 95 nicht mehr, da der moderne Zweig der Betriebssysteme auf Windows NT basiert. Sie brauchte aber auch Kompatibilität mit DOS / Windows-Programmen. Daher funktionieren diese speziellen Dateien nach vierundvierzig verdammten Jahren immer noch! Probieren Sie es selbst aus: Öffnen Sie den Explorer, erstellen Sie eine neue Textdatei und nennen Sie sie con.txt. aux.txt oder prn.txt. Da war es.

Das heißt, dank Gary Kildall, der sagte: „Spezielle Dateien repräsentieren die Ausrüstung! Tolle Idee, Unix. Ich leihe es mir aus und versuche es in meinem Spielzeug-Betriebssystem zu implementieren "vor so langer Zeit, dass Menschen, die damals geboren wurden, möglicherweise bereits Kinder haben, die Alkohol trinken dürfen ... wir können die Dateien con.txt immer noch nicht benennen. Microsoft hat sogar eine spezielle
Liste : CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8 und LPT9. Denken Sie daran, dass beim Versuch, auf C: \ con \ con (oder C: \ aux \ aux) zuzugreifen, Windows 95 sofort in das BSOD geworfen wurde, damit die Dinge Spaß machen. Es war lustig im Jahr 1995, denn dann war dieser Bug schon 21 Jahre alt!

HintergrundIch bin darauf gestoßen, als mir klar wurde, dass ich eine Datei habe, die nicht kopiert werden kann. Diese speziellen Dateinamen werden auf Betriebssystemebene und nicht auf Dateisystemebene implementiert. Somit sind sie gültige Dateinamen in NTFS. Und ich habe NTFS-Disk unter Linux verwendet. Und anscheinend unterstützt OS / 2 dieses System spezieller Namen nicht, weshalb AUX.H auf einem der Laufwerke für Devcon unter den opengl-Dateien war.

Und heute habe ich versucht, diese NTFS-Festplatte auf meinem Hauptcomputer zu sichern. "Hoppla, ich kann aufgrund des Fehlers nicht alle Dateien kopieren, die älter sind als die meisten Leute, die dies lesen."
ErklärungenIn CP / M ist das Arbeiten mit speziellen Namen eigentlich nicht so einfach wie ich beschrieben habe. Für den Zugriff auf das Gerät benötigen Sie beispielsweise einen Doppelpunkt im Namen: PRN: ist ein Drucker, PRN jedoch nicht. Darüber hinaus ist in CP / M das Arbeiten mit Gerätedateien nicht wie unter DOS auf Betriebssystemebene implementiert. Dies ist nur ein Teil des PIP-Befehls zum Kopieren von Dateien. Das heißt, Sie können nicht wie unter DOS einen Trick starten, der das Programm anweist, PRN.TXT zu speichern, um es zu drucken.
Und für alle Fälle werde ich klarstellen: Ich meine nichts wie "Windows saugt". Abwärtskompatibilität ist normalerweise eine großartige Sache. Tatsächlich möchte ich MEHR Abwärtskompatibilität, nicht weniger. Ich bin einfach verrückt geworden, nachdem ich beim Ausführen von Windows 10 einen 44 Jahre alten Fehler beim Kopieren von einem USB 3.0-SSD-Laufwerk auf ein anderes SSD festgestellt habe. Es ist, als würde man auf einer Raumstation leben und von einem Pferd mit Füßen getreten werden.