1. Duyuruyu Kapat

Linux Dosya Sistemi Yapısı

'Dökümanlar' forumunda r00ts4 tarafından 30 Ağustos 2015 tarihinde açılan konu

  1. r00ts4

    r00ts4 Administrator Site Yetkilisi

    Katılım:
    20 Aralık 2014
    Mesaj:
    582
    Beğeniler:
    24
    Bu bölümde Linux'un kullandığı dosya sistemi hakkında bilgi verilecektir. Dosya sistemini oluşturan dizinler, kapsadıkları dosyalar ve bunların Linux işletim sistemindeki görevleri de kısaca belirtilecektir.

    Bir işletim sisteminin dosya sisteminin performansı, hızı ve buna benzer çeşitli özellikleri sistemin verimli ve kararlı çalışması üzerinde doğrudan etkisi vardır. Linux dizin yapısının geliştirilmesindeFSSTND (file system standard) grubunun çalışmalarının payı çok büyük oldu. Programcılardan oluşan grup, standartların belirlenmesinde ve uygulama aşamasında Linux ile ilgilenenlere yardım etti. 1993 yılında Olaf Kirsh, Linux haber grubuna yazdığı bir e-postasında Linux dosya sistemi üzerindeki çalışmaların tamamlandığını haber verdi.

    Linux dizin yapısında bazı dizinlerin işlevi birbiriyle aynıdır. Bu durum, özellikle birbirini takip eden iki Linux sürümünde belirginleşir. Örnek olarak bir dağıtımda /usr/bin dizini altında yeralan dosya, diğer sürümde /bin altına yerleştirilebiyor.

    Dosya sistemleri ve dizinler paylaşımlı olarak da kullanılabilir. Birden fazla kişisel bilgisayarın bağlandığı ağda, disk alanından yer kazanmak için bir makina sunucu (ana makina) olarak tayin edilir. Ağ üzerindeki diğer makinalar da sunucu üzerindeki diski paylaşır. Buna örnek olarak kullanıcı ev dizinlerinin yeraldığı /home, çalıştırılabilir dosyaların bulunduğu /usr, e-posta ve haber grubu bilgilerinin bulunduğu /var/spool/mail ve /var/spool/news dizinleri verilebilir.

    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 kök 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, zip, compress gibi arşiv programlarına da kök dizin altından erişilebilmeli, açılış esnasında hafızaya yüklenen çekirdek de kök dizininde yeralmalıdır.

    Bir programı yerine koymadan önce bazı "dengelerin" gözönünde tutulmasında yarar vardır. Programlanan her yazılımı kök dizinine koyarsanız, bir süre sonra bu dosya sisteminin şiştiğini görürsünüz. Kök dizinini başlangıçta küçük (20-30Mb kadar) tutmak, geliştirilen programları daha önceden belirlenen başka bir dosya sistemi altına koymak akıllıca olur. Bu yol, ağ üzerinden genellikle paylaşımı mümkün olmayan kök dizininin her makinadaki sabit diskte mümkün olan en az yer işgal etmesini sağlar.
    Sistemdeki önemli dizinlere göz atarsak,

    /bin
    Sistemin açılışı ve kontrolü için gerekli komutlar. Hem kullanıcıların, hem de sistem görevlisinin kullanabileceği dosyalar (kök dizinde ise fazla şişmemesi koşuluyla) buraya atılabilir. Sadece root kullanıcının ihtiyaç duyacağı init, getty, updatedb gibi programlar /sbin veya /usr/sbin'de durabilir. Bu dizinde bulunan dosyalara örnek olarak cat, chgrp, chown, date, dd, df, ln, mkdir, mount, ps, rm, sh, su, sync ve umount verilebilir.

    /dev
    G/Ç dosyaları. Linux çekirdeğinde desteklenen her aygıta ait dosya /dev dizini altında bulunur. Kurulum anında bu dosyalar yerine yerleştirilir, bu dosyaların silinmesi durumunda /dev/MAKEDEV ile tekrar yaratılabilirler.

    /etc
    Sistem yapılandırma dosyaları. Bu dizinde çalıştırılabilir dosyalar bulunmamalıdır.
    skel

    Buradaki dosyalar, kullanıcı hesabı açıldığında kullanıcının ev dizinine kopyalanır.
    rc.d
    Bu dizinin içinde, init sürecinin başvurduğu yapılandırma dosyaları vardır. Bunlara "rc dosysları" da denir.
    passwd
    Kullanıcı veritabanı
    fstab
    Linux'un açılışı esnasında bindirilecek dosya sistemleri burada listelenir.
    group
    passwd'e benzer şekilde kullanıcıların gruplarını tutar.
    inittab
    init daemon için yapılandırma dosyası
    motd
    Kullanıcı sisteme girdikten sonra ekranına basılması istenen mesaj burada tutulur.
    profile
    Kullanıcı sisteme girdiği zaman çalıştırılan dosya (csh ve sh türevi kabuklar için)
    shells
    Sistemde kullanılabilecek kabuk isimleri burada tutulur.
    login.access
    login komutu için yapılandırma dosyası. Sisteme girişi kullanıcı bazında sınırlamak için kullanılir.
    /home
    Kullanıcılara ayrılmış dizin. Başka şekilde ayarlanmamış ise, açılan her hesaba ait kullanıcı, burayı kullanır. Büyük sistemlerde, bu kısım alt parçalara ayrılabilir (/home/ftpadm , /home/ogrenci gibi)
    /lib
    Kütüphane dosyaları.
    /mnt
    Geçici mount edilen dosya sistemleri. Sadece bu iş için kullanıldığından sistem görevlisine zaman kazandırır.
    /proc
    Süreç kontrollerini ve diğer sistem bilgilerini tutan dosya sistemi. Bu dosya sistemi aslında disk üzerinde yer kaplamaz, tüm dosyalar çekirdeğin bir uzantısı sayılabilir.
    cpuinfo
    işlemci modeli, tipi ve performansını bildirir.
    devices
    Halihazırda çalışan çekirdek içinde desteği bulunan aygıt sürücülerini listeler.
    dma
    Hangi dma kanallarının kullanıldığını belirtir.
    filesystems
    Halihazırda çalışan çekirdek içinde desteği bulunan dosya sistemlerini listeler.
    interrupts
    Hangi kesintilerin kullanımda olduğunu söyler.
    iports
    Halen hangi giriş/çıkış iskelelerinin kullanıldığını belirtir.
    kcore
    Sistem hafızasının görüntüsü
    /root
    Sistem görevlisinin ev dizini. Mümkünse bu dizini sistemdeki diğer kullanıcıların görmeyeceği şekilde ayarlayın.
    /sbin
    Hayati sistem komutları. Bir zamanlar bu dosyalar /etc dizini altında yeralıyorlardı. Sadece sistem görevlisinin ihtiyacı olan komutlar, /sbin veya /usr/sbin içinde bulunur.
    /tmp
    Geçici dosyaların koyulduğu dizin. Belirli zaman aralıklarında temizlenmelidir.
    /usr
    Diğer önemli sistem dosyalarını tutar. Bu bölüm genelde en kalabalık dizindir, zira yeni kurulan tüm programlar buraya konulur.
    X11R6
    X Pencere sistemi bilgileri tutulur.
    doc
    Belge ve dökümanlar, genellikle HOWTO ve FAQ dosyaları.
    lib
    Bazı kütüphaneler
    man
    Man dosyaları
    src
    Bazı kaynak dosyaları ve linux çekirdeğini oluşturan kodları (/usr/src/linux) içeren dizin.
    sbin
    Kök dosya sisteminde yeralması gerekmeyen çalıştırılabilir sistem görevlisi dosyaları
    /var
    Sürekli değişen sistem bilgileri burada tutulur. İstisnalar dışında diğer makinalarla paylaştırılmaz.
    adm
    Sistem yönetimini ilgilendiren kayıtlar
    preserve
    Sistemin göçmesinden sonra zarar görmesi mümkün dosyaların kaydedildiği yer.
    spool
    Sonra işlenecek olan veriler buraya atılır (e-posta gibi)
    Eğer sistem yöneticisi iseniz düzenli olarak dosya ve dizin yapısını kontrol etmelisiniz. Örneğinn /tmp dizini normal kullanıcıların kullanımına açık olduğu için çok kısa bir sürede dolabilir. Burayı periyodik olarak silmek için find komutu işe yarayabilir:

    # find /tmp -atime +7 -exec rm -rf {} \;

    Yukarıdaki komut, tmp dizini altında yeralan 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 sürede 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. Aşağıda yeralan kısa program, /homedizininde yeralan kullanıcı dizinlerideki disk kullanımını büyükten küçüğe doğru disk isimli dosyaya yollayacaktır. Bu dosyanın incelenmesiyle hangi kullanıcıları "cezalandıracağınızı" görebilirsiniz :)

    # du -skx /home/* | sort -rn > disk

    du (disk usage), sistem kullanıcılarının sıkça başvurduğu bir komuttur. Kullanılabilecek parametreler için du(1) man sayfasına bakın.
    UNIX, (ve dolayısıyla Linux) iki tip aygıt tanır. Bunlardan ilki karakter aygıtları, başka bir deyişle veri alışverişini bayt bazında yapan cihazlar, diğeri de blok aygıtları, yani veri alışverişini blok cinsinden yapan cihazlardır. Karakter aygıtlarına örnek olarak seri bağlanan cihazlar ve teypler, disk aygıtlarına örnek olarak da diskler verilebilir. Bu cihazlardan bir bilgi yazılıp okunduğunda dosya sistemi altında bunları tanımlayan dosyalar (/dev/*) kullanılmış olur. Örnek olarak bir yazıcıya bilgi göndermek için,

    $ cat dosya > /dev/lp1

    komutunu kullanabilirsiniz. Dosya, yazıcının anlayabileceği bir yapıda olmalıdır (örneğin düz metin).
    Her aygıt, bir dosya olarak dosya sisteminde kendine yer bulduğuna göre hangi aygıt dosyalarının bulunduğunu görmek mümkün olabilir.

    $ ls -l /dev/cua0
    crw-rw-rw- 1 root uucp 5, 64 Nov 30 1993 /dev/cua0


    İlk kolondaki ilk karakter (c), bu dosyanın bir karakter aygıtına ait olduğunu belirtiyor. Normal dosyalar için buradaki karakter '-' olmalıydı. Benzer şekilde blok aygıtlar için ise 'b' kullanılr.
    Aygıt sürücü desteği çekirdekte olmasa bile /dev dizini altında genellikle tüm aygıt dosyaları bulunur. Bu demektir ki /dev/sda dosyasına sahip olduğunuz halde bir SCSI sabit diski sistemde takılı olmayabilir. Tüm aygıt sürücülerinin bulunması, programların kurulumunu ve yeni donanımın eklenmesini kolaylaştırır.

    Not: alıntıdır.
     
  2. TncXP

    TncXP New Member

    Katılım:
    22 Ekim 2015
    Mesaj:
    2
    Beğeniler:
    0
    Web Sitesi:
    teşekkürler hocam.
     

Bu Sayfayı Paylaş

Share