Dosya Sistemleri Akış • Dosya sistemleri nelerdir? • Dosyalar – İsimlendirme, türler, yapılar, erişim, nitelikler, işlemler. • Dizinler – Tek, iki ve hiyerarşik seviyeli sistemler – İşlemler • Yol (Path) İsimleri • Dosya Sistemleri – DOS dosya sistemi,FAT32,NTFS,ext Neden Dosya Sistemlerine Gereksinim Vardır? • Veri, bir process kendisini kullanıp işi bittikten sonra da varlığını devam ettirmek zorundadır. • Bu sistem sayesinde oldukça büyük miktarda verileri depolamak mümkündür. • Yine bu sayede, çoklu işlemler verilere eş zamanlı olarak erişebilmektedir. • Çözüm, bu verileri disk veya diğer medyalara üniteler halinde saklamaktır. Dosyalar • Dosya içerisinde saklanan verilerin kalıcı olması gerekmektedir. • Dosyalar OS tarafından yönetilmektedir. • İşletim sisteminin dosyalarla ilgilenen kısmı “Dosya Yöneticisi (File Manager)” olarak bilinmektedir. İsimlendirme (Naming) • İsimlendirme ile ilgili kurallar kullanılan işletim sistemine bağlıdır. • Yaygın olarak kullanılan dosya isimlendirmeleri – 1-8 karakter – Dijitler ve belirlenmiş semboller – Modern işletim sistemleri 255 karaktere kadar desteklemektedir. • Bazı dosya sistemleri karakter duyarlıdır. – DOS, Windows (Karakter duyarsız) – UNIX, Linux (Karakter duyarlı) • Birçok işletim sistemi iki parçalı dosya sistemini destekler. – Parçalar nokta(.) ile birbirlerinden ayrılırlar. – Örn: <dosya ismi>.<uzantı> – deneme.txt, ornek.pdf, MyApplication.cs • Uzantılar dosya hakkında bir takım bilgiler içerir. • Bazı işletim sistemleri için ise uzantı önemli değildir. – UNIX ve Linux dosya uzantılarını dikkate almazlar. – Fakat bazı uygulamalar uzantılara bağlı olarak çalışabilir. Dosya Türleri • 2 temel tür söz konusudur. – Düzeli dosyalar (Regular Files): Kullanıcı verilerini saklarlar. Bu tip dosyalar ASCII veya Binary olabilir. – Dizinler (Directories): Dizinler, dosya sisteminin yapısını yönetmek için kullanılan sistem dosyalarıdır. • Unix ortamında ise: – Karakter dosyaları (Character Files) : I/O kaynakları ile ilişkilidir, seri I/O cihazlarını modellemek için kullanılır. • /dev/tty, /dev/lp, /dev/net – Blok dosyaları(Block Files) : Diskleri modellemek için kullanılır. • /dev/hd1 • /dev/hd2 Yapı (File Structure) Dosya Erişimi (File Access) Daha önce de bahsedildiği üzere 2 grupta toplanabilir: • Sıralı Erişim (Sequential Access) Örn: Basit text dosyaları • Rastgele Erişim (Random Access) Örn: Veritabanı dosyaları, film dosyları Dosya Nitelikleri (File Attributes) • Dosya, isim ve uzantı haricinde de bazı karakteristikler içerebilir. • Yaygın olan bazı nitelikler: – – – – – – – – – Dosya sahini (Owner) Dosyayı oluşturan (Creator) Koruma (Protection) Sadece okunabilirlik(Read only flag) Gizlilik (Hidden flag) Arşiv (Archive flag) En son erişim tarihi (Last Modified Date) ……. ……. Dosya İşlemleri (File Operations) • • • • • • • • • • Oluşturma (Create) Silme (Delete) Açma (Open) Okuma (Read) Yazma (Write) Ekleme (Append) Kapama(Close) Arama (Seek) Yeniden Adlandırma (Rename) …. Directoryler(Directories) • Dosyaları izlemek ve organize etmek için kullanılır. • Bir çok işletim sistemi directoryleri dosya gibi ele alır. – DOS, UNIX, Linux directory olarak isimlendirir. – Windows ise dizin (Folder) olarak isimlendirir. Tek Seviyeli Directory Yapısı • Directory sisteminin en basit biçimidir. Tek bir directory tüm dosyları içerir. • Bu tekli directory “root” (kök dizin) olarak isimlendirilir. Çok kullanıcılı bir sistemde aynı isimde dosyaların olması mümkün değildir. İki Seviyeli Directory Yapısı Çakışmayı önlemek için her bir kullanıcı için farklı directoryler tahsis edilir. Hiyerarşik Directory Yapısı • Kullanıcılar kendi dosyalarını yönetmek istediklerinde iki seviyeli directory yapısı yeterli olmayacaktır. • Neredeyse tüm işletim sistemleri çoklu directory seviyelerini desteklemektedir. • Fakat, CD-ROM dosya sistemi, bu konuda hiyerarşik olarak belirli bir sınıra sahiptir. Directory İşlemleri (Directory Operations) • • • • • • • Oluşturma (Create) Silme (Delete) Directory Açma (Opendir) Directory Okuma(Readdir) Directory Kapama (Closedir) Yeniden Adlandırma (Rename) Bağlantı(Link) Yol İsimlendirmesi (Path Naming) • Dosyalar directory ağacının içinde olduğunda dosyanın konumunu belirtmek için bir isimlendirme şemasının kullanılması gerekir. • Mutlak yol isimleri (absolute path names) – /Users/John/presentation.ppt • Göreceli yol isimleri(relative path names) – Üzerinde çalışılan dizine göre göreceli yol isimleri verilebilir. • John/presentation.ppt • Üzerinde çalışılan directoryden bağımsız olarak mutlak yol isimleri her zaman sonuç verecektir. • Her bir directoryde 2 özel yapı bulunmaktadır. – .(nokta) : Şu anda üzerinde çalışılan directorye işaret etmektedir. – ..(iki nokta):Bir üst seviyedeki directorye (parent directory) işaret etmektedir. • ./John/presentation.ppt Dosya Sitemi Düzeni(Layout) Dosyalama • Bir dosyanın bu yapı üzerinde nerede bulunduğunun bilinmesi gerekir. • Dosyalar bloklar halinde depolanırlar. • Dosyaların bulundukları yerin izini sürmek için pek çok yaklaşım kullanılmaktadır. – Yayılan Dağılım (Contagious Allocation) – Bağlı liste Dağılımı (Link List Allocation) – Bellekteki bir tabloyu kullanan bağlı liste dağılımı – I-nodes Blok Boyutu (Block Size) • Verileri kolay bir şekilde adresleyebilmek, yazıp/okuyabilmek için sabit uzunluktaki bloklar tercih edilir. (fixed sized blocks) • Tek bir blok tek bir sektör boyutunda olabileceği gibi birden sektör boyutunda da olabilir. • Ne çok küçük ne de çok büyük boyutlu olmalıdırlar. • İdeal olarak 4K güzel bir seçim olabilir. Block Size Büyük Blok Boyutu Yüksek Veri Hızı Büyük Blok Boyutu Düşük Kullanım Alanı Küçük Blok Boyutu Düşük Veri Hızı Küçük Blok Boyutu Yüksek Kullanım Alanı Yayılmacı Tahsis (Contigous Allocation) • En basit tahsis yöntemidir. • Bir dosya diğerinden sonra saklanır. • Avantajları: – Uygulamak kolaydır. – Okuma işlemi hızlı bir şekilde gerçekleşir. • Dezavantajı: – Disk parçalaması(Disk fragmentation) • Ticari işletim sistemlerinde kullanılmaz. Gömülü işletim sistemleri ve CD-ROM larda tercih edilir. Bağlı Liste Tahsisi (Link List Allocation) • Avantajları: – Her disk bloğu kullanılabilir. – Parçalamadan dolayı herhangi bir yer kaybı söz konusu değildir. • Dezavantajları: – Rastgele erişim oldukça yavaştır. – Eğer link bilgisi kaybolursa dosyanın geri kalanına konumlanamaz. Dosya Yerleşim Tablosu (FAT) • Bağlı liste yerleşim bilgileri belleğe yerleştirilir. • Avantajları: – Rastgele olarak hızlı bir şekilde erişilir. – Disk üzerindeki bloklardan bir tanesi kaybolsa dahi dosyanın geri kalanına konumlanılabilir. – Tekli disk bloğunu tamamen kullanır. • Dezavantajı – FAT bellekte biraz yer kaplar. I-Nodes • Index düğümleri her bir dosya ilişkilendirilir.(Dosyalara referans ederler) ile • Index düğümü i node olarak adlandırılır. • Verilen bir i-node ile dosyanın bütün bloklarını bulmak mümkündür. • UNIX, işletim sisteminde her şey bir dosya olarak tutulmaktadır. Dosyaların isimlendirmesi sadece kullanıcılar için anlamlı iken, UNIX için bir anlam ifade etmemektedir. • Dosya isimleri yerine, oluşturulan her dosyaya o dosyaya ait olmak üzere bir numara verilir. Bu numara da inode’dur. • Dosya üzerindeki tüm işlemler inode numarası kullanılarak yapılır. • Super block için de bir blok inode tablosu için ayrılmış durumdadır. • Bir i-node’da – Tip ve haklar – Dosyanın sahibi – Boyut bilgisi – Son erişim zamanı – Son değişiklik zamanı – Sektör miktarı gibi bilgiler bulunur. • İnode’ların boyutu sabittir. • Avantajı: – Bir dosya açıldığında sadece karşılık gelen i-node belleğe getirilir. Uygulamada Directory’ler • Directory’nin temel amacı dosya ismi ile bu dosyanın verisine olan haritalamayı sağlamaktır. • Doğru disk bloklarını bulmak için – Yayılmacı tahsis (Contiguous Allocation) – Bağlı liste tahsisi (Link List Allocation) – INode kullanılır. Dosya Niteliklerini Depolamak • Sabit boyutlu girdiler, disk adresleri & directory girdilerindeki nitelikler • Her bir girdi ayrı bir inode’a işaret eder. DOS Dosya Sistemi • FAT’ı kullanılır. • 8+3 karakterlik dosya isimlerini kullanırlar. • Read-only, arşiv, gizli ve sistem niteliğine sahip olabilirler. 2 versiyonu bulunmaktadır. – FAT-12 • Maksimum partition genişliği 2 Mb’tır. • 4 farklı partition olabilir. – FAT16 • Maksimum partition genişliği 2GB’tır. • 4 farklı partitionu olabilir. Director Girdisi (MS-DOS) Blok Genişliği(Block Size) Windows 98 Dosya Sistemi • Windwos 95’in ikinci sürümü ile gelmiştir. • Aslında FAT-32’dir. – Maksimum partition boyutu 2TB’dır. – 4 partitiondan fazlasını destekler. • Dosya isimleri 255 karaktere kadar olabilir. • FAT-16 ile geriye doğru uyumludur. Windows 2000 Dosya Sistemi • • • • • NTFS(New Technology File System)’i kullanır. İlk olarak Windows NT’de kullanmıştır. Tek bir partition 264 byte’a kadar olabilir. Dosya isimleri 255 karakter olabilir (unicode). FAT-16 ve FAT-32 ile geriye doğru uyumlu değildir. UNIX/Linux Dosya Sistemi • Inode’ları kullanır. • İlk versiyonlarında 14 karakter sınırı vardı.Fakat sonradan 255 karakteri destekler hale gelmiştir. • Dosya sistemi güvenliği varsayılan (built-in) olarak gelmektedir. • Bir çok dosya sistemini destekler. – V7,ext,ext2,ext3 – NFS (Network File System) – VFAT (Unix) Ext Dosya Sistemi • 14 karakter desteği vardır. • Tek bir dosya boyutu maksimum 2 Gb olabilir. • ext2 ,ext3 daha sonraki gelişmiş versiyonlarıdır. Linux Dosya Sistemi Unix V7 Dosya Sistemi • Bir directory girdisi şu şekildedir: • Inode’ların sayısı 162 ile sınırlıdır. /usr/ast/mbox yoluna erişim için 1 . 1 .. 4 bin 7 dev 14 lib 9 etc 6 Usr 8 tmp Blok 132 /usr/ast için olan Blok 406 /usr directory Inode26 /usr/ast directory /usr için olan Inode6 Root directory Blok Bilgisi 132 6 numralı Inode /usr nin 132 numaralı blokta olduğunu belirtmekte 6 numralı Inode’a yönlendirecektir. 6 . 1 .. 19 dex 30 erik 51 jim 26 ast 45 bal Blok Bilgisi 406 26 numralı Inode /usr/ast nin 406 numaralı blokta olduğunu belirtmekte /usr/ast için 26 numaralı Inode’a yönlendirecektir. 26 . 6 .. 64 grants 92 books 60 mbox 81 minix 17 src /usr/ast/mbox için 60 numaralı Inode’a yönlendirecektir.