Все это файл - Everything is a file

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

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

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

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

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

Смотрите также

Рекомендации

  1. ^ [1] В архиве 20 марта 2012 г. Wayback Machine
  2. ^ "Линус Торвальдс -" все является дескриптором файла или процессом"". Yarchive.net. Получено 2015-08-28.
  3. ^ «Призраки прошлого Unix». Lwn.net. Получено 2015-08-28.
  4. ^ "8. procfs: Ушли, но не забыты". Freebsd.org. Получено 2015-08-28.
  5. ^ "busybox - BusyBox: швейцарский армейский нож встраиваемого Linux". Git.busybox.net. Получено 2015-08-28.
  6. ^ "platform_system_core / ps.c на главном сервере · android / platform_system_core · GitHub". Github.com. 2015-03-09. Получено 2015-08-28.