|
Disklerin üzerindeki dairesel izlere
Track veya cylinder denir. Birden fazla disk kullanılırsa bunlar üzerindeki
okuyucu kafalara ise head okudukları yüze Side denmektedir. Bir dairesel
iz açısal olarak eş bölümlere ayrılmıştır. Bu bölümlere ise Sector
denmektedir. Bütün bunlar göz önüne alındığında bir bilginin adresini
vermek için kafa veya yüz numarası, izin numarası ve sektor numarası
verilmelidir. Genel olarak bir track üzerinde bir sektörün belirlediği
alan 512 byte'tır. Ancak bazı SCSI disklerde bu boyut değişebilmektedir.
Sektör_Sayısı = (Kafa_Sayısı x Silindir_Sayısı x Sektor_Sayısı)
Bu rakamla bir sektörün boyutu çarpıldığında diskin kapasitesi bulunur.
Diske erişimi kolaylaştırmak için sektörler gruplanarak CLUSTER'lara
bölünür. Cluster sektörden farklıdır. Ve formatlama esnasında bir
cluster'ın kaç sektör olacağı belirlenir. Mesala bir cluster 8 sektörden
oluşuyorsa cluster boyutu 4 KB olarak belirlenir.Diskin üzerinde belli
bloklar vardır.
Partition: Partition disk üzerindeki bölümlendirme için kullanılır.
Diskin 0. Sektör, 1. Cylinder, 0. Head'de bulunur. Burada bir kod
bulunur. Bu kod üzerindeki bilgileri inceleyerek diskin üzerindeki
boot sector bulunur. Boot sector belleğe yüklenir. Daha sonra buradaki
kod sistemi yükler.
Boot: Her partition'ın başlangıç adresi olarak verilen adreste
bulunur. Buradaki bilgi Partition'daki kod tarafından belleğe alınır.
Buradaki program önce root dizine bakar. Burada IO.SYS, IO.COM isimli
dosyalar aranır. Burada eğer bulunursa FAT'teki başlangıç noktasına
gidilir. Buradan bir sonraki devam edeceği yer tespit edilir. Ve okunan
Fat başlangıç adresinden data bloğu üzerindeki bilgi okunarak belleğe
alınır. Sonrasını ise IO.SYS halleder.
FAT: (File Allocation Table) Burası tüm diskin yerleşim planını
içerir. Bir kodla başlar bu FAT'in özelliğini belirtir. Genelde 0F8h
değerini taşır. Buna Media Id Byte denir. Herhangi bir sakatlık durumuna
karşı FAT 2 kopyadır. Silinen dosyanın adının ilk harfi alt-229 (sigma)
yapılır. Dos baktığında eğer ilk harfi sigma ise dosyanın silindiğini
kabul ederek bunu listelemez. Silinen bir dosyanın geri getirilmesi
işlemi ise şu şekildedir. Dosyanın kaydındaki Fat'teki başlangıç noktası
bilgisi alınır. Bu noktadan itibaren dosya boyunu kapsayacak sayıdaki
Fat hücresi eğer boş ise dosya geri getirilebilir. Değilse getirilemez.
Eğer dosya bölük pörçük yani dosyanın bölümleri diskin bir kaç bölgesinde
yer alıyorsa dosya bozuk olarak undelete yapılabilir. Aşağıda örnek
bir Root yapısı ve dosyaların yerlerini gösteren bir FAT görülmektedir.
ROOT ENTRY: Dosya Adı Dosyanın Fatteki Başlangıç Noktası Fat
Hücre Sayısı
IO.SYS 1 4
MSDOS.SYS 5 1
COMMAND.COM 6 3
CONFIG.SYS 8 1
FAT: Fat Hücre No 1 2 3 4 5 6 7 8 9 İçeriği 2 3 4 0FFFFh (Eof)
0FFFFh (Eof) 0 0 0 0FFFFEh (Bad Sector)
IO.SYS isimli dosya disk üzerinden okunmaya çalışıldığında öncelikle
1. Fat hücresinin işaret ettiği cluster okunur. Daha sonra 1. nolu
fat hücresinin işaret ettiği 2 nolu Fat hücresinin işaret ettiği Cluster
okunur. Arkasından 3. Hücre işlem görür. 4. Hücredeki EOF ifadesine
istinaden okuma işlemi durur. MSDOS.SYS isimli dosya ise doğrudan
5. nolu fat hücresinin işaret ettiği cluster üzerinden okunur ve işlem
sonlanır. COMMAND.COM ve CONFIG.SYS isimli dosyalar silinmiştir. Eğer
en son config.sys dosyası kopyalanmışsa ve ilkin command.com dosyası
undelete yapılırsa command.com dosyasının son bölümünde CONFIG.SYS
olacak şekilde dosya bozuk olarak undelete yapılır. Eğer geri getirilmezde
CONFIG.SYS dosyası istenirse bu durumda CONFIG.SYS dosyası başarıyla
geri getirilecektir. Ama eğer COMMAND.COM tekrar undelete yapılmaya
kalkılırsa undelete işlemin gerçekleştirilemeyeceğini söyleyerek çıkacaktır.
9 nolu fat hücresi ise o cluster'ın bozuk olduğuna işaret eder.WIN
95 ve NT 4.0 dosyalar silindiğinde Recycle.bin isimli görünmez bir
dizine taşır. ve nereden attığını bir yere kaydeder. eğer dosya geri
getirilirse aynen yerine yerleşir. Eğer Recycle.bin boşaltılmışsa
dosyalar o zaman silinmiş demektir.
Dosyaların güvenliği için ve daha hızlı erişmek için dosyaları bir
bütün halinde tutmak tavsiye edilir. Bu işlem içinde en azından haftada
bir defa DEFRAG programının çalıştırılması yeterli olacaktır.
Elbette ki bu yapıda bir dosyayı okumak için diskin kafası bir ileri
bir geri gidip gelecektir. Bunu hızlandırmak amacıyla smartdrv gibi
programlar diskin çok okunup yazılan bölümlerini belleğe alır. Diske
yazıyorum deyip kandırıp belleğinde bir süre saklar. Disk serbest
kaldığı anda bunları yazar. Bu şekilde işlemler yaklaşık 2-50 misli
hızlanmaktadır. Ancak bunların sakatlığıda eğer yazmadan makine kapatılırsa
yazmak üzere olduğu bilgiler silinir. ve eski durumlarında kalır.
Bundan korunmak için makineyi doğrudan kapatmak yerine CTRL-ALT-DEL
tuşlarına basarak makinenin en tekrar açılma işlemini başlatmak daha
sonra kapatmaktır. Smartdrv türü programlar bu tuşu kontrol ederek
eğer belleğinde bir şey kalmışsa bunu diske yazıp ondan sonra makinenin
kapanmasını sağlarlar.
Root: Ana dizin veya kök dizine Root adı verilir. Burada dosyaların
isimleri ve bazı bilgileri tutulmaktadır. Yapısı şu şekildedir.
İsmi Boyu Açıklama
Dosya adı 8 byte Dosyanın ismi burada tutulur.
Uzantısı 3 byte Dosyanın uzantısı burada tutulur.
Özellikleri 1 byte Dosyanın Read only hidden ve bunun gibi bilgileri
burada tutulur.
Ayrılmış alan 8 byte Bu alan DOS tarafından boş bırakılır. Burası
NT ve WIN95 türü programlar tarafından uzun dosya isimlerinin kontrolü
için kullanılır. Tarih ve Saat 4 byte Dosyanın son değiştiği tarih
ve saat Başladığı Yer 2 byte Dosyanın FAT üzerinde başlangıç noktası
Uzunluğu 4 byte Dosyanın kaç byte olduğu Toplam 32 byte Burada aynı
zamanda diskin etiketide saklanır. dosya boyu 0, uzunluğu 0, saat
ve tarih bos ve ozelliginde sadece Etiket bilgisi olduğu yazılıdır.
Aslında dizinlerde dosyalar gibi disk üzerinde saklanır. ilk açıldıklarında
bir cluster boyundadır. Daha sonra yetmediği zaman sanki dosyaya ek
yapılıyor gibi eklentiler yapılır. Ancak özelliği Dizin olan bu dosyalar
DOS tarafından farklı değerlendirilerek içinin gösterilmesi gibi fonksiyonlar
yerine getirilir. Bunun dışında Root dizinin farklı bir özelliği boyu
sabittir değişmez. Bu sebeble bazı virüsler kendilerini Root'un en
alt kısmına yerleştirirler. Böylece kendilerini gizlemiş olurlar.
Win 95 ve NT uzun dosya isimleri için silinmiş dosya kayıtları yaratırlar.
ilk byte 0E5h değeridir. Dosya adı, uzantısı ve diğer bilgilerinin
yerine dosyanın uzun adının bir kısmı tutulur.
Data: Burada diske kayıtlı dosyaların ve dizinlerin içerikleri
kaydedilir. Dos'ta diske erişim için int 25h ve int 26h kullanılır.
Sector No verilerek herhangi bir adrese ulaşılır. Bunun dışında diske
erişmek için Int 13h kullanılır. Bu servis BIOS tarafından hazırlandığından
Dos'tan bağımsız olarak kullanılabilir. Bunun dışında CD'ye erişmek
için MSCDEX (Microsoft Compact Disk Extention)'in hazırladığı Int
2Fh kullanılır. Bu arada Int 2F çok amaçlı bir servistir. Bu servis
içerisinde microsoft'un undocumented (Saklı) servisleride mevcuttur.DOS'ta
iken bir dosya açılması için gereken aşamalar aşağıdaki gibidir. x
Int 21h Servisi üzerinden dosya aç komutu çalıştırılır. x Int 25h
Servisi üzerinden diskten directory entry okunur. Buraya bir dosya
kaydı açılır. Bu kayıt 32 byte boyundadır. Öncelikle directory'deki
bilgiler okunur. Sonra en alta dosya ile alakalı bilgi eklenir. x
Int 25h kullanılarak FAT okunur buradan boş olan bir Fat hücresi seçilerek
bu seçilen hücreye ilkin (EOF) bilgisi kaydedilir. Sonra int 26h ile
yazılır. x Directory entry'e eklenen satıra başlangıç fat hücreno
kaydedilerek Int 26h ile yazılır. x Seçilen başlangıç Fat hücresinin
işaret ettiği Data bölgesine dosyanın içeriği yazılır. x Eğer bu hücrenin
belirttiği yer yeterli gelmezse Fat üzerinden tekrar boş bir hücre
aranır. Bu hücreye (Eof) ifadesi yazılır. Başladığı fat hücresine
de buranın adresi yazılır. Bu hücrenin işaret ettiği yerde kullanılır.
x Dosyayı kapat komutu gelir. Bu komutla dizindeki dosya kaydındaki
dosyanın boyu güncellenir.x Bütün bu işlemler esnasında INT 25h ve
INT 26h BPB (Bios Parameter Block)'taki bilgilere uygun olarak adres
hesaplamasına gider. Hesapladığı adrese göre INT 13h'ı çağırarak buraya
yazma işini gerçekleştirir. INT 13h diske erişmek için gerekli programa
sahiptir. Diskin I/O adresine gerekli bilgileri vererek diskin bu
adresteki bilgileri okumasını ve aktarmasını sağlar. x WIN 95 ve NT
4.0 diske erişimi kısıtlamak amacıyla INT 13h'ı kendi üstüne alır
ve çağrıları kendisi değerlendirir. Eğer sakatlık yapacak bir çağrı
alırsa bunu engeller. Bunun dışında 95 DOS modunda açıldığından uzun
dosya isimlerini korumak için diske doğrudan erişimi engellemiştir.
Bu engeli kaldırmak için LOCK komutu kullanılır. Engeli tekrar koymak
için UNLOCK komutu vardır.
|