Dosya sistemi disk üzerindeki dosyaların organize
edilmesidir. Bir işletim sisteminin bir disk veya bölümleri üzerindeki
dosyalarının izlerini bulmak için kullandığı yapı ve yönteme dosya
sistemi (filesystem) denir. Ayrıca dosya sistemi terimi, dosyaların
veya dosya sistemlerinin depolandığı bir disk veya disk üzerindeki
bir bölümü tanımlamak için de kullanılabilir. Bu nedenle birisi
"ben iki adet dosya sistemine sahibim" derken; aslında disk üzerinde
her birinde dosyaların tutulduğu, iki adet bölüme veya ek bir disk
bölümüne sahip olduğu anlaşılmalıdır.
Bir disk veya disk bölümü ile dosya sistemi arasındaki farklılık ne
ihtiva ediyor olduğuna göre önem arz eder. Çok az program işlenmemiş
disk veya bölüm yüzeyinde işlem yapabilir. Buna dosya sistemi
yapabilen programlar dahildir. Şayet orada bir dosya sistemi var ise
bu programların kullanılması sonucu silinir veya büyük ölçüde hasar
görürler. Pek çok program ise dosya sistemleri üzerinde çalışır;
olmayan veya yanlış parametreler içeren bölümler üzerinde çalışamazlar.
Genelde dosya sistemi olmayan bir disk yüzeyinde bir program çalışmaz.
Programların çalışması için bir dosya sistemine ihtiyaç vardır; dosya
sistemlerinin olabilmesi için de bir disk veya disk bölümüne ihtiyaç
duyulur.
Bir disk veya disk bölümü dosya sistemi olarak kullanılmadan
önce, disk yüzeyi ilk haline döndürülmeli ve gerekli bilgiler diske
yazılmalıdır. Bu işlem dosya sistemi oluşturma
olarak adlandırılır.
Pek çok Unix dosya sistemi küçük farklılıklar dışında benzer bir
genel yapıya sahiptirler. Genel kavramlar olarak superblok,
dosya düğümü (inode), veri bloğu,
dizin bloğu ve dolaylı blok
sayılabilir. Superblok, dosya sisteminin bütünü hakkında bilgi
içerir. Aslında bu dosya sistemlerine göre değişiklik gösterebilir.
Dosya sisteminin boyutu gibi bilgiler burada yer alır. Dosya düğümü ise
bir dosya hakkında, ismi hariç, bütün bilgileri ihtiva eder. Dosya ismi
dizin içinde dosya düğümünün numarası ile birlikte yer alır. Bir dizin
girişi; dosya ismine ve bu dosyanın yer aldığı dosya düğümünün numarasına
bağlıdır. Dosya düğümü; dosyalardaki bilgileri depolamak için
kullanılan veri bloklarının numaralarını içerir. Dosya düğümü içinde
birkaç tane veri bloğu numarası için yer vardır. Bununla beraber
dha fazla yere ihtiyaç olursa dinamik bir yapıyla bu yeni yer ayrılır.
Bu dinamik yerleştirilmiş bloklar dolaylı bloklardır. Bu veri bloklarını
bulmak için önce dolaylı veri bloklarının numaralarını bulmamız gerekir.
Unix dosya sistemleri genellikle lseek()
sistem çağrısı vasıtası ile bir dosya içerisinde
delik oluşturulmasına izin verirler. Burada
dosya sistemi, dosya içerisindeki özel bir alanda sanki sıfır byte
varmış gibi davranır. Aslında dosya içerisinde bunun için ayrılmış
bir disk sektörü yoktur (disk üzerinde daha az yer kaplanmış olur).
Bu olay genellikle küçük çalıştırılabilir dosyalar, paylaşılmış Linux
kütüphaneleri, bazı veri tabanları ve bazı özel durumlarda sık sık
ortaya çıkar. Delikler dolaylı bloklardaki veya dosya düğümü
içindeki veri bloklarının adresleri gibi özel değerler verilerek
kullanılırlar. Bu özel adresler, dosyanın bahsi geçen bölümü için
her hangi bir veri bloğunun ayrılamamış olduğunu, orada bir delik
bulunduğunu gösterir.