Ders:Açık Kaynak İşletim Sistemi
Konu:Dosya Sistemi Ve Çalışma
Mantığı
Hocanın Adı:Ahmet Haşim
YURTDAKAL
Hazırlayanın Adı:Muhammed
AKSOY,Aşkın GÖÇER,Mustafa YILMAZ
DOSYA SISTEMI VE ÇALIŞMA MANTIĞI
Dosya sistemi(file system), disk üzerindeki
dosyaların organize edilmesi, saklanma
biçimidir.
İşletim sistemi, sabit diski belli bir düzene göre
kullanır ve bu düzene dosya sistemi denir.
FAT16 : Windows95'in de kullandığı, eski bir
dosya sistemidir. Dosyaları adreslemek
için 16 bit kullanması sebebiyle en fazla 2 GB'lık
sabit disk bölümlerini
desteklemektedir
FAT32 : FAT16'dan daha gelişmiş bir dosya
sistemidir. Adresleme için 32 bit
kullanması sayesinde sabit disk bölümlerini 2
TB'a kadar desteklemektedir. FAT32
dosya sistemi 4 GB'tan büyük dosyaları
saklayamamaktadır.
NTFS : Microsoft tarafından geliştirilen dosya
sistemidir
Fat dosya sistemleri, Linux'un temel mantığı
olan dosya izin sistemini desteklememektedir.
NTFS ise, her ne kadar dosya izinlerini
desteklese de, bu konuda Linux'tan farklı bir
yöntem
kullanmaktadır.
ext2 : Çok yetenekli bir Linux dosya sistemidir.
Dosya izinlerini desteklemektedir.
İleriye dönük, kolay geliştirilebilen bir dosya
sistemi olarak tasarlanmıştır.
ext3 : Ext2'nin bütün özelliklerine sahip bir
dosya sistemidir. Ext2'nin özelliklerine ek
olarak, ext3'e günlükleme özelliği eklenmiştir. Bu
özellik, herhangi bir sistem çökmesi
durumunda geri kurtarma olayının çok daha
kolay yapılmasını sağlar.
Linux bir Unix koludur. Bu yüzden "Tekil
Hiyerarşik klasör Yapısı”nı benimsemiştir. Her
şey / (slash) simgesiyle ifade edilen root
klasöründen baslar, aşağıya doğru iner.
Windows'taki
gibi C: ve D: seklinde sözde sürücüler (drivers)
bulunmaz. Windows ortamında, dosyalarınızı
C sürücüsü, D veya E sürücüsü gibi her yere
koyabilirsiniz. Bu tarz dosya sistemlerine,
"Hiyerarsik Yapı”lı denmektedir.
Linux, / (root) klasöründen başlayarak, boot
işlemindeki önem sırasına Gore klasörleri
dizer. Eğer neden Windows'taki gibi \ (ters slash)
işareti yerine, / (slash) işareti kullanıldığını
merak ediyorsanız; bu Linux'un Unix geleneğini
takip etmesindendir
Ayrıca bu geleneğe
uygun olarak küçük büyük harf duyarlılığı
önemli bir konudur. Örneğin Windows'ta
KLASOR_ADİ ve klasör_adi ayni şeydir; fark
etmez. Ama Linux'ta iki ayrı klasörden
bahsediyor oluruz.
Kök dizini, kendisine bağlı diğer tüm dizinleri de
içerdiğinden, Linux dosya sisteminde
önemli bir yere sahiptir. Linux açılırken önce kok
dizini /etc/fstab dosyasına uygun şekilde
bağlanır. diğer dosya sistemlerinin onarımı ve
kontrolü için gerekli olan fsck programları, bu
dizinde bulunmalıdır.
Benzer şekilde yedekleme için gerekli olan tar,
zıp, com press gibi arşiv
programlarına da kok dizin altından
erişilebilmeli, açılış esnasında hafızaya yüklenen
çekirdek de kok dizininde yer almalıdır.
Bir programı yerine koymadan önce bazı
"dengelerin" göz önünde tutulmasında yarar
vardır. Programlanan her yazılımı kok dizinine
koyarsanız, bir sure sonra bu dosya sisteminin
şiştiğini görürsünüz.
Kok dizinini başlangıçta küçük (20-30Mb kadar)
tutmak, geliştirilen
programları daha önceden belirlenen baksa bir
dosya sistemi altına koymak akıllıca olur. Bu yol,
ağ üzerinden genellikle paylaşımı mümkün
olmayan kok dizininin her makinedeki sabit
diskte mümkün olan en az yer işgal etmesini
sağlar.
Örneğin /tmp dizini normal kullanıcıların
kullanımına acık olduğu için çok kısa bir surede
dolabilir. Burayı periyodik olarak silmek için find
komutu ise yarayabilir:
# find /tmp -atime +7 -exec rm -rf {} \;
Yukarıdaki komut, tmp dizini altında yaralan
tüm dosyaları kontrol edecek ve 7 günden daha
eski dosyaları silecektir. Benzer şekilde,
kullanıcıların dosyalarının yer aldığı /home
dizini de çok kısa bir surede dolmaya
mahkumdur. Sistemde ne kadar büyük sabit disk
olursa olsun bir gün gelecek burası dolacaktır.
Periyodik olarak buraya da göz gezdirmek
gerekir.
Microsoft Windows gibi bir başka işletim
sisteminden, Linux'a gecen son kullanıcıların en
büyük sıkıntılarından biri, dosya sistemleri
arasındaki farklardır. Windows konusunda biraz
tecrübeli kime sorsanız, Program Filer, Windows,
System32, Documents and Settings klasörleri
hakkında bilgi verebilir.
Ancak Unix dünyası farklıdır ve geçiş yapan
kullanıcılar,
hangi klasörün ne ise yaradığını, hangisinin
neyle alakalı olduğunu ilk bakışta çözemez.
Simdi bu ilk bakışta karmaşık gelen sistemi
birazcık olsun anlayabilmek adına aşağıdaki
soruya cevap vermeye çalısalım
LİNUX DOSYA SİSTEM HİYERARŞİSİ
Linux dosya sistemi oldukça derin bir konu
bütün dosyalar değil de Son kullanıcının daha
çok ilgisini çekecek ve genellikle haşir nesir
olabileceği klasörler irdelenecek./ (root) : Yukarda
belirttiğimiz gibi, / (root) işletim sisteminin
başlangıç noktasıdır. bütün diğer klasörler,
dosyalar, root'un 'çocuklarıdır' diyebiliriz.
Bilgisayar baslarken, ilk önce buraya bakılır ve
bulunmazsa sistem başlamaz. / (root) ve /root
(root kullanıcısına ait klasör) birbirinden ayrıdır.
FSSTND' GORE ROOT ALTINDAKI TEMEL
KLASÖRLER:
/bin
: Olması Sart komut dosyalarını içerir
/boot : başlangıç için gerekli dosyaları
bulundurur
/dev
: Donanım dosyaları vardır
/etc
: Sistem ayarlarını barındırır
/lib
: Kütüphane dosyaları ve kernel
modülleri bulunur
/media : Kaldırılabilir aygıtların (CD-Rom, Flash
bellek vs...) sisteme eklendiği klasördür.
/mnt : Bir dosya sistemini geçici olarak
eklemek için kullanılır.
/opt
: Ekstra programların kurulması içindir
/sbin
: Sistemi yöneticisiyle ilgili çalıştırabilir
dosyaları tutar.
/srv
: Sistemin sunduğu hizmetlerle alakalıdır
/tmp
: geçici dosyaları tutmak içindir
/usr
: İkincil bir hiyerarşi
/var
: Değişken verileri saklar
/bin : işletim sisteminizi kullanmak için gereken
birçok yararlı komut /bin klasörü altındadır. cat,
mkdir, cp, ls, mv, rm vb. temel komutların
hepsini burada bulabilirsiniz. Sistem boot
edildiğinde ilk olarak /bin klasörü çalışır hâle
getirilir. Network bağlantınız olmasa ya da
/boot : Boot, işletim sisteminin yüklenme
evresidir. /boot klasörü, boot işlemi için gereken
her şeyi içerir. Bilgisayarın başlangıç (boot)
aşamasında gerekmeyen ayar ve yapılandırma
dosyaları burada bulunmaz, başka klasörlerden
gerektiği zamanlarda yüklenir.
/dev : Linux'ta her şey bir dosyadır, donanım
aygıtları da öyle... USB girişleri, seri ve paralel
pörtler, diskleriniz, cd-rom’larınız vb... bütün
aygıtlar /dev klasörü altında tutulan dosyalardan
ibarettir. Örneğin /dev altında bulunan hda1
dosyası, sabit diskinizi temsil eder ya da /dev/dsp
ses aygıtınızdır. bunları programlar vasıtasıyla
kullanırız ancak direk müdahale ekmek
mümkündür.
/etc : işletim sistemini bir vücuda benzetirsek,
/etc klasörünü sinir sisteminin merkezi olarak
görebiliriz. Sisteme dair bütün yapılandırma, bu
klasör veya bu klasörün alt klasörlerinde
bulunur. yapılandırma dosyası, bir programın
işlemlerini kontrol etmek için kullanılan lokal
bir dosyadır, durağandır ve çalıştırılmak için
değildir.
/home : /home klasörünü kullanıcıların kalesidir.
/home klasörü içerisinde her kullanıcının
kendi adında bir alt klasörü bulunur. Örneğin
kullanıcı adiniz "ali" ise /home/ali size aittir ve
altında istediğiniz her şeyi yapabilirsiniz ama
yapabilecekleriniz bu klasörle sinirlidir. /home
klasörünü, Windows'taki Documents and
Settings'e benzetebiliriz.
/initrd : initrd, initial ram disk kısaltmasıdır.
Aşağı yukarı anlamı başlangıç Bellek Diski
oluyor. Boot aşamasında ilk önce çekirdek
(kernel) yüklenir. Bundan sonra bilgisayarınızın
belleğinde bir Bellek Diski oluşturulur.
Oluşturulan Bellek Disk üzerinde / (root) yansısı
açılır ve kok dizin olarak monte edilir. /initrd bu
işlemlerin yapılması ve Linux'un yüklenmesi için
gereklidir.
/lib : Kernel modülleri ve paylaşılan kütüphane
dosyaları bu klasörde bulunur. Var olan çekirdek
modüllerini /lib/modules/[versiyon_numarası]
içersinde bulabilirsiniz. Bahsedilen
kütüphane dosyalarıysa, sistemi başlatmak ve
/bin ile /sbin içersindeki komutları çalıştırmak
için gereklidir. paylaşılan kütüphane dosyalarını,
Windows'ta DLL (Dynamically Linked
Library) ile es tutabiliriz. Linux'ta kütüphane
dosyalarının sonu ".so" ile biter