Baca Juga
I.
FILE
Pengertian File
File adalah sekumpulan data/informasi yang saling berhubungan sesuai
dengan tujuan pembuatnya.
Data pada file bisa berupa numerik, alpha numerik binary atau text.
Setiap File memiliki nama dan pengacuan terhadap suatu file menggunakan nama
file tersebut. Pada Linux penamaan File bersifat case sensitif yaitu membedakan
antara lower case dan upper case letters sehingga file-file Tugas, tugas,
TUGAS, TUGas merupakan file-file yang berbeda. Sebagai perbandingan, pada
MS-DOS, file-file tadi dianggap sama.
Pemberian nama dan extention pada Linux tidak dibatasi jumlah
karakternya dan suatu file dapat memiliki lebih dari satu extention. Contohnya:
prog.c.z yairu prog.c yang sudah dikompres. Selain nama, file memiliki atribut
seperti tipe, size, time, date, dan user identification, protection dll. Tipe
dari file dikenal dari extentionnya. Dengan tipe inilah OS dapat merespon file
secara tepat.
File biasanya disimpan dalam media disk (floppy disk, harddisk, atau
CD).
Operasi-operasi file yang biasa dilakukan antara lain: OPEN, CLOSE,
CREATE, DELETE, COPY, RENAME, READ, WRITE, UPDATE, INSERT, APPEND.
Pathname
Setiap file memiliki pathname ada 2 macam pathname yaitu:
- Pathname absolut suatu file didapat dari menelusuri path dari root directory, melewati semua direktori sampai ke file yang diinginkan. Pathname absolute diawali dengan /.
- Pathname relatif menelusuri path dari direktori yang sedang digunakan(direktori kerja). Suatu pathname yang tidak diawali / adalah suatu pathname relatif. Seperti pathname absolute, pathname ini mendeskripsikan path melalui direktori yang dilewati.
Pembagian File
Pada umunya, ada dua macam file yang berada pada struktur file,
yaitu file direktori dan file biasa. File biasa menyimpan data, sedang file
direktori meyimpan nama file yang terdapat pada direktori tersebut.
Sebagian besar
file, hanya merupakan file biasa yang disebut file regular yang berisi data
biasa sebagai contoh file text, file executable, atau program, input atau
output dari program dan lainnya. Selain file biasa ada file-file khusus seperti
berikut :
·
Directories: file yang berisi daftar dari file lain.
·
Special files: mekanisme yang digunakan untuk input dan output. Sebagian besar
terdapat pada direktori /dev.
·
Links: Sistem untuk membuat file atau direktori dapat terlihat di banayk
bagian dari pohon file sistem.
·
(Domain) sockets: Jenis file khusus, mirip dengan soket TCP/IP, yang menyediakan
jaringan antar proses yang terproteksi oleh file system's access control.
·
Named pipes: berfungsi kurang lebih seperti soket dan membentuk jalur untuk
proses komunikasi.
Tabel Subdirektori dari Direktori Root
Direktori
|
Isi
|
/bin
|
Program-program umum, dipakai oleh
system, administrator dan user
|
/boot
|
File startup dan kernel, vmlinuz.
Pada distribusi sekarang ini termasuk grub data. Grub adalah GRand Unified
Boot loader dan dapat menggantikan banyak boot-loaders yang berbeda yang kita
ketahui sekaranag ini.
|
/dev
|
Berisi referensi kepada semua
komponen hardware CPU, yang direpresentasikan dengan property khusus.
|
/etc
|
File konfigurasi sistem paling
penting terdapat pada /etc, direktori ini meyimpan data yang mirip
dengan Control Panel pada Windows.
|
/home
|
Direktori home untuk semua user
umum.
|
/initrd
|
(pada beberapa distribusi) Berisi
informasi untuk booting. Tidak boleh dihapus!
|
/lib
|
File library, termasuk file – file
untuk semua jenis program yang dibutuhkan oleh sistem dan user.
|
/lost+found
|
Setiap partisi memiliki sebuah
lost+found pada setiap direktori diatasnya. File – file yang tersimpan sebelum
terjadi crash tersimpan disini.
|
/misc
|
Untuk pengunaan serba guna.
|
/mnt
|
Titik penyambungan standar untuk
file sistem eksternal, seperti CD-ROM, kamera digital, floppy, USB
|
/net
|
Titik penyambungan standar untuk
file sistem remote
|
/opt
|
Pada umumnya berisi software
ekstra dan pihak ketiga (tambahan)
|
/proc
|
Sebuah virtual file system yang
mengandung informasi mengenai system resource. Informasi lebih lanjut
mengenai pengertian dari file pada proc diketahui dengan memasukkan perintah man proc
pada terminal. File proc.txt membicarakan detil dari virtual file system.
|
/root
|
Direktori home dari user
administrator. Perlu dibedakan antara /,direktori root dan /root, direktori
home dari user root
|
/sbin
|
Program-program yang dipakai oleh
sistem dan administrator
|
/tmp
|
Memori sementara yang dipakai oleh
sistem.
|
/usr
|
Program-program, libraries,
dokumentasi dll. Untuk semua program yang terkait dengan user.
|
/var
|
Media penyimpanan untuk semua file
variabel dan file sementara yang dibuat oleh user seperti file log, antrian
mail, print spooler area, memori untuk penyimpanan sementara dari file yang
sudah di download dari internet atau untuk menyimpan image dari CD sebelum
dibakar.
|
Operasi pada File dan
Direktori
File
- cat Menampilkan isi file.
- cp Menyalin satu atau beberapa file.
- find Mencari file tertentu pada suatu direktori.
- ls Menampilkan informasi dari file.
- more Menampilkan isi suatu file teks per layar.
- mv Memindahkan file ke direktori lain atau mengubah nama file.
- pg Menampilkan isi suatu file teks per layar.
- rm Menghapus file.
Direktori
- cd Mengaktifkan suatu direktori sebagai direktori kerja.
- copy Menyalin seluruh struktur direktori (termasuk file dan subdirektori).
- mkdir Membuat direktori baru.
- pwd Menampilkan nama direktori kerja.
- rmdir Menghapus direktori.
- mv Mengubah nama direktori.
Struktur File
Adapun struktur dari file dapat dilihat seperti berikut ini:
struct
file {
struct list_head f_list;
struct dentry *f_dentry;
struct file_operations *f_op;
atomic_t f_count;
unsigned int f_flags;
mode_t f_mode;
loff_t f_pos;
unsigned long f_reada,f_ramax,f_raend,f_ralen,f_rawin;
struct fown_struct f_owner;
unsigned int f_uid,f_gid;
int f_error;
unsigned long f_version;
/* needed for tty
driver and maybe others */
void *private_data;
};
Penjelasan dari struktur file diatas:
- f_list : menyambungkan semua file ke dalam beberapa list
- f_dentry : pointer yang menunjuk pada objek dentry yang berkaitan
- f_op : pointer yang menunjuk pada tabel operasi tabel
- f_mode : mode proses akses
- f_pos : current file offset (pointer file)
- f_count : counter penggunaan obyek file
- f_flags : flag yang dibuat saat file dibuka
- f_reada : flag yang digunakan untuk read head
- f_ramax : jumlah maksimum page yang akan di-read ahead
- f_raend : pointer file setelah read ahead terakhir
- f_ralen : jumlah byte yang di-read ahead
- f_rawin : jumlah page yang di-read ahead
- f_owner : data untuk I/O asynchronous melalui signal
- f_uid : ID user pemilik file
- f_gid : ID grup user pemilik file
- f_error : kode kesalahan untuk operasi write network
II.
FILE SISTEM
Gambaran Umum File Sistem
Selain format fisik, hard diskjuga menyimpan struktur datanya dalam
suatu format lojik. Format yang dipakai ini diberi nama File Sistem. Jadi, File
Sistem adalah suatu struktur yang digunakan sistem operasi untuk menyimpan dan
membaca data dari hard disk.
Adapun
contoh-contoh format file system sebagai berikut : FAT (File Allocation Table),
FAT32 (File Allocation Table 32), NTFS (New Technology File System) (Ketiga
varian ini umum digunakan untuk platform Windows), Ext, Ext2, Ext3 (Ketiga
varian ini umum digunakan untuk platform Linux), OS/2, HPFS, Reiser dll.
Pembagian File Sistem Secara Ortogonal
Shareable dan Unshareable
- Shareable
Isinya dapat di-share (digunakan
bersama) dengan sistem lain, gunanya untuk
menghemat tempat.
- Unshareable
Isinya tidak dapat di-share(digunakan
bersama) dengan sistem lain, biasanya untuk
alasan keamanan.
Variabel dan Static
- Variabel
Isinya sering berubah-ubah.
- Static
Sekali dibuat, kecil kemungkinan isinya
akan berubah. Bisa berubah jika ada
campur tangan sistem admin.
Langkah-langkah Optimasi
File Sistem
·
Kurangi jumlah I/O yang
mengakses storage device sebanyak mungkin
·
Kelompokkan I/O menjadi
kelompok yang besar
·
Optimasi pola pencarian blok
untuk mengurangi seek time
·
Gunakan cache semaksimal
mungkin untuk mengurangi beban I/O device
Virtual File System pada
Linux
Kernel Linux telah mengembangkan VFS (Virtual File System) yang dapat mengenali data yang menggunakan
File Sistem lain. File Sistem yang dikenali oleh Virtual File System Linux
terbagi menjadi 3jenis, yaitu:
- Disk Based filesystem
Tipe file sistem ini memanage space memori
yang bisa digunakan pada partisi disk local. Tipe file sistem ini yang lumrah
adalah Ext2. Tipe lain yang dikenal dengan baik oleh
VFS adalah :
1.
File system bagi varian Unix seperti system
V dan BSD.
2.
Microsoft filesystem seperti MS-DOS, VFAT
(Windows 98) dan NTFS (Windows NT).
3.
File system ISO96660 CD-ROM.
4.
File system lain seperti HPFS (IBM’s,
OS/2), HFS (Apple Machintosh), FFS (Amiga’s Fast Filesystem) dan ADFS (Acorn’s
machines).
- Network Filesystem
Tipe sistem file ini memungkinkan akses
yang mudah ke suatu file yang terdapat pada
jaringan komputer lain. Beberapa filesystem
jenis ini yang dikenal dengan baik oleh VFS adalah : NFS, Coda, AFS (Andrews
Filesystem), SMB (Microsoft’s Windows dan IBM’s OS/2 LAN Manager) dan NCP
(Novell’s NetWare Core Protocol).
- Special Filesystem
Tipe ini tidak mengijinkan mengatur space
disk. Pada direktori /proc menyediakan interface yang mengijinkan user untuk
mengakses struktur data kernel. Direktori /dev/pts digunakan sebagai pendukung
terminal semu. Seperti yang digambarkan pada standar Open Group’s Unix98.
Mounting dan Unmounting
Agar suatu file system dapat dikenali oleh Virtual File System
Linux, perlu dilakukan suatu proses yang disebut mounting.
Proses mounting sebenarnya adalah merepresentasikan file yang
terdapat pada device eksternal (misal: disket) yang menggunakan file sistem
lain menjadi inode sementara agar dapat dibaca seperti layaknya file lainnya
oleh Virtual File System Linux.
Jika kita melakukan perubahan pada file (menambah, mengurangi,
mengganti), hal tersebut tidak dilakukan langsung pada device tapi disimpan
dalam media sementara. Untuk meyimpan perubahan, harus dilakukan proses
unmounting, yaitu menghapus inode sementara yang dipakai sebelumnya dan
menyimpan perubahan (jika ada) yang telah dilakukan pada device. Karena itu
proses unmounting sangat perlu dilakukan.
III.
LINUX EXTENDED FILE SYSTEM
Sejarah perkembangan
Extended File System
Versi mLinux yang pertama berbasis pada file sistem Minix. Setelah Linux semakin berkembang, Extended
File System (Ext FS) diperkenalkan. Ada beberapa perubahan
signifikan tetapi kinerjanya masih kurang memuaskan. Pada tahun 1994 Second
Extended Filesystem (Ext2) diperkenalkan. Di samping adanya beberapa
fitur baru, Ext2 sangat efisien, handal
dan fleksibel sehingga menjadi file sistem Linux yang paling banyak digunakan.
Linux Second Extended File
System (Ext2FS)
Untuk sebagian
besar user dan system administration tasks yang umum, file dan direktori mudah
untuk diterima seperti struktur pohon. Komputer bagaimanapun tidak bisa melihat
hal tersebut seperti struktur pohon.
Setiap partisi
memiliki sistem file sendiri. Dengan membayangkan sistem file bersamaan, kita
dapat membentuk sebuah ide mengenai struktur pohon dari seluruh sistem, tapi
tidak sesederhana itu. Dalam sebuah sistem file, file direpresentasikan dengan inode, sejenis nomor seri unik yang berisi
informasi tentang data sebenarnya yang membentuk sebuah file: milik siapa file
tersebut, dan dimana file tersebut terletak pada harddisk.
Setiap partisi
memiliki himpunan inode tersendiri,
pada sistem yang memiliki banyak partisi, bisa terdapat beberapa file dengan
nomor inode yang sama.
Setiap inode menggambarkan struktur data pada
harddisk, menyimpan properti dari file, termasuk lokasi fisik dari data file.
Ketika harddisk disiapkan untuk menerima peyimpanan data, biasanya selama
proses instalasi sistem awal atau ketika menambahkan disket tambahan ke dalam
sistem yangada, sejumlah inode per
partisi yang pasti diciptakan. Jumlah ini akan menjadi jumlah maksimum file,
dari berbagai tipe (termasuk direktori, file khusus, link, dll.) yang dapat
muncul pada saat yang sama pada sebuah partisi. Pada umumnya terdapat 1 inode setiap 2 sampai 8 KB.
Mekanisme Second Extended
File System (Ext2FS)
Ext2fs menggunakan mekanisme yang mirip
dengan BSD Fast File System (ffs) dalam mengalokasikan blok-blok data dari
file, yang membedakan adalah :
- Pada ffs, file dialokasikan ke disk dalam blok sebesar 8KB, dan blok-blok itu dibagi menjadi fragmen-fragmen 1KB untuk menyimpan file-file berukuran kecil atau blok-blok yang terisi secara parsial di bagian akhir file.
- Ext2fs tidak menggunakan fragmen, pengalokasian dalam unit-unit yang lebih kecil. Ukuran blok secara default pada ext2fs adalah 1KB, meskipun mendukung juga pengalokasian 2KB dan 4KB.
- Alokasi pada Ext2fs didesain untuk menempatkan blok-blok lojik dari file ke dalam blok-blok fisik pada disk, dengan demikian I/O request untuk beberapa blok-blok disk secagai operasi tunggal.
Kehandalan Second
Extended File System Ext2FS
·
Administrator sistem dapat
memilih ukuran blok yang optimal (dari 1024 sampai 4096 bytes), tergantung dari
panjang file rata-rata, saat membuat file sistem.
·
Administrator dapat memilih
banyak inode dalam setiap partisi saat membuat file sistem.
·
Strategi update yang aman dapat
meminimalisasi dari system crash.
·
Mendukung pengecekan
kekonsistensian otomatis saat booting.
·
Mendukung file immutable (file yang tidak dapat dimodifikasi)dan
append-only (file yang isinya hanya dapat ditambahkan pada akhir file tersebut).
Informasi yang Disimpan pada Inode
·
Device tempat inode berada
·
Mode file
·
Locking information
·
Pemilik dan grup pemilik dari
file tersebut.
·
Jenis file (regular, direktori,
dll.)
·
Hak akses atas file.
·
Waktu pembuatan, pembacaan, dan
perubahan terakhir.
·
Waktu perubahan informasi pada inode.
·
Jumlah link yang menunjuk ke
file ini.
·
Ukuran file.
·
Alamat yang menunjukan lokasi
sebenarnya dari data file.
Satu – satunya
informasi yang tidak tersimpan pada inode
adalah nama file dan direktori. Informasi ini tersimpan pada file direktori
khusus. Dengan membandingkan nama file dan nomor inode, sistem dapat membangun struktur pohon yang dapat dimengerti
user. User dapat melihat nomor inode
dengan menggunakan opsi –i pada perintah ls. Masing-masing inode memiliki ruang memori yang terpisah pada disk.
Pembagian Blok
Layout dari partisi dan group block Ext2FS
Keterangan:
Setiap partisi terbagi menjadi:
- Boot block, yang merupakan blok pertama, dipakai untuk booting, sehingga tidak diurusi oleh Ext2FS.
- Block group sebanyak n buah. Setiap block group berukuran sama dan terdiri dari:
- Super Block, disimpan dalam struktur ext2_super_block
- Group Descriptor, disimpan dalam bentuk xt2_group_desc
- Data Block Bitmap
- Inode Bitmap
- Inode Table, terdiri dari kumpulan block yang berurutan, dan masing-masing blok mengandung sejumlah inode yang terlah terdefinisi sebelumnya. Semua inode memiliki ukuran sama.
- Data Blocks, menyimpan data sebenarnya dari file.
Struktur inode dalam Linux
diimplementasikan sebagai berikut :
struct inode {
struct list_head i_hash;
struct list_head i_list;
struct list_head i_dentry;
unsigned long i_ino;
unsigned int i_count;
kdev_t i_dev;
umode_t i_mode;
nlink_t i_nlink;
uid_t i_uid;
gid_t i_gid;
kdev_t i_rdev;
off_t i_size;
time_t i_atime;
time_t i_mtime;
time_t i_ctime;
unsigned long i_blksize;
unsigned long i_blocks;
unsigned long i_version;
unsigned long i_nrpages;
struct semaphore i_sem;
struct inode_operations *i_op;
struct super_block *i-sb;
wait_queue_head_t i_wait;
struct file_lock *i_flock;
struct vm_area_struct *i_mmap;
struct page *i_pages;
spinlock_t i_shaerd_lock;
struct dquot *i_dquot(MAXQUOTAS);
struct pipe_inode_info *i_pipe;
unsigned long i_state;
unsigned long i_flags;
unsigned char i_sock;
atomic_t i_writecount;
unsigned int i_attr_flags;
_u32 i_generation;
union {
...
struct extfs_inode_info ext2_i;
...
struct socket socket_i;
void *generic)ip;
}u;
};
Linux Third Extended File
System (Ext3FS)
Ext3FS merupakan pengembangan dari Ext2FS. Ext3FS memiliki beberapa
kelebihan antara lain:
- Optimasi waktu pengecekan jika terjadi kegagalan sumber daya, kerusakan sisem atau unclean shutdown.
Setelah mengalami kegagalan sumber daya, unclean shutdown,
atau kerusakan sistem, Ext2FS harus melalui proses pengecekan. Proses inidapat
membuang waktu sehingga proses booting menjadi sangat lama, khususnya
untuk disk besar yang mengandung banyak sekali data. Dalam proses ini,
semua data tidak dapat diakses. Jurnal yang disediakan oleh EXT3 menyebabkan
tidak perlu lagi dilakukan pengecekan data setelah kegagalan sistem. EXT3 hanya
dicek bila ada kerusakan hardware seperti kerusakan hard disk,
tetapi kejadian ini sangat jarang. Waktu yang diperlukan EXT3 file sistem
setelah terjadi unclean shutdown tidak tergantung dari ukuran file sistem
atau banyaknya file, tetapi tergantung dari besarnya jurnal yang
digunakan untuk menjaga konsistensi. Besar jurnal default memerlukan
waktu kira-kira sedetik untuk pulih, tergantung kecepatan hardware.
- Integritas data dan kecepatan akses yang fleksibel.
- Ext3FS menjamin adanya integritas data setelah terjadi kerusakan atau unclean shutdown. Ext3FS memungkinkan kita memilih jenis dan tipe proteksi dari data.
- Mudah melakukan migrasi dari Ex2FS.
- Kita dapat berpindah dari EXT2 ke sistem EXT3 tanpa melakukan format ulang.
- Cepat
- Daripada menulis data lebih dari sekali, EXT3 mempunyai throughput yang lebih besar daripada EXT2 karena EXT3 memaksimalkan pergerakan head hard disk. Kita bisa memilih tiga jurnal mode untuk memaksimalkan kecepatan, tetapi integritas data tidak terjamin.
No comments:
Write komentar