Saya ingin tahu apakah menyimpan informasi tentang file di inode daripada langsung di direktori sepadan dengan biaya tambahan. Mungkin saja saya melebih-lebihkan biaya atau mengabaikan beberapa hal penting, tapi itulah mengapa saya bertanya.
Saya melihat bahwa sesuatu seperti "inode" diperlukan untuk hardlink, tetapi jika overhead benar-benar sebesar yang saya kira, saya ingin tahu apakah ada alasan yang membenarkannya:
- menggunakan hardlink untuk pencadangan itu pintar, tetapi efisiensi pencadangan tidak cukup penting jika dibandingkan dengan efisiensi operasi normal
- tidak memiliki penalti kecepatan atau ukuran untuk hardlink benar-benar penting, karena keuntungan ini hanya berlaku untuk beberapa file memanfaatkan hardlink saat mengakses semua file menderita overhead
- menghemat ruang untuk beberapa binari bernama sama seperti
bunzip2
danbcat
diabaikan
Saya tidak mengatakan bahwa inode/hardlink itu buruk atau tidak berguna, tetapi dapatkah itu membenarkan biaya tipuan ekstra (caching pasti sangat membantu, tetapi itu bukan peluru perak)?
Jawaban yang Diterima:
Tautan keras tidak penting. Mereka bukan alasan untuk memiliki inode. Mereka adalah produk sampingan:pada dasarnya, desain sistem file mirip unix yang masuk akal (dan bahkan NTFS cukup dekat dalam hal ini) memiliki tautan keras gratis.
Inode adalah tempat semua metadata file disimpan:waktu modifikasinya, izinnya, dan sebagainya. Itu juga di mana lokasi data file pada disk disimpan. Data ini harus disimpan di suatu tempat.
Menyimpan data inode di dalam direktori membawa overhead-nya sendiri. Itu membuat direktori lebih besar, sehingga mendapatkan daftar direktori lebih lambat. Anda menyimpan pencarian untuk setiap akses file, tetapi setiap traversal direktori (beberapa di antaranya diperlukan untuk mengakses file, satu per direktori pada jalur file) membutuhkan biaya lebih sedikit. Yang terpenting, ini membuat jauh lebih sulit untuk memindahkan file dari satu direktori ke direktori lain:alih-alih hanya memindahkan pointer ke inode, Anda perlu memindahkan semua metadata.
Sistem Unix selalu mengizinkan Anda untuk mengganti nama atau menghapus file, bahkan jika suatu proses telah membukanya. (Pada beberapa varian unix, buat ini hampir selalu.) Ini adalah properti yang sangat penting dalam praktiknya:ini berarti aplikasi tidak dapat "membajak" file. Mengganti nama atau menghapus file tidak memengaruhi aplikasi, itu dapat terus membaca dan menulis ke file. Jika file dihapus, data tetap ada sampai tidak ada proses yang membuka file lagi. Ini difasilitasi dengan mengasosiasikan proses dengan inode. Proses tersebut tidak dapat dikaitkan dengan nama file karena dapat berubah atau bahkan hilang sewaktu-waktu.
Terkait:Apa alat yang bagus untuk memvisualisasikan pekerjaan Agen SQL ??