2. Bölüm: Çekirdeklerin savaşı devam ediyor

2. Bölüm: İşletim sistemlerinin çekirdeklerinin derinliğine yaptığımız yolculuk tam gaz devam ediyor

Çekirdeklerin savaşı - II

Çekirdeklerin Savaşı - I

İlk bölümünü burada yayımladığımız "Çekirdeklerin Savaşı" serisine tam gaz devam ediyoruz.

İlk bölümde her işletim sistemi çekirdeğinin yapıtaşlarını görsellerle beraber açıkladık ve hepsinin nasıl bir düzene göre çalıştığını gösterdik. Artılarını ve eksilerini ortaya koyduğumuz işletim sistemi çekirdeklerinin kullandıkları spesifik güvenlik mekanizmalarını karşılaştırmalı olarak açıkladık.

Bu son bölümde çekirdek yapılarının teknik özelliklerini ortaya koymaya devam edeceğiz. Meraklılar için mevcut tüm çekirdek türlerinin tanımlamalarını da bir araya getirdik. Keyifli okumalar!

Çekirdeklerin Savaşı - I

MMCSS: Videoları tercih etmek

MMCSS: Videoları tercih etmek
MMCSS: Vista'da filmlere ve müziklere öncelikli olarak muamele edilmesini sağlıyor.

Windows-iş-düzenleyicisi (Scheduler) aynı anda açılan birden çok işlemi sıraya koyar. Her uygulama belli bir süre için CPU'nun hesaplama gücünü kullanabilir, sonrasında bekleme vakti başlar.

Windows, bir film seyrederken yukarda anlatılanın olmaması için multimedya dosyalarına has, özel fonksiyonlar sunuyor.Bu sayede anti-virüs programları ve arka planda çalışan Windows-hizmetleri film keyfini hiçbir şekilde etkileyemiyor.

Vista'da multimedya sınıfı planlama hizmeti olan MMCSS, filmlere ve müziklere öncelikli olarak muamele edilmesini sağlar. Bunun için öncelikle medya oynatıcısı aynı Windows Media Player gibi MMCSS hizmetine kaydolmalıdır. "%SystemRoot% \System32\Mmcss.dll" konumunda bulunan hizmet öncelik yönetimine has bir işlem parçacığına (thread) sahiptir. Windows 0 ila 31 sayıları arasındaki öncelik seviyelerini tanır, ki MMCSS hizmeti 27. seviye öncelik ile çalıştırılır.

<strong>MMCSS:</strong> Vista'da filmlere ve müziklere öncelikli olarak muamele edilmesini sağlıyor.Böylece hizmete kayıtlı tüm multimedya işlem parçacıkları 27 değerine yükseltilir. Keza 16'dan sonra zaten gerçek zamanlı işlem seviyesine ulaşılmış olur, bunun anlamıysa diğer işlemler hiçbir şekilde rahatsız edemez. Hizmet, programların "açlıktan ölmemesini" de sağlar. Bu yüzden Windows etkin MMCSS durumunda bile diğer görevler için de bir CPU-zaman yüzdesi ayırır.

Linux 0 ila 99 arasında derecelendirilen daha hassas bir iş düzenleme önceliği sunar. Örneğin medya sunucularındaki multimedya işleri için bu tip bir derecelendirme daha verimli olur. Mac OS X'te iş düzenleyicisi Mach çekirdeğinin bileşenlerinden biridir. Mach'in, Linux ve Windows'tan çok daha modern olduğunu sadece 0 ila 127 arasındaki derecelendirmesi ispatlamaz. OS X altında multimedya uygulamaları kendilerine sabit bir hesaplama süresi bile tahsis edebilir. Yeterli işlem gücü olması şartıyla darboğazlar da ortaya çıkmıyor.

I/O: Görevlere öncelik vermek

I/O: Görevlere öncelik vermek

Film keyfi yaparken gerçekleşmesi gereken, birden çok programla çalışıldığında sinir bozucu olabilir. Örneğin XP'de otomatik disk birleştirme gibi arka plan hizmetlerinde muazzam problemler vardır.

I/O: Görevlere öncelik vermekGerçi sonrasında sabit disk için iyi oluyor, fakat bunu yapmak için Outlook'u iki saat boyunca kötürüm bırakmanın ne anlamı var? Input/Output önceliği ile bekleme sona eriyor. Bu sayede Vista altında ön planda çalışan tüm işlemler öncelikli geçiş hakkına sahip oluyor. Benzer bir senaryoda Disk Birleştiricisi kullanıcının bir sonraki iş teneffüsüne kadar sabretmek zorunda kalıyor. Vista'daki I/O sistemi "çok düşük"ten başlayıp "kritik" seviyesine kadar çıkabiliyor. Standart olarak ise "normal" seviyesi kullanılıyor.

Windows, arka plan hizmetlerine otomatikman düşük bir öncelik verir, buna karşın bellek yöneticisi her zaman "kritik" bölgede çalışır. Zira bellek miktarı azaldığında dosyalar hemen sabit diske taşınmalıdır. Donanım sürücüleri aynı fare hareketlerinde olduğu gibi I/O taleplerine orta seviye öncelik ile tepki verir.

