Szukam formalnej definicji pliku, która obejmuje nie tylko pamięć, ale także abstrakcje, takie jak procfs lub / dev / null (lub dowolny plik oparty na bezpieczniku), które nie dotyczą pamięci.
Jak dotąd wiem, że wszystkie pliki to abstrakcje
- może być zidentyfikowany
- może mieć nazwy (zwykle zorganizowane w struktury hierarchiczne)
- można uzyskać dostęp jako strumień bajtów
- zwykle zapewniają uprawnienia i inne (specyficzne dla systemu) metadane
jednak nie udało mi się znaleźć żadnej przydatnej definicji formalnej w żadnej książce OS, którą przeczytałem do tej pory.
operating-systems
os-kernel
filesystems
Giacomo Tesio
źródło
źródło
Odpowiedzi:
Według Wikipedii plik komputerowy jest po prostu zasobem do przechowywania informacji. Wydaje się, że termin ten powstał w erze kart perforowanych, w której program komputerowy był dosłownie przechowywany w pliku (jak w pudełku używanym do przechowywania luźnych stron, patrz zdjęcie poniżej). Wraz z wprowadzeniem innych form mediów, takich jak dyski, nastąpiła nomenklatura.
Z punktu widzenia * nix wszystko jest plikiem: gniazda, urządzenia, terminale, ekrany / monitory, pliki danych, potoki i tak dalej. W przeciwieństwie do tego, Microsoft Windows nazywa „pliki” trwałych danych „zasobami” i lotnymi zasobami takimi, jakimi są, takimi jak nazwane potoki, gniazda, urządzenia rastrowe itp. Inne systemy mogą mieć podobne definicje gdzieś pomiędzy tymi dwoma skrajnościami.
Niestety, jak już wspomniałem, nie ma jednej definicji tego, czym jest plik, ponieważ jest on różny dla różnych osób, z wyjątkiem tego, że wszyscy zgadzają się co do podstawowej definicji, że plik jest nazwanym zasobem przechowującym dane na nośnikach stałych (permanent nie oznacza, że nigdy nie można go modyfikować, po prostu utrzymuje się przez cykle zasilania).
( Wikipedia )
źródło
Myślę o pliku jako sekwencji bajtów. Nawet po utracie nazwy (zwykle spowodowanej wywołaniem rm, które go rozłącza), nadal istnieje na dysku, dopóki jego fragmenty nie zostaną nadpisane przez inne rzeczy. Formaty plików to konteksty do odczytu plików. Wszystko sprowadza się do zasady, że informacja to bajty plus kontekst.
Poprzedni plakat ma rację, że chociaż urządzenia są traktowane jak pliki, tak naprawdę nie są plikami. To bardzo przydatny hack.
Moja definicja pliku: sekwencja bajtów przechowywanych w pamięci.
źródło