sanaldoktor
19-03-2007, 23:55 PM
Windows 1.0
Windows serisinden ilk işletim sistemi Windows 1.0 olarak 1985 yılında piyasaya çıktı. 1.0 bir task-switcher idi. Yani, birden fazla programı açabiliyor ama aynı anda tek bir program aktif oluyordu. Diğerlerinin çalışması askıya alınıyordu. Kullanıcı askıya alınan bir programa geçtiğinde bu sefer o program kaldığı yerden çalışmaya başlıyordu. Bu ilk versiyon hiç tutulmadı. Tutulmamasının nedeni o sıralarda kullanılan bilgisayarların donanım olarak yetersiz kalmasıydı. PC?ler o zamanlar grafik düşmanı bir yapıya sahiptiler. Ayrıca, bilgisayarlar henüz bugünkü yaygınlık düzeyine ulaşmamışlardı ve o zamanın kullanıcıları daha teknik kökenli kişiler idi. Bu da grafik arabirimli bir sistemden yararlanabilecek insanların azlığı anlamına geliyordu. Son bir neden ise Microsoft?un grafik kullanıcı arabirimleri üzerine çok deneyimli olmamasıydı.
Bu ilk sürüm, 1984 yılında piyasaya çıkan Apple Macintosh?a karşılık olarak üretilmişti. Macintosh başından itibaren grafik temelli olarak tasarlanmıştı. PC?ler ise metin temelli sistemler olarak işe başladılar. Bu da grafik temelli bir yapıya uyarlanmalarını zorlaştırdı. Bu yapı bugün bile olumsuz etkilerini hissettiriyor.
Windows 2.x
Microsoft?un ikinci girişimi de pek parlak olmadı. 1987 Yılında piyasaya sürülen Windows 2.0 grafik temelli olmasına karşın doğru dürüst ikon bile kullanmıyordu. Daha çok grafik ortamında gerçekleştirilmiş metin temelli bir sistemdi. Çünkü daha iyi grafikler için gereken güçlü işlemciler halen ortada yoktu. Gerçi Intel 1985 yılında 80386?yı çıkarmıştı ama piyasada en yaygın işlemciler 8088 ve 80286 idi. Zaman içinde Microsoft, Windows?un 80286 işlemcilerinin gücünden yararlanmasını sağlayan Windows/286 versiyonunu çıkardı. Bütün dezavantajlarına karşın bu versiyonun kullanımı yine de DOS?tan daha kolaydı ve kullanıcının birden fazla programı çalıştırabilmesine olanak sağlıyordu. Ama hem 8088 versiyonu hem de 286 versiyonu halen birer task-switcher?dı. Çokgörevli (Multitasking) bir yapıda değildi. Task switching?de birden fazla program çalıştırılabilir ama yalnızca öndeki program iş yapar. Arka plandaki programların işleyişi askıya alınır. Çokgörevli çalışmada ise hem ön hem arka plandaki programlar çalışmalarını sürdürürler. 1988?de çıkartılan Windows/386 versiyonunda çokgörevlilik sağlanıyordu. Ama çokgörevlilik var çokgörevlilik var. Windows/386 ile gelen (ve Windows NT ile Windows 95?e kadar süregelen) çokgörevlilik işbirlikçi bir çokgörevlilik (cooperative multitasking) idi. Işbirlikçi çokgörevlilikte birden fazla program aynı anda çalışabilir. Arka plana alınan programların çalışması devam eder. Programlar birbileri ile iyi geçinmek yani, işbirliği yapmak zorundadırlar. O anda çalışan bir program bir süre sonra CPU zamanı, sabit disk, COM portları vb. sistem kaynaklarını diğer programlara sunarak onların da çalışmasını sağlar. Ama kötü yazılmış bir program bütün sistem kaynaklarına el koyabilir. Diğer programların çalışıp çalışmamasına yalnızca o program karar verebilir. Buna karşılık Windows 95?de ve Windows NT?deki çokgörevliliği işletim sistemi yönetir. Hangi programın hangi sistem kaynağına ne kadar süre ile sahip olacağını işletim sistemi belirler. Programlar için işletim sistemi tarafından belirlenen süre sonunda işletim sistemi devreye girer ve sistem kaynaklarını bir diğer programa aktarır. Bu türden çokgörevliliğe önceden belirlenmiş çokgörevlilik denir (preemptive multitasking).
Windows 2.0?ın üç versiyonu da piyasada tutulmadı. Üç versiyonun da kullanıcı arabirimi yeterince basit ve kullanışlı değildi. Ayrıca üçü de yeterince güvenilir değildi
Windows 3.x
1990 yılının 22 Mayıs?ında büyük bir kampanya eşliğinde piyasaya çıkartılan Windows 3.0, önceki versiyonların tersine çok başarılı oldu. Bellek kullanımının gelişmiş olması gibi güçlü teknik özelliklerinin yanısıra kullanıcı arabirimi de olağanüstü gelişmiş idi. Ikonlar ilk kez burada yoğun bir şekilde kullanılmaya başladılar. Birçok kişinin Windows ile özleştirdiği Program Manager arabirimi de bu versiyonda ortaya çıktı. En önemlisi de, birden fazla programın aynı anda oldukça sorunsuz bir şekilde çalışabilmesiydi. Kuşkusuz Microsoft bu versiyonda da bazı ödünler verdi. Örneğin, 8088 işlemcili, düşük konfigürasyonlu bilgisayarların da Windows 3.0?ı çalıştırabilmeleri göz önünde tutulmuştu. 8088?in çalışabileceği son Windows versiyonu Windows 3.0 oldu.
Windows 3.0 piyasada çok iyi karşılandı. Ama kullanıcıların sayısının artmasıyla birlikte sorunlar da ortaya çıkmaya başladı. Çıkan sorunların büyük kısmı düşük konfigürasyonlu makinalar düşünülerek verilen ödünlerden kaynaklanıyordu. Örneğin, Windows 3.0 gerçel modda (real mode) çalıştırılabiliyordu ama bu bu modda hiç de güvenilir değildi. Işletim sistemi bu modda çalışırken kötü yazılmış bir program sistemi çökertebilirdi. Korunmalı modda (protected mode) çalışan bir işletim sistemi ise bu türlü programların sisteme zarar vermesini daha iyi engelleyebilirdi.
Bir başka sorun da ünlü geri dönülemez uygulama hatasıydı (unrecoverable application error, UAE). Bu hataların çoğunda Windows?un bir kusuru yoktu; programlar bir dosyayı açmaya çalışmadan önce böyle bir dosyanın var olup olmadığını kontrol etmiyorlar ya da olmayan bir sistem kaynağına ulaşmak istiyorlar ya da buna benzer bir hata yapıyorlar ve sistem çöküyordu.
Bütün bu sorunlara çare olarak Microsoft, Windows 3.1 versiyonunu çıkardı. Bu versiyonda kullanıcıya yeni gelen çok az şey vardı. Ama asıl farklılık küçük ayrıntılarda ve sistemin derinliklerindeydi. Bu versiyonda UAE?ler hemen hemen ortadan kayboldular. Çünkü Microsoft artık sistemden bir şey istendiği zaman isteğin geçerli olup olmadığını araştıran mekanizmalar eklemişti. Bir uygulama diskte yer alan bir dosyayı istediği zaman ya da benzer bir iş yapmak istediği zaman Windows ilk önce işin yapılabilirliğini kontrol ediyordu (örneğin, istenilen dosyanın diskte yer alıp almadığını kontrol ediyordu). Bu özellik birçok yazılımevinin ürettikleri yazılımları gözden geçirmesini sağladı. Yazılımevleri sorun çıkarmaya aday kısımları inceleyip yazılımlarını neredeyse yeniden yazdılar. Bütün bunlara karşın yine de sistem bütünlüğünü bozan uygulamalar ortaya çıkıyordu. Bu durumda sonuç genel koruma hatasıydı (general protection fault, GPF). Yani, UAE?ler ortadan kalktı ama şimdi de yerine GPF?ler geldi. Bir sorun çıktığı zaman kullanıcı açısından değişen tek şey gelen mesajdı. Ama Windows 3.1, GPF?lerden sonra kendini daha kolay toparlayabiliyordu. Windows donup kalmadan önce en azından hatanın nedenini gösterebiliyordu. UAE?ler ise genelde Windows?un tanımlayamadığı hatalardan çıkıyordu. Bu fark, üreticilerin programlardaki hataları daha kolay görebilmelerini sağlıyordu. Bunların yanısıra ortalama bir kullanıcı şimdi çok daha az hata, yani GPF, ile karşılaşıyordu.
Microsoft Windows 3.1 ile birlikte daha da gelişmiş ve güvenilir hale getirilmiş bir bellek düzeni sağladı. Windows 3.1 sanal bellek kullanabiliyordu; yani, sabit diskin bir bölümü RAM bellek gibi kullanılabiliyordu. Microsoft bu ek belleğin bir bölümünü daha gelişmiş, 16 bitlik aygıt sürücüleri sağlamak için kullandı. 16 bitlik sürücüler korunmalı modda çalıştığı için Windows 3.1 8088?li bir makinada kullanılamıyordu.
Windows for Workgroups 3.11
Windows 95 öncesi en güvenilir, en sağlam Windows versiyonu Windows for WorkGroups 3.11 oldu. Bu versiyon aslında öncekilere göre çok daha iyi bir ağ desteği sağlamak için üretilmişti ama özellikleri yüzünden tek başına çalışan PC?lere bile yüklenmeye başladı
Bu versiyon ile birlikte, birkaç bilgisayarın bulunduğu ortamlarda, başkaca bir ağ işletim yazılımı kullanmadan bir bilgisayar ağı oluşturmak mümkün oluyordu. Ayrıca elektronik posta için Microsoft Mail ve iş düzenini sağlamak için Scheduler programını da içeriyordu.
3.11?in daha güvenli olmasının nedeni ise önceki versiyonlarda bulunan hataların (bug) çoğunun temizlenmesiydi. Ayrıca 32 bitlik disk erişimi gibi yeni ve performansı arttıran özellikleri de vardı. Ama halen yeterince güvenilir bir sistem değildi. Olması da mümkün değildi. Çünkü önceki Windows versiyonları gibi o da disk erişimi ve benzeri işler için DOS?u kullanıyordu. Korumalı modda çalışan, birden fazla programı aynı anda çalıştıran bir işletim sistemi alt düzey işler için gerçel mod, tek-görevli bir sistemi kullanırsa sorunların çıkması kaçınılmaz.
Windows NT
DOS ve OS/2?dan sonra Microsoft?un üçüncü tam-tekmil işletim sistemi denemesi Windows NT oldu. Windows NT?yi Digital?dan transfer edilen bir grup yazdı. Digital?ın WAX bilgisayarlarında kullanılan VMS işletim sistemini de bu grup yazmıştı (Windows NT?nin kısaltması WNT?yi oluşturan harflere bakarsanız herbirinin VMS kısaltmasındaki harflerden sonra geldiğini görürsünüz). Windows NT, daha önceki Windows yazılımlarından farklı olarak DOS?a gerek duymayan tam bir işletim sistemi idi.
DOS/Windows ikilisi varken NT?ye niçin gerek duyulduğu sorulabilir. Bu sorunun yanıtını şöyle verebiliriz. DOS ortada durduğu sürece güvenilir, hızlı, çağa uygun bir işletim sistemi oluşturmak hayaldi. Yaratılan herşey DOS?un kısıtlamaları yüzünden yetersiz kalmaya mahkumdu. Microsoft bu yazılımlarla büyük işyerlerine giremiyor, ciddi uygulamalar gerçekleştiremiyordu. Büyük işyerleri kullanımı kolay, grafik arabirimli ama çok daha güvenilir ve güçlü bir işletim sistemi istiyorlardı.
Windows NT güvenilir bir yapıdaydı. Buradaki çok görevlilik yapısının preemptive olduğunu yukarda söylemiştik. Ayrıca uygulamaların doğrudan donanıma (disk, görüntü kartı, faks-modem kartı vb.) erişimi yasaklanmıştı. Daha önceki uygulamalar performanslarını arttırmak için DOS?u atlayıp donanıma doğrudan erişmek eğilimindeydirler. Bu da sistemin kararlılığını (stability) azaltıyordu. NT?de ise uygulamalar donanıma doğrudan erişemiyordu. İsteklerini çekirdek (kernel) modunda çalışan yönetici hizmetlere iletiyorlardı. Yönetici hizmetler isteklerin uygun olup olmadığına bakıyor, uygunsa istekleri yerine getirip sonuçlarını uygulamalara bildiriyordu.
NT aynı zamanda Microsoft?un ilk 32 bitlik işletim sistemi idi. PC dünyasında 32 bitlik ilk işlemci, 80386, 1985 yılında piyasaya çıkmıştı ama 1993 yılına kadar bu işlemcinin kaynaklarını sonuna kadar kullanan bir işletim sistemi üretilememişti. İşletim sisteminin 32 bitlik olması işlemlerin daha hızlı yapılabilmesini ve daha büyük belleklere daha kolay erişimi sağlıyordu.
NT başlangıçtan itibaren çokişlemcili (multiprocessing) çalışabiliyordu. Yani, bilgisayarda birden fazla işlemci bulunuyorsa işleri eşit bir şekilde bu işlemcilere dağıtabiliyor ve sistem performansını arttırabiliyordu. Daha önceki işletim sistemlerinin tersine NT, Intel işlemcilerine mahkum değildi. NT, Digital?ın Alpha, Silicon Graphics?in MIPS ve IBM/Motorola/Apple üçlüsünün PowerPC işlemcisi ile de çalışabiliyordu (yakın zamanlarda MIPS ve PowerPC işlemcileri için NT geliştirilmesi işine son verildi). Bu işlemciler arasında halen en iyi fiyat/performans oranı Intel işlemcileri ile elde ediliyor. (Burada Intel derken aslında bir platformu, i386 platformunu, kastediyorum. Intel firmasının işlemcileri dışında, AMD ve Cyrix işlemcileri de bu paltformda yer alıyorlar. Hatta AMD işlemcileri çoğu zaman performans bakımından Intel işlemcileri geçiyorlar.)
Microsoft, NT?yi ilk olarak sunucu bilgisayarlarda kullanılmak üzere tasarladı. Bu yüzden de üzerinde çalışabileceği bilgisayarın oldukça yüksekti özelliklere sahip olması gerekiyordu. Hızlı bir işlemci ve en az 16MB bellek istiyordu. Yeni bilgisayar alanlar bu özellikleri küçümseyebilirler; çünkü aldıkları bilgisayarlar şu anda en azından 633MHz?lik bir Celeron?a ve 64MB?lık bir belleğe sahip. Ama NT?nin ilk çıktığı zamanlarda (çok değil, 1993 yılında) bu özellikler küçük bir servet anlamına geliyordu.
Microsoft?un daha sonra geliştirdiği workstation versiyonu NT?nin daha düşük konfigürasyonlu makinalarda da çalışmasını sağladı. Düşük konfigürasyon diyoruz ama yine de bu versiyon için de en az 12 MB gerekiyordu. Bu versiyon daha az kullanıcı, daha az sayıda bir arada çalıştırılabilecek işlemci vb. şeyler demekti.
Paranın ikinci planda, güvenilirlik ve performansın ilk planda kaldığı büyük işyerlerinde, devlet dairelerinde NT ilgi çekmeyi başardı. Ama bütün parlak özelliklerine karşın NT bir türlü yayılamadı. Değerlendirmelerde hep yüksek puanlar ve övgüler alıyordu. Ama Microsoft?un istediği yalnızca güzel değerlendirmeler değildi. Microsoft, hiç bir zaman kısıtlı pazarlara yönelik üretim yapan bir firma olmadı. Onun için başarı, ürününün 10-20 bin değil, 10-20 milyon adet satmasıydı. NT, hem donanım olarak zamanına göre üstün ve pahalı bir donanım gerektirmesi, hem de bu işletim sistemi için yazılmış 32 bitlik programların piyasada bulunmaması yüzünden bir türlü yaygınlaşamıyordu.
Bu ortamda ne yapılabilirdi? Ya bu projenin batak olduğuna karar verip başka şeyler denenecekti ya da bu ürünün yaygınlaşmasını kolaylaştıracak yeni hamleler düşünülecekti. Microsoft daha önce de, daha sonra da, batak projelerin içerisine girmiş ama vazgeçmesini bilmişti. NT?de durum değişikti: Microsoft, NT?ye güveniyordu; vazgeçmek niyetinde değildi. Microsoft?a göre NT sıradan bir ürün değildi. Firmanın bütün geleceğini bağladığı bir projeydi bu.
NT?den vazgeçilmeyecekse onun yaygınlaşmasını engelleyen unsurlar temizlenmeliydi. Kullanıcıları hem donanım olarak hem de yazılım olarak NT?ye uygun bir duruma getirmek gerekiyordu.
Microsoft?un donanım tarafında çok şey yapması gerekmedi. 1990?ların ortalarından başlayarak yarıiletken teknolojisinde akıl almaz ilerlemeler gerçekleşti. Birim hacme daha çok devre sığdırılırken fiyatlar sürekli düşmeye başladı. Birkaç örnek vermek isterim: 1995 Temmuzunda, Intel?in Türkiye temsilcisi olan Empa?da çalışırken, Pentium 75 işlemciyi 350 dolardan satıyorduk. Şu anda ise 1.4GHz?lik bir Pentium IV işlemci hemen hemen aynı fiyata satılıyor. O zamanlar bilgisayarımın belleği 4MB iken şimdi yalnızca görüntü kartımın belleği 16MB. Yine o zamanlar bilgisayarımın sabit diski 80MB iken şimdi tam 45GB?lık bir sabit diskim var.
Yazılım tarafında ise yapılacak çok şey vardı. Yazılım firmaları 10-20 bin satan NT için 32 bitlik program üretmeye yanaşmıyorlardı. Haklıydılar. Öbür yanda yüzlerce milyona ulaşan bir Windows 3.1 piyasası vardı. Onları ikna etmek için denklemin öbür tarafına, yani kullanıcı tarafına geçmek ve önce onları 32 bitlik ortamlara taşımak gerekiyordu. Eğer kullanıcılar 32 bitlik bir işletim sistemine geçerlerse yazılım firmaları da 32 bitlik program üretmeye başlayacaklardı. Buradan hareket eden Microsoft, tarihinin en masraflı tanıtım kampanyası ile duyurduğu Windows 95?i üretti. 1995?in Ağustos ayında bu işletim sistemi piyasaya çıkarken Türkiye?de Ali Kırca Taksim?den canlı yayın ile bu ürünü tanıtıyordu. Gazeteler, dergiler, televizyonlar bu yeni ürünün tanıtımıyla dolup taşıyordu. Eşimin memleketi olan ve temelde tütüncülükle uğraşan Akhisar?da bile bilgisayarla ilgilendiğimi duyan kişiler bana Windows 95?i soruyorlardı. Böyle bir şey daha önce yaşanmadığı gibi daha sonra da yaşanmadı.
Windows serisinden ilk işletim sistemi Windows 1.0 olarak 1985 yılında piyasaya çıktı. 1.0 bir task-switcher idi. Yani, birden fazla programı açabiliyor ama aynı anda tek bir program aktif oluyordu. Diğerlerinin çalışması askıya alınıyordu. Kullanıcı askıya alınan bir programa geçtiğinde bu sefer o program kaldığı yerden çalışmaya başlıyordu. Bu ilk versiyon hiç tutulmadı. Tutulmamasının nedeni o sıralarda kullanılan bilgisayarların donanım olarak yetersiz kalmasıydı. PC?ler o zamanlar grafik düşmanı bir yapıya sahiptiler. Ayrıca, bilgisayarlar henüz bugünkü yaygınlık düzeyine ulaşmamışlardı ve o zamanın kullanıcıları daha teknik kökenli kişiler idi. Bu da grafik arabirimli bir sistemden yararlanabilecek insanların azlığı anlamına geliyordu. Son bir neden ise Microsoft?un grafik kullanıcı arabirimleri üzerine çok deneyimli olmamasıydı.
Bu ilk sürüm, 1984 yılında piyasaya çıkan Apple Macintosh?a karşılık olarak üretilmişti. Macintosh başından itibaren grafik temelli olarak tasarlanmıştı. PC?ler ise metin temelli sistemler olarak işe başladılar. Bu da grafik temelli bir yapıya uyarlanmalarını zorlaştırdı. Bu yapı bugün bile olumsuz etkilerini hissettiriyor.
Windows 2.x
Microsoft?un ikinci girişimi de pek parlak olmadı. 1987 Yılında piyasaya sürülen Windows 2.0 grafik temelli olmasına karşın doğru dürüst ikon bile kullanmıyordu. Daha çok grafik ortamında gerçekleştirilmiş metin temelli bir sistemdi. Çünkü daha iyi grafikler için gereken güçlü işlemciler halen ortada yoktu. Gerçi Intel 1985 yılında 80386?yı çıkarmıştı ama piyasada en yaygın işlemciler 8088 ve 80286 idi. Zaman içinde Microsoft, Windows?un 80286 işlemcilerinin gücünden yararlanmasını sağlayan Windows/286 versiyonunu çıkardı. Bütün dezavantajlarına karşın bu versiyonun kullanımı yine de DOS?tan daha kolaydı ve kullanıcının birden fazla programı çalıştırabilmesine olanak sağlıyordu. Ama hem 8088 versiyonu hem de 286 versiyonu halen birer task-switcher?dı. Çokgörevli (Multitasking) bir yapıda değildi. Task switching?de birden fazla program çalıştırılabilir ama yalnızca öndeki program iş yapar. Arka plandaki programların işleyişi askıya alınır. Çokgörevli çalışmada ise hem ön hem arka plandaki programlar çalışmalarını sürdürürler. 1988?de çıkartılan Windows/386 versiyonunda çokgörevlilik sağlanıyordu. Ama çokgörevlilik var çokgörevlilik var. Windows/386 ile gelen (ve Windows NT ile Windows 95?e kadar süregelen) çokgörevlilik işbirlikçi bir çokgörevlilik (cooperative multitasking) idi. Işbirlikçi çokgörevlilikte birden fazla program aynı anda çalışabilir. Arka plana alınan programların çalışması devam eder. Programlar birbileri ile iyi geçinmek yani, işbirliği yapmak zorundadırlar. O anda çalışan bir program bir süre sonra CPU zamanı, sabit disk, COM portları vb. sistem kaynaklarını diğer programlara sunarak onların da çalışmasını sağlar. Ama kötü yazılmış bir program bütün sistem kaynaklarına el koyabilir. Diğer programların çalışıp çalışmamasına yalnızca o program karar verebilir. Buna karşılık Windows 95?de ve Windows NT?deki çokgörevliliği işletim sistemi yönetir. Hangi programın hangi sistem kaynağına ne kadar süre ile sahip olacağını işletim sistemi belirler. Programlar için işletim sistemi tarafından belirlenen süre sonunda işletim sistemi devreye girer ve sistem kaynaklarını bir diğer programa aktarır. Bu türden çokgörevliliğe önceden belirlenmiş çokgörevlilik denir (preemptive multitasking).
Windows 2.0?ın üç versiyonu da piyasada tutulmadı. Üç versiyonun da kullanıcı arabirimi yeterince basit ve kullanışlı değildi. Ayrıca üçü de yeterince güvenilir değildi
Windows 3.x
1990 yılının 22 Mayıs?ında büyük bir kampanya eşliğinde piyasaya çıkartılan Windows 3.0, önceki versiyonların tersine çok başarılı oldu. Bellek kullanımının gelişmiş olması gibi güçlü teknik özelliklerinin yanısıra kullanıcı arabirimi de olağanüstü gelişmiş idi. Ikonlar ilk kez burada yoğun bir şekilde kullanılmaya başladılar. Birçok kişinin Windows ile özleştirdiği Program Manager arabirimi de bu versiyonda ortaya çıktı. En önemlisi de, birden fazla programın aynı anda oldukça sorunsuz bir şekilde çalışabilmesiydi. Kuşkusuz Microsoft bu versiyonda da bazı ödünler verdi. Örneğin, 8088 işlemcili, düşük konfigürasyonlu bilgisayarların da Windows 3.0?ı çalıştırabilmeleri göz önünde tutulmuştu. 8088?in çalışabileceği son Windows versiyonu Windows 3.0 oldu.
Windows 3.0 piyasada çok iyi karşılandı. Ama kullanıcıların sayısının artmasıyla birlikte sorunlar da ortaya çıkmaya başladı. Çıkan sorunların büyük kısmı düşük konfigürasyonlu makinalar düşünülerek verilen ödünlerden kaynaklanıyordu. Örneğin, Windows 3.0 gerçel modda (real mode) çalıştırılabiliyordu ama bu bu modda hiç de güvenilir değildi. Işletim sistemi bu modda çalışırken kötü yazılmış bir program sistemi çökertebilirdi. Korunmalı modda (protected mode) çalışan bir işletim sistemi ise bu türlü programların sisteme zarar vermesini daha iyi engelleyebilirdi.
Bir başka sorun da ünlü geri dönülemez uygulama hatasıydı (unrecoverable application error, UAE). Bu hataların çoğunda Windows?un bir kusuru yoktu; programlar bir dosyayı açmaya çalışmadan önce böyle bir dosyanın var olup olmadığını kontrol etmiyorlar ya da olmayan bir sistem kaynağına ulaşmak istiyorlar ya da buna benzer bir hata yapıyorlar ve sistem çöküyordu.
Bütün bu sorunlara çare olarak Microsoft, Windows 3.1 versiyonunu çıkardı. Bu versiyonda kullanıcıya yeni gelen çok az şey vardı. Ama asıl farklılık küçük ayrıntılarda ve sistemin derinliklerindeydi. Bu versiyonda UAE?ler hemen hemen ortadan kayboldular. Çünkü Microsoft artık sistemden bir şey istendiği zaman isteğin geçerli olup olmadığını araştıran mekanizmalar eklemişti. Bir uygulama diskte yer alan bir dosyayı istediği zaman ya da benzer bir iş yapmak istediği zaman Windows ilk önce işin yapılabilirliğini kontrol ediyordu (örneğin, istenilen dosyanın diskte yer alıp almadığını kontrol ediyordu). Bu özellik birçok yazılımevinin ürettikleri yazılımları gözden geçirmesini sağladı. Yazılımevleri sorun çıkarmaya aday kısımları inceleyip yazılımlarını neredeyse yeniden yazdılar. Bütün bunlara karşın yine de sistem bütünlüğünü bozan uygulamalar ortaya çıkıyordu. Bu durumda sonuç genel koruma hatasıydı (general protection fault, GPF). Yani, UAE?ler ortadan kalktı ama şimdi de yerine GPF?ler geldi. Bir sorun çıktığı zaman kullanıcı açısından değişen tek şey gelen mesajdı. Ama Windows 3.1, GPF?lerden sonra kendini daha kolay toparlayabiliyordu. Windows donup kalmadan önce en azından hatanın nedenini gösterebiliyordu. UAE?ler ise genelde Windows?un tanımlayamadığı hatalardan çıkıyordu. Bu fark, üreticilerin programlardaki hataları daha kolay görebilmelerini sağlıyordu. Bunların yanısıra ortalama bir kullanıcı şimdi çok daha az hata, yani GPF, ile karşılaşıyordu.
Microsoft Windows 3.1 ile birlikte daha da gelişmiş ve güvenilir hale getirilmiş bir bellek düzeni sağladı. Windows 3.1 sanal bellek kullanabiliyordu; yani, sabit diskin bir bölümü RAM bellek gibi kullanılabiliyordu. Microsoft bu ek belleğin bir bölümünü daha gelişmiş, 16 bitlik aygıt sürücüleri sağlamak için kullandı. 16 bitlik sürücüler korunmalı modda çalıştığı için Windows 3.1 8088?li bir makinada kullanılamıyordu.
Windows for Workgroups 3.11
Windows 95 öncesi en güvenilir, en sağlam Windows versiyonu Windows for WorkGroups 3.11 oldu. Bu versiyon aslında öncekilere göre çok daha iyi bir ağ desteği sağlamak için üretilmişti ama özellikleri yüzünden tek başına çalışan PC?lere bile yüklenmeye başladı
Bu versiyon ile birlikte, birkaç bilgisayarın bulunduğu ortamlarda, başkaca bir ağ işletim yazılımı kullanmadan bir bilgisayar ağı oluşturmak mümkün oluyordu. Ayrıca elektronik posta için Microsoft Mail ve iş düzenini sağlamak için Scheduler programını da içeriyordu.
3.11?in daha güvenli olmasının nedeni ise önceki versiyonlarda bulunan hataların (bug) çoğunun temizlenmesiydi. Ayrıca 32 bitlik disk erişimi gibi yeni ve performansı arttıran özellikleri de vardı. Ama halen yeterince güvenilir bir sistem değildi. Olması da mümkün değildi. Çünkü önceki Windows versiyonları gibi o da disk erişimi ve benzeri işler için DOS?u kullanıyordu. Korumalı modda çalışan, birden fazla programı aynı anda çalıştıran bir işletim sistemi alt düzey işler için gerçel mod, tek-görevli bir sistemi kullanırsa sorunların çıkması kaçınılmaz.
Windows NT
DOS ve OS/2?dan sonra Microsoft?un üçüncü tam-tekmil işletim sistemi denemesi Windows NT oldu. Windows NT?yi Digital?dan transfer edilen bir grup yazdı. Digital?ın WAX bilgisayarlarında kullanılan VMS işletim sistemini de bu grup yazmıştı (Windows NT?nin kısaltması WNT?yi oluşturan harflere bakarsanız herbirinin VMS kısaltmasındaki harflerden sonra geldiğini görürsünüz). Windows NT, daha önceki Windows yazılımlarından farklı olarak DOS?a gerek duymayan tam bir işletim sistemi idi.
DOS/Windows ikilisi varken NT?ye niçin gerek duyulduğu sorulabilir. Bu sorunun yanıtını şöyle verebiliriz. DOS ortada durduğu sürece güvenilir, hızlı, çağa uygun bir işletim sistemi oluşturmak hayaldi. Yaratılan herşey DOS?un kısıtlamaları yüzünden yetersiz kalmaya mahkumdu. Microsoft bu yazılımlarla büyük işyerlerine giremiyor, ciddi uygulamalar gerçekleştiremiyordu. Büyük işyerleri kullanımı kolay, grafik arabirimli ama çok daha güvenilir ve güçlü bir işletim sistemi istiyorlardı.
Windows NT güvenilir bir yapıdaydı. Buradaki çok görevlilik yapısının preemptive olduğunu yukarda söylemiştik. Ayrıca uygulamaların doğrudan donanıma (disk, görüntü kartı, faks-modem kartı vb.) erişimi yasaklanmıştı. Daha önceki uygulamalar performanslarını arttırmak için DOS?u atlayıp donanıma doğrudan erişmek eğilimindeydirler. Bu da sistemin kararlılığını (stability) azaltıyordu. NT?de ise uygulamalar donanıma doğrudan erişemiyordu. İsteklerini çekirdek (kernel) modunda çalışan yönetici hizmetlere iletiyorlardı. Yönetici hizmetler isteklerin uygun olup olmadığına bakıyor, uygunsa istekleri yerine getirip sonuçlarını uygulamalara bildiriyordu.
NT aynı zamanda Microsoft?un ilk 32 bitlik işletim sistemi idi. PC dünyasında 32 bitlik ilk işlemci, 80386, 1985 yılında piyasaya çıkmıştı ama 1993 yılına kadar bu işlemcinin kaynaklarını sonuna kadar kullanan bir işletim sistemi üretilememişti. İşletim sisteminin 32 bitlik olması işlemlerin daha hızlı yapılabilmesini ve daha büyük belleklere daha kolay erişimi sağlıyordu.
NT başlangıçtan itibaren çokişlemcili (multiprocessing) çalışabiliyordu. Yani, bilgisayarda birden fazla işlemci bulunuyorsa işleri eşit bir şekilde bu işlemcilere dağıtabiliyor ve sistem performansını arttırabiliyordu. Daha önceki işletim sistemlerinin tersine NT, Intel işlemcilerine mahkum değildi. NT, Digital?ın Alpha, Silicon Graphics?in MIPS ve IBM/Motorola/Apple üçlüsünün PowerPC işlemcisi ile de çalışabiliyordu (yakın zamanlarda MIPS ve PowerPC işlemcileri için NT geliştirilmesi işine son verildi). Bu işlemciler arasında halen en iyi fiyat/performans oranı Intel işlemcileri ile elde ediliyor. (Burada Intel derken aslında bir platformu, i386 platformunu, kastediyorum. Intel firmasının işlemcileri dışında, AMD ve Cyrix işlemcileri de bu paltformda yer alıyorlar. Hatta AMD işlemcileri çoğu zaman performans bakımından Intel işlemcileri geçiyorlar.)
Microsoft, NT?yi ilk olarak sunucu bilgisayarlarda kullanılmak üzere tasarladı. Bu yüzden de üzerinde çalışabileceği bilgisayarın oldukça yüksekti özelliklere sahip olması gerekiyordu. Hızlı bir işlemci ve en az 16MB bellek istiyordu. Yeni bilgisayar alanlar bu özellikleri küçümseyebilirler; çünkü aldıkları bilgisayarlar şu anda en azından 633MHz?lik bir Celeron?a ve 64MB?lık bir belleğe sahip. Ama NT?nin ilk çıktığı zamanlarda (çok değil, 1993 yılında) bu özellikler küçük bir servet anlamına geliyordu.
Microsoft?un daha sonra geliştirdiği workstation versiyonu NT?nin daha düşük konfigürasyonlu makinalarda da çalışmasını sağladı. Düşük konfigürasyon diyoruz ama yine de bu versiyon için de en az 12 MB gerekiyordu. Bu versiyon daha az kullanıcı, daha az sayıda bir arada çalıştırılabilecek işlemci vb. şeyler demekti.
Paranın ikinci planda, güvenilirlik ve performansın ilk planda kaldığı büyük işyerlerinde, devlet dairelerinde NT ilgi çekmeyi başardı. Ama bütün parlak özelliklerine karşın NT bir türlü yayılamadı. Değerlendirmelerde hep yüksek puanlar ve övgüler alıyordu. Ama Microsoft?un istediği yalnızca güzel değerlendirmeler değildi. Microsoft, hiç bir zaman kısıtlı pazarlara yönelik üretim yapan bir firma olmadı. Onun için başarı, ürününün 10-20 bin değil, 10-20 milyon adet satmasıydı. NT, hem donanım olarak zamanına göre üstün ve pahalı bir donanım gerektirmesi, hem de bu işletim sistemi için yazılmış 32 bitlik programların piyasada bulunmaması yüzünden bir türlü yaygınlaşamıyordu.
Bu ortamda ne yapılabilirdi? Ya bu projenin batak olduğuna karar verip başka şeyler denenecekti ya da bu ürünün yaygınlaşmasını kolaylaştıracak yeni hamleler düşünülecekti. Microsoft daha önce de, daha sonra da, batak projelerin içerisine girmiş ama vazgeçmesini bilmişti. NT?de durum değişikti: Microsoft, NT?ye güveniyordu; vazgeçmek niyetinde değildi. Microsoft?a göre NT sıradan bir ürün değildi. Firmanın bütün geleceğini bağladığı bir projeydi bu.
NT?den vazgeçilmeyecekse onun yaygınlaşmasını engelleyen unsurlar temizlenmeliydi. Kullanıcıları hem donanım olarak hem de yazılım olarak NT?ye uygun bir duruma getirmek gerekiyordu.
Microsoft?un donanım tarafında çok şey yapması gerekmedi. 1990?ların ortalarından başlayarak yarıiletken teknolojisinde akıl almaz ilerlemeler gerçekleşti. Birim hacme daha çok devre sığdırılırken fiyatlar sürekli düşmeye başladı. Birkaç örnek vermek isterim: 1995 Temmuzunda, Intel?in Türkiye temsilcisi olan Empa?da çalışırken, Pentium 75 işlemciyi 350 dolardan satıyorduk. Şu anda ise 1.4GHz?lik bir Pentium IV işlemci hemen hemen aynı fiyata satılıyor. O zamanlar bilgisayarımın belleği 4MB iken şimdi yalnızca görüntü kartımın belleği 16MB. Yine o zamanlar bilgisayarımın sabit diski 80MB iken şimdi tam 45GB?lık bir sabit diskim var.
Yazılım tarafında ise yapılacak çok şey vardı. Yazılım firmaları 10-20 bin satan NT için 32 bitlik program üretmeye yanaşmıyorlardı. Haklıydılar. Öbür yanda yüzlerce milyona ulaşan bir Windows 3.1 piyasası vardı. Onları ikna etmek için denklemin öbür tarafına, yani kullanıcı tarafına geçmek ve önce onları 32 bitlik ortamlara taşımak gerekiyordu. Eğer kullanıcılar 32 bitlik bir işletim sistemine geçerlerse yazılım firmaları da 32 bitlik program üretmeye başlayacaklardı. Buradan hareket eden Microsoft, tarihinin en masraflı tanıtım kampanyası ile duyurduğu Windows 95?i üretti. 1995?in Ağustos ayında bu işletim sistemi piyasaya çıkarken Türkiye?de Ali Kırca Taksim?den canlı yayın ile bu ürünü tanıtıyordu. Gazeteler, dergiler, televizyonlar bu yeni ürünün tanıtımıyla dolup taşıyordu. Eşimin memleketi olan ve temelde tütüncülükle uğraşan Akhisar?da bile bilgisayarla ilgilendiğimi duyan kişiler bana Windows 95?i soruyorlardı. Böyle bir şey daha önce yaşanmadığı gibi daha sonra da yaşanmadı.