Di Linux, i-node ialah jadual panjang 64-bait i-node mengandungi maklumat tentang fail, termasuk saiz fail, pemilik fail, kaedah kebenaran akses fail dan sama ada fail itu biasa; Fail, fail direktori, fail khas, dsb., item yang paling penting dalam i-node ialah jadual alamat cakera.
Persekitaran pengendalian tutorial ini: sistem linux7.3, komputer Dell G3.
i nod ialah jadual panjang 64 bait yang mengandungi maklumat tentang fail, termasuk saiz fail, pemilik fail dan kaedah kebenaran akses fail, dan sama ada fail itu ialah fail biasa, fail direktori, atau fail khas, dsb.
Sistem fail Linux ialah nadi sistem Linux, menyediakan direktori dan fail hierarki. Sistem fail membahagikan ruang cakera kepada kumpulan 1024 bait, dipanggil blok (terdapat juga blok 512 bait, seperti SCOXENIX). Bernombor dari 0 hingga bilangan maksimum blok untuk keseluruhan cakera.
Semua blok boleh dibahagikan kepada empat bahagian Blok 0 dipanggil blok but, yang tidak digunakan oleh sistem fail 1 dipanggil blok peribadi, termasuk saiz cakera dan maklumat lain tentang semua blok Dua bahagian saiz. Bermula dari blok 2 ialah jadual i-nod, yang mengandungi i-nod Bilangan blok dalam jadual adalah berubah-ubah, yang akan dibincangkan kemudian. Selepas jadual i-node ialah blok storan percuma (blok storan data), yang boleh digunakan untuk menyimpan kandungan fail.
Struktur logik dan struktur fizikal fail adalah sangat berbeza Struktur logik ialah fail yang pengguna lihat selepas menaip arahan kucing. Struktur fizikal ialah bagaimana fail sebenarnya disimpan pada cakera. Pengguna berpendapat bahawa fail mereka adalah strim aksara sempadan, tetapi sebenarnya fail itu mungkin tidak disimpan pada cakera dengan cara sempadan Fail yang lebih panjang daripada satu blok biasanya disimpan berselerak pada cakera. Walau bagaimanapun, apabila pengguna mengakses fail, sistem fail Linux akan mengeluarkan setiap blok dalam susunan yang betul dan menyediakan pengguna dengan struktur logik fail tersebut.
Sudah tentu, mesti ada jadual di suatu tempat dalam sistem Linux yang memberitahu sistem fail cara menukar struktur fizikal kepada struktur logik. Ini melibatkan nod i.
i nod ialah jadual panjang 64-bait yang mengandungi maklumat tentang fail, termasuk saiz fail, pemilik fail, kaedah kebenaran akses fail dan sama ada fail itu fail biasa atau fail direktori Atau khas dokumen, dsb. . Perkara yang paling penting dalam i-nod ialah jadual alamat cakera.
Terdapat 13 nombor blok dalam jadual ini. 10 nombor blok pertama ialah alamat storan 10 blok pertama fail. 10 nombor blok ini boleh memberikan struktur logik fail yang panjangnya paling banyak 10 blok Fail akan memperoleh blok yang sepadan dalam susunan nombor blok yang muncul dalam jadual alamat cakera. Apa yang berlaku apabila fail lebih daripada 10 blok? Item ke-11 dalam jadual alamat cakera memberikan nombor blok. 272384 bait). Jika fail lebih besar daripada 266 blok, item 12 jadual alamat cakera memberikan nombor blok Blok yang ditunjuk oleh nombor blok ini mengandungi 256 nombor blok setiap satu daripada 256 nombor blok ini, dan blok itu mengandungi 256 nombor blok, nombor blok ini digunakan untuk mendapatkan semula kandungan fail. Kaedah alamat indeks item 13 dalam alamat cakera adalah serupa dengan item 12, kecuali terdapat satu lagi tahap indeks tidak langsung.
Dengan cara ini, dalam sistem Linux, panjang maksimum fail ialah 16842762 blok, iaitu 17246988288 bait Nasib baik, sistem Linux telah menambah had yang lebih praktikal kepada panjang maksimum fail (secara amnya 1 hingga 2M bait) , supaya pengguna tidak sengaja mencipta fail yang menggunakan semua blok seluruh kawasan cakera.
inode
Apabila bercakap tentang inode, kita perlu memperkenalkan struktur keseluruhan cakera keras terlebih dahulu. Cakera keras mengandungi berbilang piring cakera keras Piring cakera keras adalah bulat Setiap piring cakera keras mempunyai kepala magnet (Kepala) yang boleh membaca dan menulis Apabila kepala ini dibetulkan dan piring cakera keras berputar sekali ialah trek (Track). Set nombor trek yang sama bagi semua pinggan dalam cakera keras dipanggil silinder. Setiap trek dibahagikan kepada banyak kawasan, dan setiap kawasan dipanggil sektor. Sektor ialah kuantiti fizikal storan terkecil bagi cakera keras Kapasiti storan sektor adalah lebih kurang 512 bait (kira-kira 0.5K).
Setelah mengetahui struktur umum cakera keras, mari kita bercakap tentang cara membahagikan cakera keras. Unit terkecil untuk pembahagian cakera keras ialah lajur magnet Selepas pembahagian, ia diformat secara semula jadi. Semasa memformat dalam Linux, anda mesti mempertimbangkan Block dan inode adalah unit terkecil yang boleh dirakam oleh cakera, jadi saiznya biasanya n*512Bytes.
Jadi apakah itu inode? Block ialah kawasan yang merekodkan kandungan fail, dan inode merekodkan atribut fail dan maklumat di mana Blok ia diletakkan. Oleh itu, setiap fail akan menduduki inode. Apabila sistem Linux ingin mencari fail, ia akan terlebih dahulu mencari jadual inode untuk mencari atribut fail dan lokasi penyimpanan data, dan kemudian mencari Blok di mana data disimpan untuk mendapatkan semula data. Bilangan inod telah ditetapkan pada permulaan Kaedah tetapan biasanya "saiz cakera keras/satu kapasiti". boleh ditetapkan kepada kira-kira 8K. Oleh itu, jika cakera keras 1GB dibahagikan kepada inod 8K, akan ada 131072 inod. Saiz inode ialah 128Byte Dengan cara ini, kita dapat mengetahui dengan jelas bahawa selepas partition diformatkan sebagai sistem fail, ia pada asasnya akan mempunyai dua blok besar: jadual inode dan kawasan data, dan satu digunakan untuk merekodkan. maklumat atribut fail. Blok Blok yang disimpan bersama fail digunakan untuk merekod kandungan fail.
Selepas mencipta fail, inod dan blok akan dibuat pada masa yang sama Inode menyimpan maklumat atribut fail, tetapi tidak menyertakan nama fail dan menyimpan penunjuk alamat. blok tempat data yang sepadan terletak Untuk menyimpan data fail, setiap blok boleh menyimpan paling banyak satu fail Apabila blok tidak boleh disimpan, blok seterusnya akan diduduki.
Nama fail, atribut fail dan kandungan fail fail dalam Linux disimpan secara berasingan: nama fail disimpan dalam entri direktori (iaitu, gigi), dan atribut fail disimpan dalam inod keadaan biasa, setiap inod menduduki ruang cakera 128Bity, kandungan fail disimpan dalam blok data.
Blok blok boleh menggunakan mkfs.ext3 -b untuk menetapkan saiz blok Setiap blok boleh menyimpan sehingga satu fail, jadi secara amnya tetapan saiz blok harus berdasarkan tetapan aplikasi pelayan kami pelayan Ia kebanyakannya digunakan untuk menyimpan banyak fail kecil, jadi anda boleh menetapkan saiz blok lebih kecil supaya tidak membazir ruang Walau bagaimanapun, apabila data besar disimpan, anda perlu menetapkan saiz blok yang lebih besar, yang boleh mengurangkan kesan pada data. Bilangan bacaan blok cakera juga boleh mengurangkan beban rakaman inod.
Semakin besar blok, semakin sedikit inod, yang sesuai untuk sistem fail yang menyimpan fail besar; semakin kecil blok, semakin banyak inod, yang sesuai untuk sistem fail yang menyimpan banyak fail tetapi kecil.
Apabila sistem berjalan, inod dan blok akan menyegerakkan memori dan cakera selepas pengubahsuaian Kandungan yang kami senaraikan menggunakan ls -li ialah storan sementara dalam memori, jadi kadangkala sistem dimatikan secara tidak normal blok dan inod daripada masalah penyegerakan.
Pembelajaran yang disyorkan: Tutorial video Linux
Atas ialah kandungan terperinci Apakah i node dalam linux. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!