Bu çalışmaya e-kitap demek ne kadar doğru olur bilmiyorum.Sanırım e-kitapçık desek daha doğru olur :) Bu çalışmayı ARM işlemcilerle yaptığım projelerde SD kartlara veri yazıp okumak için hazırladım.Dosyayı burdan indirebilirsiniz. Her Yönüyle FAT32 (952Kb)
Özetini merak ediyorasanız okumaya devam edin :)
FAT in anlamı (File Allocation Table) dosya tahsis tablosudur.Yani disklere dosya yazarken ve okurken yazılımların nereye yazacağını, nereden okuyacağını bilebilmesi için diskin başına yerleştirilen referans niteliğinde bir tablodur.Okuyucu veya yazıcı yazılımlar işlem yapmadan önce diskin başındaki bu bilgilere erişip dosyanın disk üzerinde nerede olduğunu yada disk üzerinde nerelerin boş olduğunu öğrenmiş olurlar.
Bu sistem Microsoft tarafından tasarlanmıştır.FAT12, FAT16, FAT32 gibi versiyonları mevcuttur.FAT12 de tablo girdileri 12bit yani 1.5 byte tır. FAT16 da tablo girdileri 16bit yani 2 byte tır. FAT 32 de ise 32bit yani 4 byte tır fakat ilk 28 byte ı kullanılmaktadır.Üst 4 bit kullanılmamaktadır. Windows Vista ile artık NTFS dosya sistemine geçilsede FAT32 cep telefonlarında, fotoğraf makinası, video kamera, sd kart, flash diskte kullanılmaktadır.Ben de FAT32 kullanmayı bu yüzden seçtim.
En basit haliyle bir dosya tahsis tablosunun alanları aşağıdaki şekildeki gibidir.
Bunları özetleyecek olursak.
- Rezerve Sektörler, en başa konumlanmışlardır.İlk rezerve sektör (sektör0) Boot Sektör diye adlandırılır.BIOS Parametre Bloğu diye bir kısım içermektedir.Bu kısım dosya sistemi bilgisi, diğer kısımların yerini gösteren adresler ve işletim sisteminin bootloader kodu gibi önemli bilgiler içermektedir.
- FAT bölgesi, bu bölge genellikle iki kopya içermektedir (sisteme göre değişebilir).Kopya kısım birinci kısmın yedeğidir ve nadir kullanılır.Bu bölge bir nevi veri bölgesinin haritasıdır.Hangi clusterların dosyalar ve dizinler tarafından kullanıldığını gösterir.
- Kök Dizin bölgesi, FAT12/16 sistemler için kök dizindeki dosyaların ve dizinlerin bilgilerini tutar.FAT32 sistemler için bu bilgiler veri bölgesinde tutulur.Bu yüzden FAT32 sistemlerde veri bölgesi bu adresten başlar.
- Veri bölgesi, dosyaların ve dizinlerin saklandığı bölgedir.Dosyaların ve altdizinlerin boyutu boş cluster olduğu sürece istenildiği kadar arttırılabilir.Dosyalar cluster birimleri olarak saklanırlar.Bu yüzden 1Kb lık dosya, 32Kb lık clusterda saklandığında 31Kb kullanılamaz hale gelir.Diğer dosyalar için bu 31Kb lık alan kullanılamaz.FAT32 genellikle kök dizin tablosunu 2. clusterından başlatır.
Burada adı geçen sektör ve cluster büyüklük birimidir. Belli sayıda byte ın ardarda dizilmesi ile sektörler, sektörlerin belli sayıda ardarda dizilmesi ile de cluster denilen kümeler oluşmaktadır.Dosyalar cluster denilen bu kümelere yayılmıştır.Küçük dosyalar 1 cluster yer kaplarken büyük dosyalar birden fazla cluster a yayılmıştır.Örnek olarak ben bu dökümanı yazarken 8Gb lık flash disk kullandım.Benim diskimde bir sektör 512 byte tan oluşmaktadır.1 cluster ise 8 sektörden oluşmaktadır.Yani benim diskimdeki 1 cluster 4Kb tır.Bu sayılar diskin boyutuna bağlı olarak disk işletim sistemi tarafından formatlanırken hesaplanırlar.
Dosyaların ve dizinlerin disk üzerinde nasıl tutulduğu,adreslerin nasıl hesaplandığı e-kitapta detaylı bir şekilde anlatılmıştır.Özet olması bakımından bu konu hakkında burda detaya girmeyeceğiz.Teknik bilgi için dosyayı indirip okumanız gerekli.
Ayrıca zamanla dosya isimleri ve dosya büyüklüklerine bağlı olarak bazı güncellemeler getirilmiştir.Eski sistem ler 8+3 (8 karakter dosya adı, 3 karakter dosya uzantısı) dosya adı sistemi desteklemekteydiler.Zamanla bu sistem yetersiz gelmeye başladı.Aynı şekilde bu sistemde sadece ASCII karakterler kullanılabiliyordu.Türkçe veya Çince bir dosya adı yazılamamaktaydı.Bu yetersizlikler sonucu uzun dosya adı sistemi geliştirildi.Aynı şekilde özet olması bakımından burda detaya girmiyorum.Herşey detaylıca kitapta anlatılmıştır.Kitap içindeki konu başlıkları aşağıdaki gibidir.
- Başlarken
- Genel Bakış
- Boot Sector
- FS Information Sector
- Küçük Dosya ve Dizinlerin Yeri
- Kısa İsme Sahip Dosyaların Dizin Girdisi
- Uzun İsme Sahip Dosyaların Dizin Girdisi
- FAT ve Büyük Dosyalar
- Master Boot Record
- Sonuç
Burdan indirip okuyabilirsiniz.
Her Yönüyle FAT32 (952Kb)