380 likes | 662 Views
LİNUX İŞLETİM SİSTEMİ YAPISI. Linux İşletim Sisteminin Açılışı. BIOS, MBR yi RAM’e yükler. MBR’deki makine kodları ön yükleyicilerinin (GRUP veya LILO) disk üzerindeki yerini belirler ve RAM’e yükler.
E N D
Linux İşletim Sisteminin Açılışı • BIOS, MBR yiRAM’e yükler. • MBR’deki makine kodları ön yükleyicilerinin (GRUP veya LILO) disk üzerindeki yerini belirler ve RAM’e yükler. • Ön yükleyici disk üzerindeki işletim sisteminin olup olmadığını kontrol eder. Birden fazla varsa hangisini yükleyeceğini kullanıcıya sorar. Disk üzerindeki Linux çekirdeği, boot dizini altında vmlinuz-<kernel-versiyon> adıyla yer alır. • Ön yükleyici seçilen işletim sistemini RAM’e yükler.
Ön yükleyici initrd olarak adlandırılan başlangıç RAM imajını RAM’e yükler. initrd, sistemin açılışı için gerekli olan sürücüleri yüklemek üzere çekirdek tarafından kullanılır. • initrd’ninyükleme işlemi bittikten sonra görevi çekirdeğe devreder. • Çekirdek donanım birimlerini yapılandırmaya koyulur. • Çekirdekle beraber yüklenmiş olan initdrsisteme bağlanır ve gerekli olan tüm sürücüleri ona yükler. • Kendisine root sanal aygıtı oluşturan çekirdek, onu root bölümü olarak sisteme sadece okunur bir şekilde bağlar. • Çekirdek sisteme yüklenmiştir ve çalışabilir durumdadır. Fakat herhangi bir kullanıcı uygulaması yoktur.
Dosya sistemi bağlandıktan sonra çekirdek /sbin/init programını çalıştırarak, kullanıcı ortamının yapılandırması başlatır. /sbin/init tüm işlemlerin kökenidir ve işlem numarası daima 1’dir. /sbin/inithangi çalışma seviyesinde açılacağını belirleyen /etc/inittabprogramını çalıştırır. • /etc/inittabbelirtilen çalışma seviyesine göre/etc/rc.dklasörü içerisindeki rcdizini karar verir. rc.ddizini içerisine bakıldığında farklı programlar veya betikler mevcuttur. Bunlardan /etc/rc.d/init.d dizini içerisinde işletim sisteminin sahip olduğu servislere ilişkin başlatma, kapatma vb. işlemleri yapan ve kabuk programlarını içerisinde barındırır.
KULLANICI ÇALIŞMA SEVİYELERİ Çalışma seviyeleri işletim sisteminin hangi kipte çalıştırılacağını ifade eder. Farklı kipte çalışma seviyeleri farklı durumlarda kullanılabilir. Örneğin işletim sisteminin grafik ekranının açılmadığı durumda bilgisayarı sadece temel yönetim ve kullanımı seviyesinde açarak yönetebiliriz.
0. Sistem kapalı (Halt) 1. Ağ desteği olmayan tek kullanıcı için 2. Ağ desteği olmayan Çok kullanıcılı kip 3. Ağ desteği olan metin tabanlı çok kullanıcılı kip 4. Kullanılmıyor ancak kullanıcı tanımı yapılabilir. 5. Ağ desteği olan grafik tabanlı çok kullanıcılı kip 6. Sistemin kendini yeniden yüklemesi (rebooting) durumu
Burada kullanıcı açısından pratik olan kipler 1,3 ve 5. Kiptir. Kip temel bakım ve yönetim için kullanılır veya root şifresinin unutulduğu durumlarda kullanılır. Bu seviyede ağ desteği yoktur. 3 kipte tüm servisler açılır. Grafik arayüz kullanıcı elle açmadığı sürece sağlanmaz. 5. kipte 3. Kipten farklı olarak grafik desteği sağlanmasıdır. Çalışma seviyesine göre yüklü tüm servisler açık veya kapalı konuma getirelebilir. /etc/ rc.daltındaki tüm dizinler değiştirilerek veya chkconfigkomutu yardımıyla kolaylıkla yapılır. Linux’ta 2 ile 5 arasındaki çalışma kipleri tüm Linux sistemleri için aynı değildir.
Mevcut Çalışma seviyesini değiştirmek Bulunulan çalışma seviyesini initkomutuyla değiştirebilirsiniz. Örneğin 5. Çalışma seviyesinden 3. Çalışma seviyesine düşmek için init 3 yazılması yeterlidir. initkomutunu kullanmak bazen risklidir çünkü bazı servislerin durdurulması anlamına gelmektedir. Ayrıca init0 komutu sistemi kapatmak için init 6 ise sistemi yeniden başlatmak için kullanılır.
Sistemin Başlangıç Seviyesini Belirlemek Linux işletim sisteminin hangi çalışma seviyesinde açılacağı /etc/inittab dosyası içerisinde bulunmaktadır. Örneğin bu dosyanın içerisinde id: 5: initdefault: sistemin 5. Seviyede açılışının ayarlandığını gösterir.
Linux Disk Yönetimi ve Dosya Sistemi Linux’ta hem taşınır hem de sabit diskler /dev dizini altında bulunur. Örneğin bilgisayarda takılı 4 adet IDE disk takılı olduğunu farz edersek sırasıyla: /dev/hda (Primary Master) /dev/hdb (Secondary Master) /dev/hdc (Secondary Master) /dev/hdd (Secondary Master)
Benzer şekilde SATA sabit diskler veya USB diskler /dev dizini altında : /dev/sda /dev/sdb Şeklinde gözükecektir. Eğer fiziksel diskler birden fazla diske bölünmüşse bölümler sırasıyla hda1,hda2,hdb1,hdb2 veya sda1,sda2 şeklinde gözükecektir.
DOSYA SİSTEMİ Dosya sistemi öncelikli olarak kullanılan işletim sistemine göre değişiklik gösterir. Windows FAT ve NTFS dosya sistemini desteklerken Linux FAT dosya sistemini desteklemekle birlikte ext2 ve gelişmiş versiyonu olan ext3 desteklemektedir. Fakat ext2 ve ext3’te göstermiş olduğu performansı FAT dosya sisteminde gösterememektedir.
Dosya sistemlerini karşılaştırma kriterleri Dosya adı uzunluğu Maksimum dosya boyutu Maksimum saklama alanı boyutu İsimlendirmede kullanımına izin verilen karakter sayısı Maksimum dizin sayısı Tek dizin içerisinde izin verdiği dosya sayısı Toplam dosya sayısı İçerdiği metadata’lar (dosya sahibi,oluşturulma tarihi, erişim tarihi vb.)
Disk Biçimlendirme ve Bölümleme Fiziksel diskler, fabrika çıkısı olarak biçimlendirilmeden ve bölümlendirilmeden piyasaya verilirler. Bu diskleri kullanabilmenin ön şartı diski kullanacağımız işletim sistemine uygun bir dosya sistemi ile biçimlendirmektir. Örneğin Linux işletim sistemi için ext dosya sistemi yapısıyla biçimlendirilir. Ancak, sabit diskimizi birden fazla kısımlara bölümlemek gerekir. Bu nedenle, sabit diskinizi en az iki mantıksal parçaya bölmek ve her bir parçayı ayrı ayrı biçimlendirmek daha güvenli ve verimli bir yöntemdir.
Tek bir fiziksel disk, birden fazla mantıksal diskte bölünürken her bir mantıksal disk de farklı farklı dosya sistemi ile biçimlendirilebilir. Örneğin, tek bir sabit diskinizi iki ayrı bölümünü NTFS ve ext2 ile biçimlendirerek aynı disk üzerinde Linux ve Windows işletim sistemini birlikte kurabilirsiniz. Her bir disk bölümünü sahip olduğu dosya sistemine göre etiketi ekleyen sayısal bir kod vardır. Hangi dosya sisteminin hangi kod ile etiketlendiği görmek İçin: fdisk-T komutunu çalıştırın.
TAKAS (SWAP) ALANI Birçok işlemin aynı anda yürütüldüğü durumlarda, bilgisayardaki RAM miktarı yeterli gelmeyebilir. Bu tür durumlarda, Linux işletim sistemi RAM’deki bazı sayfalan sabit diske atarak boş yer sağlamaya çalışabilir. Böylece, muhtemel tıkanmalara karşı tedbir almış olur, işte RAM’deki sayfaları, diske yazma İşlemine sanal bellek kullanımı denir. Sabit disk üzerinde sanki RAM gibi kullanılan bu disk bölümlerine takas (swap)alanı adı verilir. Bu işlem gerçek RAM gibi hızlı bir erişim vermemekle birlikte oldukça kullanışlı olabilir. Takas alanı olarak, donanımsal RAM miktarınızın iki katı kadar yer kullanmanız yerinde ve yeterli olacaktır.
Biçimlendirme ve Bölümleme Araçları: fdisk Birbirinden farklı tarafları olmakla birlikte, hem Linux hem de DOS ortamında kullanılan en meşhur disk bölümle aracı fdisk Mir. Linux ortamında, fdisk’in menü tabanlı, daha kullanıcı dostu olan türevi cfdisk’dir. Hem fdisk’inhem de cfdisk ile yaptığınız bölümleme sonucunda, fiziksel diskiniz üzerindeki tüm verilerinizin yok olacağı ve her bir bölümün yeniden biçimlendirilmesi gerektiği unutulmamalıdır. Bu nedenle, yeni aldığınız veya gözden çıkardığınız bir disk üzerinde fdisk veya cfdisk’i kullanmanız yerinde olacaktır.
Sisteminiz üzerindeki tüm bölümlendirme tablolarını görmek için: fdisk –l –x |more Parted, Linux’un disk bölümleme ve / veya bölümleri yeniden boyutlandırma aracıdır. Yeni işletim sisteminize yer açmak, yeni bir diske başka bir disk üzerindeki verilerinizi kopyalamak gibi amaçlar için oldukça elverişlidir. Parted, ext2, ext3, linux-swap, FAT ve FAT32 dosya sistemleri üzerinde, kopyalama, taşıma, yeniden boyutlandırma vb. gibi işlemlerini yerine getirir. Linux komut satırına partedyazıp, giriş yaptıktan sonra sizi partedkomut istemi {command prompt)karşılar. Sizi, karşılayan bu yeni komut istemine neler girebileceğinizi görmek için help yazıp görebilirsiniz.
Şimdi partedyardımı ile bir kopyalama işlemi yapalım. (parted) cp /dev/sdb 1 3 Yukarıda, /dev/sdafiziksel diskinin birinci mantıksal bolümününde (partiti-on) yer alan bilgileri üçüncü mantıksal bölümüne kopyalım. Ancak bu, işlem sonucunda üçüncü mantıksal bölümdeki tüm bilgilerin kaybolacağını özellikle belirtmek İsterim. Parted ile ilgili son olarak, elimizdeki birinci bölüm {/dev/sda‘nınilk bölümü yani minör 1) için yeniden dosya sistemi oluşturalım. (parted) mkfs 1 ext2 Fsck{file systemcheck), dosya sisteminde tutarsız, kararsız, hatalı bir durum olup olmadığını denetleyen ve böyle bir durum varsa bunu düzelten aracın adıdır.
Özellikle, elektrik kesintisi gibi İşletim sisteminin rutin dışı kapanmalarında, dosya sistemleri zarar görebilir. Bu tür durumlarda, ilgili mantıksal disk bölüm veya bölümleri yeniden sınanarak, bir hatanın olup olmadığı kontrol edilir. Örneğin, Windows İşletim sistemlerinde bu tür bir denetimi, işletim sistemi başlarken scandisk, chkdiskyaparken, linux işletim sisteminde fsck kullanılır.
fsckdisk ile dosya sistemi sınanacak olan disk bölümünün bağlanmamış {un mount) olması ve böylelikle üzerinde aktif olarak bir işlem yapılmaması kesinlikle sağlanmalıdır. Daha doğru bir yol olarak, İşletim sisteminin 1. kullanıcı seviyesinde başlatıldıktan sonra fsck’in kullanılması tercih edilmelidir. Aşağıda, dosya sistemi ext3 olan sda3 mantıksaIdisk bölümünü nasıl sınayacağımız görülmektedir. fsck -t ext3 /dev/sda3
Dosya Sistemini Bağlama (Mount) Bilgisayarınıza CD/DVD ROM, USB diskler ve sabit diskler olmak üzere birçok veri depolama birimi olabilir. Ayrıca tek bir fiziksel diskin bölümlendirilerek birden fazla mantıksal bölüme ve dolayısıyla da birden farklı dosya sistemine de sahip olunabilir. Windows işletim sistemi, kendisine bağlı depolama aygıtlarının dosya sistemini destekliyorsa hemen bağlar. Ancak Linux da durum biraz farklıdır. Örneğin taktığınız CD ROM’u veya USB diski hemen görmeyebilir ve sizin bunları elle tanıtmanızı isteyebilir. Artık yeni bir çok Linux dağıtımları da, USB bellek, CD/DVD ROM gibi depolama birimlerini otomatik olarak bağlandığını görebilmekteyiz.
Linux’ta, /dev dizini altında sda, hda, CD/DVD ROM ve USB bellek gibi depolama birimleri bile kolaylıkla listeleyebilirsiniz. Ancak, bu depolama birimlerini /dev dizini altında görmek sadece, işletim sisteminin o donanımsal birimi algıladığım bize gösterir. Diğer yandan, /dev altındaki depolama birimlerin bizim tarafımızdan veya sistem tarafından kullanılabilmesi için bağlama noktası (mountpoint) olarak isimlendirilen mantıksal bir alanla ilişkilendirilmesi gerekir. Örneğin, yeni taktığınız SATA diskinizi üç mantıksal bölüme ayırdığımızı düşünelim. Yeni eklediğiniz SATA diskiniz dev dizini altında, eğer sistemde önceden eklenmiş başka SATA disk yoksa: /dev/sda /dev/sda1 /dev/sda2 /dev/sda3 Olarak görülecektir.
Eğer sistemde önceden eklenmiş bir SATA disk varsa; /dev/sdb /dev/sdb1 /dev/sdb2 /dev/sdb3 olarak görülecektir. Benzer şekilde sistemdeki diğer depolama birimleri de yandaki gibi görülecektir. Şimdi biraz önceki SATA disk örneğimiz üzerinde devam edelim. Bu diski, üç farklı mantıksal bölüme ayırarak, ilk bölümünü ext2, İkincisini ext3 ve üçüncüsünü FAT olarak biçimlendirdiğinizi düşünelim.
İlk işimiz, elimizdeki biçimlendirilmiş disk bölümünü hangi mantıksal alana bağlayacağımıza karar vermektir. Bir zorunluluk olmamakla birlikte, genel olarak /mntdizini bağlama noktası olarak kullanılır. Örneğin /dev/sda1 İçin mnt altında sda1 adlı bir dizin oluşturabiliriz, mkdir/mnt/sda1 Benzer şekilde sda2 ve sda3 içinde /mnt altında bağlama noktası oluşturalım. mkdir /mnt/sda2 mkdir/mnt/sda3
Mount komutunun genel kullanımı: mount -t dosya_sistemi_tipidisk_bölümü bağlanacak dizin Yukarıda da görüldüğü üzere, t parametresi sayesinde hangi disk bölümünün hangi dosya sistemine göre bağlanabileceğini belirtebiliyoruz. Şimdi ext2 olarak biçimlendirdiğimiz ilk disk bölümümüzü mount komutu ile bağlayalım: mount -t ext2 /dev/sda1 /mnt/sda1 Benzer şekilde sda2’yi ext3 dosya sistemi ile sda3’ü FAT dosya sistemi ile bağlayalım. mount -t ext2 /dev/sda1 /mnt/sda1 mount -t ext3 /dev/sda2 /mnt/sda2 mount-t vfat /dev/sda3 /mnt/sda3
Hangi disk biriminin nereye bağlandığını görmek için: mount veya cat /proc/mounts Diğer yandan hangi depolama birimin, işletim sisteminin açılışı sırasında otomatik olarak bağlanıp bağlanamayacağım /etc/fstapiçerisinde topluca belirleyebiliriz.
dd komutu Belirli sayıda bayt veya bloğu ‘disk seviyesinde’ kopyalamak, okumak veya yok etmek için kullanılan, çok yönlü disk aracıdır. Genel kullanım biçimi aşağıdaki gibidir: ddif=<kaynak__alan> of=<hedef_alan> bs=<boyut/bayt cinsinden > count= <kopya_blok_sayısı> CD-ROM’un imajım almak için: ddif=/dev/cdrom of=image.isobs=2k Sistemimizdeki disk bölümünün tamamı üzerine rasgele baytlar yazmak suretiyle, verilerimizi yok etmek için: ’ ddif=/dev/urandomof=/dev/hda Bir disk bölümünü diğerine kopyalamak için: ddif=/dev/sda of=/dev/sdb
Bir disk bölümünün (örneğin sdb) imajını almak için: ddif=/dev/sdbof=/home/alper/sdb.img İmajı, disk bölümüne yüklemek için: ddif=/home/alper/sdb.img of=/dev/sdb Bir disk bölümünün imajım sıkıştırarak almak için: ddif=/dev/sdb | gzip > /home/alper/sdb.img Disk MBR {Master BootRecord) yedeğini almak için: ddif=/dev/sda of=/home/alper/sda_mbr.imgcount=1 bs=512 MBR yedeğini, yeniden yüklemek için: ddif=/home/alper/sda_mbr.imgof=/dev/sda
Linux üzerinde dosya temelli imaj (Örneğin 1 G bayt)oluşturmak için: ddif=/dev/zero of=/usr/sanal_disk.imgbs=1024k count=1024 mkfs.ext3 /usr/sanal_disk.img mount -o loop /usr/sanal_disk.img /mnt Oluşturduğunuz sanal diski silmek için: umount /mnt; rm/usr/sanal_disk.img Bellek tabanlı dosya oluşturmak: mount -t tmpfs -osize=32m tmpfs /ram_disk
dd ile sadece yazma değil, diskten okuyup görme imkanımızda var. Örneğin: ddif=/proc/partitions | hexdump -C | less ddif=/proc/meminfo | hexdump-C | less
Alıştırma Soruları • Linux İşletim sisteminin hangi kernel versiyonunu kullandığını bulunuz. • Linux İşletim sistemi hangi açılış modunu kullanıyor bulunuz. • Linux İşletim sistemindeki tüm dizinleri listeleyeniz. • Linux işletim sistemindeki dizinlerin içerisindeki dosya ve dizinleri de inceleyeniz. • Harici bir disk alıp (flash bellek) bu diski ext4 dosya formatında biçimlendiriniz.
Harici bir disk (flash bellek) alıp bu diski farklı bölümlere ayırıp ext4 (linux için ) ve NTFS (windows için) biçimlendiriniz. • Harici bir diski işletim sistemine tanıtınız ve mnt dizinine ekleyip içerisine oluşturduğunuz herhangi bir dosyayı kopyalayınız. • Harici bir diskin imajını alınız. • Bir sunucuda birçok kullanıcıyı ilgilendiren dosyalar, içerikler ve veriler vardır. Bu önemli verileri sunucuda nasıl koruma altına alırsınız?
KAYNAKLAR • Linux Sistem ve Ağ Yönetimi (Linux başucu Kitapçığı) Alperen ÖZBİLEN • http://tr.wikipedia.org/wiki/Linux