it-swarm-id.com

Apa itu Superblock, Inode, Dentry, dan File?

Dari artikel Anatomi sistem file Linux oleh M. Tim Jones, saya membaca bahwa Linux melihat semua sistem file dari perspektif kumpulan objek dan objek-objek ini adalah superblock, inode, gigi dan file. Meskipun sisa paragraf menjelaskan hal di atas, saya merasa tidak nyaman dengan penjelasan itu.

Bisakah seseorang menjelaskan kepada saya syarat-syarat ini?

132
Sen

Pertama dan terpenting, dan saya menyadari bahwa itu bukan salah satu syarat dari pertanyaan Anda, Anda harus memahami metadata . Secara ringkas, dan dicuri dari Wikipedia, metadata adalah data tentang data. Artinya metadata berisi informasi tentang sepotong data. Sebagai contoh, jika saya memiliki mobil maka saya memiliki seperangkat informasi tentang mobil tetapi yang bukan merupakan bagian dari mobil itu sendiri. Informasi seperti nomor registrasi, merek, model, tahun pembuatan, informasi asuransi, dan sebagainya. Semua informasi itu secara kolektif disebut sebagai metadata. Di Linux dan sistem file UNIX, metadata ada di berbagai tingkat organisasi seperti yang akan Anda lihat.

superblock pada dasarnya adalah metadata sistem file dan mendefinisikan jenis, ukuran, status, dan informasi sistem file tentang struktur metadata lainnya (metadata metadata). Superblock sangat penting untuk sistem file dan oleh karena itu disimpan dalam banyak salinan berlebih untuk setiap sistem file. Superblock adalah struktur metadata "tingkat tinggi" yang sangat untuk sistem file. Misalnya, jika superblok partisi,/var, menjadi rusak maka sistem file yang dimaksud (/ var) tidak dapat dipasang oleh sistem operasi. Pada umumnya dalam acara ini, Anda perlu menjalankan fsck yang secara otomatis akan memilih salinan cadangan alternatif superblock dan berupaya memulihkan sistem file. Salinan cadangan itu sendiri disimpan dalam kelompok blok yang disebarkan melalui sistem file dengan yang pertama disimpan pada offset 1 blok dari awal partisi. Ini penting dalam hal pemulihan manual diperlukan. Anda dapat melihat informasi tentang backup superblok ext2/ext3/ext4 dengan perintah dumpe2fs /dev/foo | grep -i superblock yang berguna dalam hal upaya pemulihan manual. Mari kita anggap bahwa perintah dumpe2fs menampilkan baris Backup superblock at 163840, Group descriptors at 163841-163841. Kami dapat menggunakan informasi ini, dan pengetahuan tambahan tentang struktur sistem file, untuk mencoba menggunakan cadangan superblok ini: /sbin/fsck.ext3 -b 163840 -B 1024 /dev/foo. Harap perhatikan bahwa saya telah mengasumsikan ukuran blok 1024 byte untuk contoh ini.

inode ada di, atau di, sistem file dan mewakili metadata tentang file. Untuk kejelasan, semua objek di sistem Linux atau UNIX adalah file; file aktual, direktori, perangkat, dan sebagainya. Harap perhatikan bahwa, di antara metadata yang terkandung dalam inode, tidak ada nama file seperti yang dipikirkan manusia, ini akan menjadi penting nanti. Inode pada dasarnya berisi informasi tentang kepemilikan (pengguna, grup), mode akses (baca, tulis, jalankan izin), dan jenis file.

A dentry adalah lem yang menahan inode dan file secara bersamaan dengan menghubungkan nomor inode dengan nama file. Gigi tiruan juga berperan dalam caching direktori yang, idealnya, menyimpan file yang paling sering digunakan untuk akses yang lebih cepat. Traversal sistem file adalah aspek lain dari dentry karena mempertahankan hubungan antara direktori dan file-file mereka.

A file, sebagai tambahan dari apa yang biasanya dipikirkan manusia ketika disajikan dengan Firman, sebenarnya hanyalah sebuah blok data acak yang terkait secara logis. Relatif sangat membosankan mengingat semua pekerjaan yang dilakukan (di atas) untuk melacak mereka.

Saya sepenuhnya menyadari bahwa beberapa kalimat tidak memberikan penjelasan lengkap tentang konsep-konsep ini jadi jangan ragu untuk meminta rincian tambahan kapan dan di mana diperlukan.

144
Tok

File