Bu da çok kullanışlı: Vista I/O eylemleri için sabit bant genişliği ayırabiliyor. Mesela Windows Media Player I/O sisteminden film dosyalarının DVD sürücüden belli bir hızla okunmasını talep edebilir. Yalnız, I/O sistemi diğer talepleri ancak sistem kaynakları elverdiği sürece işleyebilir.

Vista için bir yenilik olsa da, I/O öncelik ataması OS X ve Linux'ta çoktan beridir var. OS X, Mach çekirdeğini mesaj iletme (message-passing) için kullanarak bu tekniği mimarinin en derinine yerleştirdi. Linux'ta da 2.6 nolu çekirdekten bu yana etkin bir öncelik atama sistemi var.

Adresleme aralığı: Dinamik yönetim

Adresleme aralığı: Dinamik yönetim

32-Bit işlemcilerdeki adresleme alanında Windows ve kurulu programlar için büyük sınırlamalar var. Mesela varsayılan olarak Windows-çekirdeği 2 GB'tan daha büyük olamıyor.

Adresleme aralığı: Dinamik yönetimEğer donanım sürücüleri, dosya sistemi önbelleği ve yığın için daha fazla yer gerekirse bu durum bir problem haline gelir. Windows XP'nin bellek yöneticisi daha sistem başlangıcında tekil bileşenlerin ne kadar yer kaplayacağını sabitliyor. Problem: Gittikçe şişen ön bellek, yığında daha çok yer varken sınırlarına ulaşır. Yığın için kullanılan alanın ön belleğe aktarılması da mümkün değildir. İşte tüm bu anlamsız sınırlamaların ortadan kalkması için Vista'da çekirdeğin adresleme aralığı dinamik olacak şekilde değiştirildi.

Bu dinamik sistem çalışma anındaki ihtiyaca göre bölümlere dağıtılan adresleme alanlarını büyültüyor veya küçültüyor. Sonuç olarak donanım sürücüleri daha fazlasını istediğinde sanal bellek büyüyebilir ve daha azı istendiğinde ise küçültülebilir.

Adresleme aralığı: Dinamik yönetimLinux ve Mac OS X'te katı sınırlamalar yok. Gerçi bu işletim sistemleri de çekirdeğin toplamda kaplayacağı miktar konusunda sınırlama koyuyor. Fakat temelde tekil bileşenler biçimleri dâhilinde sınırlandırılmıyor. Bu yüzden Windows'un aksine bu işletim sistemlerinde çekirdek ve sürücü alanları için sabit bir dağıtım yok.

Günlük Windows kullanımında birçok hata oluşabiliyor fakat bunlar genellikle işletim sisteminin kendisinden değil, programlardan kaynaklanıyor. Programlar işlem yöneticisinin düzeltmesi gereken hatalar çıkarır. Örnek: Basit bir güncelleme sadece hatayı kaldırmakla kalmaz, bilakis programın farklı bölümlerini yeniden derler. Peki, bir güncelleme daha değişikliklerin yarısı yapılırken çökerse ne olur? Eğer Windows Update veya virüs tarayıcısı güncellemesi söz konusu olursa problem daha da karmaşık hale gelir. İstenmeyen yan etkilerin oluşmaması için işlem yöneticisi sistemde yapılan tüm değişiklikleri takip eder ve hata durumunda bunları geri alır. Prensip: Ya tüm değişiklikler gerçekleştirilir ya da hepsi geri alınır.

KTM: Program çökmelerini yakalamak

KTM: Program çökmelerini yakalamak

Bir program birbirine bağlı ve birbirini takip eden değişiklikler yapmak istediğinde ya bir KTM-Handle (Kernel-Transaction Manager) ya da bir DTC-işlemi (Distributed Transaction Coordinator) oluşturabilir. Bunun dışında tek bir KTM-Handle oluşturup sonrasında dosya değişikliklerini ve işlemin kayıt anahtarlarını sıraya koyabilir.

KTM: Program çökmelerini yakalamakEğer her şey başarılı bir şekilde gerçekleşirse program, işlemi aktarır, değişiklikler uygulanır. Bu ana kadar program tüm süreci istediği zaman geriye alabilir. Bir diğer avantaj: Diğer programlar bu değişikliği ancak işlem aktarma bittiğinde görebilir.

Mac OS X ve Linux da çekirdek seviyesinde işlemlerle beraber çalışır. Genelde kullanıcı bu süreçten haberdar olmaz ta ki, güncellemeler sürekli başarısızlığa uğrayana dek. İşletim sistemlerinde bu durum sistem istikrarını etkilemez, bilakis sadece işlemlerin uygulanmadığına dair bir işarettir.

Windows 7'den sonra ne geliyor: 8, 9, ...

Windows 7'den sonra ne geliyor: 8, 9, ...
Singularity: Sistem kaynaklarını koruma sadece yazılım mekanizmaları ile mümkün olacak.

