1890-1950 - Sisteme özgü çalışma
En eski bilgisayarlarda, bir işletim sisteminin şimdi içine yerleştirilenlerle aynı olduğu görülmüştür. Siz (operatör) aynı zamanda işletim sisteminin de bir parçasıydınız. Kayıt anahtarlarını (veya bir delikli kart kullandı) ve fiziksel olarak değiştirilmiş veri yolu kablolarını (eski moda telefon operatörü istasyonunu düşünün) çevirdiniz ve bellek doğrudan (ampulün (günün monitörü)) ve yazıcılarla (fiziksel kablolar aracılığıyla) bağlandı uzun süreli saklama) program çıktısının aydınlanıp doğrudan aygıta, çıktı bellek arabelleğine yerleştirildiği şekilde yazdırılacağı şekilde. Bunlar için gerekli bir şoför yoktu, çünkü (bu fiziksel tellerin çalıştırılmasından dolayı) 'sadece işe yarıyorlardı' (bugünlerde bir monitör olarak böyle bir şey de yoktu). Aslında, dijital çağda bir dijital ekran icat edilinceye kadar bu çağda hala birkaç on yıl olacaktı, böylece kayıt defterine daha önce girdiğiniz sayıları ve çıktıyı ondalık sayılar olarak görebiliyordunuz; matbaacılar izleyene kadar bu dönemi yönetti. Doğru çalışması için tam olarak ihtiyaç duydukları şekilde kablolandılar. Bu bölümün hiçbiri mekanikten (1890'lardan) elektrik analoguna (1910'lardan) dijitale (1930'lardan) geçişle pek değişmedi. Bu 'Tak N oyun' mimarisi bu süre zarfında kesme sistemiyle değiştirildi ve doksanlı yılların sonlarına kadar tekrar yüzeye çıkmazdı; Tabii ki o zaman çok daha az takma olurdu. Kesintilerle cihazların CPU zamanı almasına izin verildi ve bu da kullanılmayan mimarilere izin verdi. t donanıma doğrudan bağlı, ancak bunun x86 kemerinde (ve daha yenisinde) gördüğümüz düzenli süreç olması için birkaç nesil sürdü; ilk sistemler genellikle korkunç yarış koşulları, donanım uyumluluğu \ gecikme problemleri ve kesintilerin söz konusu olduğu diğer garip davranışlarla karşılaştı. Çünkü her makine bu dönemde radikal olarak farklı (deneysel) mimariler kullandı; neredeyse tüm aygıtlar üzerinde çalıştıkları makine için özel olarak üretildi.
1950-1973 - Bir sistem içinde çalışma
Bu çağ, gerçek bir işletim sistemi hakkında konuştuğumuzda düşündüğümüz özelliklerin çoğunun ortaya çıktığını gördü. Hata ayıklama, programlama dilleri, çoklu kullanıcılar, çoklu görevler, terminaller, disk tipi sürücüler, ağ iletişimi, bileşenlerin standardizasyonu vb. Hepsi bu dönemde tanıtıldı. Bu sefer, bunun çoğunun standardizasyonuna doğru büyük bir sıçrama gördü, bu da daha fazla standartlaştırılmış cihazlara sahip olduğumuz anlamına geliyordu; ancak her bir işletim sistemi için her bir işletim sistemi el yapımıydı; . Bu süre zarfında, bir işletim sisteminin ne olduğu konusunda önemli bir gri alan vardı, çünkü farklı mimariler bir şeyi farklı şekilde ele alıyordu ve daha genel amaçlı bir makine aynı işleri yürütmek için donanım içeren bir makineden çok daha fazla işletim sistemine ihtiyaç duyuyordu. Gerçek şu ki, donanım her zaman yazılımdan daha hızlı olacak ve pratik olarak yazılımda yapılan her şey teorik olarak donanımda yapılabilir (bu, neredeyse her şeyden neredeyse saf donanım sürümleri yapmamızı kısıtlayan, maliyet \ esneklik \ boyut \ zaman \ zamandır vb. gün). Belirli bir bilgisayar veya bilgisayar türü için bir işletim sistemi yapıldı; başka bir yerde çalışmayacaktı. Her yeni bilgisayar tasarımında, tüm düşük seviyeli işletim sistemi yazılımlarının sıfırdan belirli bir makine modeliyle çalışmak üzere yeniden yazılması gerekiyordu. Bu sürenin sonuna yaklaşırken, kısa süre sonra bu paradigmayı değiştirecek yeni bir işletim sistemi ortaya çıktı, UNIX, Bell Thompson’da Ken Thompson ve Dennis Ritchie tarafından yazılmıştı.
1973 - Sistemler arası işletim
Tek bir program bunların hepsini değiştirdi, ancak UNIX değildi. C derleyicisiydi (Bell Labs tarafından kesildikten sonra Ken Thompson ve Dennis Ritchie tarafından ünlü bir garajda yapıldı). Bu noktaya kadar, kod yazdığınız her zaman ya makine koduydu (makinenin doğrudan anladığı ama taşınabilir olmadığı kod) ya da kodunuzu bayt koduna derleyen bir dilde yazılmıştır (kod, başka bir program tarafından olduğu gibi yorumlanmıştır). koşar). C'nin beraberinde getirdiği işletim sistemleri için en büyük fark, makine koduna çapraz derleme olarak bilinen şeyi yapma yeteneği idi. Bu, kodun bir kez yazılabileceği ve derleyiciye o makine için yazılmış olduğu sürece birçok farklı makine tipinde çalıştırılmak üzere derlenebileceği anlamına geliyordu. İşletim sistemleri makine kodunda yazılmalıdır, çünkü makine kodu tam anlamıyla makinenin bildiği tek koddur.
Ken ve Dennis'in UNIX çekirdeğini ilk kez modern anlamda gerçek bir işletim sistemi doğmuş olan bir C derleyicisi kullanarak derleyene kadar olmadığını söyleyebilirim. Bundan önce, bir işletim sistemi ya fiziksel bir nesne ya da belirli bir makine için özel olarak tasarlanmış önceden başlatılmış bir bellek alanı parçasıydı. Sisteme yeni cihazlar eklemek, kelimenin tam anlamıyla 'çekirdek' kodunun yeniden yazılmasını gerektiriyordu. Şimdi, belirli bir makine için tasarladıkları UNIX OS, HER ŞEYİ yeniden yazmadan yeniden derlenebilir ve diğer makinelerde çalıştırılabilir (bu makine, önyükleme ortamından bir C derleyicisini derleyebildiği sürece, işletim sisteminin geri kalanı, nispeten yüksek seviye C kodu).