Ana sayfa » Linux Dosya Hiyerarşisi
Linux

Linux Dosya Hiyerarşisi

linux dosya yapısı hiyerarşisi

Linux Dosya Sistemi Yapısı Nedir?

Windows’tan Linux’e geçiş yapan bir kullanıcı genellikle Linux dosya yapısına karşı yabancılık duyar. Bu durum gayet normal çünkü Linux dosya sistemi Windows’taki yapıdan tamamen farklıdır. Mesela Windows’ta kurduğunuz bir programa ait tüm dosyalar C:\ProgramFiles\DosyaAdı yolunu takip eder. Linux’ta ise yüklenecek programın dökümanları /usr/share/doc/program_adi/ altına koyulurken, man(ual) dosyaları, /usr/share/man/man[1-9] altına koyulur. Eğer varsa info dosyaları da, /usr/share/info altına atılır. Kısacası, sistem hiyerarşisine gömülen bir yapı söz konusudur. Yüklenen herhangi bir program, işletim sisteminin muhtelif yerlerine yerleştirilmektedir.

Linux dosya sistemi tek hiyerarşili bir yapıyı benimsemiştir. Yani her şey “/” root adı verilen bir ana dizinin alt klasörlerinden meydana gelmiştir. Linux’ta tüm dosyalar “/” root klasöründen başlar ve boot sırasına göre aşağıya doğru devam ederek sıralanır. Olayı tam olarak anlayabilmeniz için bu yapıyı gösteren aşağıdaki resmi dikkatle inceleyelim.

linux dosya sistemi hiyerarşisi
Linux Dosya Yapısı

Gördüğünüz gibi her şey “/” yani root klasöründen başlamaktadır. Şimdi isterseniz bu dosyaların önemli olanlarının linux dosya yapısında üstlendikleri görevleri inceleyelim.

Klasörler ve Tanımları

“/” – Root

Linux dosya yapısındaki en önemli ve en baştaki klasördür. Tüm klasörler bu klasörün alt kollarıdır. Bir başka değişle tüm klasörlerin ana klasörüdür. Yalnız bu klasör süper kullanıcı klasörü olan “root” ile karıştırılmamalıdır. İkisi çok farklı şeylerdir. “root” klasörümüz tam yetkili bir kullanıcı klasörüdür ve linux işletim sistemine root olarak giriş yaptığınızda, tüm kişisel bilgileriniz bu klasör altında toplanır. Diğer tarafdan “/” ise tüm dosyaların başlangıcıdır yani özetle dikkat edilecek kısım; root kullanıcısına ait olan klasör ile ana root klasörünü temsil eden “/” ters slah klasörü karıştırılmamalıdır.

“/bin”

Tüm kullanıcılar tarafından çalıştırılabilir binary komut dosyalarını içerir. Bu komutlara örnek verecek olursak; ps, ls, ping, grep, cp. Komutları yeterli olacaktır.

“/sbin”

Aynı /bin klasöründeki gibi çalıştırılabilir binary komut dosyalarını içerir ama “/bin” klasöründen farkı, “/sbin” klasörü içindeki komutlar sadece administrator tarafından çalıştırılabilir. Yani “/sbin” klasörü içindeki komutları her kullanıcı çalıştıramaz sadece yönetici sıfatındaki ve yetki almış kullanıcılar çalıştırabilir.

“/etc”

İçinde tüm programlar için gerekli olan ayar dosyalarını barındırır. Mesela sistemin açılışı ve kapanışı sırasında çalıştırılacak programların ayar dosyaları “/etc” klasörü altında bulunur. Kısaca tüm programların hangi durumda ne yapacağına dair ayarlar burada bulunur. Linux içinde önemli bir konuma sahiptir.

“/dev”

