Ich suche nach einer formalen Definition einer Datei, die nicht nur Speicher enthält, sondern auch Abstraktionen wie procfs oder / dev / null (oder eine auf Sicherungen basierende Datei), die sich nicht auf Speicher beziehen.
Bisher weiß ich, dass alle Dateien Abstraktionen sind, die
- kann identifiziert werden
- kann Namen haben (normalerweise in hierarchischen Strukturen organisiert)
- kann als Byte-Stream zugegriffen werden
- Geben Sie normalerweise Berechtigungen und andere (systemspezifische) Metadaten an
Ich konnte jedoch in keinem Betriebssystembuch, das ich bisher gelesen habe, eine nützliche formale Definition finden.
operating-systems
os-kernel
filesystems
Giacomo Tesio
quelle
quelle
Antworten:
Laut Wikipedia ist eine Computerdatei lediglich eine Ressource zum Speichern von Informationen. Der Begriff scheint aus der Lochkarten-Ära zu stammen, in der ein Computerprogramm buchstäblich in einer Datei gespeichert wurde (wie in einer Box zum Speichern loser Seiten, siehe Abbildung unten). Als andere Medien wie Scheiben eingeführt wurden, folgte die Nomenklatur.
Aus * nix-Sicht ist alles eine Datei: Sockets, Geräte, Terminals, Bildschirme / Monitore, Datendateien, Pipes usw. Im Gegensatz dazu neigt Microsoft Windows dazu, permanente Speicherdaten als "Dateien" und flüchtige Ressourcen zu bezeichnen, wie beispielsweise Pipes, Sockets, Rastergeräte usw. Andere Systeme haben möglicherweise ähnliche Definitionen irgendwo zwischen diesen beiden Extremen.
Leider gibt es, wie ich gerade sagte, keine einheitliche Definition für eine Datei, da es sich um unterschiedliche Dinge für unterschiedliche Personen handelt, außer dass sich alle auf die Basisdefinition einigen, dass eine Datei eine benannte Ressource ist, in der Daten gespeichert werden auf permanenten Medien (permanent bedeutet nicht, dass es niemals geändert werden kann, sondern dass es über Stromzyklen bestehen bleibt).
( Wikipedia )
quelle
Ich stelle mir eine Datei als eine Folge von Bytes vor. Selbst nachdem es seinen Namen verloren hat (normalerweise verursacht durch einen Aufruf von rm, der die Verknüpfung aufhebt), existiert es immer noch auf der Festplatte, bis seine Chunks von anderen Dingen überschrieben werden. Dateiformate sind Kontexte zum Lesen von Dateien. Alles geht auf das Prinzip zurück, dass Informationen Bytes plus Kontext sind.
Das vorherige Poster hat Recht, dass Geräte, obwohl sie als Dateien behandelt werden, keine wirklichen Dateien sind. Dies ist ein sehr nützlicher Hack.
Also meine Definition einer Datei: eine Folge von Bytes, die im Speicher gespeichert sind.
quelle