
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üm | Yıl | Öne Çıkan |
|---|---|---|
| NT 3.1 | 1993 | İlk NT, iş istasyonu + sunucu |
| NT 3.51 | 1995 | Performans iyileştirmeleri |
| NT 4.0 | 1996 | Win95 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
| Windows | NT Sürümü | x64 | ARM | Çekirdek Yenilikleri |
|---|---|---|---|---|
| 2000 | 5.0 | ✗ | ✗ | Active Directory, NTFS 3.0 |
| XP | 5.1 | ✗ | ✗ | WPA, ClearType |
| Vista | 6.0 | ✓ | ✗ | WDDM, UAC, IL, PatchGuard |
| 7 | 6.1 | ✓ | ✗ | Performans, HomeGroup |
| 8 | 6.2 | ✓ | ✓ | WinRT, Storage Spaces |
| 10 | 10.0 | ✓ | ✓ | VBS, WSL, DX12 |
| 11 | 10.0 | ✓ | ✓ | DirectStorage, 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)Loading comments...