10

HZR

2010

Her Yönüyle FAT32

Yazan: Barış Samancı
Kategoriler:Her yönüyle FAT32

Her yönüyle FAT32 kitap kapağı

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.


FAT Dosya tahsis tablosu

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.

  1. Başlarken
  2. Genel Bakış
  3. Boot Sector
  4. FS Information Sector
  5. Küçük Dosya ve Dizinlerin Yeri
  6. Kısa İsme Sahip Dosyaların Dizin Girdisi
  7. Uzun İsme Sahip Dosyaların Dizin Girdisi
  8. FAT ve Büyük Dosyalar
  9. Master Boot Record
  10. Sonuç

Burdan indirip okuyabilirsiniz.
   Her Yönüyle FAT32 (952Kb)

Yorumlar
29 Haz 2010 Salı, 09:27 tarihinde yazmış.

Sitenizi bugün gördüm ve gerçekten şimdiye kadar nasıl farketmedim diye kendimi sorguluyorum. Bende elektrik-elektronik mühendisliği okuyorum paylaşımlarınız gerçekten çok faydalı.

29 Haz 2010 Salı, 12:09 tarihinde yazmış.

Çok güzel bir çalışma olmuş, elinize sağlık. Başarılarınızın devamını dilerim.

Fatih Demirliçakmak
01 Ara 2010 Çarşamba, 15:21 tarihinde yazmış.

elinize sağlık gerçektende çok yararlı bir çalışma olmuş.

Mehmet ÖZ
21 Eki 2011 Cuma, 15:55 tarihinde yazmış.

Eline sağlık... SD CARD ve FAT32 fs için olan dokümanlarını okudum. Doğrusu konuyu LPC2468 ile SDCARD sürecek kadar (FAT32)ilerlettim. FS için kodları yazmadım ama boot sectörü okuyup yorumlayabiliyorum en azından :) Gerçekten güzel açıklamışsın. Daha önceden LPC2468 ile National seminin bir Ethernet PHY'ını kullanarak UDP stack hazırlamıştık. Bu konuda bir çalışman olursa yardımcı olabilirim. Selamlar

Adınız *:
e-Mail Adresiniz *:  ??
Web Siteniz:
Yorumunuz *:
Kalan karakter sayısı: 500
 
 

Tasarım ve Programlama Barış SAMANCI
Her hakkı saklıdır.
barissamanci.net  ©  2010-2018