Windows: Geçmişten Günümüze Mimari ve Evrim

Windows: Geçmişten Günümüze Mimari ve Evrim

Başlangıç: MS-DOS'tan Pencerelere (1981–1990)

MS-DOS — Her Şeyin Temeli

1981'de IBM PC ile birlikte gelen MS-DOS (Microsoft Disk Operating System), modern işletim sistemi anlayışından çok uzaktaydı:

  • Tek görevli (multitasking yok)
  • Tek kullanıcılı
  • Komut satırı arayüzü
  • 640 KB RAM sınırı (Bill Gates'in meşhur "640K ought to be enough for anybody" sözü)
  • 16-bit gerçek mod — bellek koruması yok, her program tüm RAM'e erişebilir
MS-DOS Bellek Haritası
┌─────────────────┐ 0xFFFFF (1 MB üst sınır)
│   ROM BIOS      │
├─────────────────┤ 0xC0000
│ Video Belleği   │
├─────────────────┤ 0xA0000
│  Yüksek Bellek  │ ← bazı sürücüler burada
├─────────────────┤ 0x9FFFF
│   Kullanıcı /   │
│   Program Alanı │ ← 640 KB (gerçek program alanı)
├─────────────────┤ 0x00600
│  DOS Çekirdeği  │
└─────────────────┘ 0x00000

Windows 1.0 — 2.0 (1985–1990): Grafik Bir Kabuk

Windows başlangıçta bir işletim sistemi değil, MS-DOS üzerinde çalışan grafik bir kabuktu.

  • Windows 1.0 (1985): Örtüşmeyen pencereler, mouse desteği
  • Windows 2.0 (1987): Örtüşen pencereler, klavye kısayolları
  • Windows/386 (1987): 386 korumalı modunu kullanarak çoklu DOS uygulaması

Kullanıcılar hâlâ WIN yazarak DOS'tan Windows'u başlatıyordu.


Windows 3.x Dönemi (1990–1994): Kitlesel Yayılma

Windows 3.0 (1990) ve Windows 3.1 (1992) gerçek anlamda ilk ticari başarıyı getirdi.

Teknik Yenilikler

  • 386 Enhanced Mode: 32-bit korumalı mod, sanal bellek, çoklu DOS oturumu
  • Virtual Machine Manager (VMM): Her DOS uygulaması kendi sanal makinesinde
  • GDI (Graphics Device Interface): Grafik çizim API'si — bugün hâlâ var
  • USER modülü: Pencere yönetimi, mesaj sistemi
Windows 3.1 Katman Mimarisi
┌──────────────────────────────┐
│     Kullanıcı Uygulamaları   │
├──────────────────────────────┤
│  USER.EXE │ GDI.EXE │ ...   │  ← Win16 API (16-bit DLL'ler)
├──────────────────────────────┤
│         KRNL386.EXE          │  ← Çekirdek (hâlâ 16-bit!)
├──────────────────────────────┤
│           MS-DOS             │  ← Altta hâlâ DOS var
├──────────────────────────────┤
│           Donanım            │
└──────────────────────────────┘

Sorunlar

  • Bellek koruması zayıf: bir uygulama çökerse Windows genellikle birlikte çöküyor
  • Kooperatif çoklu görev: uygulamalar "gönüllü" olarak CPU'yu bırakmak zorunda
  • 16-bit mimari darboğazı: 32-bit donanımı tam kullanamıyor

Windows NT Soyu — Yeni Bir Çekirdek (1993)

Neden NT?

Microsoft, IBM ile OS/2 üzerinde çalışırken Dave Cutler'ı (VMS'in mimarı) işe aldı. Cutler, sıfırdan kurumsal düzeyde bir işletim sistemi çekirdeği tasarladı: Windows NT.

NT'nin tasarım hedefleri:

  • Taşınabilirlik (x86, MIPS, Alpha, PowerPC)
  • Güvenlik (C2 güvenlik sertifikası hedefi)
  • Güvenilirlik (kullanıcı modu çöküşleri çekirdeği etkilemez)
  • POSIX ve OS/2 uyumluluğu

Windows NT Çekirdek Mimarisi

┌─────────────────────────────────────────────────────┐
│                  Kullanıcı Modu                      │
│                                                      │
│  ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌────────┐ │
│  │Win32 App │ │POSIX App │ │ OS/2 App │ │Servis  │ │
│  └────┬─────┘ └────┬─────┘ └────┬─────┘ └───┬────┘ │
│       │             │             │           │      │
│  ┌────▼─────────────▼─────────────▼───────────▼────┐│
│  │              Ortam Alt Sistemleri                ││
│  │  Win32 (csrss.exe) │ POSIX │ OS/2               ││
│  └────────────────────┬───────────────────────────┘ │
│                        │ NT Native API               │
├────────────────────────┼────────────────────────────┤
│                  Çekirdek Modu                       │
│                        │                            │
│  ┌─────────────────────▼──────────────────────────┐ │
│  │          Yürütme Alt Sistemi (Executive)        │ │
│  │                                                 │ │
│  │  ┌─────────┐ ┌────────┐ ┌──────┐ ┌──────────┐  │ │
│  │  │ Süreç   │ │ Nesne  │ │ I/O  │ │ Güvenlik │  │ │
│  │  │ Yönet.  │ │ Yönet. │ │ Yön. │ │ Referans │  │ │
│  │  └─────────┘ └────────┘ └──────┘ └──────────┘  │ │
│  │  ┌──────────────────┐  ┌─────────────────────┐  │ │
│  │  │  Bellek Yönet.   │  │   Önbellek Yönet.   │  │ │
│  │  └──────────────────┘  └─────────────────────┘  │ │
│  └──────────────────────┬──────────────────────────┘ │
│                          │                           │
│  ┌───────────────────────▼──────────────────────────┐│
│  │              NT Çekirdeği (ntoskrnl.exe)          ││
│  │   Zamanlama │ Senkronizasyon │ Kesme İşleme       ││
│  └───────────────────────┬──────────────────────────┘│
│                           │                          │
│  ┌────────────────────────▼─────────────────────────┐│
│  │     Donanım Soyutlama Katmanı (HAL)               ││
│  └────────────────────────┬─────────────────────────┘│
└───────────────────────────┼─────────────────────────┘
                             │
                        Donanım

NT'nin Temel Kavramları

Nesne Yöneticisi (Object Manager) NT'de her şey bir nesnedir: dosyalar, süreçler, thread'ler, mutex'ler, soketler. Hepsi aynı referans sayma ve güvenlik mekanizmasını kullanır.

Nesne Türleri
├── Process
├── Thread
├── File
├── Event
├── Mutex
├── Semaphore
├── Token (güvenlik)
└── Section (paylaşımlı bellek)

HAL (Hardware Abstraction Layer) Donanıma özgü kodu tek bir katmanda toplar. Aynı NT çekirdeği farklı bir HAL ile x86, MIPS, Alpha üzerinde çalışabilir.

Windows NT Sürümleri

SürümYılÖne Çıkan
NT 3.11993İlk NT, iş istasyonu + sunucu
NT 3.511995Performans iyileştirmeleri
NT 4.01996Win95 arayüzü + GDI çekirdek moduna taşındı

Windows 95/98/Me — Tüketici Hattı (1995–2000)

NT ile paralel olarak Microsoft, ev kullanıcıları için ayrı bir hat sürdürdü.

Windows 95 (1995)

Tarihin en önemli işletim sistemi lansmanlarından biri. Yenilikler:

  • 32-bit API (Win32) — NT ile aynı API yüzeyi
  • Uzun dosya adları — 8.3 sınırının sonu
  • Plug and Play — donanım otomatik tanıma
  • Görev çubuğu + Başlat menüsü — bugüne kadar süren UI paradigması
  • Preemptive multitasking (Win32 uygulamaları için)

Ama altta hâlâ MS-DOS vardı. IO.SYS ve MSDOS.SYS gizli sistem dosyaları olarak kalıyordu. Çekirdek MS-DOS + 16-bit Windows bileşimiydi.

Windows 98 / 98 SE (1998–1999)

  • USB desteği eklendi
  • Internet Explorer 4/5 ile derin entegrasyon (antitröst davasının konusu)
  • FAT32 desteği
  • Çoklu monitör desteği

Windows Me (2000) — Çöpün Zirvesi

Tarihin en kötü karşılanan Windows sürümlerinden biri:

  • MS-DOS modunu kaldırdı (ama altta hâlâ DOS vardı)
  • System Restore özelliği eklendi (iyi fikir, kötü uygulama)
  • Yoğun kararsızlık ve çökme şikayetleri
  • Kısa ömürlü: Windows XP çıkınca herkes terk etti

Windows 2000 ve XP — Birleşme (2000–2007)

Windows 2000 (2000)

NT 5.0 olarak da bilinir. NT çekirdeğini iş dünyasının dışına çıkardı:

  • Active Directory ilk kez
  • NTFS 3.0 (quota, şifreleme, sparse dosyalar)
  • Plug and Play + WDM sürücü modeli
  • İlk kez tüketici segmentine yönelik NT çekirdeği deneme

Windows XP (2001) — Uzun Saltanat

Tüketici (95/98/Me) ve kurumsal (NT/2000) hatlarının birleştiği nokta. NT 5.1 çekirdeği üzerine inşa edildi.

Windows XP Mimarisi
┌─────────────────────────────────────────────┐
│              Kullanıcı Modu                  │
│                                              │
│  ┌─────────────────────────────────────────┐│
│  │        Win32 Alt Sistemi                ││
│  │  csrss.exe │ winlogon.exe │ services.exe││
│  └────────────────────┬────────────────────┘│
│                        │ Win32k.sys (syscall)│
├────────────────────────┼────────────────────┤
│              Çekirdek Modu                   │
│                                              │
│  ┌─────────────────────────────────────────┐│
│  │  ntoskrnl.exe (Executive + Kernel)      ││
│  └─────────────────────────────────────────┘│
│  ┌─────────────┐  ┌──────────────────────┐  │
│  │  win32k.sys │  │  Sürücüler (.sys)    │  │
│  │  (GDI+USER) │  │  NDIS, FS, HID...   │  │
│  └─────────────┘  └──────────────────────┘  │
│  ┌─────────────────────────────────────────┐│
│  │              HAL.DLL                    ││
│  └─────────────────────────────────────────┘│
└─────────────────────────────────────────────┘

XP'nin en büyük katkıları:

  • ClearType yazı tipi yumuşatma
  • Fast User Switching — oturumu kapatmadan kullanıcı değiştirme
  • System Restore (çalışan versiyonu)
  • Driver Signing — imzasız sürücüler için uyarı
  • WPA (Windows Product Activation) — korsan önleme

XP, 2014'e kadar Microsoft tarafından desteklendi. 13 yıl.


Windows Vista (2007) — Büyük Mimari Değişim, Zor Doğum

Vista, 5 yıllık geliştirme sürecinin ürünüydü ve köklü mimari yenilikler getirdi. Ancak donanım gereksinimleri ve uyumluluk sorunları nedeniyle kötü karşılandı.

Temel Mimari Yenilikler

Windows Display Driver Model (WDDM) Grafik sürücüsü artık tamamen çekirdek modunda çalışmıyor:

  • Sürücünün büyük bölümü kullanıcı moduna taşındı
  • GPU belleği sanal bellek gibi yönetiliyor
  • Ekran kartı çöküşleri artık sistem çöküşüne yol açmıyor (yeniden başlatılabiliyor)

User Account Control (UAC) Yönetici yetkisi artık otomatik değil. Her ayrıcalıklı işlem onay ister. (Kullanıcılar başlangıçta bu özelliği sevmedi, ama güvenlik açısından devrimdi.)

Integrity Levels (IL) Her süreç ve dosyanın bir bütünlük seviyesi var:

Sistem (System)     → çekirdek bileşenleri
Yüksek (High)       → yönetici süreçleri
Orta (Medium)       → normal kullanıcı uygulamaları
Düşük (Low)         → Internet Explorer, sandbox'lı uygulamalar

Düşük IL'li süreç, Orta IL'li kaynağa yazamaz. Tarayıcı exploiti sistemi ele geçiremiyor çünkü IL koruması devreye giriyor.

BitLocker Disk şifreleme TPM (Trusted Platform Module) ile entegre.

Kernel Patch Protection (KPP / PatchGuard) 64-bit sistemlerde çekirdeği yamalamayı engelliyor. Rootkit ve antivirus yazılımları için devrim niteliğinde (ama ikisi de etkilendi).


Windows 7 (2009) — Vista'nın Olgunlaşması

Vista'nın eleştirilen yanları düzeltildi, iyi mimarisi korundu.

  • Aero Snap: Pencereleri ekran kenarına sürükleyerek hizalama
  • Jump Lists: Görev çubuğunda son açılan dosyalar
  • HomeGroup: Ev ağı paylaşımı
  • UAC ince ayarı: Kullanıcı istediği seviyeyi seçebiliyor
  • XP Mode: Sanal makine içinde XP uygulaması çalıştırma

Kernel: NT 6.1 — Vista'dan (NT 6.0) çok da farklı değil. Ama algı tamamen farklı: Vista'nın "düzeltilmiş hali" diye sevindi.


Windows 8 / 8.1 (2012–2013) — Dokunmatik Devrimi (ve Geri Adımı)

Tablet pazarına giriş için masaüstü paradigması yıkıldı.

Metro / Modern UI

  • Başlat menüsü kaldırıldı → Başlat ekranı geldi (tam ekran tile'lar)
  • İki mod: "Modern" (dokunmatik) ve "Desktop" (klasik)
  • WinRT (Windows Runtime) API'si tanıtıldı

WinRT Mimarisi

┌────────────────────────────────────────────────────┐
│                 Uygulama Katmanı                    │
│   ┌──────────────┐      ┌───────────────────────┐  │
│   │  Win32 / COM │      │   WinRT (Modern App)  │  │
│   │  .NET / MFC  │      │  C++ / C# / JS / VB   │  │
│   └──────┬───────┘      └───────────┬───────────┘  │
│          │                          │               │
│   ┌──────▼──────────────────────────▼───────────┐  │
│   │            Windows Runtime (WinRT)           │  │
│   │  (COM tabanlı, dil bağımsız bileşen modeli) │  │
│   └──────────────────────┬──────────────────────┘  │
│                           │                        │
├───────────────────────────┼────────────────────────┤
│              Çekirdek (NT 6.2)                      │
└────────────────────────────────────────────────────┘

Tepkiler

  • Kurumsal kullanıcılar ve masaüstü kullanıcıları isyan etti
  • "Başlat menüsü nerede?" sorusu internet gündemine oturdu
  • Windows 8.1 ile Başlat butonu geri geldi (ama menü değil)
  • Pazar payı XP ve 7'nin altında kaldı

Windows 10 (2015) — Uzlaşma ve "Son Windows"

Temel Değişiklikler

  • Başlat menüsü geri + tile'lar bir arada
  • Cortana sesli asistan
  • Edge tarayıcı (Internet Explorer'ın halefi)
  • DirectX 12: Çok çekirdekli GPU komut gönderimi, düşük sürücü yükü
  • WSL (Windows Subsystem for Linux): Gerçek Linux ikilileri çalıştırma
  • Universal Windows Platform (UWP): Tüm Windows cihazları için tek uygulama

Servis Modeli

İlk kez "Windows as a Service" (Hizmet Olarak Windows):

  • Büyük sürümler yerine periyodik Feature Updates (6 ayda bir)
  • Her kullanıcı aynı temel çekirdek üzerinde

Sanal Makine Tabanlı Güvenlik (VBS)

Windows 10 ile Hyper-V tabanlı güvenlik katmanları geldi:

Donanım (CPU, RAM, Depolama)
        │
        ▼
┌───────────────────────────────────────────┐
│              Hyper-V Hipervizörü           │
├───────────────────┬───────────────────────┤
│  Normal VM        │  Secure VM (VSM)       │
│  Windows 10 OS    │  Credential Guard      │
│  Uygulamalar      │  Hypervisor-Protected  │
│                   │  Code Integrity (HVCI) │
└───────────────────┴───────────────────────┘
  • Credential Guard: LSASS (şifre deposu) izole VM'de, dump alınamıyor
  • HVCI: Çekirdek sürücüleri hipervizör tarafından doğrulanıyor

WSL — Windows İçinde Linux (2016–Günümüz)

Windows Subsystem for Linux, geliştiriciler için paradigma değiştirdi.

WSL 1 (2016): Çeviri Katmanı

Linux Uygulaması (ELF binary)
        │  Linux syscall (read, write, fork…)
        ▼
  WSL Çeviri Katmanı
        │  Windows NT Native API'ye dönüştür
        ▼
  NT Çekirdeği

Linux çekirdeği yok — her Linux sistem çağrısı NT karşılığına eşleniyor. Hızlı ama bazı syscall'lar eksik ya da yanlış davranıyor.

WSL 2 (2019): Gerçek Linux Çekirdeği

Linux Uygulaması
        │
        ▼
  Gerçek Linux Çekirdeği (Microsoft'un özel derlemesi)
        │
        ▼
  Hyper-V Lightweight VM
        │
        ▼
  Windows NT Çekirdeği

Gerçek Linux çekirdeği → tam syscall uyumluluğu. docker, systemd, GPU pass-through desteği.


Windows 11 (2021) — TPM Zorunluluğu ve Yenilik

Donanım Gereksinimleri Tartışması

  • TPM 2.0 zorunluluğu: Güvenlik odaklı ama birçok kullanıcıyı kapsam dışı bıraktı
  • Secure Boot: UEFI Secure Boot açık olmalı
  • CPU listesi: Yalnızca belirli Intel/AMD CPU'lar resmi destekli

Mimari Yenilikler

Android Uygulamaları (Amazon Appstore) WSL benzeri bir sanallaştırma ile Android uygulamaları çalışıyor.

Direct Storage Oyunlar için GPU'ya doğrudan NVMe → GPU belleği kopyalama:

Geleneksel:  NVMe → RAM (CPU decompress) → GPU RAM
DirectStorage: NVMe → GPU RAM (GPU decompress, CPU bypass)

Smart App Control İmzasız uygulamaları yapay zeka destekli analize tabi tutuyor.


Windows NT Çekirdeğinin Evrimi: Sayılarla

WindowsNT Sürümüx64ARMÇekirdek Yenilikleri
20005.0Active Directory, NTFS 3.0
XP5.1WPA, ClearType
Vista6.0WDDM, UAC, IL, PatchGuard
76.1Performans, HomeGroup
86.2WinRT, Storage Spaces
1010.0VBS, WSL, DX12
1110.0DirectStorage, TPM 2.0

NTFS — Windows'un Dosya Sistemi

FAT32'nin yerini alan NTFS (NT File System) NT 3.1 ile geldi.

NTFS Disk Yapısı
┌────────────────────────────────────────┐
│  VBR (Volume Boot Record)              │
├────────────────────────────────────────┤
│  MFT (Master File Table)               │
│  ├── Her dosya için kayıt (~1 KB)      │
│  ├── $MFT (MFT'nin kendisi)           │
│  ├── $Bitmap (boş cluster haritası)   │
│  ├── $LogFile (journal/log)           │
│  └── $Secure (güvenlik tanımlayıcıları)│
├────────────────────────────────────────┤
│  Veri Alanı (cluster'lar)              │
└────────────────────────────────────────┘

NTFS Özellikleri

  • Journaling: Güç kesilmesi halinde tutarsız durum önlenir
  • ACL: Dosya/klasör başına izin matrisi
  • Alternate Data Streams (ADS): Bir dosyaya gizli veri akışı eklenebilir
  • Sparse dosyalar: Büyük ama büyük bölümü boş dosyalar disk kaplamaz
  • Sıkıştırma: Transparan dosya sıkıştırma
  • Şifreleme (EFS): Kullanıcı anahtarıyla transparan şifreleme

Windows Güvenlik Modeli Özeti

Kullanıcı giriş yapar
        │
        ▼
  LSA (Local Security Authority)
  Token oluşturur: SID + Privilege listesi + IL
        │
        ▼
  Her süreç bu token'ı miras alır
        │
   ┌────┴─────────────────────────────┐
   │                                   │
   ▼                                   ▼
Nesneye erişim isteği          UAC onayı gerekiyorsa
   │                            yeni yüksek IL token
   ▼
Güvenlik Referans Monitörü
  ├── Nesnenin DACL'ını oku
  ├── Token SID'lerini DACL ACE'leriyle karşılaştır
  └── İzin var mı? → Erişim ver / reddet
  • SID (Security Identifier): Kullanıcı/grup kimliği (S-1-5-21-...)
  • DACL (Discretionary Access Control List): Nesneye kimin ne yapabileceği
  • SACL (System ACL): Denetim (audit) kayıtları için

Sonuç: 40 Yılın Özeti

1981  MS-DOS ──────────────────────────────────────────────────►
              │                                                   Tek görevli, 16-bit
1985  Win 1.0 ┤
1990  Win 3.x ┤ ← Grafik kabuk, kooperatif multitasking
              │
1993  NT 3.1  ┼ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─►
              │                                                   NT çekirdeği: güvenli,
1995  Win 95  ┤ ← 32-bit API, Başlat menüsü (altta hâlâ DOS)    taşınabilir, nesne tabanlı
2000  Win 2000┤
2001  Win XP  ┼ ← Tüketici + NT birleşimi, 13 yıl hüküm sürdü
2007  Vista   ┤ ← WDDM, UAC, PatchGuard — kötü karşılandı
2009  Win 7   ┤ ← Vista olgunlaştı, sevildi
2012  Win 8   ┤ ← Dokunmatik teklif, masaüstünü kızdırdı
2015  Win 10  ┤ ← Uzlaşma, WSL, VBS, DirectX 12
2021  Win 11  ┤ ← TPM 2.0, DirectStorage, yenilenen UI
              │
              ▼
       Bugün: Tek bir NT çekirdeği
       telefon hariç her Microsoft cihazında çalışıyor

Windows, 40 yılda tek kullanıcılı 16-bit bir DOS kabuğundan hipervizör tabanlı güvenliği, gerçek Linux çekirdeği desteğini ve GPU-doğrudan depolamayı bünyesinde barındıran bir platforma dönüştü. Her adımda geriye dönük uyumluluk kurbanlar verilerek değil, katmanlar eklenerek korundu — bu hem en büyük gücü hem de en büyük mimarî yükü oldu.

Comments

(0)
Top commentsNewest first

0/3000 • Press Ctrl + Enter to submit

Loading comments...