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