"Semuanya adalah file" hanyalah pernyataan berlebihan. Ini adalah novel dalam tahun 1970-an dan itu adalah karakteristik yang membedakan utama UNIX. Tapi itu hanya konsep pemasaran, bukan fondasi nyata UNIX, karena itu jelas tidak benar. Tidaklah bermanfaat atau masuk akal untuk memperlakukan SEMUA sebagai file.
Apakah CPU file? Apakah program Anda membaca () CPU untuk mendapatkan instruksi baru? Apakah RAM file? Apakah program Anda membaca () byte berikutnya?
Saat itu, ada beberapa jenis OS yang memberi Anda satu API untuk floppy disk dan API berbeda untuk hard disk, API berbeda untuk pita magnetik, dan sekelompok API berbeda untuk terminal berbeda dan seterusnya. Sistem mainframe IBM memiliki berbagai jenis file pada hard disk dan memberi Anda API yang berbeda untuk masing-masingnya, percaya atau tidak! Jadi UNIX "itu adalah file" pendekatan, bersama dengan pendekatan "stdin / stdout / stderr", membawa abstraksi yang sangat elegan bagi pengguna dan pemrogram.
Dengan jaringan, abstraksi khusus ini tidak berhasil. Dan tidak ada salahnya, hanya sedikit keseluruhan keanggunan dan koherensi OS. Tapi itu berhasil. Apakah Anda melihat file yang dipanggil di /dev/myinternetz/www/google/com/tcp/80
mana saja di sistem Anda hari ini? Bisakah Anda membuka (), menulis () kueri, dan membaca () jawabannya dalam HTML yang bagus? Tidak? Ini karena abstraksi "is a file" ini tidak terlalu berguna untuk berinteraksi di sekitar jaringan. Itu tidak akan bekerja terlalu baik dalam latihan. Hukum abstraksi bocor dalam tindakan.