File hanya berarti banyak byte yang disusun dalam urutan tertentu. Itulah yang orang biasa sebut sebagai isi file. Ketika Linux membuka file, itu juga membuat objek file, yang menyimpan data tentang di mana file disimpan dan proses apa yang menggunakannya. Objek file (tetapi bukan data file itu sendiri) dibuang ketika file ditutup.

Inode

Inode (kependekan dari "node indeks") adalah banyak atribut tentang file yang disimpan oleh Linux. Ada satu inode untuk setiap file (walaupun dengan beberapa filesystem, Linux harus membuat inode sendiri karena informasi tersebar di sekitar filesystem). Inode menyimpan informasi seperti siapa yang memiliki file, seberapa besar file tersebut, dan siapa yang diizinkan untuk membuka file tersebut. Setiap inode juga berisi nomor unik untuk partisi sistem file; itu seperti nomor seri untuk file yang dijelaskan oleh inode itu.

Dentry

Dentry (kependekan dari "entry direktori") adalah apa yang digunakan kernel Linux untuk melacak hierarki file dalam direktori. Setiap dentry memetakan nomor inode ke nama file dan direktori induk.

Superblock

Superblock adalah struktur data unik dalam sistem file (meskipun ada banyak salinan untuk melindungi dari korupsi). Superblock menyimpan metadata tentang sistem file, seperti inode mana yang merupakan direktori tingkat atas dan jenis sistem file yang digunakan.

50
pingswept

superblock , simpul indeks (atau inode ), entri direktori ( atau dentry ), dan akhirnya, objek adalah bagian dari sistem file virtual (VFS) atau switch sistem file virtual . Tujuan dari VFS adalah untuk memungkinkan aplikasi klien untuk mengakses berbagai jenis sistem file beton dengan cara yang seragam.

Hubungan objek utama di VFS

enter image description here


An Inode adalah struktur data pada sistem file Unix/Linux. Inode menyimpan data meta tentang file biasa, direktori, atau objek sistem file lainnya. Inode bertindak sebagai antarmuka antara file dan data. Inode dapat merujuk ke file atau direktori atau tautan simbolik ke objek lain. Ini berisi nomor unik (nomor-i), atribut file, termasuk nama, tanggal, ukuran dan izin baca/tulis, dan penunjuk ke lokasi file. Ini adalah rekanan dari tabel FAT di dunia DOS/Windows.

Program, layanan, teks, gambar, dan sebagainya, semuanya adalah file . Perangkat input dan output, dan umumnya semua perangkat, dianggap sebagai file , menurut sistem.

Superblock adalah wadah untuk metadata tingkat tinggi tentang sistem file. Superblock adalah struktur yang ada pada disk (sebenarnya, beberapa tempat pada disk untuk redundansi) dan juga dalam memori. Ini memberikan dasar untuk berurusan dengan sistem file on-disk, karena mendefinisikan parameter pengelolaan sistem file (misalnya, jumlah total blok, blok bebas, simpul indeks root).

Dentry adalah antarmuka antara file dan Inode. Gigi tiruan juga berperan dalam caching direktori yang, idealnya, menyimpan file yang paling sering digunakan untuk akses yang lebih cepat.

Sumber

14
Premraj

Dalam kesederhanaan, dentry dan inode adalah hal yang sama, sebuah abstraksi dari file atau direktori. Perbedaan antara dentry dan inode adalah bahwa dentry digunakan untuk memfasilitasi operasi direktori-spesifik, inode hanyalah kumpulan metadata tentang file atau direktori. Superblock adalah abstraksi dari sistem file.

struct file, di kernel linux, disalahpahami sebagai banyak yang lain (mis. struct address_space) dan bukan abstraksi dari "file" nyata (mis./etc/passwd). Itu singkatan dari "file" atau direktori yang terbuka. struct file dibuat oleh sys_open dalam kernel, sehingga suatu proses dapat memiliki banyak struct files untuk file yang sama.

Mengapa kita membutuhkan gigi? Ini digunakan untuk mempercepat penerjemahan dari nama jalur (mis./Etc/passwd) ke inode. Kernel Linux menggunakan inode untuk memanipulasi "file" atau direktori, bukan nama mereka.

5
firo

Perhatikan bahwa istilah ini tidak spesifik untuk Linux tetapi khusus untuk sistem file. Sebagian besar filesystem yang digunakan oleh sistem Unix dan Unix like saat ini diturunkan atau terinspirasi oleh filesystem Unix asli yang mendefinisikan idiom superblock dan inode. Linux juga dapat me-mount beberapa filesystem yang tidak ada konsep superblock dan/atau inode, yang paling umum adalah FAT. Satu lagi, ZFS, tidak menggunakan superblok tapi überblock.

4
jlliagre