1-Linux Nasıl Çalışır?

Bir önceki yazımızda GNU/Linux’tan bahsetmiştik. Eğer o yazımıza gitmek istiyorsanız buraya tıklayabilirsiniz. Bu yazımızda Linux çekirdeği nasıl çalışır ve sistem açılış-kapanışlarında neler olur bunlardan bahsedeceğiz.

Linux aslında bir işletim sistemi değil, o işletim sisteminin çekirdeğidir. Linux çekirdeği ve GNU araçlarının bir araya gelmesiyle bazı işletim sistemi dağıtımları meydana gelmiştir. Bu dağıtımlar hitap ettiği kitleler aracılığıyla birbirinden ayrılabilir. Örneğin bazı dağıtımlar sunucular için tasarlanmıştır ve içerisinde sunucu araçlarını barındırır. Dağıtımlar kullanıcı deneyimi yönünden farklılıklar gösterse de Linux çekirdeğini kullanan sistemler de çalışma mantığı aynıdır.

Linux Sistemlerde Dosya ve Dizin sistemi

Linux sistemler dosya sistemi olarak Windows’tan çok farklılık gösterirler. Windows’ta programlar genel olarak Program Files(Program Dosyaları) içerisine kaydolur. Ancak Linux’ta işler biraz daha farklıdır. Bu yüzden Windows’tan Linux’a geçen kullanıcılar en çok dosya sisteminde zorlanmaktadırlar.

Linux genel olarak bir klasördür. Tüm sistem dosyaları ve dizinleri KÖK DİZİN adı verilen bir dizin içerisinde bulunur. Kök dizin “/” ile gösterilir ve bütün sistem dosyaları bu dizin altında dallanır. Buna “Tekil Hiyerarşik Klasör Yapısı” denir. Bu yapının en büyük avantajı ise organizasyon yapılabilmesidir. Örneğin bir ağın içerisinde bulunan farklı görevdeki istemciler ve sunucular, kök dizin içerisinde dizinler arasında görevlendirildiğinde bu ağ aslında tek bir klasörmüş gibi çalışacaktır. Böylece çok daha verimli bir ağ yapısı elde edilecektir.

Windows’ta bir program yüklendiğinde programın tüm bileşenleri program klasörü içerisine yüklenir. Linux’ta ise uygulamanın değişik belge ve dizinleri kök dizin içerisinde farklı yerlere yüklenir. Örneğin Windows’ta XYZ diye bir programı yüklediğinizde XYZ ve XYZ ile ilgili tüm dokümanlar ve yardımcı belgeler “C:\Program Files\XYZ\” içerisine yüklenir. Ancak Linux’ta program dokümanları “/usr/share/doc/” dizinine, infolar “/usr/share/info/” dizinine yüklenir. Bu ve bunun gibi daha birçok yönden Windows sistemler Linux sistemlerde ayrılıyor.

Buraya kadar Linux’ta dosya sisteminden yüzeysel bir şekilde bahsettik. Şimdi Linux nasıl çalışır ondan bahsedelim.

Linux başlatılırken

Birçok bilgisayar mimarisinde sisteme enerji verildiğinde BIOS (Basic Input-Output System / Temel Girdi-Çıktı Sistemi) denilen bir yazılım çalışır. BIOS, EPROM üzerinde ROM bellek biçiminde yer alan ve bilgisayar açıldığında işlemciye, sisteme bağlı diğer tüm donanımları sırasıyla tanıtan bir yazılımdır. Aynı zamanda işletim sistemi yüklemek için gerekli önyükleyici (bootloader) programını çalıştırır. BIOS ve önyükleyici genelde çok küçük boyutlu programlardır.

Her işletim sistemi kendi içerisinde muhakkak bir önyükleyiciye sahiptir. Linux sistemlerde şu sıralar popüler olan önyükleyici ise GRUB (Grand Unified Bootloader) yazılımıdır. GRUB, GNU Tasarısı’nın bir parçasıdır. GRUB çoklu işletim sistemlerinde tüm işletim sistemlerini bulur ve açılış anında kullanıcıya bir menü dahi sunar. Her türlü işletim sistemini yükleyebilir. Ağ üzerinden yüklemeye destek sağlarken birçok dosya sistemini de destekler. Şu an kullanılan en güçlü ön yükleyicilerden birisidir.

Aşağıda Vikipedi’den alınmış olan ve GRUB ile Windows önyükleyicisi karşılaştıran tabloya bakabilirsiniz.

Ekran Görüntüsü - 2016-08-04 13-53-17
GRUB ile Windows Ön Yükleyicisi arasındaki temel farklar (Vikipedi)

BIOS gerekli donanım tanımlamalarını bitirdikten sonra kendisine daha önceden tanımlanmış disklerden okuma yapar. Bu disk tanımlamasını kullanıcı daha önceden belirleyebilir. Örneğin ilk boot edilecek yer CD-ROM daha sonra HDD seçilirse, BIOS öncelikle CD-ROM arayacaktır. Eğer bulursa CD-ROM’un ilk sektörünü okuyacaktır. Eğer CD-ROM bulamazsa HDD’ye bakacaktır. Bu sıralama kullanıcıdan kullanıcıya göre değişir.

