Inode
Setiap file dalam sistem operasi Linux/Unix memiliki inode yang terkait dengannya dengan pengecualian Solaris ZFS, yang tidak memiliki inode. Inode pada dasarnya bekerja sangat mirip dengan lampiran buku. Setiap Inode akan memiliki informasi di bawah tentang file tersebut.
1. pemilik2. izin
3. ukuran
4. waktu akses terakhir
5. waktu pembuatan
6. id grup
7. Pointer ke blok data yang terkait dengan konten file
Catatan:Namun Inode tidak memberikan nama file.
Jenis File
Pada dasarnya ada 5 jenis file dalam sistem operasi unix.
1. Biasa
2. Direktori
3. Tautan simbolis (tautan keras &tautan lunak)
4. File perangkat (karakter khusus dan blok perangkat khusus)
5. Pipa bernama
Karakter di kolom pertama perintah ls -l mengidentifikasi jenis file.
# cd / # ls -l bin lrwxrwxrwx 1 root root 9 Sep 19 15:41 bin -> ./usr/bin
- Regular files d Directories l Symbolic links b Block-special device files c Character-special device files p Named pipes
File dan Direktori
File biasa dapat menyimpan berbagai jenis data dan dapat dengan mudah dibuat menggunakan perintah sentuh atau editor vi. Direktori menyimpan hubungan antara file dan/atau direktori dan nomor inode.
Tautan lunak
Seperti yang ditunjukkan pada diagram, tautan lunak atau tautan simbolik hanya menunjuk ke file lain. Itu hanya berisi nama path dari file yang ditunjuknya
1. Metode pembuatan
# touch file1 # ln -s file1 link1 # ls -l -rw-r--r-- 1 root root 0 Sep 19 14:41 link1 lrwxrwxrwx 1 root root 5 Sep 19 15:41 link1 -> file1
2. Ukuran soft link yang dibuat pada contoh di atas adalah jumlah karakter pada nama path (file1), yaitu 5 (bisa absolut atau relatif).
3. Jika Anda menghapus file asli (file1), tautan lunak menjadi tidak berguna.
4. Tautan lunak dapat berada di sistem file yang berbeda.
Tautan keras
Setiap file menggunakan setidaknya satu hard link. Jadi ketika Anda membuat file baru, entri direktori baru dibuat yang disebut jumlah tautan. Jadi ketika Anda membuat tautan keras baru ke file ini, jumlah tautan bertambah sebesar 1.
1. metode pembuatan
# touch file1 # ls -l -rw-r--r-- 1 root root 0 Sep 23 13:19 file1 # ln file1 file2 # ls -l -rw-r--r-- 2 root root 0 Sep 23 13:19 file1 -rw-r--r-- 2 root root 0 Sep 23 13:19 file2 # ls -li 1282 -rw-r--r-- 2 root 0 root 0 Sep 23 13:19 file1 1282 -rw-r--r-- 2 root 0 root 0 Sep 23 13:19 file2 # find . -inum 1282 ./file1 ./file2
2. Jumlah tautan bertambah satu, setiap kali Anda membuat tautan keras baru ke file seperti yang ditunjukkan di atas.
3. Bahkan jika Anda menghapus salah satu file, itu tidak berpengaruh pada file lainnya. Hanya jumlah tautan yang berkurang
4. Tautan keras tidak dapat melewati sistem file.
File perangkat
Dalam sistem operasi UNIX, setiap perangkat fisik memiliki file yang terkait dengannya yang disebut sebagai file perangkat . Ini adalah antarmuka yang berinteraksi dengan driver perangkat. Tidak seperti jenis file lainnya, mereka tidak menyimpan data apa pun dalam blok data, melainkan menggunakan inode untuk menyimpan no mayor dan minor untuk file perangkat apa pun.
# cd /dev/ # ls -l crw-r----- 1 root tty 4, 0 Sep 23 12:51 tty0 brw-rw----- 1 root disk 8, 1 Sep 23 12:51 sda0
No perangkat utama – Driver perangkat khusus diperlukan untuk mengakses perangkat
no perangkat kecil – unit spesifik dari jenis yang dikontrol oleh driver perangkat.
Misalnya jika Anda memiliki 10 printer HP, no mayor adalah driver perangkat printer HP dan no minor adalah instance printer (1,2 .. hingga 10).
File perangkat terdiri dari 2 jenis
1. Karakter khusus
2. Blokir khusus
File Perangkat khusus karakter
1. Karakter “c” di kolom pertama output perintah ls -l mengidentifikasi file perangkat khusus karakter
2. Data diakses sebagai aliran data (karakter demi karakter, 1 byte pada satu waktu)
3. Contoh :tty, serial, terminal virtual
# ls -l crw-r----- 1 root tty 4, 0 Sep 23 12:51 tty0
Blokir file Perangkat khusus
1. Karakter “b” pada kolom pertama dari output perintah ls -l mengidentifikasi file perangkat khusus karakter
2. Data diakses sebagai ukuran blok yang ditentukan untuk perangkat tersebut
3. Contoh :Hard Disk, CD/DVD
# ls -l brw-rw----- 1 root disk 8, 1 Sep 23 12:51 sda0
Pipa Bernama
– Pipa bernama adalah file khusus yang digunakan untuk komunikasi antarprosesor. Tidak seperti pipa normal, Anda dapat membaca dan menulis ke pipa bernama. Untuk alasan ini mereka juga disebut sebagai FIFO (file in file out).
– mknod() atau mkfifio() adalah contoh umum yang menggunakan pipa bernama untuk mengakses pipa dengan nama.
– Seperti yang ditunjukkan pada contoh di bawah ini, 2 proses (gzip dan cat) dapat secara bersamaan mengakses pipa Bernama untuk menulis dan membaca data darinya.
# mkfifo test_pipe # gzip -9 -c > test_pipe < out.gz # cat file1 > test_pipe # ls -l test_pipe prw-rw----- 1 root root 0 Sep 23 12:51 test_pipe