Setiap jenis sistem file menyimpan direktori dengan cara yang berbeda. Ada banyak tipe sistem file yang berbeda dengan karakteristik yang berbeda — bagus untuk throughput tinggi, bagus untuk konkurensi tinggi, bagus untuk lingkungan dengan memori terbatas, kompromi yang berbeda antara kinerja baca dan tulis, antara kompleksitas dan stabilitas, dll. Buku Anda menjelaskan sistem file yang digunakan pada awal Sistem Unix. Sistem modern mendukung banyak sistem file yang berbeda.
Versi awal Unix memiliki banyak manipulasi sistem berkas di luar kernel. Misalnya, mkdir
dan rmdir
bekerja dengan mengedit beberapa struktur data sistem file secara langsung. Ini dengan cepat digantikan oleh antarmuka akses direktori yang seragam, opendir
/readdir
/closedir
keluarga, yang mengizinkan aplikasi untuk memanipulasi direktori tanpa harus mengetahui bagaimana penerapannya di balik terpal.
Alasan Anda tidak dapat membaca konten direktori di Linux bukan karena harus disembunyikan, tetapi karena fitur hanya ada jika diimplementasikan, dan fitur ini tidak berguna dan memiliki biaya. Mengingat bahwa formatnya tergantung pada sistem file, itu adalah fitur yang agak tidak berguna:sebuah program tidak dapat mengetahui format dari apa yang sedang dibacanya. Ini juga bukan fitur yang sepenuhnya sepele untuk didukung:beberapa sistem file mengatur direktori dengan cara yang bukan hanya aliran byte, misalnya dapat diatur sebagai B-tree. Beberapa varian Unix masih mengizinkan aplikasi untuk membaca konten direktori secara langsung, untuk kompatibilitas mundur, tetapi Linux tidak memiliki fitur ini (dan sejauh yang saya ingat tidak pernah memilikinya — fitur ini sudah usang di awal 1990-an).
Ya, tapi:
- sistem modern menyimpan nama file secara berbeda. Di Unix asli, nama dibatasi hingga 14 karakter, dengan 2 byte untuk inode.
- antarmuka ke direktori melalui fungsi
opendir
,readdir
,closedir
bukanopen
,read
,close
untuk mencerminkan perubahan dalam organisasi. - karena tidak ada yang memiliki kebutuhan praktis untuk membaca entri direktori 16-byte, para perancang menghilangkan kemampuan untuk membaca file direktori mentah dari program yang dirancang untuk membaca file .
Bacaan lebih lanjut:
- Cara:Pemrograman C dengan Direktori di Linux
- pertanyaan tentang opendir, readdir, dll., utas Usenet tahun 1990 membahas modern implementasi
opendir
, dll.