BIOS kendi işi bitirince HDD üzerindeki ilk sektörü okur dedik. Bunun nedeni ise önyükleme programları genellikle disklerin ilk sektörlerinde bulunurlar. Bundan dolayı disklerin bu bölümlerine Ana Önyükleme Sektörü (Master Boot Record – MBR) denir. BIOS MBR’yi okuyup ön yükleyiciyi çağırır.

Ön yükleyiciler iki yüklenme aşamasından oluşurlar. Birinci aşamada program kendini hafızaya yükler ve ikinci yükleme programını çağırır. Bundan dolayı birinci aşama programı ikinci aşama programının yerini bilmek zorundadır. İkinci aşama programı ise disk üzerinde işletim sisteminin çekirdeğini yüklemekle görevlidir. Bu yüzden ikinci aşama programı da çekirdeğin konumunu bilmek zorundadır. Aksi takdirde çekirdek yüklenmeyecektir.

İkinci aşama yükleyicisi Linux çekirdeğinin konumuna gider. Linux çekirdeği diskte sıkıştırılmış halde tutulur. Yükleyici çekirdeğe uyanmasını iletir. Çekirdek bu haberi alınca kendini çözümler.

Bu aşamadan sonra Linux çekirdeği donanımları kontrol eder ve size ilerlemeyle ilgili bilgiler sunar. Bu bilgilerin görüntülenmesi dağıtımdan dağıtıma farklılıklar gösterir. Bazı dağıtımlar bu bilgileri ekrana yansıtmazken bazıları her detayı ekranda gösterir.

Donanımlar tanımlandıktan sonra Linux çekirdeği kök dizini (dosya sistemi) bağlamaya çalışacaktır. Bunun için dosya formatını bulur. Uygun bir dosya sistemi sürücüsüyle kök dizini bağlar. Eğer burada bir sebepten dolayı kök dizin bağlanamazsa “çekirdek paniklemesi” veya yaygın bilinen İngilizce adıyla “kernel panic” gerçekleşir ve çekirdek sistemi kapatır.

Eğer her şey yolunda gidip kök dizin düzgün bir şekilde bağlanırsa çekirdek açılış uygulamaları ve sistemin kullanımına hazır hale gelmesi için “/sbin/init” dizinine gidip “init” programını başlatır. “init” sistemde ilk çalışan süreçtir ve bir çok işi de beraberinde yapar. Örneğin başlangıçta kullanıcının belirlediği uygulamaları başlatır. Bütün bunlardan sonra sistem normal çalışma durumundadır ve kullanıma hazırdır.

“init” programı “/etc/inittab” konfigürasyon dosyasını kendisine baz alarak işlem gerçekleştirir. Gerekli programlar inittab içerisinde tanımlanmıştır. Bu dosya içerisinde programların ne zaman hangi seviyelerde çalışacağı belirtilmiştir. Genelde 7 seviyeden oluşan çalışma seviyelerinin 0(sıfır) ve 6(altı) çalışma seviyeleri özeldir. Sıfır çalışma seviyesi sistemi kapatmak için kullanılırken 6 çalışma seviyesi ise sistemi reboot (yeniden başlatmak) için kullanılır. Aradaki 5 seviye ise farklı şekillerde tanımlanmışlardır. “init” çekirdeğin son yüklenme aşamasında “inittab” içerisinde “initdefault” tanımını arar. Bu tanım geçilmesi gereken seviyeyi belirtir.

Tüm bu aşamalardan sonra “etc/rc.d/rc.sysinit” dizininde rc.sysinit scripti çalışır. Bu script klavye ve font ayarlaması, takas alanlarının belirlenmesi, USB kontrolcülerinin başlatılması, çekirdek parametrelerinin ayarlanması gibi birçok işlemi gerçekleştirir.

Linux Kapanış ve Yeniden başlatma

Linux sistemleri kapatmak için gerekli olan komut “shutdown” komutudur. “shutdown” kullanımı şu şekildedir.

>> shutdown -h now

Buradaki -h seçeneği sistemin HALT edileceğini yani durdurulacağını belirtir. “now” ise bu işlemin hemen gerçekleşmesini istediğimizi belirtir. Eğer sistemi hemen değilde belirli bir süre sonra kapatmak istersek bunun için aşağıdaki komutu kullanabiliriz.

>> shutdown -h +X “Açıklama”

>> shutdown -h +5 “5 dakika sonra sistem kapanacaktır.”

Buradaki X bize sistemin ne zaman süre sonra kapatılacağını belirtir. Açıklama ise sistemin ne zaman ve neden kapatılacağıyla ilgili ağınıza bilgi vermek isterseniz kullanılır. Böylece sisteme bağlı tüm diğer Linux kullanıcılarda sistemin X dakika sonra kapatılacağını bilir ve önlemlerini alır.

Sistemi yeniden başlatacağınız zaman ise aşağıdaki komutu kullanabilirsiniz.

>> shutdown -r now

Buradaki -r seçeneği sistemin reboot edileceğini yani yeniden başlatılacağını bildirir. Ayrıca artık çoğu dağıtımda bu komut yerine direkt

>>reboot

komutunun da kullanıldığını da görebiliriz.

Bu yazımızın sonuna geldik. Sonraki yazımızda Linux sistemlerde Kök dizin ve dosya sisteminden bahsedeceğiz. İyi okumalar.

Kaynakça:

1- Syslogs Linux Eğitim Dokümanları

2-Vikipedi GNU GRUB


1-Linux Nasıl Çalışır?” için bir yanıt

Yorum bırakın