История изменений
Исправление 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.