Все является файлом

редактировать

Все является файлом описывает одну из определяющих особенностей Unix, и его производные - что широкий спектр input/output ресурсов, таких как документы, каталоги, жесткие диски, модемы, клавиатуры, принтеры и даже некоторые межпроцессные и сетевые коммуникации представляют собой простые потоки байтов, представленные через пространство имен файловой системы .

. Преимущество этого подхода состоит в том, что один и тот же набор инструментов, утилит и API можно использовать для широкого диапазона ресурсов. Существует несколько типов файлов . Когда файл открывается, создается дескриптор файла . путь к файлу становится системой адресации, а файловый дескриптор - интерфейсом ввода-вывода байтового потока. Но файловые дескрипторы также создаются для таких вещей, как анонимные каналы и сетевые сокеты с помощью различных методов. Поэтому более точное описание этой функции: Все является дескриптором файла .

Кроме того, существует диапазон псевдо- и виртуальных файловых систем, которые предоставляют информацию о процессах и другую системную информацию в иерархическом файле- как структура. Они смонтированы в иерархию отдельных файлов..

Пример этой чисто виртуальной файловой системы находится в / proc, который предоставляет многие системные свойства в виде файлов. Все эти файлы, в широком смысле этого слова, имеют стандартные атрибуты файлов Unix, такие как владелец и права доступа, и могут запрашиваться тем же классическим Unix. инструменты и фильтры. Однако этот подход не всегда считается быстрым или портативным. Некоторые операционные системы даже не монтируют / proc по умолчанию из-за проблем с безопасностью или скоростью. Тем не менее, он широко используется как широко установленным BusyBox на встроенных системах, так и procps, который используется в большинстве систем Linux. В обоих случаях он используется в реализациях команд оболочки POSIX, связанных с процессами. Он аналогичным образом используется в системах Android в программе Toolbox операционной системы.

Преемник Unix Plan 9 перенес эту концепцию в распределенные вычисления с 9P протокол.

См. Также

Ссылки

Последняя правка сделана 2021-05-19 09:01:44
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте