İşletim Sistemi Hizmetleri

İçindekiler

  • İşletim Sistemi Hizmetleri
  • Kullanıcı ve İşletim Sistemi Arayüzü
    • Komut Satırı Yorumlayıcısı (Command Line Interpreter)
    • Kullanıcı İşletim Sistemi Arayüzü (GUI)
  • Sistem Çağrıları
    • Sistem Çağrısı İmplementasyonu
    • Sistem Çağrısına Parametre Gönderme
    • Sistem Çağrısı Türleri
    • Sistem Programlamaları
  • Linker ve Loader
  • Uygulamalar Neden İşletim Sistemlerine Bağlıdır?
  • Tasarım ve Gerçekleme (İmplementasyon)
  • İşletim Sistemi Yapısı
  • Bir İşletim Sistemini İnşa Etme ve Başlatma

İşletim Sistemi Hizmetleri

İşletim sistemi, kullanıcıya ve programa uygun bir ortam hazırlamak amacıyla çeşitli hizmetler sunar:

1. Kullanıcıya Yardımcı İşletim Sistemi Hizmetleri

  • Kullanıcı Arayüzü:Örnek: Komut Satırı Arayüzü (CLI), Grafiksel Kullanıcı Arayüzü (GUI)
  • Program Yürütme: Programların başlatılması ve yönetilmesi.
  • I/O İşlemleri: Giriş/Çıkış işlemlerinin yönetimi.
  • Dosya Sistemi Manipülasyonu: Dosyaların oluşturulması, değiştirilmesi ve silinmesi.
  • İletişim: Sistemler arası ve kullanıcılar arası veri alışverişi sağlanması.
  • Hata Tespiti: Sistem hatalarının tanımlanması ve çözümü.
2. Sistemin Verimli Kullanılması İçin İşletim Sistemi Hizmetleri
  • Kaynak Yönetimi: Bellek, CPU ve diğer sistem kaynaklarının verimli kullanımı sağlanır.
  • Loglama: Sistem olaylarının kaydedilmesi ve izlenmesi.
  • Koruma ve Güvenlik:
    • Koruma: Tüm sistem kaynaklarına erişimin kontrollü ve denetimli olmasını sağlar.
    • Güvenlik: Sisteme dışarıdan erişenlerin kimlik doğrulamasını yapar ve I/O cihazlarına yapılan geçersiz erişim denemelerinden korur.

Kullanıcı ve İşletim Sistemi Arayüzü

Kullanıcı OS Arayüzü veya komut yorumlayıcı, doğrudan komut girişine olanak tanır. Bazen kernel (çekirdek) bazen de sistem programları tarafından gerçekleştirilir. Birden fazla kabuk (shell) bulunabilir.

Amacı: Kullanıcıdan bir komut alıp çalıştırmaktır. Komutlar, built-in veya program ismi şeklinde olabilir. Program ismi şeklinde ise, yeni özellik eklemek için kabukta (shell) değişiklik yapılmasına gerek yoktur.

Kullanıcı İşletim Sistemi Arayüzü (GUI)

  • Masaüstü Arayüzü:
    • Genellikle fare, klavye ve monitör üzerinden kullanılır.
    • İkonlar, dosya, program ve işlemleri temsil eder.
    • Fare tuşları ile çeşitli işlemler yapılabilir.
    • Xerox PARC icadı olarak geliştirilmiştir.
  • Hem CLI hem de GUI bulunan sistemler:
    • Microsoft Windows: GUI ve CLI komut kabuğu bir arada bulunur.
    • Apple Mac OS X: “Aqua” GUI arayüzü ile UNIX çekirdeği ve kabuklar bulunur.
    • Unix ve Linux: Grafiksel arayüzlü komut satırı arayüzleri (CDE, KDE, GNOME, XFCE) isteğe bağlıdır.
  • Dokunmatik Arayüz: Dokunmatik ekranlar için kullanıcı arayüzüdür.

Sistem Çağrıları

Sistem Çağrıları, işletim sistemi hizmetlerini programlamak için bir tür arayüzdür. Yüksek seviyeli dillerde (C, C++) yazılır ve Application Programming Interface (API) aracılığı ile kullanılırlar.
Her sistem çağrısı için bir numara atanır. Bu numaralara göre Sistem Çağrısı Arayüzü, sistem çağrılarını indeklenmiş bir tabloda tutar. Bir sistem çağrısı istendiğinde, arayüz işletim sistemi çekirdeğinde sistem çağrısını başlatır. Ardından, sistem çağrısının durumu ve dönecek değerleri döndürür.

 

