linux Uncategorized

Linux İşletim Sistemi Mimarisi

Jan 9, 2021 3 min

Linux İşletim Sistemi Mimarisi

Bir işletim sistemi, bilgisayar donanımını kontrol etmek ve işlevsel hale getirmek için donanıma yüklenen bir yazılımdır.

Linux’da bir işletim sistemidir.  Bu makalede linux işletim sistemi temelleri ve mimarisi hakkında bilgiler edineceğiz.

Linux İşletim Sistemi (operating system, os) iki temel birimden oluşur:  Kernel (çekirdek) ve  shell (kabuk).

Kernel, bir linux işletim sisteminin ana bileşenidir ve bir bilgisayarın donanımı ile ilgili süreçleri yönetir.  Donanımda bulunan CPU yani merkezi işlem birimi, yada kısaca işmeci, RAM yani bellek ve  diğer disk, network aygıtı gibi çevresel aygıtları yönetir.

Dilerseniz bu konu için çekmiş olduğum videoyu izleyebilirsiniz.

Shell ise  kullanıcı ile bir işletim sistemi çekirdeği arasında bir arayüz sağlayan bir programdır.

Bir işletim sistemi için kernel ve shell en önemli temel iki bileşendir. Ama işletim sisteminde bu iki temel bileşenle beraber başka programlar da bulunur.  Bunlar; Komutlar ve Yardımcı Programlar ve dosya sistemi yazlımı.

Lİnux işletim sistemi işletim sistemi belleğini iki farklı alana böler. Kullanıcı alanı ve Çekirdek alanı. Bunun nedeni kernel’ın kullanıcılar tarafından müdahelesinin önlenmesi ve sorunsuz olarak işlevlerine devam edebilmesidir.

Kullanıcı alanındaki yazılım ve programnlar, kernel ile sistem çağrıları vasıtasıyla iletişim kurar.

Sistem çağrıları, bir programın bazı görevleri gerçekleştirmek için işletim sisteminin çekirdeğine yaptığı hizmet isteği çağrısıdır.

  • Dosyalardan okumak ve yazmak sistem çağrılarını gerektirir.
  • Bir dosya sistemi dosya oluşturmak veya silmek isterse, sistem çağrıları gereklidir.
  • Yeni süreçlerin oluşturulması ve yönetimi için sistem çağrıları kullanılır.
  • Ağ bağlantıları, paket göndermek ve almak için sistem çağrılarına ihtiyaç duyar.
  • Tarayıcı, yazıcı gibi donanım cihazlarına erişim, bir sistem çağrısına ihtiyaç duyar.
  • fork(), kill(), exec() birer syscall’dur.

Lİnux’u öğrenmek istediğimizde ilk karşlımıza çıkan kavramlardan biri de shell’dir. Shell commands, shell tutoarial shell command line gibi. Peki nedir linux shell ve nasıl çalışır? Gelin biraz detaya bakalım.

Linux shell’i bir uçakların kopitine benzetebiliriz. nasıl uçağı kullanamak için oradaki tüm düğme kol ve ayarların nasıl kullanıldığını bilmek gerekiyorsa. linux işletim sistemini kullanmak için de  shell komutlarına en azıdandan temel düzyede hakim olmamız gerekir.

Bir Unix kabuğu hem bir komut yorumlayıcısı hem de bir programlama dilidir. Bir komut yorumlayıcısı olarak, kabuk, zengin GNU yardımcı programları kümesine kullanıcı arabirimi sağlar. Programlama dili özellikleri, bu yardımcı programların birleştirilmesine izin verir. Komut içeren dosyalar oluşturulabilir ve kendileri komut haline gelebilir. Bu yeni komutlar, aşağıdaki dizinlerdeki sistem komutlarıyla aynı duruma sahiptir.

Kabuklar etkileşimli veya etkileşimsiz olarak kullanılabilir. Etkileşimli modda, klavyeden yazılan girişi kabul ederler. Etkileşimli olmayan bir şekilde çalıştırılırken, kabuklar bir dosyadan okunan komutları yürütür.

Kabuklar ayrıca, ayrı yardımcı programlar aracılığıyla elde edilmesi imkansız veya uygunsuz olan işlevselliği uygulayan küçük bir yerleşik komutlar (yerleşikler) seti sağlar. Örneğin, cd, break, continue ve exec kabuğun dışında uygulanamaz çünkü kabuğun kendisini doğrudan yönetirler. Geçmiş, getopts, kill veya pwd yerleşikleri, diğerlerinin yanı sıra, ayrı yardımcı programlarda uygulanabilir, ancak yerleşik komutlar olarak kullanımları daha uygundur. Tüm kabuk yerleşikleri sonraki bölümlerde açıklanmaktadır.

Kabuk, girilen her komut için, PATH ortam değişkeninde tutulan süreç arama yolundaki dizinleri eşleşen bir ada sahip çalıştırılabilir bir görüntü için arar. Dosya bulunursa yüklenir ve çalıştırılır.

Kabuk, “ls” nin bulunduğu dizini bulduğunda, süreç olarak bilinen bir şey yaratacaktır. Daha önce belirtildiği gibi bir süreç, sadece yürütülmesi gereken bir programın basit bir örneğidir. Kabuğun kendisi bir üst süreçtir ve “ls” nin yürütülmesi bir çocuk süreç olacaktır. Fork () sistem çağrısı ile bir süreç oluşturulabilir.

Fork () sistem çağrısı, alt işleme bir PID veya 0 işlem kimliği numarası verir, bu da onu sıfır olmayan bir PID değeri verilecek olan üst süreçten ayırt etmeye yardımcı olur. Üst süreç, alt süreç yürütülene ve tamamen sonlandırılana kadar beklemek isteyecektir ve bunu sağlamak için wait () sistem çağrısı kullanılabilir.

1.Kabuk, komut istemine girildikten sonra kullanıcı girişini stdin’den (klavye) okur.2.Ardından, program PATH ortam değişkeninden farklı yollar alarak ve her bir dizinin içeriğini okuyarak çalıştırılabilir dosyanın bulunduğu klasörü arayacaktır.3.Yürütülebilir dosya bulunduğunda, yürütme işlevi yol, dosya adı, değiştirgeler gibi gerekli parametreleri alacaktır. Execve işlevi dosya adıyla gösterilen programı yürütür.

Your email address will not be published. Required fields are marked *