Bagaimana struktur direktori disimpan dalam sistem file UNIX?

8

Saya telah membaca bahwa setiap direktori menyimpan konten mereka (file dan subdirektori) dengan menggunakan daftar pasangan nama file dan inode. Tapi tidak ada referensi yang saya sampaikan tentang bagaimana mereka disimpan.

Apakah mereka disimpan di inode direktori induknya, menggunakan blok data seperti file normal, atau mungkin menggunakan cara lain yang tidak saya sadari?

Terimakasih atas klarifikasinya.

Oka
sumber
Tidak ada cara tunggal bagaimana Unix menyimpan file. Mirip dengan tidak ada cara tunggal bagaimana windows menyimpan file. Dalam kedua kasus itu tergantung pada sistem file yang digunakan. (FAT, NTFS, ext2, UFS, ...)
Hennes
Untuk sistem file struktur direktori pada disk didefinisikan dalam dirent.h, dan Anda seharusnya menggunakan libcalls opendir / readdir / closedir dll untuk mengakses konten.
ott--

Jawaban:

10

Lihat internal sistem file yang menguraikan dengan cara yang agak sederhana internal internal sistem file Unix.

masukkan deskripsi gambar di sini

Kebanyakan sistem file Unix mengandung

  • Blok boot
  • Superblock (geometri disk, tata letak partisi, jumlah inode, dll)
  • Blok inode
  • Blok data

Sistem file modern mengandung struktur tambahan.

Salah satu hal di superblok adalah lokasi inode untuk direktori root.

Direktori adalah file yang diformat khusus. Seperti semua file biasa, ia memiliki blok data.

Anda dapat melihat ini di Proyek Dokumentasi Linux: Filesystem

masukkan deskripsi gambar di sini

Anda dapat menggunakan debugfsuntuk menjelajahi struktur ini.

RedGrittyBrick
sumber
2
"Direktori adalah file yang diformat khusus. Seperti semua file biasa, itu memiliki blok data." Jadi, apakah direktori disimpan pasangan nama file-inode mereka (tabel paling kiri pada gambar 1, atau baris dalam gambar 2) di blok data mereka?
Oka
1
@ Oka: Itu benar.
RedGrittyBrick
Jadi, agar jelas, direktori adalah file, sehingga disimpan dalam blok data. Setiap direktori dalam ext4sistem file misalnya ( ext4_dir_entry_2panjangnya 263 bytes) satu blok 4KB dapat menyimpan sekitar 15 entri direktori?
phyloflash