İçinde donanım dosyalarını barındırır. Yani tüm usb portlar, ekran kartı, harddiskiniz, ses aygıtlarınız, seri ve parelel portlarınız… kısaca hepsi “/dev” klasörü içinde bulunur ve aktif olarak bu klasörün içine girerek donanımlarınıza müdahale edebilirsiniz. Aşağıdaki liste bazı önemli aygıt dosyalarını göstermektedir.

Bazı Önemli Aygıt Dosyaları:

  • /dev/ttyS0: Fare, modem gibi aygıtların bağlandığı seri port. (COM 1)
  • /dev/psaux: PS/2 girişi; fare ve klavyeler içindir.
  • /dev/lp0: Paralel port (LPT 1); yazıcı, tarayıcı vs…
  • /dev/dsp: Birincil ses aygıtı
  • /dev/usb: USB aygıtları
  • /dev/sda: SCSI aygıtlar, Flash Bellekler, harici CD-ROM’lar vs…
  • /dev/scd: SCSI CD-ROM’lar
  • /dev/js0: Joystick (Microsoft Türkçesiyle Eğlence Çubuğu)

“/var”

Bu klasörde sisteminize ait tüm log dosyalarınızı, email ve printer kuyruklarınızı, şifreli dosyalarınızı, reboot sırasında kullanılan temp (yani geçici) dosyalarınızı bulabilirsiniz.

“/proc”

Sisteminiz “runnig process” dosyaları ile ilgili bilgiler barındıran sanal bir dosya sistemidir. Yani sistemiz içinde çalışmakta olan işlemlerin bilgilerini sanal olarak içinde barındırır. Mesela işlemciniz ile ilgili bilgi edinmek istiyorsanız cat /proc/cpuinfo yazabilirsiniz.

“/tmp”

Sisteminizdeki geçici dosyaların bulunduğu yerdir. Sisteminizde bulunan birçok program geçici dosyalarını buraya atar ve bu dosyalar sistem reboot edildiğinde silinir. Yani sadece sistem çalışırken işe yarayacak dosyalardır ve her biri sisteminizdeki bir program ile ilişkilidir. Bu klasörün içinden bir dosyayı silmek, sisteminizde o sildiğiniz dosya ile bağlantılı uygulamanın çalışmasını aksatabilir. Bu sebepten manipüle edileceği zaman dikkat edilmesi gerekmektedir.

“/lib”

“/bin” ve “/sbin” klasörleri altında bulunan program ve komutların çalışması için ihtayaç duydukları tüm kütüphaneler bu klasör altında bulunur. Bu klasör altında bulunan dosyaları Windows’taki “.dll” dosyalarına benzetebiliriz. Linux’de ise kütüphane dosyalarının sonu “.so” ile biter.

“/opt”

3. Parti yazılım olarak dışarıdan yüklenen tüm uygulamarın dosyaları bu klasörün içine atılır. Mesela ben bir kali linux kullanıcısı olarak “nessus” adlı bir programa ihtiyacım var ama bu program sistemim tarafından yüklenmemiş ve kaynak kodlarıda resmi olarak kali linux depolarında bulunmuyor. Bu durumda ben gidip nessus’u websitesinden indirip kuruyorum, işte bu durumda kurduğum bu dosyalar “/opt” klasörü içine atılıyor. Peki sistem tarafından destekelenen programlar nerede diye soracak olursanır onlarda “/usr” içinde bulunuyor.

“/usr”

/usr klasörünün önemi, yüklediğiniz programların buraya atılmasından kaynaklanır. /opt adresi işletim sistemi dışında gelen 3.parti programlar içindir. Fakat işletim sistemi aracılığıyla ya da paket yönetim sistemlerini kullanarak yüklediğiniz her şey, /usr altına aktarılır. Aynı zamanda yüklediğiniz programların çalışmak için ihtiyaç duyacağı kütüphane dosyaları, /usr/lib altındadır.

“/home”

