Linux dosya-sistemi hiyerarşisi
Kurulumları her geçen gün daha da kolaylaşan dağıtımları bilgisayarlarına kurup denemek isteyen çoğu GNU/Linux aday kullanıcısının bu yola başlarken karşılaştığı ilk sorun dosya sistemi hiyerarşisine alışamamalarından ileri geliyor. Windows'taki gibi C:\Program Files\X tarzında program kurulumlarına alışmış bu yeni kullanıcılar GNU/Linux'te başlangıç aşamasında bir bocalama yaşıyorlar. Bu yazımızda bu amaçla GNU/Linux kök dosya hiyerarşisine bir giriş yapacağız.
Linux dosya hiyerarşisinde en üst (kök) dizin / ile gösterilir. Diğer tüm klasörler bu kökün altına yerleşirler. Bu olay windows geçmişine sahip kullanıcılara tek bir klasör altında iki ayrı hard-disk bölümünün "bağlı" olabileceğine ikna ederken işleri biraz zorlaştırabilmektedir tabii ki. :) Olay yerinde "E benim 3 ayrı hdd bölümün var. Nasıl oluyor da bunlar kök dizinininin altında dev (device'dan gelmektedir ismi) klasöründe (kısaca /dev) öylece salt bir dosya gibiymişlercesine kardeşçe yaşayabiliyorlar" tarzı diyaloglara sebebiyet verebilmektedir. Hele işin içine bir de dev klasöründeki bu sözde hdd'leri temsil eden dosyaları kullanabilmek için ilgili cihazı mnt klasörüne bağlamanız (mount) gerektiği gerçeği girince işler biraz daha bulanıklaşır. Ama ne demişler; insan bilmediğinden korkar...
Kök dosya sistemini bir ağaca benzetebileceğimiz şüphesiz sizi şaşırtmayacaktır. Ters dönmüş bu ağaç en üstte kökü (/ ifadesi ile temsil ettiğimiz) ve altında bin, boot, dev, etc, home, initrd, lib, lost+found, misc, mnt, opt, proc, root, sbin, tmp, usr, var tarzı alt dizinleri ile bedene bürünür. Şimdi gelin bu kök altındaki temel yapıları inceleyelim;
/bin: Tüm kullanıcılar tarafından kullanılabilen (root olmak gibi ayrıcalık istemeyen) temel programlar bu dizinde yer alır. (Örneğin dosya içeriklerini görüntülemek için kullanılan cat, bulunduğunuz dizinde listeme yapan ls komutu vb...)
/boot: Boot işlevini yerine getiren programların tutulduğu dizindir.
/dev: Bilgisayara bağlı cihazların bilgisini tutan dizindir. Örneğin hard-diski, cdrom'u, klavye, fare ve seri-portumuzu burada birer dosya şeklinde görürüz. Linux terminolojisinde iki tür aygıt vardır. Bunlar blog aygıtları ve karakter aygıtlarıdır. Cd-rom blog aygıtı iken klavye bir karakter aygıtıdır örneğin. (Örneğin /dev/null dosyası çıktının (stdout yada stderr ) sistem dışarı edilmesi (discard) için sık kullanılan sanal bir aygıttır.)
/lib: Programlar tarafından (genelde /bin ve /sbin altındaki) kullanılan kütüphanelerin saklandığı dizindir.
/etc: Bu dizinde çalıştırılabilir programlardan ziyade birçok program ve sistemin geneline dair ayar dosyaları bulunur.
/etc/X11: X pencere sistemine ait ayar dosyalarının tutulduğu yerdir.
/etc/passwd: Kullanıcılara ait çeşitli bilgilerin bulunduğu ve kullanıcıların tanımlandığı bölümdür.
/etc/skel: Yeni bir kullanıcı sisteme kaydedildiğinde kullanıcı dizinine kopyalanacak dosyaları içeren yerdir. (
/etc/profile: Kullanıcı sisteme girdiğinde çalıştırılması istenen dosyalar burada bulunur.
/etc/rc.d: Programların hangi ilk değerlerle başlayacağını belirten başlangıç betiklerini içeren rc dosyalarının tutulduğu dizindir.
/home: Kullanıcılara ait dosyaların tutulduğu dizindir. Örneğin sisteme ozirus ismi ile kaydolunduysa ozirus kullanıcısının dosyaları /home/ozirus altında tutulur. Terminalden ozirus kullanıcısı ile giriş yapmışken cd /home/ozirus komutu ile girilebildiği gibi cd ~ ile de girilebilir bu dizine. Kimi [bir *nix sistemde host edilen] web sayfalarındaki tilda(~)'lı kullanımın temeli burda yatar. http://ww.sau.edu.tr/~ozirus adresi ile ilgili sunucuda ozirus'un home klasörüne erişim sağlar.
/media: CD-ROM gibi kaldırılabilir cihazların bağlandığı yerdir.
/mnt: /media'ya benzer şekilde cihazların geçici bağlama yeridir.
/opt: Üçüncü parti/opsiyonel yazılımların genelde kurulduğu dizindir.
/proc: Kernel ve işlemci durumlarına ait bilgileri görmemizi sağlayan mantıksal dosya sistemi yapılarıdır. /proc/uptime ve /proc/network örnek olarak verilebilir buradaki dosyalara.
/sbin: init, route, ifup gibi sistemin geneline ait temel çalıştırabilir dosyalar burada bulunur.
/tmp: Geçici dosyaların tutulduğu yerdir.
/usr/ Kullanıcı verileri için ikinci seviye bir sınıflandırmanın yapıldığı dizindir. Genelde bir çok kullanıcının kullanacağı dosyalar burda tutulur.
/usr/bin: Genel amaçlı uygulama dosyaları burada tutulur. Oldukça çok kullanılan bir dizindir.
/usr/include: Kullanıcı alanı (user space) uygulamalar için standart başlık (header) dosyalarının tutulduğu dizindir.
/usr/lib: /usr/bin/ ve /usr/sbin/.'deki dosyaların/uygulamaların kullandığı kütüphaneler burada tutulur.
/usr/sbin: Sistem geneli/yönetimi için gerekli programlar tutulur. /sbin dizinine benzer. Örnek programlar; chroot, pppconfig, tftpd, useradd vb...
/usr/share: Mimariden bağımsız uygulamaların ortak olarak kullandığı veriler için kullanılır.
/usr/src: Yüklenen uygulamaların kaynak kodlarının tutulduğu yerdir. Linux'ü kurarken eğer istemişsek başlık dosyaları ve ilgili kaynak kodlar buraya kurulur.
/usr/local: Genelde makineye has verilerin tutulmasında kullanılan bir dizindir.
/var: Log ve spool gibi değişken dosyaların tutulduğı dizindir.
/var/lock: Programların o anda kullandığı kaynakları belirtmek için kullandığı kilit (lock) dosyalarının tutulduğu yerdir.
/var/log: Çeşitli log (günlük) dosyalarının tutulduğu yerdir..
/var/mail: Kullanıcıların maillerinin tutulduğu yerdir.
/var/run: Boot işleminden beri çalışan programların/yapılan işlemlerin bilgilerinin eldesine yarar. (Giriş yapmış kullanıcılar, çalışan servisler vb...)
/var/spool: İşlenmeyi bekleyen spool görevlerinin tutulduğu yerdir. Printer'a yazdırılmak için gönderilen belgeler sırasını burada bekler..
Temel olarak bir GNU/Linux sistemde bulunan dizinler ve görevleri bu şekildedir. Linux hakkında yazılarımız devam edecek. Görüşmek üzere...
Furkan ÇALIŞKAN
http://www.furkancaliskan.com
caliskanfurkan@gmail.com
Kaynaklar:
[1] http://tldp.org/LDP/Linux-Filesystem-Hierarchy/html/index.html
[2] http://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard
[3] http://www.belgeler.org
|