Linux Dosya Sistemi

X-Paylaşım Facebook Hayran Sayfası
-
Etiketler: linux, dosya, sistemi
18 Mayıs 2006/11:45 #1

Linux Dosya Sistemi

LINUX DOSYA SISTEMI


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ştirilmesinde FSSTND (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. O yıldan bu yana linux dosya sistemi standardı üzerinde kayda değer değişiklik olmamıştır.

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ştirilebiliyor.

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.

Linux, ext2 dosya sistemini kullanır. Bu dosya sistemi, en performanslı dosya sistemlerinden birisidir ve dosya sistemi hızı, işletim sisteminin hızını önemli ölçüde etkileyen faktörlerin başında gelir. Linux, bir DOS disk bölümüne de kurulabiliyor olmasına rağmen, bu durum hızı olumsuz etkileyeceğinden tavsiye edilmez.

Linux, aynı ağ üzerinde diğer bilgisayarlarla da disk paylaşımı yapabilir. Bunlara örnek olarak kullanıcıların ev dizinleri olan /home, çalıştırılabilir dosyaların ve X Window sisteminin bulunduğu /usr ve gelen e-postaların tutulduğu /var/spool/mail dizini verilebilir. Ancak bu ay ağ üzerindeki disk paylaşımı konusuna girmiyoruz, sadece kulak dolgunluğu olması için bir köşeye yazın.

Linux'ta kök dizini ( / işaretiyle gösterilir) diğer tüm dizinleri de içinde barındırır. Bu nedenle Linux dosya sisteminde gerçekten önemli bir konuma sahiptir. Sistem açılırken öncelikle bu dizin kullanıma açılır (bir başka deyişle bağlanır - mount).

Bu işlem /etc/fstab dosyası okunarak gerçekleştirilir. Eğer /etc/fstab dosyası okunamazsa sistemin açılması imkansızdır.

Kök dizinde sistem ilk açıldığı zaman disk kontrolü ve onarımı için gerekli çalıştırılabilir dosyalar bulunur. Yedekleme ve arşivleme için gerekli olan tar, gzip gibi dosyalar da bu disk bölümünde tutulur. Normal olarak Slackware Linux dağıtımı kurduğunuz zaman / dizini 30Mb kadar yer kaplar. Kalan 200Mb kadar yer ise /usr dizini altındadır.

Çoğu Unix türevinde kullanılan standartlar LINUX için de geçerlidir. LINUX çoğu UNIX türevinin kullandığı dosyasistem hiyerarşisini kullanır yani LINUX bilen biri çok rahat bir şekilde UNIX te kullanabilir diyebiliriz. Dosyaları iki bağımsız sınıflandırmaya sokabiliriz. Bunlar paylaşılabilir-paylaşılamaz ve Değişken-sabit şeklinde iki farklı gruba ayrılabilir.

Paylaşılabilir datalar farklı makinalar tarafından kullanılmak uzere paylaştırılabilecek datalar anlamına gelir. Bununla birlikte paylaşılamaz datalar yanlızca specific kullanıcılar tarafından kullanımda olan datalardır. Bunlara örnek vermek gerekirse kullanıcıları home dizinleri paylaşılabilir datadır fakat aygıt dosyaları paylaştırılamaz tek bir specific kullanımında olan dosyalardır.

Sabit veriler çalıştırılabilir dosyalar, kütüphaneler, dökümantasyonlar ve bunun gibi sistem admininin etkisi olmaması halinde değişiklik göstermeyecek verilerdir. Değişken veriler ise sistemadmininin etkisi dışında kolayca değiştirilebilen verilerdir.

Paylaştırılabilir veriler ile paylaştırılamaz veriler arasında bazı farklılıklar vardır. Bunlar

Bir network ortamında bazı dizinlerin ortak kullanım için açılması gerekebilir. Bazı bakım görevlerinin kullanıcılar tarafından gerektiği zaman yapılabilmesi gerekebilir. Bu noktada devreye paylaştırılabilir veriler girer.

Bir network ortamında bazı veriler bir kullanıcıya özgü veriler içerebilir. Bu sebepten dolayı bu dosyalar paylaşıma açılamayan dosyalar olarak adlandırılır.

Static ve değişken verilerin arasındaki farklar ise şu bakımlardan filesystem’i etkiler.

root directory değişken ve static verileri içerdiği için konabilir yazılabilir olabilir bir şekilde mount edilmesi gerekir.

/usr dizini değişken ve static verileri içerdiğinden ve biz bu dizini yanlız okunabilir olarak mount edebileceğimizden dolayı /usr dizininin read-only olarak mount edilmesi metodunun desteklenmesi gerekmektedir. Bu noktada var dizini devreye girer. Var dizini /usr dizinin bu yükü alması için oluşturulmuş /usr dizininin geleneksel işlevselliğini eline geçiren bir hiyerarşi oluşturmuştur.

Sembolik Bağlantılar : Bazı durumlarda, bir dosyayı oluşturup bu dosyanın başka bir dosyayı işaret etmesi istenebilir. Genellikle sistem yöneticileri tarafından kullanılan sembolik bağlantı yardımıyla bir dosya veya dizin, bunlara karşılık gelen başka bir dosya veya dizin olarak gösterilir.

Aşağıda bir sembolik bağlantı örneği yeralıyor. Sistem görevlisi, /root dizini altındayken /usr/src/linux dizinine geçmek istiyor. /usr/src/linux dizinine işaret eden bir bağlantı kurmak için ln komutu kullanılır. -s parametresi, bu bağlantının sembolik olacağına işaret eder.

# ls -l
total 116
drwxr-xr-x 2 root root 1024 Feb 14 08:13 kernel
-rw-r--r-- 1 root root 115695 Sep 15 1994 lodlin15.zip
drwx------ 2 root root 1024 Jan 7 1980 mail
-rw-r--r-- 1 root root 0 Feb 15 08:14 typescript
# ln -s /usr/src/linux linux
# ls -l
total 116
drwxr-xr-x 2 root root 1024 Feb 14 08:13 kernel
-rw-r--r-- 1 root root 115695 Sep 15 1994 lodlin15.zip
drwx------ 2 root root 1024 Jan 7 1980 mail
lrwxrwxrwx 1 root root 9 Feb 15 08:14 linux -> /usr/src/linux
-rw-r--r-- 1 root root 0 Feb 15 08:14 typescript

Bu işlemden sonra kullanıcının /usr/src/linux dizinine geçmesi için cd linux yazması yetecektir. Sembolik bağlantı dosyasını diğerlerinden ayıran, satırın en solundaki l karakteridir.

Sistem açılış süreçleri

"Sistem açılış süreci", işleyicinin (CPU) elektrik ile beslenmeye başlaması ile başlar ve bir işletim sisteminin yüklenerek kullanıcı görevlerini kabul edebilir hale ulaşmasına kadar devam eden sürece verilen isimdir. IBM PC uyumlu sistemlerde bu süreç kapsamında işleyicinin beslemesinin sağlanması ile birlikte BIOS olarak bilinen açılış ROM' unda yer alan programın işletilmesi sağlanır. BIOS programının işletilmesi ve bu program tarafından sistem sınamalarının tamamlanmasından sonra, açılışa uygun cihazlar taranır ve BIOS ayarları çerçevesinde öncelik verilen ilk cihazdan başlayarak bir açılış kayıdı yüklemeye çalışılır. Açılışın yapılacağı cihaz, IDE ya da SCSI sabit disk, CDROM ünitesi ya da disket olabilir. Linux da açılış kaydını LILO adı verilen Linux yükleyicisi oluşturur. BIOS, LILO'yu yüklendikten ve başlattıktan sonra LILO kullanıcısının karşısına (arzu ediliyor ise) açılış mönüsünü getirir ve kullanıcıdan tercihlerini alır. Bu tercihler doğrultusunda LILO, Linux çekirdeğini yükler ve çekirdeğin başlatılmasını sağlar. Çalışmaya başlayan çekirdek, kullanacağı kök dosya sistemini bilir; kök dosya sisteminin hangisi olacağı çekirdeğin içerisinde belirtilmektedir. Çekirdek, kök dosya sistemini salt okunur biçimde başlar ve init programını yükleyerek çalıştırır. Init programı çalışmaya başladığında, sistem üzerinde başlatılan ilk UNIX sürecidir ve bir () numaralı süreç olarak kayıt altına alınır. init süreci, önceki bölümde anlatılan biçimde /etc/inittab ayar dosyasında belirlenen "sistem açılışı" işlevlerini yerine getirir. Çok kabaca, takas dosya sistemlerinin başlatılması ve kök dosya sisteminin fsck programı aracılığı ile tutarlılığının sınanması init için sistem açılışş işlevselliğini oluşturur. Tutarlılık sınaması esnasında bulunan hatalar otomatik olarak ya da bunun başarılamadığı durumlarda operatör desteği ile gerçekleştirilir. Hata sınamasının gerçekleştirilmesinden sonra kök dosya sistemi bu kez "yazılır-okunur" olarak yeniden başlanır. Ve /etc/inittab dosyasında belirlenen "varsayılan açılış düzeyi"'ne uygun açılış betiklerinin çalıştırılmasına geçilir. /etc/rc.d/init.d dizininde sistem açılışında başlatılabilecek hizmetler için birer betik bulunur. Bu betikleri çalıştırarak hizmetlerin başlatılması ya da durdurulması mümkün olacaktır. Bu dizinin bir listesi aşağıdakine benzer:

$ ls /etc/rc.d/init.d

alsasound dhsd kdcrotate netfs pvmd snmpd

sobeled functions keytable network random sshd

anacron gpm killall nfs rawdevices syslog

apmd halt kudzu nfslock rhnsd xfs

arpwatch httpd linuxconf pcmcia sendmail xinetd

atd identd nylogd portmap single ypbind

crond ipchains lpd postgresql smb

Bu betikler ile ilgili hizmetleri başlatmak için parametre olarak start, durdurmak için ise stop verilmelidir:

# /etc/rc.d/init.d/httpd stop

# /etc/rc.d/init.d/httpd start

ÖrneğinYukarıdaki iki satır ile web sunucu sisteminin durdurulması ve başlatılması mümkün olacaktır. İşte bu dizinde yer alan betikler, dolaylı olarak init süreci tarafından iletilir. Çalışma düzeyine göre açılışta çalıştırılacak betiklerin bir listesi /etc/rc.d/rc3.d ve /etc/rc.d/rc2.d gibi adlandırılmış dizinlerde yer alır. Bu dizinlerde adı S ile başlayan betikler bu çalışma düzeyine geçişte, K ile başlayan betikler ise bu açılış düzeyinden bir başka açılış düzeyine geçerken iletilirler. Çalışma düzeyine geçişte ve çalışma düzeyinden çıkışta iletilen betikler sayı sırası ile iletilirler. Örneğin /etc/rc.d/rc3.d dizininde yer alan S40network S10kudzu betiklerinden önce S10Kuzdu betiği işletilecektir.

SİSTEM AÇILIRKEN HANGİ DOSYALAR OKUNUR?

Linux'un ilk defa açıldığında bir programı çalıştırmasını istiyorsanız bu programı /etc/rc.d/rc.local dosyasına koymalısınız.

Bunun yanında sisteme girerken kullanıcıların hangi dosyaları okuduğunu merak ediyorsanız, işte size birkaç dosya adı:

bash kabuğu için,

Önce /etc/profile

İkinci olarak ~/.bash_profile (uğur kullanıcısı için /home/uğur/.bash_profile)

Üçüncü olarak eğer ~/.bash_profile dosyası bulunmuyorsa ~/.bash_login

Son olarak ~/.bash_profile veya ~/.bash_login dosyaları bulunmuyorsa ~/.profile

tcsh kabuğu için,

Önce /etc/csh.cshrc veya /etc/csh.login

İkinci olarak ~/.tcshrc

Üçüncü ve son olarak ~/.tcshrc dosyası bulunmuyorsa ~/.login dosyası çalıştırılır.

Sistemden çıkarken de bash kabuğu için ~/.bash_logout, tcsh kabuğu için ~/.logout çalıştırılır. Yukarıdaki tüm dosyalar kabuk komutlarını kabul ederler.

• Linux açılırken mutlaka /etc/rc.d/rc.local dosyasını okur; bunun yanında bir kullanıcı sisteme girerken /etc/profile dosyasını da okuyacaktır. Sisteme özgü ayarları /etc/rc.d/rc.local'dan, kullanıcılara özgü ayarları da /etc/profile dosyasından yapabilirsiniz.

-------------------------------------------------------------------------------------------

1 - Root Directory:

Bu bölüm root directory sinin yapısını açıklamaktadır. Root filesystemin içeriği sistemin açılması, sistemin düzenlemeleri ve tamiri için yeterli olması gerekmektedir. Kök dizini tüm sistem hiyerarşisine sahiptir. Kök dizini için static-değişken veya paylaşılabilir-paylaşılamaz şeklinde bir ayrım yapılamaz çünkü her tipte alt dizine sahiptir.

• Sistemi boot etmek için gerekli sistem dosyaları ve gerekli dizinler ana dizine mount edilmis durumda bulunurlar. Sistemin açılması için gerekli bilgileri içinde barındırır.

• Sistemi duzeltmek için gerekli sistem dosyalarını içinde barındırır.

• Sistemi eski haline dönüştürmek için gerekli olan programları içerisinde barındırır.

• Root dosyasistemi içerisinde sisteme özel birçok konfigürasyon dosyasını barındırır. Bu konfigurasyon dosyalarına bir örnek vermek gerekirse çekirdek buna çok uygundur. Root dosyasistemi genelde networkte paylaşılabilir durumda değildir.



Software’ler hiç bir zaman kök dizinde yeni dizinlerde oluşturmazlar. Linux Dosya sistemi kurulacak paketler için yeterli esnekliği gösterir. Paketlerin kurulması için specific bölgelere sahiptir. Şimdi bu çeşit bir esnekliğe sahip olan ve ayrı bir alt dizin yapısını gerektirmeyen kök dizinin yapısını incelemeye başlayalım.



/ -- the root directory
|
+-bin Temel komut binaryleri
+-boot Sistemin boot edilmesi için gerekli değişmez veriler.

+-dev Cihaz dosyaları.
+-etc Local sistemimiz için gerekli sistem dosyaları
+-home Kullanıcı dizinleri.
+-lib Paylaştırılmış kütüphaneler.
+-mnt geçici bağlantı noktası

+-proc dosyasisteminin process bilgileri
+-root root kullanıcısının kök dizini
+-sbin önemli sistem çalıştırılabilir dosyaları.
+-tmp Geçici saklama alanı
+-usr ikincil ana hiyerarşi
+-var Değişken data bölgesi



Her dizin içindeki detaylı dosyalarına kadar incelenmeye çalışılacaktır.

-------------------------------------------------------------------------------------------

Bin : Temel çalıştırılabilir dosyalar (tüm kullanıcılar için)

/bin dizini sistem yöneticilerinin ve kullanıcıların ortak bir şekilde kullandığı çalıştırılabilir dosyaları içeren dizindir denebilir. Hatta bu komutlar yarattığımız script dosyalarımız yoluyla dolaylı olarak da çalıştırılabilir. U komutlara örnek olarak cp, login, ls verilebilir. bin dizini statik ve paylaşılamaz niteliktedir.

Bütün sistem ile ilgili sistemde değişik yapmayı hedefleyen init, getty, update gibi komutlar ise /sbin veya /usr/sbin dızını içersinde bulundurulur. /sbin içersindeki komutlar sadece sistem yöneticileri tarafından kullanılma hakkına sahiptir.

/bin directory si içerinde hiç bir directory bulundurulmamalıdır.

Bin dizini için gerekli dosyalar:

• Aşağıdaki komutlar temel bir şekilde bin dizini içerisinde olması gereken dosyalardır.

{arch, cat, chgrp, chmod, chown, cp, date, dd, df, dmesg, echo, ed, false, kill, ln, login, ls, mkdir, mknod, more, mount, mv, ps, pwd, rm, rmdir, sed, setserial, sh, stty, su, sync, true, umount, uname }

• Temel kabuklar burda bulunur. Örneğin csh, ksh, bash gibi temel kabukların bulunduğu yerdir. Hatta bu dizindeki bu dosyalara /sbin dizininde sembolik bağlarla bağlı dosyalara da sahiptir.



1. Yeniden yapılandırma komutları:

• Bu komutlar sistemin tekrar yapılandırılması için kullanılabilecek, yeni şeyler eklemek için gerekli komutlardır. Bu komutlara örnek olarak { tar, gzip, gunzip (gzip’e link), zcat (gzip’e link) }

2. Networking komutları:

• Bu komutlar hem sistem yöneticisi tarafından hem de kullanıcılar tarafından kullanılmaya açık komutlardır. Bu komutlar /usr/local/bin dizininde linkli olan dosyalardır. Bu komutlara örnek olarak {domainname, hostname, netstat, ping} verilebilir.

Boot : Açılış ön yükleme için değişmez dosyalar:

Bu dizin konfigürasyon dosyaları ve map installer haricinde tüm açılış dosyalarını içerir. Bu dizin de Linux’ın yükleme yöneticisi tarafından kullanılan dosyaları vardır. Basit bir deyişle çekirdeğimiz /sbın/init dosyasını çalıştırmadan önce çalıştırılan herşey bu dizindedir.Bu dizin master boot sectors, sector map files gibi elle değişiklik yapılamayacak dosyaları içerir. Bilgisayarımızı çalıştırdığımızda bir çok işlem yapılır. Bunlar arasında diskin kontrol edilmesi, donanımın belirlenmesi, ve sistemin kullanıma hazır hale getirilmesi verilebilir. Bu görevleri yerine getiren dosyalar boot dizini içerisindedir. Hatta çekirdek dediğimiz Linux işletim sisteminin beynide bu dizindedir.

-------------------------------------------------------------------------------------------



Dev: Bu dizin bizim cihazlarımızın bulunduğu dizindir. /dev dizini sisteme bağlı olan cihazları temsil eden dosya sistemi girişlerini içerir. Bu dosyalar sistemin hatasız bir şekilde çalışmasını sağlayan dosyalardır.Ayrıca /dev dizini MAKEDEV adlı bir scriptide içerir. Bu script gerektiği zaman cihazların oluşturulmasını sağlar.Linux işletim sisteminde her giriş çıkış birimi bir dosyaya karşılık gelir. Örnek olarak

/dev/tty1 birinci sanal konsol

/dev/psaux PS/2 fare

/dev/hda1 Birinci IDE sabit diskin

birinci bölümü

/dev/hdc3 Üçüncü IDE sabit diskin üçüncü bölümü

Bu dizin altındaki dosyalar gerçek dosya değildir, biz kısaca bunlara "düğüm" adını veriyoruz. Her düğüm kendisine karşılık gelen aygıtı kontrol eder. Bu dosyaların silinmesi durumunda başınız belada demektir. Yeniden yaratılması uzun ve zahmetlidir.

-------------------------------------------------------------------------------------------

/proc: /proc dizini gerçek bir dizin değildir. Çekirdek ile ilgili bazı bilgileri tutar ve ayarlamalar yapar. Çekirdek tarafından oluşturulan bilgilere göre çeşitli dosyaları barındırır. bunlara örnek olarak cpuinfo, pci, devices dosyalari verilebilir.

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ü

Sistem yöneticisi veya normal bir kullanıcı sistemin hafıza kullanımı ile ilgili detayli bilgilere ulaşmak için

free programını kullanabilir.Sistemde çalışan süreçlerin sistem kaynaklarının kullanımı hakkında detaylı bilgi almak için top programı kullanılabilir. top programı varsayılan ayarlarına göre süreçlerin dizilimi en fazla işlemci gücü kullanan en yukarıda olmak üzere yukarıdan aşağıya doğru yapar. uptime komutu ile sistemin açıldığından bu yana geçen zaman görülebileceği gibi, yük ortalaması (load average) adı altında sistemdeki işlemci gücünün kullanım oranı 1 , 5, 1 5 dakikalık istatistikler ile verilmektedir. Yük ortalamasının 1 .00 olması işlemci gücünün tam kapasite ile kullanıldığını belirtir, daha yüksek olması ise sistemin aşırı yüklenmeye başladığını gösterir. Yük ortalaması bilgisine top programı vasıtası ile de erişilebilir. Sistem kaynaklarının görüntülenmesi ile ilgili bir diğer program vmstat'tır. Sanal hafıza kullanımı, giriş /çıkış işlemleri ve işlemci aktivitesi ile ilgili bilgiler verir. vmstat'ın onemli bir çıktısı son kolonunda yer alan işlemcinin boş geçirdiği zaman yüzdesidir (idle time). vmstat programı belirli aralıklarla çalıştırılırsa çok daha sağlıklı bilgi alınabilir. Özellikle CPU Idle Time için vmstat programının ardarda çalışması gerekmektedir. Bu ardarda çalışma periyodunu sağlamak için vmstat komutuna verilecek sayısal bir parametre, vmstat'ın kaç saniye aralıkla çalıştırılacağını belirtir:

$ vmstat 1

Yukarıdaki komut satırı ile vmstat'ın 1 saniye aralıkla sistem üzerinde ölçüm yapması sağlanmış olur.

-------------------------------------------------------------------------------------------

/sbin: root kullanıcısı tarafından çalıştırılan sistem komutları. Buradaki komutlara örnek olarak swapon (takas alanını aktifleştirir), update (sistem dosya yapısını tarar) ve ifconfig (ağ arayüzlerini yapılandırır) sayılabilir. 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.

-------------------------------------------------------------------------------------------

/root: Sistem yöneticisinin ev dizini burada bulunur. Normal kullanıcılar tarafından görülmez.

-------------------------------------------------------------------------------------------

/home: Kullanıcı ev dizinleri

/home dizini genelde kullanıcıların özel dosyalarının saklandığı sistemdeki kullanıcılara ait tüm kişisel dizinleri içerir. Bu dizin paylaşılabilir veya paylaşılamaz nitelikte olabilir. Doğal olarak değiştirilebilir niteliktedir. Temel bir sitemde tüm kullanıcıların alanları /home dizini altındaki tek bir dizindir. NFSin kullanıldığı çoklu ortamlarda ise kullanıcılar home directoryleri içerisinde specific olarak gruplara ayrılarak home directoryleri oluşturulabilir /home/students /home /guests gibi.

-------------------------------------------------------------------------------------------

/lib : temel kitaplıklar ve çekirdek modulleri:

/lib dizini kök dizinde komutların çalıştırılması ve sistemin başlaması için gerekli paylaşılabilir kitaplıkları içeren bir dizinimizdir.Sistem kütüphane dosyalarının bir kısmı bu dizindedir. Linux'taki kütüphane dosyalarını Windows'taki dll dosyalarına benzetebiliriz.Kesinlikle silinmemeleri gerekir. Bu dizin /lib/libc.so.*, /lib/libm.so.*, paylaştırılmış dinamik link /lib/ld.so ve diğer paylaştırılmış kitaplıklar /bin ve /sbin dizinlerindeki executable dosyalar tarafından ihtiyaç duyulur. Eğer /bin ve /sbin içersindeki herhangi bir komutun Limb.so.* ‘ya ihtiyacı yoksa bu kitaplık /usr/lib içersinde yerini bulur. /lib/cpp kitaplığı C derleyicisinin varlığına bağlıdır. gcc derleyicisi genel olarak /usr/lib/gcc-lib/<target>/<version>/cpp dizini altındadır. /lib/cpp bu dizini hedef gösterir. Eğer dosya sistemimizde mevcut ise /usr/bin/cpp de bu noktadan hedef gösterilmiştir. /lib/modules dizininde ise çekirdek tarafından kurulmuş modüller mevcuttur.

-------------------------------------------------------------------------------------------

3.7 /mnt : geçici bağlama noktası.

Bu dizin system administrator tarafından ihtiyaç duyulduğunda dosya sistemlerinin bir noktaya bağlanmasını sağlar. Bu dizinin içeriği yerel kullanım içindir. Bir program çalışmakta iken böyle bir yöntem seçilmemelidir. Temporary için yani eçici dosyaların koyulması için kullanılabileceği gibi program kurmak için de kullanılabilirdir.

-------------------------------------------------------------------------------------------

3.8 /opt : Bu dizin sistemin çalışması için gerekli olmayan paketleri içerir. Bu tip paketler için gerekli static dosyaların /opt/paketadi adlı bir dizin içerisine ve bunların makineye özgü konfigürasyonlarının da /etc/opt dizini içerisine konulması tavsiye edilir.

/opt dizini sistemimizin çalışmasını etkilemeyen yeni yazılım paketlerin kurulması için ayrılmış bir dizindir.

/opt/bin, /opt/doc, /opt/include, /opt/info, /opt/lib, ve /opt/man dizinleri yerel sistem yöneticisinin kullanımına açıktır. Programları kullandığımız sürece programların üzerinde değişiklik gerçekleşiyorsa bu tip dosyalar /var/opt içerisine gönderilir. Kullanıcıya özgü konfigürasyon dosyaları /etc/opt içerinde tutulur. Genelde başka hiçbir paket /opt/var/opt ve etc/opt dışında başka bir dizine kopyalanmaz. Bazı cihaz lock dosyaları ise /var/lock içersinde yer alır.

Programlar belli bir hiyerarşi içerisinde /opt içerisinde kurulur. Örneğin çalıştırılabilir dosyaları /opt/<package>/bin içerisine yerleştirilir. Eğer yüklenen paket manualpagelere sahip ise /opt/<package>/man içerisine ve kurulan programın özelliğine göre /usr/share/man içerisine yerleştirilir.

-------------------------------------------------------------------------------------------

3.9 /usr dizini: dizini UNIX ya da LINUX'un esas uygulama dizinidir. /usr dizini genellikle çok büyük miktarda bilgi içereceği için, bu dizinin altında da pek çok alt dizin mevcut olabilir. /usr dizini paylaştırılabilir fakat read-only olmalıdır. yani /usr dizini makineler arasında sharing'e açılabilir fakat açılan bu sharing read-only olmalıdır.

/usr -- İkinci temel linux dizini (permanent)

|

+-X11R6 X Window System, 11.version release 6

+-X386 X Window System, version 11 release 5 on x86 Platforms

+-bin kullanıcılar için gerekli temel komutlar

+-dict Sözcük listesi

+-doc yazılı kaynaklar

+-etc Makineye özgü konfigürasyon dosyalarını içerir.

+-games oyunlar ve akademik programlar

+-include Header files included by C programs

+-info GNU Info system kütüphaneleri

+-lib kütüphaneler

+-local kişisel uygulama kurma noktası(empty after main installation)

+-man bilgilendirme dosyaları

+-sbin hayati olmayan system administration binaryleri

+-share /usr dizinindeki uygulamaların verileri

+-src kaynak kodların bulundugu bolge



aşağıdaki dosyalar daha sonra cikan linux surumlerinde ne kadar standartlaşsada eski surumleri desteklemesi amacı ile linklendirilmiştir.

/usr/spool -> /var/spool

/usr/tmp -> /var/tmp

/usr/spool/locks -> /var/lock

diğer X window sistemlerle uyumluluğu sağlamak için aşağıdaki linkler mevcuttur.

/usr/bin/X11 -> /usr/X11R6/bin

/usr/lib/X11 -> /usr/X11R6/lib/X11

/usr/include/X11 -> /usr/X11R6/include/X11

/usr/X11R6: X Window bilgilerinin tutulduğu dizin.

/usr/X11R6/lib/X11: X Window yapılandırma dosyaları ve yazıtipleri burada bulunabilir.

/usr/doc: Sisteminizdeki tüm belgeler ve sıkça sorulan sorular. /usr/doc/HOWTO ve /usr/doc/faq'ya gözgezdirmenizi tavsiye ederim.

/usr/man: Kılavuz sayfaları.

/usr/lib: Kütüphane dosyaları

/usr/src: Bazı paketlerin kaynak dosyaları

/usr/src/linux: Linux işletim sisteminin kaynak dosyaları

-------------------------------------------------------------------------------------------

Etc: Bilgisayarımızın konfigürasyonu için gerekli dosyaları içerir. Bu dizin içersinde binary(çalıştırılabilir) dosya bulunmaz. Daha önce etc altında bulunan binary dosyalar daha sonra /bin ve /sbin altına atılmıstır. Init, getty ve update gibi dosyaları içerir.

/etc - Yerel-sistem konfigürasyonu

|

+-X11 X Window System’un konfigürasyonu

+-skel kullanıcı skeleton configuration

/etc/skel dizini kullanıcı yapılandırılmasında kullanıcının dizin yapısının ana hatlarını meydana getiren dizindir. Bu dizin çeşitli kullanıcı grupları için değişik değişik dizinleri bulundurabilir (/etc/skel/staff veya /etc/skel/users). Bu dizin içindeki dosyalara iskelet kullanıcı dosyaları da denebilir.

/etc/X11 dizini genelde X11 kullanan tüm makinelerde tercih adilen local configurasyon dizinidir. Bu dizin X konfigurasyonları için gerekli konfigurasyon dosyalarını barındırır.

/etc için gerekli dosyalar:

Genel dosyalar:

{ adjtime, csh.login, disktab, fdprm, fstab, gettydefs, group, inittab, confissue, ld.so.conf, lilo.conf, motd, mtab, mtools, passwd, profile, securetty, shells, syslog.conf, ttytype }

Ağ Dosyaları:

{ exports, ftpusers, gateways, host.conf, hosts, hosts.allow, hosts.deny, hosts.equiv, hosts.lpd, inetd.conf, networks, printcap, protocols, resolv.conf, rpc, services }

etc/opt: /opt dizinindeki sistemin çalışması için gerekli olmayan paketlerin makineye özgü konfigurasyon dosyalarını içerir.

Yukarıda, sistemi kontrol eden çalıştırılabilir programların yapılandırma dosyalarının (configuration files) /etc dizini altında bulunduğunu belirtmiştik. Aşağıda bu dosyaların bazılarını ve ne için kullanıldıklarını göstereceğiz.

/etc/passwd dosyası Kullanıcılar hakkındaki temel bilgiler bu dosyada yer almaktadır. Sisteminizdeki bir metin düzenleyici (vi, pico, nedit gibi) ile bu dosyayı açın. Yeni eklediğiniz kullanıcının bulunduğu satıra gidip, gerekli değişiklikleri yapın. Örneğin, murat adlı kullanıcı eklendiği zaman, /etc/passwd dosyasında bu kullanıcı ile ilgili bilginin bulunduğu satır:

murat::503:503::/home/murat:/bin/bash
şeklindedir. Bu satırda, ":" ile ayrılmış yedi alan vardır. Bu alanlar sırası ile kullanıcının sisteme giriş ismi, parolası (şifrelenmiş şekilde görülür), kullanıcı numarası (her kullanıcı için sistemde tek ve boş olan ilk numara otomatik olarak verilir, UID olarak bilinir), kullanıcının dahil olduğu grup numarası (aynı gruptakilere, o grubu belirten numara verilir), kullanıcı ile ilgili açıklama (genellikle bu kullanıcının açık ismidir), kullanıcının ev dizini ve kullanacağı kabuk programıdır. murat adlı kullanıcı basketbol grubuna üye olsun, ve bu grubun numarasını 150 kabul edelim. Ayrıca tüm basketbol kullanıcılarının ev dizini de /home/basketbol dizini altında açılıyor olsun. Kullanıcının açık isminin de Murat Evliyaoğlu olduğunu düşünürsek, yukarıda murat kullanıcısına ait satır değiştirilerek şu şekle çevrilebilir:

murat::503:150:Murat Evliyaoğlu:/home/basketbol/murat:
/bin/bash

Sistemin çeşitli araçları çalışırken kullanıcı ile ilgili bazı bilgileri (örneğin kullanıcının çalışma dizini veya tam adı) okuma ihtiyacı duyarlar. Kullanıcı bilgileri daha önce de belirtildiği gibi /etc/passwd dosyasında yer almaktadır. Aynı dosya, kullanıcılara ait parolaları da şifrelenmiş bir şekilde barındırmaktadır. Dolayısı ile sisteme giren her kişi isterse herhangi bir kullanıcının parolasını (şifreli haliyle) görebilmektedir. Çok zor da olsa parolaların bu şifresini çözmek mümkündür. Özellikle parola anlamlı kelimeler içeriyor veya 6 karakterden kısa ise bu işlem kolaylaşır.

Parola bilgilerinin herkesin okuma hakkının bulunduğu passwd dosyasından alınarak sadece yetkili kullanıcı tarafından okunabilen bir başka dosyaya yazılması bu sorunu çözmektedir. Bu sisteme gölge parola sistemi adı verilir.

Sisteminizde gölge parola kullanmak istiyorsanız


pwconv

komutunu vermeniz yeterli olacaktır. Sistemde yer alan bütün yazılımlar gerektiğinde gölge parolalarla çalışabilecek şekilde düzenlenmiştir. Bu sistem aynı zamanda parolaların geçerlilik sürelerinin kısıtlanmasına da olanak tanımaktadır. Herhangi bir nedenle dosyaları eski hallerine döndürmek isterseniz benzer şekilde


pwunconv
komutunu kullanmalısınız.
Gölge parola kullanmanız durumunda kullanıcı dosyalarının parola alanlarını elle değiştirmemenizi önemle tavsiye ederiz.

/etc/group Dosyası : Sisteminizdeki kullanıcıların değişik görevlere sahip olduğunu düşünürsek, aynı görevdeki kullanıcıları aynı gruba dahil etmekte fayda vardır. Bununla ilgili dosya /etc dizini altındaki group dosyasıdır. Bu dosya içinde ":" ile ayrılmış 4 alan vardır:



root::0:root
bin::1:root,bin.deamon
Buradaki alanlar sırası ile grup ismi, grup parolası, grup numarası ve o gruba dahil kullanıcıları göstermektedir. Hatırlarsanız murat adlı kullanıcıyı eklerken bu kullanıcının grubu basketbol grubu ve bu grubun numarası da 150 olarak belirtilmişti. Bu durumda yapmanız gereken, /etc/group dosyası içine, yok ise bu grubu ve kullanıcıyı eklemek. Bunun için aşağıdaki satırı dosyaya eklemeniz gerekiyor:


basketbol::150:ufuk,tamer,hidayet,murat
Anlaşılacağı üzere, basketbol grubunun numarası 150 ve gruba dahil olan kullanıcılar ise ufuk, tamer, murat ve hidayet'tir.
Bu satırı ekledikten sonra dosyayı kaydedip çıkın. Son olarak, murat adlı kullanıcının ev dizininin grup hakkını basketbol grubuna vermeniz gerekiyor. Bunun için de çalıştırmanız gereken komut şudur:



# chgrp -R basketbol /home/basketbol/murat
/etc/skel: Bir kullanıcı hesabı açıldığı zaman /etc/skel altındaki dosyalar kullanıcının hesabına aktarılır. Genellikle .bashrc, .profile gibi kullanıcı sisteme girerken okunan dosyalar tutulur.

/etc/group: Kullanıcı grup dosyası. Her kullanıcının, kullanıcı kimliği (UID) yanında bir de grup kimliği vardır. Örnek olarak Slackware Linux sistemi altında açılan her kullanıcı, users grubu altında tanımlanır.

/etc/motd: Bu dosyanın içeriği, kullanıcı sisteme girdikten sonra ekranına yazdırılır. Günün yemeğini, maç tahminlerini ve öğrencilerin arasında geçen dedikoduları yazabilirsiniz. Böylece kullanıcılarınız her haberi ilk ağızdan duymak için sisteme girmeye can atacaktır.

/etc/profile: Kullanıcı sisteme girerken bu dosya okunur. PATH, MAIL ve LOGNAME değişkeninin düzenlenmesi gibi basit birkaç işlem yapılır.

/etc/ftpaccess: ftp programının yapılandırma dosyasıdır. Daha geniş bilgi için man ftpaccess komutunu kullanabilirsiniz.

/etc/hosts: Bu dosya network adreslerinin tutuldugu dosyadir. Dosya birinde network adres digerinde sembolik ismin bulundugu iki sutundan olusur. Bir adrese aralarinda tab veya bosluk olmak sartiyla bir kac sembolik adres verilebilir. Ornek bir dosya:

# network host addresses

127.0.0.1 localhost local tpci_server
157.40.40.1 tpci_sco1
157.40.40.2 tpci_sco2
157.40.40.3 tpci_hpws1
157.40.40.0 tpci_server tpci_main tpci
47.80.157.36 coskun
205.150.89.1 ugur

/etc/networks:Networkler de makineler gibi bu dosyaya listelenebilir. Formati; network sembolik ismi, network adresi, alias seklindedir. Bir name server adresi olmadigi zaman yapilabilecek bir yoldur. Bir ornek dosya asagidadir:

# local network names

tpci 146.1 tpci_network tpci_local
bnr 47.80 BNR bnr.ca
tmn 123.2.21
unique 89.123.23 UNIQUE
sco 132.147 SCO
loopback 127 localhost

etc/protocols: Protokol numarasi alici makinenin bilgileri hangi protokoldan alacagini belirler. Unix'de bu protokol numaralari /etc/protocols dosyasinda yazilidir. Genelde bu dosya yonetici tarafindan degitirilmez veya guncellenmez, sistem otomatik olarak bu dosyayı ayarlar. Bu dosya protokol adi, protokol numarasi ve istenirse bir alias'dan olusur. Ornek dosya:

# Internet (IP) protocols

ip 0 IP # internet protocol, pseudo protocol number
icmp 1 ICMP # internet control message protocol
igmp 2 IGMP # internet group management protocol
ggp 3 GGP # gateway-gateway protocol
tcp 6 TCP # transmission control protocol
egp 8 EGP # Exterior-Gateway Protocol
pup 12 PUP # PARC universal packet protocol
udp 17 UDP # user datagram protocol
hello 63 HELLO # HELLO Routing Protocol
ospf 89 OSPF # Open Shortest Path First Routing Protocol

Burada IP protokolu 0, TCP protokolu de 6'dir.

/etc/services : Bu dosya da /etc/protocols dosyasi gibi sistem yoneticisi tarafindan ayarlanmaz. Sistem otomatik olarak bu dosyayi ayarlar. Bu dosya servis ismi, port numarasi ve protokol tipi bilgilerinin verildigi bir dosyadir. Port numarasi ve protokol tipi bir slash ile ayrilmistir. TCP protokolunu genelde baska ifadeler de izler. Ornek dosya:

# network services

echo 7/tcp
echo 7/udp
discard 9/tcp sink null
discard 9/udp sink null
ftp 21/tcp
telnet 23/tcp
smtp 25/tcp mail mailx
tftp 69/udp
# specific services
login 513/tcp
ho 513/udp whod

/etc/rc.d/ : Bu dizinin içinde, init sürecinin başvurduğu konfigürasyon dosyaları vardır.

etc/inittab : init daemon için konfigürasyon dosyasıdır. /sbin/init dosyasının ana configürasyon dosyasıdır. Bu dosya açılışta kernel tarafından çalıştırılır. Farklı çalışma düzeyleri için hangi scriptlerin çalıştırılacağı hakkında bilgi verir. Bütün çalışma düzeyleri /sbin/init.d/ içerisindedir. Yapılacak değişikliklerin ana dosyası /etc/rc.config dosyasıdır.

login.access : login komutu için konfigürasyon dosyası. Sisteme girişi kullanıcı bazında sınırlamak için kullanılır.
limits : İşlemci performansının kullanıcı bazında kısıtlanmasını sağlar

shells : Sistemde kullanılabilecek kabuk isimleri burada tutulur.

group : passwd e benzer şekilde kullanıcıların gruplarını tutar.

fstab : Linux un açılışı esnasında bindirilecek dosya sistemleri burada listelenir.
/dev/hda2 / ext2 defaults 1 1
/swap none swap defaults 1 1
/dev/cdrom /cdrom iso9660 defaults 1 1
none /proc proc defaults 1 1
/dev/hda1 /dos msdos defaults 1 1


Çekirdek açılış mesajları içinde

VFS: Mounted root (ext2 filesystem) readonly.


gibi bir satır göreceksiniz. Sistem açılırken en önce / dosya sistemini bağlar. Bu sayede bu dosya sistemi altında yeralan ve hayati önem taşıyan yazılımlara (fsck, ifconfig gibi) ulaşır. Daha sonra yerel dosya sistemleri ve en son da ağ üzerinden erişilen dosya sistemlerine (NFS) bağlanır. fstab dosyasında kullanıcının kendi dosyalarını yerleştiremediği, fakat sistem tarafından kullanılan swap ve proc dosya sistemleri için de mount bilgileri bulunur.

Yukarıdaki fstab dosyasında ext2 dosya sistemine sahip /dev/hda2 sabit disk bölümü, / dizinini oluşturuyor. MS-DOS formatlı /dev/hda1 bölümü de /dos dizinine erişilebilir olarak açılış anında eklenecektir.

Sistemdeki CD-ROM sürücü /cdrom dizini altına yerleştirilmiş olup root kullanıcı bunu istediği dizine koyabilir. Bu dosyaya, mount komutundaki gibi parametreler de eklenebilir. Dördüncü sırada yeralan defaults parametresinin yanına eklemek istediğiniz seçenekleri yazın. Bu parametrelerden sıkça kullanılan bir tanesi de "user" olup root dışındaki kullanıcılara bağlama (mount) hakkını verir. CD-ROM sürücüyü normal sistem kullanıcılarının bir veri depolama cihazını bağlaması veya ayırması için fstab dosyasındaki ilgili satırı

/dev/cdrom /cdrom iso9660 defaults,user 1 1
satırıyla değiştirin. defaults parametresi ise , halihazırdaki dosya sistemini okunup yazılabildiğini, üzerindeki bilgileri bloklar halinde alıp verdiğini (buna diğer örnekler CD-ROM ve disket sürücülerdir), içerdiği programların çalıştırılabilir olduğunu ve normal kullanıcıların bağlama/ayırma işlemlerini yapamadığını gösterir. user parametresiyle kullanıcılara mount ve umount hakkı yukarıda verilmiştir.

motd : Kullanıcı sisteme girdikten sonra ekranına basılması istenen mesaj burada tutulur.
inetd ve /etc/inetd.conf: inetd, en agir görevleri üstlenen ve en önemli Internet servislerindendir. Bu program sistem açılırken arkaplanda çalışmaya bırakılır. inetd'nin görevi belirli portları dinleyerek bu portlara yapılan bağlantıları denetlemektir. Bir bağlantı yapıldığı anda inetd bu portla ilgilenecek olan programı çalıştırır. Örnek olarak Linux'a ftp isteği geldiği anda inetd, ftp isteğine cevap verecek olan wu.ftpd programını uyandırır ve geri kalanını bu programa bırakır.

inetd olmasaydı her standart port numarası için bu portu dinleyecek olan bir program arkaplanda çalışıyor olacaktı. Bu da sisteme normalden daha fazla yükün binmesi demektir. inetd'nin kullandığı konfigürasyon dosyası /etc/inetd.conf 'tur. Bu dosyadan bir bölüm aşağıda yeralmaktadır :



# "kill -HUP <pid of inetd>".
# The inetd will re-read this file whenever it gets that signal.
#
# <service_name> <sock_type> <proto> <flags> <user> <server_path> <args>
#
time stream tcp nowait root internal
time dgram udp wait root internal
ftp stream tcp nowait root /usr/sbin/tcpd wu.ftpd
telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd
#nntp stream tcp nowait root /usr/sbin/tcpd in.nntpd
shell stream tcp nowait root /usr/sbin/tcpd in.rshd -L
login stream tcp nowait root /usr/sbin/tcpd in.rlogind
ntalk dgram udp wait root /usr/sbin/tcpd in.talkd
pop3 stream tcp nowait root /usr/sbin/tcpd in.pop3d
imap2 stream tcp nowait root /usr/sbin/tcpd imapd
finger stream tcp nowait nobody /usr/sbin/tcpd in.fingerd -w
systat stream tcp nowait nobody /usr/sbin/tcpd /bin/ps -auwwx
netstat stream tcp nowait root /usr/sbin/tcpd /bin/netstat -a
# End of inetd.conf.


/etc altında bir konfigürasyon dosyasını değiştirmek isterseniz, o dosyayı okuyan ve arkaplanda çalışıyor durumda bulunan süreçleri bundan haberdar etmelisiniz. Çünkü bu dizindeki bazı dosyalar sadece açılışta okunur. inetd, yukarıdaki inetd.conf dosyasını sistem açılırken okuyacaktır. Değişiklik yaptıktan sonra inetd'nin bu değişiklikten tekrar haberinin olması için bu sürecin PID numarasını ps -aux komutu ile bir kenara not edin ve şunları yazın.

# kill -HUP <PID-inetd>


PID-inetd yerine not ettiğiniz süreç numarasınıgirmelisiniz.
Bu sayede inetd kendisine ait olan inetd.conf dosyasını tekrar okuyacak ve değişiklikler işleme konacaktır.

syslogd ve /etc/syslog.conf : syslogd programı Linux'taki çeşitli olayların kayıtlarını tutar. Bunlar genellikle hata mesajları veya çekirdek mesajları gibi kayıtlardır. syslogd sistem açılırken arkaplanda işlemeye bırakılır.

/etc/syslog.conf, syslogd programının konfigürasyonu için kullanılır. Normal olarak sistem kayıtları /usr/adm/messages dosyasının sonuna eklenir. Bu dosyanın yapısı biraz karışık olmasına rağmen eğer sistem yöneticiyseniz syslogd sizin en büyük yardımcınız olabilir.

Örnek bir syslog.conf dosyası aşağıda yeralıyor.

*.info;*.notice /usr/adm/messages
*.debug /usr/adm/debug
*.warn /usr/adm/syslog
*.emerg;*.alert;*.crit /dev/tty8
mail.* /dev/tty9
kern.* /dev/tty10


auth: Kullanıcı tanımlaması (authentication)

authrpiv: Kullanıcı yetkileri yükseltmesi

cron: Cron ve at sunucusu ile ilintili

daemon: Hizmet sunucu yazılımlar ile ilintili

kern: Çekirdek ile ilintili

lpr: Yazıcı hizmetleri ile ilintili

mail: Posta sistemi ile ilintili

news: Haber öbekleri hizmetleri (NNTP) ile ilgili

local0 – local7: Yerel kullanım için ayrılmış hizmet türü belirteçleri

debug: Hata ayıklama bilgisi

info: Muhtelif bilgi

notice: Not edilmeye değer bilgi

warning: Uyarı niteliğindeki bilgi

error: Hatalar

crit: Kritik hatalar

alert: Alarmlar

emerg: Acil durumlar

Bu dosyanın en solunda yeralan ve nokta ile ayrılmış olan iki kelimeden ilki, kaydı yapılan program grubudur. Bu kısma kern (çekirdek mesajları), mail (sendmail mesajları), login (sisteme giriş veya sistemden çıkış mesajları), auth, authpriv veya security (güvenlik mesajları), cron (cron mesajları), daemon (deamon'lardan gelen mesajlar), lpr (yazıcı mesajları), news (haber grubu mesajları), user (kullanıcı mesajları) veya uucp (uucp mesajları) yazılabilir. Noktanın sağındaki kelime ise kaydı yapılan program grubunun mesaj önem sırasını belirler. Bu kısımda önem sırasına göre debug, info, notice, warning, err, crit, alert ve emerg bulunur.

Dosyanın sağında yeralan kısımda ise bu mesajların hangi dosyaya yazılacağı vardır. Yukarıda verilen örnekte, syslogd'den gelen mesajlar sanal konsollardan kullanılmayanlara yönlendirilmiştir. Böylece sistem yöneticisi F8, F9 ve F10 tuşlarını kullanarak sistem kayıtlarına anında ulaşabilir.

Başka bir makinaya kayıt tutturmak da mümkündür. Uzak makinanın ismi syslog.conf dosyasının sağ bölümüne yazılır. Böylece diğer makina yerel olarak sistem kayıtlarını tutacaktır.

mail.err @hun.linux.org.tr.tr


Bazı kritik ve sistemin düzgün çalışmadığını haber verebilecek mesajların konsola yönlendirilmesinde fayda vardır.

kern.crit /dev/console


Sisteme bağlanmış olan kullanıcılar hakkında bilgiyi ise

/var/adm/wtmp


dosyası tutar. Bu dosya ASCII olmadığından doğrudan okunamaz, last komutu ile içeriği incelenebilir. Buna ek olarak çeşitli paketler çalıştırılıyorsa onların yarattığı kayıt dosyaları da incelenmelidir. Örneğin ftp çalışıyorsa /var/adm/xferlog kimin ftp ile hangi dosyaları aktardığını gösterir. Bu tür dosyalar içerisinde elde edilebilecek ipuçları ile sistemin çalışma performansı artırılabilir, kendisini pek belli etmeyen hatalar bulunabilir.

/etc/rc.d/* Dosyaları

İşte sistemin kalbinin attığı yer. Ne yaparsanız yapın ama bu dosyaları gözünüz gibi koruyun. Sistem açılırken arkaplanda çalışmaya başlayan programlar burada yazılıdır.

rc.0

Bu dosya, 0 (halt) çalışma düzenine geçerken okunur. Sistemin shutdown veya halt komutları ile kapatılmak istenirse bu program çalıştırılır. Önce sistemdeki tüm süreçler öldürülür, ardından sistemin kapandığını belirten bazı satırları kayıt dosyalarına atar. Tüm dosya sistemlerini umount işleminden geçirdikten sonra da sistemi dondurur.

rc.K
Bu dosya, init tarafından 1 numaralı çalışma düzenine (tek kullanıcılı konum) geçilirken çalıştırılır. Tüm süreçler öldürülür ve sistem sadece konsoldan giriş yapılacak şekilde tekrar açılır.


rc.cdrom
Bu dosya, bulduğu CDROM sürücüsünü /cdrom dizini altına mount yardımıyla bağlar.

rc.local
Çok kullanıcılı açılış anında çalıştırılan bu dosyaya istediğiniz programları ekleyebilirsiniz.


rc.4
4 numaralı çalışma düzenine geçilirken bu dosya çağırılır. Tüm sanal konsollara vt100 terminalleri yerine grafik tabanlı bir program kullanılarak girilir.


rc.M
init tarafından çok kullanıcılı konuma geçmek için kullanılır.


rc.S
Sistem açılırken bu dosya mutlaka çalıştırılır. Takas alanı açılır, dosya sisteminde hata olması halinde bunu gidermeye çalışır. Bazı kontrollerden sonra kontrolü diğer rc programlarına bırakır.

init ve /etc/inittab : init, sistemde ilk çalışan programdır. Neredeyse sistemin tüm açılış yükünü elinde tutar. init sayesinde açılış anında hangi programların çalışacağı belirlenir. Bu programları da /etc/inittab dosyasından öğrenir.

Burada /etc/inittab dosyasından alınan birkaç örnek satır yeralıyor. Her satırın sonunda belirtilen düzeni için çalıştırılacak olan dosyalar vardır.

# Default runlevel.
id:3:initdefault:

# System initialization (runs when system boots).
si:S:sysinit:/etc/rc.d/rc.S

# Script to run when going single user (runlevel 1).
su:1S:wait:/etc/rc.d/rc.K

# Script to run when going multi user.
rc:23456:wait:/etc/rc.d/rc.M

# What to do at the "Three Finger Salute".
ca::ctrlaltdel:/sbin/shutdown -t5 -rfn now

# Runlevel 0 halts the system.
l0:0:wait:/etc/rc.d/rc.0

# Runlevel 6 reboots the system.
l6:6:wait:/etc/rc.d/rc.6

# What to do when power fails (shutdown to single user).
pf:Linux Dosya Sistemiowerfail:/sbin/shutdown -f +5 "THE POWER IS FAILING"

# If power is back before shutdown, cancel the running shutdown.
pg:0123456Linux Dosya Sistemiowerokwait:/sbin/shutdown -c "THE POWER IS BACK"

# If power comes back in single user mode, return to multi user mode.
ps:SLinux Dosya Sistemiowerokwait:/sbin/init 5

c1:1235:respawn:/sbin/agetty 38400 tty1 linux
c2:1235:respawn:/sbin/agetty 38400 tty2 linux
c3:1235:respawn:/sbin/agetty 38400 tty3 linux
c4:1235:respawn:/sbin/agetty 38400 tty4 linux
c5:1235:respawn:/sbin/agetty 38400 tty5 linux
c6:12345:respawn:/sbin/agetty 38400 tty6 linux

# Serial lines
#s1:12345:respawn:/sbin/agetty 19200 ttyS0 vt100
#s2:12345:respawn:/sbin/agetty 19200 ttyS1 vt100

# Dialup lines
#d1:12345:respawn:/sbin/agetty -mt60 38400,19200,9600,2400,1200 ttyS0 vt100
#d2:12345:respawn:/sbin/agetty -mt60 38400,19200,9600,2400,1200 ttyS1 vt100

x1:4:wait:/etc/rc.d/rc.4


Bir Linux makinasının birkaç tane çalışma düzeni vardır. Bunlardan birkaçı 3 (çok kullanıcılı konum), 1 (tek kullanıcılı konum) ve 4 (X Window konumu)'tür. Her konum, bir sayı veya bu sayılara karşılık gelen tek harften oluşur. Bir konum altında çalışırken diğerine geçebilmek için init veya telinit komutu kullanılır.

/etc/inittab'da yeralan dosya isimleri değiştirilebilir veya kullanıcının isteği doğrultusunda her çalışma modu için farklı dosyalar çalıştırılabilir.

# init 1
Switching to runlevel 1
Sending all processes the TERM signal
Waiting for processes to terminate........
Turning off quota..
Single user mode.


init komutundan sonra açmak istediğiniz çalışma düzenine ait olan sayıyı yazabilirsiniz. Örneğin init 0 komutu sistemi kapatacaktır. Yukarıdaki komut çalıştıktan sonra /etc/inittab dosyasında bu konuma ait olan /etc/rc.d/rc.K dosyası çalıştırılır. Bu dosya çalıştıktan sonra dışarıdan yapılan bağlantılara izin verilmez.

/etc/inittab dosyasında yapılacak her değişikliğin ardından

# init q


komutunu vererek init programının inittab dosyasını tekrar okuyup değişikliklerden haberdar olmasını sağlamalısınız. O an sistemin hangi konumda çalıştığını bulabilmek için runlevel komutunu kullanın :

$ runlevel
N 3

Sistem, yukarıdaki bilgilere göre 3 numaralı konumda (çok kullanıcılı konum) çalışıyor.

/etc/lilo.conf : LILO yu değiştirmek için /etc/lilo.conf dosyası üzerinde değişiklikler yapmalısınız. Aşağıda bir LILO konfigürasyon örneği görülüyor. Burada Linux bölümü /dev/hda2 de , MS-DOS bölümü ise /dev/hdb1 de (ikinci sabit diskin ilk bölümü) bulunuyor.

/etc/lilo.conf dosyası üzerinde değişiklik yapabilmek için birkaç metin editörü kullanma şansınız var. Bu editörler arasında en kolayı pico dur. pico yu açtığınız zaman ekranın en altında girebileceğiniz komutların bir listesi yer alır.

Daha deneyimli ve klavyeye hakim kullanıcılar vi kullanabilirler. vi hakkında daha geniş bilgiyi Sed ve Vi konusunda bulabilirsiniz.

# LILO, /dev/hda uzerinde kurulacak.
boot = /dev/hda

# Linux yuklemek icin
image = /vmlinuz (Cekirdegin diskteki ismi /vmlinuz)
label = linux (Buna "linux" ismini ver. Acilis aninda
ekranda "linux" yazisi gorunur)
root = /dev/hda2 (Kok dosya sistemi olarak /dev/hda2 kullan)
vga = ask (VGA ekran modu icin kullanicidan komut bekle)

# MS-DOS yuklemek icin
other = /dev/hdb1 (MS-DOS bolumu)
label = msdos ("msdos" ismini ver)
table = /dev/hdb (ikinci surucu icin bolumlendirme tablosu)

Yukarıda bir örneği görülen /etc/lilo.conf dosyasında gerekli değişiklik veya düzeltmeleri yaptıktan sonra /sbin/lilo programını root yetkisiyle çalıştırın. Bir komutu root yetkisiyle çalıştırmak için sisteme root kullanıcı adıyla ve şifresiyle girmelisiniz. Bu komut LILO önyükleyicisini sabit diske kuracaktır. Bundan sonra her yeni çekirdek derlemenin ardından dosyada uygun değişiklikleri yapıp aynı komutu çalıştırmalısınız.

Şimdi sistemi sabit diskten tekrar açabilirsiniz. LILO, /etc/lilo.conf dosyasındaki ilk işletim sistemini yükleyecektir. Başka bir sistemle açmak için önyükleme menüsünü ekrana getirmelisiniz. Bunun için makina açılırken shift veya kontrol tuşlarına basılı tutun. Ekrana bir açılış istemcisi gelecektir:

XF86config : XF86Config dosyası X açılırken okunur ve fare, ekran çözünürlüğü, renk sayısı gibi özellikler belirlenir.

X sunucuyu başlatmaya yarayan startx komutu, ev dizini içindeki .xinitrc dosyasını arar. Bulamazsa sistemde /usr/X11/lib/X11/xinit/ dizini içinde yeralan xinitrc dosyasını okur. Bu dosyanın içine X açıldığı zaman başlayacak olan programları koyabilir, ekranın renk düzenlemesini yapabilirsiniz. Örnek bir .xinitrc dosyası aşağıdaki gibidir :

#!/bin/bash
#
#start xterms
#
xterm -geometry 80x25+10+10 -bg black -fg white &
xterm -geometry 80x25 -bg darkgray -fg white &

xclock &
xload &
xbiff &
xsetroot -solid darkblue &

# startx wm
exec fvwm
#

.xinitrc dosyası gayet kolay ve anlaşılır bir dile sahiptir. Sadece hangi X programlarını çalıştırmak istediğinizi buraya yazın ve arkaplanda bırakın (bunu unutursanız X ten çıkıncaya kadar sadece ilk program çalışır). İlk iki satırda xterm çalıştırılıyor. Hemen hemen tüm X programlarının ortak özelliği, kullanıcının bu programları ekranda hangi koordinatlara yerleştirileceklerini belirleyebilmesidir. İlk xterm programı 80x25 karakter boyutlarında olup sol üst köşeden itibaren 10 piksel sola, 10 piksel sağa yerleştirilecektir. Xterm ün arkaplan ve yazıtipi rengi sırayla -bg ve -fg parametreleriyle belirtilir. Renkler ingilizce isimleriyle verilir. Bunlar hakkında daha fazla bilgi için /usr/X11/lib/X11 dizini altındaki rgb.txt dosyasına göz gezdirin.

Ardından sırasıyla xclock (X altında çalışan saat programı), xload (sisteme ne kadar yük bindiğini gösterir) ve xbiff (e-posta gelince haber verir) çalıştırılıyor. Aslında boş vaktinizde bakmanızı bekleyen, X Window ile birlikte gelen onlarca uygulama programı vardır. Bunları da arkaplanda çalıştırın.

Sondan bir önceki komut olan xsetroot, bazı hoş özellikleri olan bir programdır. Bu satırdaki görevi, X Window arkaplan rengini koyu mavi yapmaktır. Unutmayın, .xinitrc dosyasının içine X açılırken başlatmak istediğiniz her programı koyabilirsiniz.

/etc/httpd/ dizini:

httpd.conf : Genel ayarların belirtildiği dosyadır.

[Main]Sunucuyla ilgili ana ayarlardır.
[ServerType]httpd sunucunuzun çalıştırma/durdurma işlemlerinin inetd tarafından mı, yoksa /etc/rc.d dizinleri altındaki programcıklar tarafından (standalone) mı düzenleneceğini belirtir. Seçeneği "standalone" olarak bırakmanız, /etc/rc.d/init.d/httpd programcığına "start" ve "stop" parametrelerini vererek sunucunun çalışmasını düzenlemenizi sağlar.

[ServerRoot]Sunucunun ayar, hata ve günlük dosyalarının tutulacağı dizini belirtir.

[User ve Group]httpd sunucusunun hangi kullanıcı ve gruba ait olarak çalıştırılacağını belirtir.

[Port]Sunucuya hangi bağlantı noktası üzerinden bağlanılacağını belirtir (öntanımlı bağlantı noktası 80'dir).

[ServerName]Sunucunun kendini tanıttığı adıdır.

[ServerAdmin]Sunucudaki sorunların iletileceği e-posta adresidir.

[Logs]Çeşitli mesajların yazılacağı günlük dosyalarının adlarını ve bulundukları dizinleri belirtir.

[Capacity]Sunucunun çalışması ile ilgili genel ayarlardır.

[StartServers]httpd ilk çalıştırıldığında, kaç adet kopyasının yaratılacağını belirtir.

[MaxClients]Sunucuya aynı anda bağlanabilecek en fazla kişi sayısıdır.

[Other]Diğer ayarlardır.

[HostNameLookups]Sunucuya bağlanan istemci makinaların isimlerini günlük dosyalarına yazar.

[VirtualHosts]Aynı sunucu üzerinde başka isimlerle sanal adresler tanımlamaya yarar.

access.conf : Sunucuya erişim ayarlarıdır.

[Directories]cgi-bin ve html dosyalarının bulunduğu dizinlerin özel ayarlarını gösterir.
[Locations]Oluşabilecek sorunların gönderileceği adresi içeren programlardır.

srm.conf : Kullanıcı web sayfaları, isteklerin nasıl karşılanacağı gibi konuların ayarlarıdır.

[MainLanguagePriority]Sunucu üzerinde birden çok dilde web sayfası konulmasını, diğer sunucularla haberleşirken sayfanın hazırlandığı dilin belirtilmesini sağlar.
[UserDir]Kullanıcıların web sayfalarının kendi ev dizinleri altında hangi dizin altına konulacağını belirtir.

[DocumentRoot]HTML biçemindeki dosyaların konulacağı dizini belirtir.

[DirectoryIndex]Sadece dizin adıyla arama yapıldığında, o dizin altında aranacak dosya adını belirtir.

[Alias]Dosya sistemindeki dizinlere web erişimi için takma ad verilmesini sağlar.

[ScriptAlias]Sunucu programcıklarının bulunduğu dizinlere web erişimi için takma ad verilmesini sağlar.

[AddHandler]Dosya uzantılarına bakılarak hangi programların kullanılacağını belirtir.



-------------------------------------------------------------------------------------------

/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)
/temp : 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, /home dizininde 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 Linux Dosya Sistemi

# 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) kılavuz sayfasına bakın.
25 Mayıs 2006/23:38 #2
bune ya bukadr seyı kımse okuyamazzz ya
gended saol

Benzer Konular

Linux İşletim Sistemi kategorisindeki Linux Dosya Sistemi konusuna benzer yazılar. Linux Dosya Sistemi yazısını beğendiyseniz belki bu konular da ilginizi çekebilir.


Zaman: GMT +2 Saat:06:43

©2005 - 2013 X-Paylasim.com - Genel eğlence ve bilgi paylaşım platformu. SimpleX vBulletin Theme
Web Dizini Powered by vBulletin® Version Copyright ©2000 - 2009, Jelsoft Enterprises Ltd. SEO by vBSEO 3.3.1 1 2