Linux Çekirdeği

Bünyamin TAMAR
2 min readMar 12, 2021

--

Çekirdek nedir?

Bir gömülü sistemci, Linux dünyasına adım atarken “Ya bu işletim sistemi nedir? Çekirdek de nereden çıktı?” benzeri sorular sorabilir. Ben sordum çünkü :)

Bir gömülü sistemcinin MCU ile LED yakıp, motor döndürüp, çevre birimlerden alınan datayı struct’lar içine kaydetmesi ve sonra da EEMROM’a kaydetmesi, aslında dosyalama işlemlerinin ilk adımı diyebiliriz.

Donanım seviyesinde yapılan bu işlemlerinin bir driver haline getirilmesi ile donanımdan soyutlanmanın da ilk adımı atılmış olur. Bu katmana donanımdan soyutlama katmanı (Hardware Abstruction Layer) denir.

Bundan sonra yapılacak işlemler için bu driver dosyası projeye dahil edilerek (#include “..”) uygulama katmanında (application layer) çalışmalara devam edilir.

Kullandığımız MCU ve PCB kartını bir bilgisayara benzetebiliriz. Donanımdan soyutlama için yazılan driver dosyasını da uygulamanın çekirdeği olarak görebiliriz. Artık bu çekirdek kullanılarak uygulama geliştirebiliriz. Yani, sürekli olarak alt katmanda (low layer) çalışmaya gerek yoktur.

Özetle çekirdek, en alt katmanda çalışan ve donanımları kullanmamızı sağlayan uygulamalara arayüzlük yapan bir programdır.

Bir çekirdek;

  • Sistem kaynaklarının yönetilmesi
  • Görev ve hafıza yönetimi
  • Aygıt yönetimi
  • Sistem çağrılarının yönetimi

gibi işlemleri yürütür.

Çekirdek Tipleri

Üç tane çekirdek tipi vardır. Buradan sonra çekirdek kelimesi yerine orijinal haliyle kernel kelimesini kullanacağım.

  1. Mikrokernel
  2. Monolitik kernel
  3. Hybrid kernel

Linux, monolitik kernel kullandığı için bu konuyu açalım.

Monolitik Kernel nedir?

Monolitik kernel, işlemci, hafıza ve bunların yanında argıt sürücüleri, dosya sistemi yönetimi işlemleri yönetir.

Monolitik kernel, tek bir dosyadan oluşur ve tüm gereksinimleri bu dosyadadır. Yani modüler değildir.

Çekirdek tipleriyle ilgili biraz daha detaylı bilgiye buradan ulaşılabilir.

GNU nedir?

Bir işletim sistemi, sadece çekirdekten ibaret değildir. Bu çekirdeği kullanan araçlardan ve bir masaüstü ortamında oluşur. Yani, kullanıcıyla etkileşime geçen bir katmanı vardır. GNU projesi kapsamından geliştirilen araçlar, Linux kernel’ini kullanır ve böylece işletim sistemi dediğimiz kavram doğar. Linux kernel’i ve GNU araçları kullanılarak birçok işletim sistemi tasarlanmıştır. Kernel olarak Linux kullanıldığı için bu işletim sistemlerine Linux dağıtımı denir.

Ubuntu en popüler Linux dağıtımıdır. Windows’a çok benzer ve kullanıcı dostudur.

Gömülü Linux dediğimiz kavram ise Linux çekirdeğini kullanarak kendi işletim sistemimizi yazmak ve uygulama geliştirmek olarak açıklanabilir.

--

--