Linux'un dosya sistemi, Windows'un dosya sisteminden farklı olduğu için, yeni kullanıcılara karmaşık gibi gözükse de aslen öyle değildir. Genel olarak incelersek Microsoft sistemlerinde birbirinden bağımsız kök dizinler(root) bulunur. Mesela C dizini hard diskin ilk bölümünü gösterirken D dizini, 2. bölümü gösterir. Ayrıca disket ve USB için de ayrı ayrı kök dizini bulunur. Ancak Linux işletim sisteminde hiyerarşik bir klasör yapısı vardır. Bu hiyerarşik yapıda en üst dizin kök dizini (root directory) olarak bilinir ve “/” ile gösterilir. Tüm dosya sistemleri, programlar hatta sonradan eklenen disk bölümleri(partition) bile kök dizininin alt dizinlerinde yer alır. Her ne kadar programlar kök dizinine koyulabilse de alt dizinler genellikle tercih edilir, çünkü çok kullanıcılı bir işletim sisteminde, diğer kullanıcılarla paylaşılmayan kök dizininin, ana makinenin hafızasında çok yer kaplaması istenilen bir durum değildir. Kök dizini önyükleme esnasında hafızaya yüklenen ilk bölümdür.
Başlıca alt dizinler /bin, /boot, /dev, /etc, /home, /initrd, /lib, /lost+found, /misc, /mnt, /opt, /proc, /root, /sbin, /tmp, /usr ve /var dizinleridir. Kök dizinine başka alt dizinlerin eklenmesi ancak yönetici hesabının kullanılmasıyla olur. Diğer kullanıcılara bu izin verilmemiştir. Yoksa, linux gibi çok kullanıcılı sistemlerde bu durum, büyük bir kargaşaya; diğer kullanıcıların bilgilerinin silinmesi, değiştirilmesi gibi durumlarla karşı karşıya kalınmasına sebep olabilir.
Root altındaki başlıca dizinler:
/bin ve /usr/bin:(binary file) İşletim sisteminin çalışması için gerekli olan programların bulunduğu yerdir. Mesela: kabuk programları: bash& sh;dosya düzenleme programları:tar,cat,echo,vi,ls ve cp; process programları: kill,grep.
/sbin ve /usr/sbin: Sistem yöneticilerinin kullanabileceği komutların tutulduğu dosyalardır. init,getty,updatedb gibi...
/boot: Bilgisayar başladığında ilk olarak yüklenmesi gereken programların bulunduğu yerdir. Mesela; linuxun çekirdeği(linux kernel) ve Vm-linuz.
/dev: input/output files(girdi/çıktı dosyaları) ve bilgisayarın desteklediği diğer tüm aygıtların bilgisi bu dizinde tutulur. Linux'taki aygıtlar ya karakter aygıtı ya da blok aygıtıdır. Başlıca karakter aygıtları fare, klavye,seri port; blok aygıtları ise disket,CD-ROM ve sabit disktir.
/etc: Bu dizinde çalıştırılabilir dosyalar yerine, birçok programın ve sistemin yapılandırma dosyaları ve dizinleri saklanır. Etc'nin içindeki bazı alt dizinler ve dosyalar:
- skel: Kullanıcı hesabı açıldığında kullanıcı dizinine kopyalanan dosyaların bulunduğu bölümdür.
- inittab: Sistem başlatıldığında ya da herhangi bi çalışma anında hangi processlerin çalışmakta olduğunu gösteren dosyadır. Bu dosyada uygun değişiklikleri yapılarak, sistem başlatıldığında hangi işletim sisteminin yüklenmesi gerektiğini ya da ctrl+alt+del e basıldığında bilgisayarın ne yapacağını ayarlanabilir.
- fstab: Çeşitli dosya sistemlerinin ve bağlantı konumlarının (mount pointers) ayrıntılı açıklamalarını tutan dosyadır.
- rc.d:(run commands) rc dosyalarının bulunduğu bölümdür. Rc dosyaları başlangıç betiklerinin içerir. Yani bir programın nasıl başlaması gerektiğini kontrol eder. Mesela vim metin düzenleyici açıldığında, hangi ayarlarla başlayacağını “.vimrc” dosyasına bakarak anlar. Ayrıca rc.0,rc.1..rc.6 ya kadar olan dosyalar ise bilgisayarınızın hangi seviyede çalıştığına dair bilgiler içerir. 0. level durma,1. level tek kullanıcılı seviye,4. level çok kullanıcılı seviyeyi,6. level ise yeniden yükleme (reboot) seviyesini gösterir. Rc.local bilgisayarın açılış işlemleri bittikten sonra çalıştırılır. Eğer bilgisayarın, her açıldığında farklı birşey daha yapması isteniyorsa bu dosyaya gerekli komutlar eklenebilir. Rc sistemini kullanmayan bazı dağıtımlar da bulunmaktadır.(örneğin:pardus)
- passwd: Kullanıcılara ait çeşitli bilgilerin bulunduğu ve kullanıcıların tanımlandığı bölümdür.
- motd: Kullanıcı sistemi başlattığında, ekrana basılması istenen mesajlar burada tutulur.
- profile: sisteme girildiğinde çalıştırılması istenen dosyalar saklandığı yerdir.
- X11:Grafik arayüzünü(X window) yapılandırma dosyalarının bulunduğu yerdir.
/lib: Programlar tarafından paylaşılan kütüphane dosyalarının (perl,phyton,C) ve sistem başlatılırken kullanılan yüklenebilir sürücü modüllerinin saklandığı yerdir.
/mnt: Flash disklerin, CD ROM'un, disketlerin ön tanımlı olarak bağlandığı(mount edildiği) yerdir. Ubuntu gibi başı değişik işletim sistemleri “media” dizini altına da bağlayabilmektedir.
/var: Programların değişken sistem dosyalarını tutan bölümdür. Örneğin; programların çalışma sırasında kullandığı uygulamaların anlık durumları(/var/lib), yazıcıya gönderilen sayfalar(/var/spool),sistem hatalarının ya da mesajlarının saklandığı kayıt sayfaları(/var/log),o anda çalışan programların(process) Iplerini tutan dosyalar(/var/run) bu tip dosyalardır. Bu dosyaların boyutları ve sayısı o anki duruma göre değişebilmektedir. Geçici dosyaların /usr'dan ayrı bir dizinde saklanmasının nedeni ise bazen /usr dizininin salt-okunur yapılmasındandır. Salt-okunur dizinde,bu dosyaların değiştirilmesi olanaksızdır.
/tmp: Geçici dosyaların saklanması için kullanılan yerdir . Sistem başlatıldıktan sonra bu görevi “/var/tmp” dosyası üstlenir. Bir program yüklediğinizde, sadece yükleme süresince kullanılan daha sonra lazım olmayacak dosyalar burada saklanır. Ancak bu dizinden bilinçsizce dosya silinmesi sistem çökmesine neden olabilir.
/usr: Bütün komutların,kütüphanelerin, kullanma kılavuzlarının oyunların ve sistemin normal işleyişi için gerekli olan dosyaların bulunduğu yerdir. Linux sisteminde bir uygulama yüklenecekse, genelde, ön tanımlı olarak buraya yüklenir. Alt dizinlerini incelemek gerekirse:
- bin: Neredeyse tüm komut dosyalarının tutulduğu yerdir.
- include: C/C++ dili için gerekli kütüphanelerin bulunduğu dizindir.
- local: Yerel olarak yüklenen programlar ve dosyalar burada bulunur.
- src: Linux çekirdeğinin kaynak kodunun tutulduğu yerdir.
- share: Birçok uygulamanın yapılandırma ve grafik dosyaları burada bulunur.
/home:(ev dizini) belirli bir kullanıcının kişisel dosyalarının(masaüstü ayarları,bazı programlara ulaşmak için kullanılan şifreler, İnternet tarayıcısında sık kullanılan sayfalar) saklandığı yerdir.”~”ile gösterilir. Ev dizininin içeriği sadece dizin sahibinin ulaşımına açıktır. Yani, diğer kullanıcılar yönetici (superuser/root) olmadıkları sürece buraya erişemezler. Home dizini, sistem geneli verilerin kişisel bilgilerden ayrılması, herhangi bir çökme olması durumunda dosyaların kurtarılması ve yedeklenmesi açısından önem taşır. Ayrıca kişisel dosyalara virüs, trojen bulaşması durumunda, dosyaların göreceği zarar bu kullanıcının hesabındaki dosyalarla sınırlıdır. Herhangi bir anda cd ~username yazmak home dosyasına geçişi sağlar. Bu sebeple internet sunucuları /~xxxx gibi bir adres yazıldığında kullanıcının ev sayfasını açar.
Linux dosya sistemi başlıca bu bileşenlerden oluşmaktadır. Dosyaların genel olarak ne içerdiğini bilmek, herhangi bir sorunla karşılaşıldığında nereye bakılması gerektiği açısından işimizi kolaylaştırabilir. Ayrıca bilgisayarımızı kişiselleştirmek için de bu dosyalarda küçük değişikler yapabiliriz. Kolay gelsin....