Linux hakkında pek çok kaynak ve kullanım rehberi mevcut. Ancak bugün, pratiğin ötesine geçip teorik bir bakış açısıyla Linux mimarisini ele almak istiyorum.
Linux aslında üç temel katmana ayrılır: Kernel(Çekirdek), Sistem Arabirimi ve kütüphaneler, uygulama katmanı.
Her katmanın farklı görevleri vardır. Ben bu yazımda sadece temel olarak anlatacağım ve tabii ki bir kaynak vereceğim. Eğer ki her katman hakkında ayrıntılı başlık açmamı isterseniz, yorumda belirtmeniz yeterlidir.
Gelin beraber bu katmanları aslında ne ve temel görevleri nelerdir bunlara bakalım.
KERNEL (ÇEKİRDEK)
Kernel işletim sistemimizin en önemli yapısıdır, donanım ile yazılımı ayırır ve bir birleri ile iletişim kurulmasını sağlar. kernel donanımımıza kullanıcı yazılımlarımızın doğrudan erişmesini engeller ve bu sayede donanımımızı koruyan bir yapısı vardır.
Aynı zamanda işletim sistemimizin, temel işlevlerini yerine getirir: Bellek yönetimi, İşlemlerin yönetimi, dosya yönetimi ve dosya sistemleri tanımlaması, drivers, network yönetimi gibi işlemleri yapar.
çalışma döngüsünde, iletişimini anlatıyor olacağım.
Kütüphaneler ise, yazılım geliştiren kişilerin sıkça kullandığı fonksiyonları içerir, böylece yazılım geliştirme süreci daha verimli hale gelir. Kütüphaneler, kullanıcıların veya yazılımların kernel'e başvuracağı sistem çağrılarını soyutlar ve daha anlaşılır hale getirir.
Uygulama katmanı, kendi içinde iki farklı yapıya ayrılır: Grafiksel arayüz (GUI) Metin tabanlı terminal arayüzü (CLI)
Aslında bu iki yapının temel mantığı aynıdır. Her ikisi de kullanıcıdan gelen komutları sisteme iletir. Ancak grafiksel arayüz, görsel bileşenlerle (butonlar, pencereler, ikonlar) çalışmamıza olanak tanırken; terminal arayüzü, metin tabanlı komutlar aracılığıyla sistem araçlarını kullanmamızı sağlar.
Shell, kullanıcı ile sistem arasında bir köprü görevi görür. Oldukça önemli bir bileşendir; detaylarını mutlaka araştırmanızı öneririm.
Bir komut veya bir işlevin döngüsü.
Kaynaklar.
https://tldp.org/LDP/sag/html/
The Linux Kernel documentation — The Linux Kernel documentation
https://www.doc-developpement-durab...nux/Linux Kernel Development, 3rd Edition.pdf
Dostlarım, ben burada temel bilgileri anlattım. Eğer konuyu daha derinlemesine öğrenmek isterseniz, paylaştığım kaynaklardan detaylı bilgilere ulaşabilirsiniz.
Bir hatam olduysa özür dilerim, hayırlı geceler.
Linux aslında üç temel katmana ayrılır: Kernel(Çekirdek), Sistem Arabirimi ve kütüphaneler, uygulama katmanı.
Her katmanın farklı görevleri vardır. Ben bu yazımda sadece temel olarak anlatacağım ve tabii ki bir kaynak vereceğim. Eğer ki her katman hakkında ayrıntılı başlık açmamı isterseniz, yorumda belirtmeniz yeterlidir.
Gelin beraber bu katmanları aslında ne ve temel görevleri nelerdir bunlara bakalım.
KERNEL (ÇEKİRDEK)
Kernel işletim sistemimizin en önemli yapısıdır, donanım ile yazılımı ayırır ve bir birleri ile iletişim kurulmasını sağlar. kernel donanımımıza kullanıcı yazılımlarımızın doğrudan erişmesini engeller ve bu sayede donanımımızı koruyan bir yapısı vardır.
Aynı zamanda işletim sistemimizin, temel işlevlerini yerine getirir: Bellek yönetimi, İşlemlerin yönetimi, dosya yönetimi ve dosya sistemleri tanımlaması, drivers, network yönetimi gibi işlemleri yapar.
çalışma döngüsünde, iletişimini anlatıyor olacağım.
SİSTEM ARABİRİMİ & KÜTÜPHANELER
Sistem arabirimi, kernel ile uygulama katmanı arasındaki iletişimi sağlayan kritik bir katmandır. Kullanıcıların uygulamaları, doğrudan kernel ile etkileşime girmezler. Bunun yerine, sistem arabirimi sayesinde kernel’in fonksiyonları kullanılır, ancak doğrudan kernel çağrıları yapılmaz. Örneğin, bir programlama diliyle open() fonksiyonunu çağırdığınızda, aslında sistem arabirimi katmanı bu isteği arka planda kernel fonksiyonu olan sys_open()'a dönüştürür.Kütüphaneler ise, yazılım geliştiren kişilerin sıkça kullandığı fonksiyonları içerir, böylece yazılım geliştirme süreci daha verimli hale gelir. Kütüphaneler, kullanıcıların veya yazılımların kernel'e başvuracağı sistem çağrılarını soyutlar ve daha anlaşılır hale getirir.
UYGULAMA KATMANI
Uygulama Katmanı
Uygulama katmanı, kendi içinde iki farklı yapıya ayrılır: Grafiksel arayüz (GUI) Metin tabanlı terminal arayüzü (CLI)
Aslında bu iki yapının temel mantığı aynıdır. Her ikisi de kullanıcıdan gelen komutları sisteme iletir. Ancak grafiksel arayüz, görsel bileşenlerle (butonlar, pencereler, ikonlar) çalışmamıza olanak tanırken; terminal arayüzü, metin tabanlı komutlar aracılığıyla sistem araçlarını kullanmamızı sağlar.
Grafiksel Arayüz (GUI)
Bu bölümde, görsel olarak etkileşim kurduğumuz uygulamalar yer alır. Tıklama, sürükle-bırak gibi işlemlerle programları çalıştırabilir, kapatabilir veya ayarlarını değiştirebiliriz.
Her uygulama, arka planda sistem arabirimlerine erişerek yapmak istediği işlemi işletim sistemi üzerinden gerçekleştirir.
Terminal Arayüzü
Terminal, yalnızca klavye ve metin yoluyla iletişim kurduğumuz bir alandır. Bu alanda her işlem için bir komut girilir ve bu komutlar shell (kabuk) aracılığıyla sistem arabirimine iletilir.Shell, kullanıcı ile sistem arasında bir köprü görevi görür. Oldukça önemli bir bileşendir; detaylarını mutlaka araştırmanızı öneririm.
Bir komut veya bir işlevin döngüsü.
- Kullanıcıdan yapılacak işlem alınır. Bu işlem iki farklı şekilde başlatılabilir Grafiksel arayüz (GUI) üzerinden veya Komut satırı (terminal) aracılığıyla başlatılır.
- Eğer kullanıcı komut satırını kullandıysa, komut shell tarafından okunur ve gerekli parametreler değerlendirilir. Eğer GUI kullanıldıysa, ilgili butonun işlevi sistem arabiriminden çağrılır.
- Shell veya GUI'den gelen komut doğrudan çekirdeğe iletilmez. Bunun yerine, C kütüphanesi olan glibc devreye girer. Komutun ne yapmak istediğine karar verir ve uygun sistem çağrılarını oluşturur.
- Bu sistem çağrıları, işletim sisteminin en alt katmanına, yani çekirdeğe (kernel) gider. Gerekli işlem gerçekleştirilir ve işlem sonucu üst katmanlara iletilir.
- İşlem tamamlandıktan sonra, elde edilen sonuç katman katman yukarıya doğru çıkar.
Kaynaklar.
https://tldp.org/LDP/sag/html/
The Linux Kernel documentation — The Linux Kernel documentation
https://www.doc-developpement-durab...nux/Linux Kernel Development, 3rd Edition.pdf
Dostlarım, ben burada temel bilgileri anlattım. Eğer konuyu daha derinlemesine öğrenmek isterseniz, paylaştığım kaynaklardan detaylı bilgilere ulaşabilirsiniz.
Bir hatam olduysa özür dilerim, hayırlı geceler.


