Microsoft işletim sistemlerinin tarihi:

MS-DOS ürün devamı MS-DOS ve PC-DOS
Windows 1.0
Windows 2.0
Windows 2.1 (Windows/286 ve Windows/386)
Windows 3.0, Windows 3.1, Windows 3.11 (ve Windows for Workgroups)
Windows 95 (Windows 4.0)
Windows 98 (Windows 4.1), Windows 98 Second Edition
Windows Millennium Edition (Windows 4.9)
OS/2 ürün devamı
16-bit Sürümler: OS/2 1.0 (CLI only), 1.1, 1.2, 1.3
32-bit Sürümler: OS/2 2.0, 2.1, 2.11, 2.11 SMP, Warp 3, Warp 4
32 bit Sürümlere kadar: OS/2 Warp 5
Şimdiki NT-Dizisi ürün devamı
Windows NT 3.1, 3.5, 3.51
Windows NT 4.0
Windows 2000 (Windows NT 5.0)
Windows XP (Windows NT 5.1)
Windows Server 2003 (Windows NT 5.2)
Gelecek NT-Dizisi ürün devamı
Windows Vista (Windows NT 6.0)
Windows Longhorn Server (ürünün sonraki adı belli değil)
Windows Vienna (önceden Blackcomb) (Windows NT 6.1/7.0) (ürünün sonraki adı belli değil)
Windows 1.01
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.0
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. 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 286
Windows 3.0
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çek modda (real mode) çalıştırılabiliyordu ama 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 3.1