Коли люди кажуть "У Unix, все є файлом", вони мають на увазі те, що також речі, які не є файлами, розглядаються як файли.
Звичайно, більшість операційних систем працює з файлами. Текстові файли, файли зображень, звукові файли. Але не всі операційні системи розглядають пристрої як файли. Це важлива різниця. Якщо я перерахую вміст моєї / dev / папки в моїй операційній системі Ubuntu (на базі Unix), я отримаю список із понад 200 пристроїв. Деякі з цих пристроїв є апаратними, але відображаються всередині папки. Наприклад, жорсткі диски, порти USB, миша та клавіатура, аудіопристрої та принтери. Деякі пристрої є віртуальними, наприклад / dev / urandom, який веде себе як нескінченний файл, повний випадкових чисел. Це не реальний файл на моєму жорсткому диску.
Усі ці пристрої розглядаються як файли. Я можу читати дані з / та записувати дані на ці пристрої. Ось приклади копіювання даних з різних пристроїв на аудіопристрій. Це можливо, оскільки вони трактуються як файли. Результат (примхливий) - це можливість слухати вміст жорсткого диска, рух миші, пам'ять комп’ютера або пікселі зображення. Цього було б набагато складніше, якби пристрої не розглядалися як файли, оскільки кожен пристрій потребував би різних методів читання та запису даних.
Однак, те, що означає "все", залежить від системи до системи. Наприклад, OS X заснована на Unix, але не має пристрою / dev / audio. Він використовує власну аудіосистему під назвою CoreAudio. Тож у цьому випадку можна сказати "майже все - це файл". Тоді в таких системах, як Windows, де "все не є файлом", ви все одно можете робити такі речі, як копіювання вмісту файлу на порт принтера (набравши щось на зразок copy mydocument.txt >lpt1:
), що схоже на копіювання документа на принтерний пристрій в Unix систем.
Чи інші операційні системи, такі як Windows та OS X, не працюють над файлами? Так вони роблять. Windows і OS X працюють на файлах, але Windows не сприймає пристрої як файли, що є частиною того, що означає "все є файлом".