WİNDOWS SİSTEM MİMARİSİ

Melek Ceyhun
4 min readDec 27, 2021

--

Windows NT mimarisi Microsoft tarafından üretilen ve satılan bir katmanlı tasarımdır. Bu katmanlı tasarım, kullanıcı modu ve çekirdek modu olmak üzere iki ana bileşenden oluşmuştur. Windows NT, mikro çekirdek tarzı bir işletim sistemi olarak tasarlanmıştır. Daha önceki yıllarda Windows’un işletim sistemi 32 bitlik sürümleri kullanılırken Windows 2000 ‘ den başlayarak Microsoft Windows’un 64 bitlik sürümlerini kullanılabilir hale getirmeye başladı. Windows sistem mimarisi birkaç modülden oluşan modüler bir yapıdır. Bu modülleri başlıca gruplandırmamız gerekirse:

  • Donanım soyutlama katmanı (hardware abstraction layer)
  • Çekirdek/mikro çekirdek (kernel/microkernel)
  • Yönetici hizmetleri (executive services)
  • Çevre alt sistemi (environment subsystem)
  • Integral al sistemi (integral subsystem)

Bu mimaride bulunan program ve uygulamalar son derece modüler iki ana katmandan oluşur çekirdek modu ve kullanıcı modu.

ÇEKİRDEK MODU

Bunlar biri olan çekirdek modu oldukça hibrit bir yapıya sahiptir. Bu yapı HAL, driver, microkernel, executive services yapılarını barındırır. Çekirdek modu bilgisayarın donanım ve sistem kaynaklarına tam erişime sahiptir, herhangi bir işlemci talimatını yürütebilir ve işletim sisteminin herhangi bir bellek adresine başvurabilir ve korumalı bir bellek alanında kod çalıştırır. Çekirdek modunda oluşabilecek çökmelerin tüm bilgisayarları etkileyeceğini unutmamak lazım. Çekirdek modu, kullanıcı modu hizmetlerinin ve uygulamalarının, işletim sisteminin erişmemesi gereken kritik alanlara erişmesini durdurur.

Çekirdek modu sürücüleri üç düzeyde bulunur:

en üst düzey sürücüler

orta düzey sürücüler

düşük düzey sürücüler

KULLANICI MODU

Kullanıcı modundaki program ve alt sistemler, erişimleri olan sistem kaynaklarına göre sınırlıdır, yani donanıma doğrudan erişimleri yoktur. Kullanıcı modunda çalışan kod, donanıma veya belleğe erişmek için sistem API’ sine yetki vermesi gerekir. Bu özellik sayesinde sağlanan izolasyon nedeniyle kullanıcı modunda oluşabilecek çökmeler her zaman kurtarılabilir.

Bu iki modu anlattıktan sonra bu sistem mimarisinin oluşturduğu modüllerden bahsedelim.

Donanım soyutlama katmanı (hardware abstraction layer):

Genellikle karşımıza HAL adı ile çıkan donanım soyutlama katmanı , bilgisayarın fiziksel donanımı ile işletim sisteminin geri kalanı arasındaki bir katmandır. Temel olarak çekirdeğin çalıştırılacağı bir platform sağlamak ve donanındaki farklılıkları gizlemek amacıyla tasarlanmıştır. HAL, I/O ara yüzlerini, kesme kontrollerini ve bunlara ek olarak çoklu işlemcileri denetleyen donanıma özel kodları içerir. Hal olmadan çalışan bir mimari tasarlanırsa oluşacak sorunlardan biri ilk program donanıma erişim sağlarsa bu durum ikinci programın artık donanıma erişmesine engel olacak olmasıdır. Yani HAL sayesinde birden fazla programı aynı anda çalıştırabiliriz.

Çekirdek/mikro çekirdek (kernel/microkernel):