NOT: Sistem çağrısının nasıl gerçekleştirildiği, sistem çağrısını çağıran kişi tarafından bilinmez. Çağıran kişi yalnızca API’ye uymalı ve çağrı sonucunda neler olacağını bilmelidir.

 

NOT: İşletim sistemi arayüzünün çoğu ayrıntısı, API’ler sayesinde programcılardan gizlenmiştir ve runtime destek kütüphaneleri ile yönetilir.


Sistem çağrısı yapıldığında, adın dışında ek bilgilere de ihtiyaç olabilir. Bu bilgilerin türü ve miktarı işletim sistemi ve sistem çağrısına bağlıdır. Parametreleri sistem çağrısına iletmek için 3 genel yöntem vardır:

  1. Parametreleri Register’a Vermek:NOT: Register sayısından fazla parametre bulunabilir.
  2. Blok (Tablo) Kullanımı: Parametreler bir blok içinde bellekte saklanır ve bloğun adresi register’a parametre olarak verilir. (Linux ve Solaris bu yaklaşımı kullanır)
  3. Stack (Yığın) Kullanımı: Parametreler program tarafından stack üzerine koyulur ve işletim sistemi tarafından stack’tan alınır.
    • NOT: Program tarafından veriler stack’e push edilir (eklenir) ve işletim sistemi tarafından pop edilir (çıkarılır).

NOT: Veriler blok halinde veya stack içerisinde tutulduğunda, miktar ve uzunluk bakımından bir kısıtlama bulunmaz.

Sistem Çağrısı Türleri

  • İşlem Kontrolü/Süreç Yönetimi
    • İşlem oluşturma ve yok etme
    • Sonlandırma ve iptal etme
    • Yükleme ve çalıştırma
    • Süreç özelliklerini alma, değiştirme
    • Belli bir süre bekleme
    • Bekleme ve sinyal olayı
    • Bellek ayırma, serbest bırakma (bellekte boşaltma)
    • Hata durumunda belleği dump etme
    • Debugger (Hata Ayıklayıcı): Hata bulmak için kullanılır
    • Locks (Kilitler): Süreçler arasında paylaşılan verilere erişimi yönetmek için kullanılır
  • Dosya Yönetimi
    • Dosya oluşturma, silme
    • Dosya açma, kapama
    • Okuma, yazma, yer değiştirme
    • Dosya özelliklerini alma, değiştirme
  • İletişim
    • İletişim için bağlantı kurma, silme
    • Mesaj yollama, alma (istemciden sunucuya)
    • Paylaşılan bellek modelinde bellek alanı oluşturma ve erişim sağlama
    • Durum bilgisi aktarma
    • Uzak cihazları bağlama, çözme
  • Koruma
    • Kaynaklara erişimi denetleme
    • İzinleri okuma ve değiştirme
    • Kullanıcı erişimine izin verme ve reddetme
  • Cihaz Yönetimi
    • Cihaz isteme, bırakma
    • Okuma, yazma, yer değiştirme
    • Cihaz özelliklerini alma, değiştirme
    • Mantıksal olarak cihaz bağlama, çözme
  • Bilgi Yönetimi
    • Saat ve tarihi alma, değiştirme
    • Sistem bilgisini alma, değiştirme
    • Süreç, dosya veya cihaz özelliklerini alma, değiştirme

Sistem Programlamaları

Sistem programları, program geliştirme ve çalıştırma için ortamlar sunar. Sistem programları aşağıdaki şekilde sınıflandırılabilir:
  • Dosya yönetimi
  • Durum bilgisi (bazen dosyada tutulur) değiştirme
  • Programlama dili desteği
  • Program yükleme ve yürütme
  • İletişim
  • Arka plan servisleri
  • Uygulama programları
NOT: Çoğu kullanıcının işletim sistemine bakışı, sistem programları ile tanımlanır; sistem çağrıları ile değil.

Linker ve Loader

Fiziksel belleğin herhangi bir konumuna yüklenmek için derlenmiş kaynak koda, yeniden konumlandırılabilir obje dosyası denir. Linker, obje dosyalarını birleştirip tek bir binary dosyasına dönüştürür. Bu binary dosyası, çalıştırılabilir bir dosya haline gelir. Linker, kütüphaneleri de beraberinde getirir.

NOT: Obje dosyası ve çalıştırılabilir dosyalar standart formatlara sahiptir. Bu sayede işletim sistemleri, bu dosyaların nasıl yükleneceklerini ve çalıştırabileceklerini bilirler.

Program, ikincil depolamada binary dosyası olarak çalıştırılabilir halde durur. Bu dosya, çalıştırılmak için loader tarafından belleğe getirilir. Yeniden konumlandırma, bu program parçalarına son konumlarını tanımlar. Programdaki kod ve veri, bu konumlara uygun şekilde ayarlanır.

