Kernel(Çekirdek) Nedir?
İşletim sistemi ile donanımlar arasındaki iletişimi sağlayan bilgisayar yazılımsal parçacığı'na denir.Çekirdeğin bir köprü olması onun en temel görevidir. Bunun dışında CPU soyutlama, IO(giris/ cıkıs)ları Soyutlama ve Ağ merkezi görevleri vardır.
CPU Soyutlama
Linux çekirdeği sistemimizde bulunan işlemciye bir soyutlama katmanı katar. Bu sayede bir çok program eş zamanlı çalışıyormuş gibi gözükür. Programların ihtiyacı olduğu kadar işlemciden yararlanmasını çekirdek sağlar.
Eğer bir linux sistemi üzerindeyseniz iki tür çekirdekten birini kullanıyorsunuzdur. UP ve SMP. UP tek işlemcili SMP ise simetrik çok işlemcili bir çekirdektir.Eğer UP anakarta sahip ve SMP çekirdek kullanıyorsanız. Sisteminiz birçok işlemciden haberdar olmayacaktır. Bu sorunu gidermek için de bir UP çekirdek derlemelisiniz.
IO(Giris/Cıkış)ları Soyutlama
Çekirdek aynı zamanda her türlü dosya girdi çıktı soyutlama görevini de yapar. Disk kontrolorlerinizi değiştirdiğiniz takdirde programlarınız çalışmayacaktır. İşte bu yüzden Linux çekirdeği programların kullanabileceği Unix modüller kullanmaktadırlar.
Ağ Merkezi
Güçlü bir ağ yapısı ve TCP/IP desteği vardır. Çekirdek uyumlu, yüksek seviyeli bir arabirim ile ağ üzerinden veri gönderilmesini ve alınmasını sağlar.Ayrıca sizin ethernet kartınız ile internet iletişimi sağlar.Linux çekirdeği ile evinizdeki bütün ağı modem üzerinden konfigüre edebilirsiniz.
Kernel(Çekirdek) Çeşitleri Nelerdir?
Tek Parçalı Çekirdek (Monolithic Kernel)
Sistem performansını artırmak için tüm işletim sistemi görevlerinin tek çekirdek alanında yürütüldüğü bir çekirdek mimarisidir.
Monolitik kernel içindeki herhangi bir yapı da hata meydana gelirse, bu hatadan tüm sistem etkilenir.
Mikro Çekirdek (Microkernel)
Mikro çekirdek, işletim sistemi hizmetlerinin kullanıcı alanında (user space) ayrı ayrı yürütüldüğü bir çekirdek mimarisidir.
Bellek yönetimi, kayıt ortamı yönetimi, sürücüler ve ağ ile ilgili çok sayıda süreç birbirleriyle iletişim kurarak haberleşir. Bu sayede; bir parçadaki hata diğer parçaları etkilemez.
Melez Çekirdek (Hybrid Kernel)
Monolitik ve mikro çekirdeğin birleşiminden oluşmaktadır. Günümüzde çoğu işletim sistemi çekirdeği melez yapıdadır.
Bir çok sürücü ve iletişim birimleri çekirdeğe gömülüdür. Bir güncelleme veya yeni bir bileşen yüklendiğinde yeniden derleme gerektirmez.
Dış Çekirdek (Exokernel)
Ekzo çekirdek, uygulama geliştiricileri için donanım sürücülerini aradan kaldırarak donanıma doğrudan erişim sunan bir işletim sistemi çekirdeği mimarisidir.
Bellek ve süreç yönetimi gibi temel işlevler dışında tek yaptığı şey, donanımların arayüzlerini güvenli bir biçimde çoklayarak (multiplexing) kullanıcı seviyesi uygulamalara sunmaktır (exposing).
Linux Kernel(Çekirdek)Nedir?
Linux işletim sisteminin çekirdeğinin diğer işletim sistemlerinin pek çoğundan farkı, çekirdek kaynak kodunun GPL (GENERAL PUBLIC LICENSE) lisansı altında açık kaynak kodlu, diğer bir deyişle isteyen herkes tarafından yapılandırılabilir, hatta daha üst düzey kullanıcılar için değiştirilebilir olmasıdır.
1990'lı yılların başlarında Finlandiya da University of Helsinky'de Linus Torwalds adlı üniversite öğrencisi tarafından Linux işletim sisteminin temeli olan Minix işletim sistemi 0.01 sürümü ile duyuruldu. 5 Ekim 1991 yılında Linus Torwalds ilk resmi Linux sürümünü 0.02 sürüm numarası ile ilan etti. İlk Linux işletim sistemi sadece bash kabuk programı ve gcc C derleyicisini çalıştırmak dışında bir özelliğe sahip değildi. Fakat bugün, katettiği inanılmaz yolla hem UNIX, hem Windows işletim sistemlerinde yapılabilecek pek çok işlemi gerçekleştirebilir konuma geldi.
Birçok işletim sisteminde olduğu gibi Linux işletim sisteminin çekirdeği ağırlıklı olarak C ve belli bir oranda da makina dilinde (Assably) yazılmıştır. Linux işletim sisteminin en büyük avantajlarından biri UNIX sistemlerinde olan POSIX uyumluluğunun sağlıyor olmasıdır. Bu durum Linux'un gelişmesinde önemli rol oynamaktadır.
GNU/Linux işletim sistemiyle çalışan bir bilgisayarda Linux çekirdeği sürümünü öğrenmek için, komut satırına
şeklinde yazarız arkadaşlar.
Linux çekirdeği devamlı geliştirilen bir çekirdekdir. Linux çekirdeğinin sürümleri üç sayı ile belirtilir. (Örnek : 1.2.3). Bu sayılar aşağıdaki şekilde adlandırılır.
#Ana (major) sürüm numarası
#Küçük (minor) sürüm numarası
#Yama seviyesi
Örneğin 1.2.3 sürümlü linux çekirdeğinde , ana sürüm numarası 1 , küçük sürüm numarası 2 , yama seyivesi 3'dür
-Ana sürüm numarası birkaç yılda bir değişen bir numaradır. Çekirdek yapısı çoğunlukla her ana sürümde bir birinden farklı olabilmektedir. Bu sebepten dolayı daha önceki ana sürüm ile çalışacak şekilde ayarlanmış programların gözden geçirilmesi ve düzeltimesi gerekebilir.
-Küçük sürüm numaraları daha sık olarak değişmektedir. Küçük sürüm numarası aynı zamanda çekirdeğin kararlı (stable) sürüm ve ya geliştirme (development) sürümü olduğunu belirlemek için kullanılır. Küçük sürüm numarası çift ise çekirdek kararlı sürüm , tek ise çekirdek geliştirme sürümüdür. Geliştirme sürümleri , çekirdeğe yeni özellikler eklemek için kullanılırlar. Özellikle uygulama ortamlarında kararlı sürümlerin kullanılması önerilmektedir.
-Yama seviyesi , çekirdekde bulunan hataların giderilmesi veya iyileştirmeler sonucu yapılan ufak değişikliklerle ortaya çıkan çekirdekleri belirtmek için kullanılır. Bazı zamanlarda bir hafta içinde birden fazla yama seviyesi değişebilmektedir.
Linux Kernel(Çekirdek) Desteklenen Mimariler
#Alpha
#Analog Devices (Blackfin)
#ARM
#Atmel AVR32
#Axis Etrax CRIS
#Texas TMS320 DSP Ailesi
#Motorola 68K
#Fujitsu FR-V
#Qualcomm Hexagon
#Hewlett-Packard PA-RISC
#Renesas (Hitachi) H8
#IBM 31bit System/390 ve 64bit Z Mainframe
#Intel IA-64 Itanium
#x86, Mitsubishi M32R
#Xilinx Microblaze
#MIPS, Panasonic MN103
#Open RISC
#Power (IBM)
#PowerPC
#Sparc 32 Bit
#Ultra Sparc 64 bit
#SuperH
#Synopsys
#S+core
#Tilera
#Xtensa
#Unicore32
Linux çekirdeği ilk olarak ortaya çıktığında tek dosyadan oluşan bir yapıya sahipti.Günümüzdeki linux çekirdekleri ise modül adı verilen bir kaç dosyadan oluşabilmektedir.
Tek dosyadan oluşan işletim sistemi çekirdekleri monolithic çekirdek olarak adlandırılır. Mödül kullanımına izin veren çekirdekler ise modüler (modular) çekirdek olarak adlandırılır.
Modüler linux çekirdeklerine gerekli destekler çalışma anında eklenebilir ve çıkartılabilirler. Bu seçenek monolithic çekirdeklerde bulunmamaktadır.
Monolithic çekirdekler çoğunlukla daha hızlı ve daha güvenlidirler. Modüler çekirdekler sayesinde ise daha esnek bir yapı elde edilir. Red Hat Linux dağıtımları ile birlikte gelen linux çekirdeği modüler bir çekirdektir.
Linux da kernel /boot/vmlinuz-* altına kurulur.
Kernel Modulleri
Moduller, eklenebilir veya devre disi birakilabilinir kucuk cekirdek uzantilaridir. Moduller surucuye(driver), dosya sistemine (filesystem) vb uygulanabilir. Modüllerin işletim sistemindeki yeri /lib/modules/$(uname -r) dizinidir. $(uname -r) ile belirtilen sizin kernelinizin versiyon bilgisidir.
Kod:
[COLOR="yellow"]#[/COLOR]lsmod
Yuklenmis moduller hakkinda bilgi verir. lsmod komutunu parametre vermeden calistirdiginizda sistemde yuklu olan modulleri gorebilirsiniz:
Kod:
[COLOR="yellow"]#[/COLOR]lsmod | grep (modül)
lsmod u grep ile kullandigimiz taktirde grep e parametre olarak hangi modulu verdiysek sadece o modul ile ilgili bilgilere ulasabiliriz.
Kod:
[COLOR="yellow"]#[/COLOR]modprobe (modül)
Bu komut araciligi ile modul yukleyebilirsiniz.Insmod komutundan farklı olarak modprobe komutu modul yuklerken meydana gelen bagimlilik durumlarinda bagilmli olan paketleri de otomatik kurar.
Örnek vermek gerekirse modülümüzü kuruyoruz.
Silmek içinde bu kodu yazıyoruz.
Kod:
[COLOR="yellow"]#[/COLOR]modprobe -r modül
Evet arkadaşlar grep yaptım ama bu modülü kaldırdığımız için getirmedi.
Kod:
[COLOR="yellow"]#[/COLOR]Modinfo
Modul hakkinda detayli bilgi almamiza yardimci olur
Evet arkadaşlar konumuzun sonuna geldik ps bilgim olmadığı için bazı resimleri paint üzerinde yapmak zorunda kaldım konu özgün olsun diye bunun için kusura bakmayın.