LINUX.ORG.RU

История изменений

Исправление no-such-file, (текущая версия) :

в Linux файлом является абсолютно все

Это не так. Так было в ранних unix, но и там от этой абстракции постепенно отошли, а linux появился уже после того, как всё перестало быть файлом.

Но в двух словах суть такова, что все ресурсы системы доступны через файловый интерфейс. В частности устройства представляются в виде файлов в каталоге /dev, различные системные внутренности в виде файлов в /proc и /sys и т.д. Собственно даже каталоги это тоже особый вид файла. Это должно позволять по изначальной задумке работать с устройствами и внутренностями системи с помощью обычных файловых команд, обеспечивая универсальность, а также уменьшить объём системного API. Классический пример (который сейчас уже не работает) cat file.wav > /dev/dsp

Сейчас в linux остался компромиссный вариант. Что сущности по прежнему представляются как файлы, но для того, чтобы управлять связанными с файлами сущностями часто нужно использовать специальные операции через ioctl/fcntl/mmap и т.п. «неклассический» файловый доступ, что не позволяет теперь просто делать cat и т.п.

Кроме того некоторые вещи вообще не имеют файлового представления, в частности сетевые соединения. С ними можно работать только через системный API.

А в Windows не все- файл

Там такой подход в принципе не используется и полагаются полностью на системный API.

Исходная версия no-such-file, :

в Linux файлом является абсолютно все

Это не так. Так было в ранних unix, но и там от этой абстракции постепенно отошли, а linux появился уже после того, как всё перестало быть файлом.

Но в двух словах суть такова, что все ресурсы системы доступны через файловый интерфейс. В частности устройства представляются в виде файлов в каталоге /dev, различные системные внутренности в виде файлов в /proc и /sys и т.д. Собственно даже каталоги это тоже особый вид файла. Это должно позволять по изначальной задумке работать с устройствами и внутренностями системи с помощью обычных файловых команд, обеспечивая универсальность. Классический пример (который сейчас уже не работает) cat file.wav > /dev/dsp

Сейчас в linux остался компромиссный вариант. Что сущности по прежнему представляются как файлы, но для того, чтобы управлять связанными с файлами сущностями часто нужно использовать специальные операции через ioctl/fcntl/mmap и т.п. «неклассический» файловый доступ, что не позволяет теперь просто делать cat и т.п.

Кроме того некоторые вещи вообще не имеют файлового представления, в частности сетевые соединения. С ними можно работать только через системный API.

А в Windows не все- файл

Там такой подход в принципе не используется и полагаются полностью на системный API.