Modern genel amaçlı sistemlerde, kütüphaneler çalıştırılabilir dosyalara linklenmez. Bunun yerine, ihtiyaç duyuldukça dinamik olarak linklenen kütüphaneler (dynamically linked libraries) yüklenir. Aynı kütüphanenin aynı versiyonu, birden fazla kullanıcı tarafından paylaşılarak yalnızca bir kez yüklenir.

Uygulamalar Neden İşletim Sistemlerine Özeldir

Her işletim sisteminin kendine ait sistem çağrıları vardır. Uygulama Binary Arayüzü (Application Binary Interface, ABI), API’nin mimari karşılığıdır. ABI, farklı bileşenler ile binary kodun belirli bir işletim sisteminde ve mimaride nasıl kullanılacağını tanımlar.
NOT: Uygulamalar birden fazla işletim sisteminde çalışabilir. Örneğin; Ruby ve Python benzeri diller, işletim sisteminde bulunan yorumlayıcılar aracılığıyla çalıştırılabilir. Java gibi çalışan uygulamayı barındıran bir sanal makine ile veya C gibi standart bir dil kullanarak her bir işletim sistemi için ayrı ayrı derlenebilir.

Tasarım ve Gerçekleme (İmplementasyon)

  1. Tasarımİşletim sistemleri, amaçlar ve özellikler tanımlanarak tasarlanmaya başlanır. Donanım seçimi ve sistem tipleri tasarımı etkiler. Kullanıcı hedefleri ve sistem hedefleri doğrultusunda geliştirilir.
    • Politika: Ne yapılmalı? Örnek: Her 100 saniyede bir kesme oluşturulmalı.
    • Mekanizma: Nasıl yapılmalı? Örnek: Timer (Zamanlayıcı).
  2. İmplementasyonİşletim sistemlerinin implementasyonu büyük değişiklikler gösterebilir ve birden fazla dil içerebilir. Daha fazla yüksek seviyeli dil kullanımı, diğer donanımlara port etmeyi kolaylaştırır.
    NOT: Emülasyon (Emulation, Öykünme) ile işletim sistemine uygun olmayan donanımlar üzerinde çalıştırılabilir.

İşletim Sistemi Yapısı

1. Basit Yapı – MS-DOS

En az alanda en fazla işlevsellik sağlamak amacıyla yazılmıştır.

2. Daha Karmaşık Yapı – UNIX

 

UNIX iki ayrı kısımdan oluşur: sistem programları ve çekirdek (kernel).

NOT: Kernel, sistem çağrısı arayüzünün altında ve donanımın üstünde yer alan her şeydir.

3. Katmanlı Yapı – Soyutlama

İşletim sistemi, katmanlara (seviyelere) bölünür ve her katman, alttakilerin üstüne inşa edilir. En alt katman (Layer 0) donanım, en üst katman (Layer N) kullanıcı arayüzüdür.

4. Mikroçekirdek – Microkernel (Örnek: Mach)

Mikroçekirdek mimarisi, birçok işlevi çekirdekten kullanıcı alanına taşır. İletişim, kullanıcı modülleri arasında mesajlaşma yoluyla gerçekleşir. Mach, mikroçekirdek örneklerinden biridir.

5. Modüler Yapı

Modern işletim sistemleri, yüklenebilir kernel modülleri (Loadable Kernel Modules, LKMs) içerir. Bu yapı, nesne yönelimli bir yaklaşıma sahiptir. Her çekirdek bileşeni ayrı olup, arayüzler üzerinden diğer bileşenlerle iletişim kurar ve yalnızca ihtiyaç duyulduğunda kernel içine yüklenir.

Bir İşletim Sistemini İnşa Etme ve Başlatma

  1. İşletim Sistemini İnşa Etme
    1. İşletim sisteminin kaynak kodu yazılır.
    2. İşletim sisteminin üzerinde çalışacağı donanım için yapılandırma yapılır.
    3. İşletim sistemi derlenir.
    4. İşletim sistemi kurulur.
    5. Bilgisayar, yeni işletim sistemi ile başlatılır.
  2. Başlatma: Bir sisteme güç verildiğinde, sabit bir bellek konumunda çalıştırılmaya başlanır. İşletim sistemi donanıma yüklendiğinde, donanım sistemi başlatılır.

Referanslar

  1. Kocaeli Üniversitesi Doç. Dr. Suhap Şahin
  2. Operating System Concepts, 10th Edition Abraham Silberschatz, Peter B. Galvin, Greg Gagne

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Benzer yazılar

Aramak istediğinizi üstte yazmaya başlayın ve aramak için enter tuşuna basın. İptal için ESC tuşuna basın.

Üste dön