Şu anki açıklamalara göre Vista halefi Windows 7'nin 2010'dan önce çıkması bekleniyor. Yine de Microsoft'un Windows mimarisini baştan aşağı değiştirmeyi planladığı artık bir sır değil. Şu iki proje geleceğin işletim sistemini ortaya çıkaracak.

Singularity'nin mavi ekransız bir Windows, çökmeyen bir sistem olması bekleniyor. Şu üç anahtar fonksiyonu baz alıyor: Yazılımından soyutlanmış işlemler (Software Isolated Processes, SIP) mikro çekirdek (micro kernel) ve kanallar (channels). Mikro çekirdek sadece "çekirdek fonksiyonlarını" hazırlıyor; örneğin bellek yönetimi, işlem yönetimi, kanal yönetimi, görev zamanlama ve I/O yönetimi. Diğer tüm fonksiyonlar modüllerde depolanacak ve birbirlerinden bağımsız bir şekilde SIP'ler üzerinden gerçekleştirilecek. Çekirdek ve SIP'ler arasındaki ve SIP'lerin kendi aralarında iletişim, kanallar üzerinden gerçekleşecek.

Midori iyice uzak bir geleceğe yönelerek modüler bir çekirdekten oluşuyor. Sadece en derindeki katmanı C veya Assembler ile programlanmış olacak. Microsoft projenin geri kalan bileşenlerini .NET dillerinin yardımıyla gerçekleştirmek istiyor. Bunun avantajı: Windows netbook, PDA ve cep telefonları gibi farklı platformlarda daha iyi çalışıyor.

Bilgi: Çekirdek türleri mercek altında

Bilgi: Çekirdek türleri mercek altında
Tek parçalı çekirdek: Tüm görevler için büyük bir çekirdek.

Tek parçalı (Monolithic): Tek parçalıların arkasındaki fikir şudur: Tüm görevler için büyük bir çekirdek. Çekirdek, bellek ve işlem yönetiminin yanında işlemler arasındaki iletişimden ve donanım / sürücü desteğinden sorumludur. Windows, Linux ve OS X bu kategoriye aittir.

Mikro: Bir hata tüm işletim sistemini çökertebilir. Bu sebeple bir mikro çekirdek hataları ve çökmeleri engellemek için çok ufak tutulur. Fakat buna rağmen fonksiyonellik sunması gerektiği için çekirdek birden çok modüle ayrılmıştır. Bu modüllerden sadece biri çekirdek modunda çalışır. OS X'in bir bileşeni olan Mach, mikro çekirdek için klasik bir örnektir. Ancak şu ana kadar gündelik kullanıma elverişli ve mikro çekirdeğe sahip hiçbir işletim sistemi yapılmamıştır.

Melez (Hybrid): Tek parçalı ve mikro çekirdeğin birleşimi genellikle melez çekirdek olarak tanımlanır. Bu tip yapılarda çekirdek tabiri caizse zayıflatılır ve gelişmiş görevler için dinamik modüllerin eklenmesine izin verilir. Çekirdek parçalarının sonradan yüklenmesi Linux ve OS X'de de vardır, fakat melez çekirdekli olmalarını sağlayacak ölçüde değildir.

Sonuç: Windows iyi savaşıyor

Sonuç: Windows iyi savaşıyor

Linux ve OS X ile karşılaştırıldığında Windows son derece iyi savaşıyor. Microsoft-rakipleri bazı konularda biraz daha acemiler, fakat kökleri eskiye dayanan Unix-dünyasından yoğun bir şekilde yararlanıyorlar.

Sonuç: Windows iyi savaşıyorŞu an Windows Vista modern güvenlik özelliklerinin tozlanmış Windows-mimarisine uyduğunu etkileyici bir şekilde kanıtlıyor; örneğin korumalı işlemler ve çekirdek modüllerine has kod imzaları gibi. Fakat bu özellikler genellikle sadece 64-Bit dünyasında kullanılabiliyor ve XP'de mevcut değiller. Buna ek olarak Linux ve OS X yoğun bir şekilde zararlı yazılım saldırılarına maruz kalmadıkları sürece ASLR gibi püf noktalardan feragat edebilir. Her şey bir yana bir saldırganın Linux ve OS X'te yönetici haklarını (root) elde etmesi Windows'tan daha zor.

Microsoft'un işletim sistemi birçok eski yükü de beraberinde taşımaya devam ediyor: Mesela Vista altında bile hala kötü programlanmış sürücüler sistemi kararsız hale getirebiliyor. Mac OS X özellikle çekirdek iletişimini Mach bileşenleri üzerinden yapması ve I/O-Kit'in daha yüksek performans sunmasıyla daha modern bir izlenim bırakıyor; bu konularda Vista arayı daha yeni kapattı. Linux'un özgürlüğü ön planda, herkes kendine has bir çekirdek yapılandırabiliyor - tabi, ne yaptığını bildiği sürece.

Okuyucu Yorumları