Inode adalah struktur data pada sistem file di Linux dan sistem operasi mirip Unix lainnya yang menyimpan semua informasi tentang file kecuali namanya dan data aktualnya.
Struktur data adalah cara menyimpan data sehingga dapat digunakan secara efisien. Berbagai jenis struktur data cocok untuk berbagai jenis aplikasi, dan beberapa sangat khusus untuk jenis tugas tertentu.
Filesystem adalah hierarki direktori (juga disebut sebagai pohon direktori) yang digunakan untuk mengatur file di komputer. Pada sistem operasi mirip Unix, direktori dimulai dengan direktori root (ditunjuk oleh garis miring), yang berisi serangkaian subdirektori, yang masing-masingnya mungkin berisi subdirektori lebih lanjut, dll. Varian dari definisi ini adalah bagian dari seluruh hierarki direktori atau pohon direktori yang terletak pada satu hard disk drive (HDD) atau perangkat penyimpanan lain atau pada satu partisi (yaitu, bagian HDD yang independen secara logis).
File adalah kumpulan bernama informasi terkait yang muncul kepada pengguna sebagai satu blok data yang berdekatan dan disimpan dalam penyimpanan. Itu tidak secara otomatis berisi informasi tentang dirinya sendiri (mis., Ukurannya, ketika itu dibuat atau di mana ia berada pada sistem), kecuali beberapa manusia sengaja menambahkan data tersebut. Informasi semacam itu tentang file, berbeda dengan data yang terkandung dalam file, adalah metadata-nya (yaitu, data tentang data).
Penyimpanan mengacu pada perangkat komputer atau media yang dapat menyimpan data untuk periode waktu yang relatif lama (mis., Bertahun-tahun atau beberapa dekade), seperti drive disk dan pita magnetik. Direktori (disebut sebagai folder pada beberapa sistem operasi) dalam sistem operasi mirip Unix hanyalah jenis file khusus yang mengaitkan nama file dengan koleksi inode.
Ketika sebuah file dibuat, ia diberikan nama dan nomor inode, yang merupakan bilangan bulat yang unik di dalam sistem file. Baik nama file dan nomor inode yang sesuai disimpan sebagai entri dalam direktori yang muncul kepada pengguna untuk berisi file. Yaitu, direktori mengasosiasikan nama file dengan inode.
Setiap kali pengguna atau program merujuk ke file dengan nama, sistem operasi menggunakan nama itu untuk mencari inode yang sesuai, yang kemudian memungkinkan sistem untuk mendapatkan informasi yang dibutuhkan tentang file untuk melakukan operasi lebih lanjut. Artinya, nama file dalam sistem operasi mirip Unix hanyalah entri dalam tabel dengan nomor inode, daripada dikaitkan langsung dengan file (berbeda dengan sistem operasi lain seperti sistem Microsoft Windows). Nomor inode dan inode yang sesuai disimpan dalam tabel inode, yang disimpan di lokasi strategis dalam sistem file, termasuk di dekat permulaannya.
Ini memisahkan nama file dari metadata lainnya yang memungkinkan sistem untuk menerapkan tautan keras dan dengan demikian memiliki beberapa nama untuk file apa pun. Hard link adalah entri dalam direktori yang berisi pointer langsung ke inode yang memuat metadata file. Ketika tautan keras baru ke suatu file dibuat, kedua tautan berbagi nomor inode yang sama karena tautan itu hanya sebuah penunjuk, bukan salinan dari file tersebut.
Konsep inode sangat penting untuk pemulihan sistem file yang rusak. Ketika bagian-bagian dari inode hilang, mereka muncul di direktori yang hilang + ditemukan di dalam partisi di mana mereka pernah ada.
Sedangkan file hanya berisi kontennya sendiri dan direktori hanya berisi nama-nama file yang muncul kepada pengguna untuk terkandung di dalamnya dan nomor inode mereka, sebuah inode berisi semua informasi lain yang menggambarkan file.
Metadata ini mencakup
(1) ukuran file (dalam byte) dan lokasi fisiknya (yaitu, alamat blok penyimpanan yang berisi data file pada HDD),
(2) pemilik dan grup file,
(3) izin akses file (yaitu, di mana pengguna diizinkan untuk membaca, menulis dan / atau mengeksekusi file),
(4) cap waktu memberitahukan kapan inode dibuat, terakhir diubah dan terakhir diakses dan
(5) penghitungan referensi yang mengatakan berapa banyak hard tautan menunjuk ke inode.
Sistem operasi memperoleh nomor inode file dan informasi dalam inode melalui penggunaan panggilan sistem bernama stat. Panggilan sistem adalah permintaan dalam sistem operasi mirip Unix oleh proses aktif untuk layanan yang dilakukan oleh kernel (mis., Inti dari sistem operasi), seperti input / output (I / O) atau pembuatan proses. Panggilan sistem juga dapat dilihat sebagai titik masuk langsung yang ditentukan dengan jelas ke dalam kernel melalui mana program meminta layanan darinya. Suatu proses adalah turunan dari program yang sedang dieksekusi, dan proses proses yang aktif adalah yang sedang berjalan dalam CPU (central processing unit).
Ruang untuk inode harus disisihkan ketika sistem operasi (atau sistem file baru) diinstal dan sistem tersebut melakukan penataan awal sistem file. Dalam sistem file apa pun, jumlah maksimum inode, dan karenanya jumlah maksimum file, ditetapkan ketika sistem file dibuat.
Ada dua cara di mana sistem file dapat kehabisan ruang: itu dapat mengkonsumsi semua ruang untuk menambahkan data baru (mis., Ke file yang ada atau ke file baru), atau dapat menggunakan semua inode. Yang terakhir dapat menghentikan penggunaan komputer semudah yang sebelumnya, karena kelelahan pada inode akan menghalangi pembuatan file tambahan bahkan jika ada ruang HDD yang cukup. Sangat mudah untuk kehabisan inode jika filesystem berisi sejumlah besar file yang sangat kecil. Namun sistem tipikal, kehabisan ruang file terlebih dahulu, karena ukuran file rata-rata pada kebanyakan sistem lebih besar dari dua kilobyte.
Keputusan tentang berapa banyak inode yang dibuat dibuat di Linux menggunakan algoritma (yaitu, seperangkat aturan yang tepat dan tidak ambigu yang menentukan bagaimana menyelesaikan beberapa masalah atau melakukan beberapa tugas) yang mempertimbangkan ukuran partisi dan ukuran file rata-rata . Pengaturan default menciptakan inode untuk setiap 2K byte yang terdapat dalam sistem file, tetapi jumlahnya dapat disesuaikan oleh pengguna saat membuat sistem file. Sebagai contoh, akan lebih bijaksana untuk membuat lebih sedikit inode ketika mengatur sistem file yang hanya akan berisi beberapa file besar. Demikian pula, untuk sistem file yang ditujukan untuk sebagian besar file kecil, disarankan untuk mengalokasikan lebih banyak ruang untuk inode dan lebih sedikit untuk isi file.
Nomor inode file dapat dengan mudah ditemukan dengan menggunakan perintah ls, yang secara default daftar objek (yaitu, file, tautan dan direktori) di direktori saat ini (yaitu, direktori di mana pengguna saat ini bekerja), dengan – opsi saya. Jadi, misalnya, berikut ini akan menampilkan nama setiap objek di direktori saat ini bersama dengan nomor inode-nya:
ls -i
Informasi tambahan dapat diperoleh tentang inode pada sistem dengan menggunakan perintah df. Perintah ini secara default menunjukkan nama dan ukuran dari setiap filesystem yang dipasang (mis., Terhubung secara logis ke sistem file utama) serta berapa banyak dari masing-masing digunakan dan tidak digunakan. Salah satu opsi df yang paling berguna adalah -h, yang memformat informasi dalam bentuk yang dapat dibaca manusia (mis., Dalam hal kilobyte, megabita dan gigabita). Jadi berikut ini memberikan tampilan yang bagus dari ruang yang tersedia saat ini dan ruang yang digunakan untuk setiap sistem file atau partisi:
df-h
df’s -i option menginstruksikannya untuk memberikan informasi tentang inode pada setiap filesystem daripada tentang ruang yang tersedia. Secara khusus, ia memberi tahu df untuk kembali untuk setiap sistem file yang terpasang jumlah total inode, jumlah inode bebas, jumlah inode yang digunakan dan persentase inode yang digunakan. Opsi ini dapat digunakan bersama dengan opsi -h sebagai berikut untuk membuat output lebih mudah dibaca:
df -hi
Kisah persis di balik penciptaan istilah inode telah hilang, tetapi sangat mungkin bahwa saya awalnya berdiri untuk indeks dan / atau informasi.