Home klasörünün içinde, normal kullanıcılara ait alt klasörler bulunur. Mesela ahmet adında bir kullanıcı var diyelim. Bu kullanıcıya “/home” klasörü altında bir dizin verilir ve bu dizin altında istediğini yapmakta özgürdür. Bu kullanıcıya verilen alana “/home/ahmet” şeklinde ulaşılabilir. Zaten default olarak bilgisayarı açtığınızda eğer yönetici olarak açmadıysanız “/home/kullancıadınız” klasörü altında bulunursunuz. Windows’taki karşılığı Document and Settings klasörüdür. Bu benzetmeyi “/root” klasörünü tanımlarken de yaptım.

“/root”

Bu klasör ana klasörümüz olan “/” rootdan tamamen farklıdır. Bu klasörü bir kullanıcı klasörü olarak düşünelim. Windows’da Document and Settings diye bir klasör bulunur bilirsiniz. Bunun içinde resimler, videolar, müzikler… gibi son kullanıcıya hitap edecek klasörler bulunur. İşte linux de Document and Settings’in administrator kullanıcı versiyonu “/root” klasörüdür. İçinde Downlods, Desktop, Pictures, Music… gibi son kullanıcıya hitap eden istediğiniz gibi kullanabileceğiniz dosyalar bulunmaktadır. Burada kendi dosyalarınızı oluşturabilir, film indirip izleyebilirsiniz. Kısaca burayı her türlü yetkiye sahip olduğunuz bir “/home” klasörü şeklinde tanımlayabiliriz.

“/boot”

Linux,windows,mac… gibi tüm işletim sistemlerini kapasayan evrensel bir terimdir boot. Anlamı için sistemin açılması sırasında yapılan bir takım işlemler bütünü diyebiliriz. Bilgisayarımızda açma tuşuna bastığımızda otomatik olarak hangi işletim sistemi varsa o açılır. İşte o işletim sistemi açılırken yapılan işlemler boot olarak adlandırılır. Linux’de de “/boot” klasörümüzün altında boot işlemi yapılırken gerekli olan dosyalar mevcuttur.

“/initrd”

initrd, initial ramdisk 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 kök dizin olarak monte edilir. /initrd bu işlemlerin yapılması ve Linux’un yüklenmesi için gereklidir.

“/media”

CD-Rom, disket sürücü, flash bellek gibi çıkarılabilir aygıtlar buraya bağlanır. En basit tanımla, çıkarılabilir aygıtların, bağlantı noktası (mount point) olarak düşünebilirsiniz.

“/mnt”

/media klasörüne benzer. Temel farkı; çıkarılabilir aygıtlar yerine, dosya sistemleri veya donanım aygıtları için kullanılıyor oluşudur. Bağlama (mount) işlemi, herhangi bir dosya sistemini, işletim sisteminin kullanmasını sağlar. Nereye bağladığınız sizin tercihinizdir. Yani bir diski, /media veya /mnt klasörüne ya da bir başka yere bağlamanız fark etmeyecektir. Sadece genel kabul görmüş bazı bağlantı noktaları bulunuyor; /mnt klasörü de onlardan bir tanesi.

Linux dosya sistemi yapısını elimden geldiğince sizlere anlatmaya çalıştım. Yukarıda yazdığım bazı tanımlar linux dosya yapısını anlatan bu adresten alınmıştır. Ayrıca Linux dosya sistemi ile ilgili daha detaylı bilgi almak istiyorsanız bu adresi ziyaret edebilirsiniz.

Yazar Hakkında

Hakan İlbiz

Siber güvenlik, linux, programlama ve network gibi bilgisayar bilimlerini kapsayan alanlarda yaptığı çalışmalardan edindiği tecrübeleri, kurucusu olduğu kodputer.com adlı web sitesinde okurlarına sunan ve bundan büyük bir haz duyan Sakarya Üniversitesi Bilgisayar Mühendisliği öğrencisi.

Yorum Ekle

Yorum Yazmak İçin Tıkla