İşletim Sistemleri Konsepti [4]

Bir işletim sisteminin başlaması

Bu kısımda bilgisayarımızdaki güç düğmesine bastığımız zaman olan yazılımsal süreçleri ve linux işletim sisteminin başlatılmasını inceleyeceğiz.

Güç düğmesine bastığınızda, bilgisayarın güç kaynağı (Power Supply Unit - PSU) anakarta ve diğer bileşenlere enerji sağlar. Bu sayede işlemci, RAM, sabit disk ve diğer donanımlar çalışmaya başlar. Anakartın üzerinde bulunan bir çipte BIOS yazılımı bulunur.

BIOS (Basic Input/Output System), anakart üzerinde bulunan bir çipin içine yüklenen düşük seviyeli bir yazılımdır. BIOS, bilgisayarın açılışında donanımı başlatmaktan ve işletim sistemini yüklemekten sorumludur

BIOS kodu, anakart üzerindeki bir ROM (Read-Only Memory) çipinde depolanmıştır.

Bu yazılım işletim sisteminden bağımsız, anakart üzerinde bulunan ve üretici tarafından yazılmış olan bir kod parçasıdır.
Çok düşük seviyeli bir dil kullanarak özel bir derleme aşamasından geçirilir
Kendi bilgisayarlarımızda yazdığımız programlar o an işletim sistemimizin üzerinde çalışabilecek şekilde derlenir çünkü işletim sistemimizin kütüphaneleri kullanılır, örneğin ekrana print yazdırdığımız zaman bu işletim sistemine ait bir API kullaranak ekrana çıktı verir. Linux işletim sistemleri için bu kodu açıp incelediğiniz zaman ne kadar detaylı bir kod olduğunu farkedebilirsiniz, ama bios aşamasında bir işletim sistemimiz yoktur

Elektrik geldiği zaman bu yazılım, diskleri tarar, bir işletim sistemi başlatıcısı bulur ve onu ram belleğe yükler.

Bu başlatıcı Linux sistemlerinde genellikle GRUB'dur.

GRUB veya başka bir bootloader, Linux çekirdeğini (genellikle /boot dizinindeki bir dosya olarak bulunur) RAM’e yükler ve çalıştırır.

Çekirdek, Linux işletim sisteminin en temel bileşenidir ve donanımı yönetir. Aynı zamanda süreçlerin, belleğin ve cihazların koordinasyonunu sağlar.

Linux'ta çekirdek yüklendikten sonra, ilk olarak init adlı süreç başlatılır. init süreci, tüm diğer süreçlerin başlatılmasından sorumludur. Geleneksel olarak bu süreç SysV init olarak adlandırılırdı, ancak modern Linux dağıtımlarında systemd adında daha gelişmiş bir init sistemi kullanılır

Linux işletim sistemlerinde her çalıştırılan program birer process id değeri alır (pid)

Process dediğimiz kavram kod parçalarının çalıştırılabilir bir halde rame yüklenmesidir.

Rame yüklenmemiş çalıştırılamayan haline program diyoruz

systemd veya init ilk processtir.

Şimdi gelelim asıl önemli noktaya

Systemd yüklendikten sonra her process, bu process'den forklanarak çalışır.

Yani çalıştırılan her program, aslından systemd'nin forklanmış halidir.

Bir linux sisteminin process ağacı

Resimde de görebileceğiniz üzere process ağacının en tepesinde systemd vardır.

Fork dediğimiz kavramı türkçe olarak kopyalamak diyebiliriz.

Bir yazı dosyası düşünün, yeni bir yazı dosyası ekleyeceğimiz zaman bu dosyayı kopyalıyor, biraz değişiklik yapıyoruz ve elimizde iki tane yazı olmuş oluyor. Bu şekilde düşünebiliriz. Detayını ilerleyen derslerde işleyeceğiz.

Sıfırdan yeni bir süreç oluşturmak yerine forklamak unix'in bir felsefedir.Unix felsefesine göre, her şeyin bir süreç olduğu düşüncesiyle süreçler, zincirleme bir şekilde oluşturulur. Yani, bir süreçten yeni bir süreç türetmek mantıklı ve düzenli bir yöntemdir.
Bunun yanı sıra teknik olarak avantajları da oldukça fazladır.

İşte bu şekilde, biosa elektrik gelmesiyle başlayan bu süreçte en sonunda işletim sistemimiz açıldı.

Bir sonraki derste bir işletim sisteminin görevlerinden bahsedeceğiz.


Eğer eğitim içeriğinde bir hata fark ederseniz, lütfen bunu bize e-posta yoluyla bildirin. Uygulamalı eğitimlerdeki sorunlara yaklaşımım ve bakış açım, yeni öğrendiğim bilgiler doğrultusunda değişebilir. Sizlerin de farklı bir bakış açınız varsa, bunu bizimle paylaşmaktan çekinmeyin.