Öncelikle Windows çekirdeğinin hibrit bir çekirdek türü olduğunu belirtmek gerekir. Çekirdek en temelde CPU tarafından gerçekleştirilecek aktiviteleri planlar. Çekirdek HAL ile çok yakın çalışır. Çekirdek ayrıca, işletim sistemini çalıştırmak ve çalıştırmak için gerekli olan aygıt sürücülerini sırasıyla başlatmaktan da sorumludur. Mikro çekirdek, adres alanı yönetimi, iş parçacığı yönetimi ve süreçler arası iletişim gibi görevleri sağlayabilen bir program topluluğudur. Bu işletim sisteminin verimli ve düzgün çalışabilmesi için Windows çekirdeği ve mikro çekirdek beraber çalışırlar. Çekirdeğin görevlerini daha iyi anlamak adına kısaca şu şekilde 4 başlık altında toplayabiliriz:

  • thread planlaması
  • düşük seviyeli işlemci senkronizasyonu
  • elektrik kesintisinden sonra kurtarma
  • kesinti işleme(interrupt handling)

Yönetici hizmetleri (executive services):

Yönetici hizmetler kullanıcının kullanabileceği bir dizi ortak hizmetler bütünüdür. Çekirdek ve HAL’ ı barındırır. Bu modül input/output cihazları, nesne yönetimi, süreç yönetimi ve sistem güvenliği ile etkileşime girer. Her bir hizmet grubu bazı yönetici hizmetleri bileşenlerinden biri tarafından yönetilir. Bu bazı yönetici hizmet bileşenleri şunlardır:

  • Nesne Yöneticisi
  • I/O Yöneticisi
  • Güvenlik Referans İzleyicisi (SRM)
  • Güç Yöneticisi
  • İşlem Yöneticisi
  • Sanal Bellek Yöneticisi(Virtual Memory Manager)
  • IPC Yöneticisi
  • PnP Yöneticisi (plug and play)
  • GDI
  • Pencere Yöneticisi

Şimdi de biraz bu hizmetlerin bazıları üzerinde duralım.

Nesne Yöneticisi

Bir yürütme alt sistemi bir nesnenin oluşturulmasını talep ettiğinde, bu talebi nesne yöneticisine gönderirler, bu da istekte bulunan yürütme alt sisteminin daha sonra doldurduğu boş bir nesne yapısı oluşturan nesne yöneticisine gönderir. İşte bu noktada nesne yöneticisinin görevi başlamış olur. Nesne yöneticisi nesnelerin saklanması, adlandırılması ve onların güvenliği için gerekli olan kuralları sağlar. Bu bahsettiğimiz nesneler en basit anlamada dosya sistemine kaydettiğimiz dosyalar veya klasörler olabilir. Nesnelerin oluşturulması ve eklenmesi bu bölümde yapılır. Nesnelerin işlendiği bir dizi standart yöntem vardır, bunlar: açma, kapama, silme, oluşturma, güvenlik vb. Bu yönetici Windows 2000'in nesne yönelimli bir işletim sistemi olmasına izin verir.

Güç Yöneticisi

Güç yöneticisi kapanma, bekleme ve hazırda bekletme gibi güç ile alakalı olan olaylarla ilgilenir. Birkaç cihaz aynı anda kapatılmak istendiğinde gerçekleşecek güç olaylarını koordine eder ve bu isteğin başarılı bir şekilde gerçekleşmesini sağlar.

İşlem Yöneticisi

Bu yönetici işlem ve thread oluşturup zamanı geldiğinde silinmesi süreçlerini yönetir.

I/O Yöneticisi

Input output yöneticisi, işletim sistemi için tüm girdi ve çıktıları yönetir. Tüm dosya sistemi sürücülerini, donanım aygıtı sürücülerini ve ağ sürücülerini destekler. Bu yönetici tüm sürücülerine ortak bir arabirim sağlar. Bu özellik sayesinde kontrol ettiği aygıtların gerçekte nasıl çalıştığına dair bir bilgisi olmadan tüm sürücülerle aynı şekilde iletişim kurabilmesini sağlar.

PnP Yöneticisi (plug and play)

Microsoft 95 ile ilk kez ortaya çıkmıştır, artık Windows2000'in bir özelliği haline gelmiştir. Bu özelliğe sahip olabilmesi için Windows 2000 sistem mimarisi üzerinde birtakım değişiklikler yapılması gerekmiştir. Önyükleme sırasında aygıt algılamayı ve yüklemeyi destekler. Ayrıca, talep üzerine cihazları durdurma ve başlatma sorumluluğu da vardır PnP yöneticisi, HAL, yöneticinin geri kalanı ve aygıt sürücüleri ile arabirim oluşturur.

--

--