Pierwsze komputery obywały się bez systemu operacyjnego – wszystkim zarządzał program napisany przez użytkownika. Wkrótce jednak stwierdzono, że jest to niewygodne i nieracjonalne, bo w wielu programach trzeba było powtarzać te same fragmenty kodu – np. obsługujące drukarkę. Ponadto takie uruchamianie programów na „gołym” komputerze (bez systemu operacyjnego) nakładało na programistę mnóstwo obowiązków, m.in. związanych z koniecznością „ręcznego” rozmieszczania danych w pamięci. W dodatku sterowanie takim programem (czyli jego komunikacja z użytkownikiem) było bardzo niewygodne.

Pierwsze próby automatyzacji zarządzania komputerem

John Presper Eckert i John Mauchly (konstruktorzy pierwszego elektronicznego komputera o nazwie ENIAC), o których pisałem w jednym z wcześniejszych felietonów, byli na dobrej drodze stworzenia systemu operacyjnego. Gdy założyli w 1949 r. firmę Eckert-Mauchly Computer Corporation (EMCC), przejętą w 1950 r. przez producenta maszyn do pisania Remington Rand, mieli ambicję wytwarzać komputery ogólnego przeznaczenia. Wszystkie wcześniejsze maszyny liczące powstawały na konkretne zamówienie i były dostosowane do potrzeb zamawiającego klienta (na początku głównie wojska), natomiast komputer UNIVAC, opracowany w EMCC i produkowany przez Remington Rand, miał się nadawać dla wszystkich i do wszystkiego. Żeby ułatwić tym przyszłym użytkownikom pracę, działaniem tego komputera sterował program EXEC (a potem EXEC II). Nie był to jednak jeszcze system operacyjny w nowoczesnym rozumieniu, ale krok został wykonany w dobrą stronę. Niestety – jak pisałem we wcześniejszym felietonie – Eckert i Mauchly przegrali proces o uznanie ich patentu i produkcję komputerów UNIVAC przerwano po wytworzeniu zaledwie 40 maszyn. Siłą rzeczy także program EXEC przestano wytwarzać i pierwszeństwo we wprowadzeniu systemu operacyjnego przypadło innej osobie i innej maszynie.

Director Tape w symulatorze lotów

Pierwszy pokaz programu pełniącego rolę systemu operacyjnego (w dzisiejszym rozumieniu tego słowa) miał miejsce 8 maja 1955 r. Program ten nazywał się Director Tape i został napisany przez Douga Rossa dla komputera Whirlwind I.

Nie wspominałem wcześniej w tym cyklu felietonów o tej maszynie, bo była to unikatowa konstrukcja przeznaczona do specjalnych celów – komputer ten pełnił rolę symulatora samolotów dla przyszłych pilotów. Whirlwind I został zbudowany na MIT i prawdopodobnie był pierwszym komputerem współpracującym z człowiekiem w trybie interaktywnym – to znaczy reagującym bezpośrednio, w czasie rzeczywistym, na polecenia i sygnały przesyłane przez użytkownika. Wszystkie wcześniejsze komputery pracowały wsadowo: człowiek dostarczał im dane oraz program do ich przetwarzania i po jakimś czasie otrzymywał wyniki. W samym procesie obliczeniowym użytkownik nie uczestniczył.

Komputer Whirlwind I był inny. Budowano go przez osiem lat (od 1944 do 1952 r.) i zastosowano w nim wiele unikatowych rozwiązań, np. przyspieszanie obliczeń poprzez wykonywanie ich równocześnie na 16 arytmometrach. Z całą pewnością była to ciekawa i oryginalna maszyna. Jednak z punktu widzenia historii rozwoju narzędzi informatyki była to boczna gałąź przebogatego drzewa systemów komputerowych, dlatego nie wspomniałem o niej wcześniej. Ale teraz musiałem przywołać tę nazwę, bo właśnie na tym komputerze uruchomiono i eksploatowano pierwszy system operacyjny.

Inne pionierskie systemy operacyjne

Director Tape „przetarł drogę”, dlatego twórcom kolejnych systemów operacyjnych było już łatwiej. Następnym w kolejności systemem (uruchomionym w tym samym roku co Director Tape) był stworzony przez inżynierów firmy GM (produkującej głównie samochody!) system General Motors OS. Im także nie odpowiadał tryb pracy wsadowej i ręczne sterowanie pracą komputera, dlatego stworzyli program, który przejmował większość czynności związanych z organizacją obliczeń, a oni mogli się skupić na projektowaniu nowych aut. Program General Motors OS został zainstalowany na komputerze IBM 704, a ponieważ komputer ten był w latach 50. XX wieku dosyć popularny, to liczni inni użytkownicy tego komputera też chcieli mieć ten system. Firma GM weszła więc w spółkę z North American Aviation i stworzyła pierwszy system operacyjny przeznaczony do sprzedaży użytkownikom komputerów IBM 704. Nazywał się GM-NAA I/0 i był sprzedawany od 1956 r. Cieszył się dużą popularnością i uznaniem użytkowników.

Firma General Electric na tym nie poprzestała. Zaczęła budować własne komputery, przełamując monopol IBM, i dla swoich komputerów GE-635 stworzyła na początku lat 60. system o nazwie  GECOS (General Electric Comprehensive Operating Supervisor). Całkiem niezły!

Można też podać inne przykłady pionierskich systemów operacyjnych. Firma Burroughs Corporation, znana wcześniej z produkcji maszyn do mechanicznego dodawania, mnożenia i księgowania, w 1953 r. zaczęła produkować komputery – głównie przeznaczone dla banków. I dla jednego ze swoich komputerów, tzw. B5000, w 1961 r. stworzyła program o nazwie MCP (Master Control Program), który był całkiem udanym systemem operacyjnym.

Ale komputerów firm General Electric czy Burroughs było niewiele, natomiast na rynku bezspornie przodowała firma IBM. Popularność jej komputerów spowodowała, że szczególnie wiele najstarszych systemów operacyjnych tworzonych było przez użytkowników komputerów IBM, bo sam producent nie dostarczał jeszcze oprogramowania do ich wygodniejszej obsługi. W związku z tym np. pracownicy Bell Labs – George Mealy, Gwen Hansen i Wendy Lee Mammel – dla posiadanego przez siebie komputera IBM 704 w 1957 r. stworzyli system BESYS (Bell Operating System), który był stosowany przez wiele działów Bell Labs przez ponad dziesięć lat, również po rozpoczęciu pracy na nowszych komputerach: IBM 709X.

Używany na Uniwersytecie Michigan komputer IBM 704 (a potem IBM 7090) został w 1958 r. zaopatrzony przez pracowników tego uniwersytetu w system UMES (University of Michigan Executive System) dostosowany do obsługi dużej liczby małych prac studenckich. Podobne systemy były budowane na innych uniwersytetach: na słynnym Uniwersytecie Stanforda zbudowano systemy ORVYL i WYLBUR, a w Montrealu powstał system MUSIC (McGill University System for Interactive Computing).

Również naukowcy z MIT dostrzegli na początku lat 60. XX wieku, że po burzliwym rozwoju języków programowania (opisanym we wcześniejszych felietonach) następny etap rozwoju informatyki związany będzie z możliwością korzystania z jednego komputera przez wielu użytkowników. Żeby taki tryb pracy zorganizować, konieczny był system operacyjny (dziś byśmy go nazwali – wielodostępny). Naukowcy MIT (Fernando Corbató i John McCarthy) stworzyli taki system: najpierw dla komputera IBM 709, a potem dla większego komputera IBM 7090. Takich przykładów było więcej.

Przebudzenie giganta

W 1960 r. właściciele IBM doszli wreszcie do wniosku, że nie będą dłużej tolerować sytuacji, w której to inne firmy zarabiały na produkcji oprogramowania do komputerów przez nich budowanych. Wraz z wprowadzaniem na rynek komputerów serii IBM 360 (pisałem o nich w jednym z wcześniejszych felietonów) IBM zaproponował też użytkownikom własny system operacyjny: OS/360. Tworzenie tego systemu przebiegało w sposób typowy dla IBM: do pracy zaangażowano ponad 1000 programistów i wydano mnóstwo pieniędzy. Warto dodać, że szefem tego ogromnego zespołu, który stworzył OS/360, był Frederick P. Brooks Jr. Prace nad systemem OS/360 przedłużały się, w związku z czym dosyłano coraz więcej pracowników, ale to tylko pogarszało sytuację. Brooks po latach opisał swoje ówczesne doświadczenia w książce „The Mythical Man-Month: Essays on Software Engineering”. Sformułował w niej tezę, że jeśli projekt informatyczny się opóźnia, to dołączanie nowych wykonawców powoduje, że opóźnienie jeszcze wzrasta. Teza ta, znana jako „prawo Brooksa”, została potem wielokrotnie potwierdzona.

W końcu jednak stworzono system, który górował nad konkurencją we wszystkich dziedzinach. System OS/360 ostatecznie zaczęto dostarczać w 1966 r. To była przełomowa data. Ponieważ w skład serii IBM 360 wchodziły komputery o bardzo zróżnicowanych rozmiarach i mocach obliczeniowych, system OS/360 miał swoje odmiany dla tych mniejszych i większych maszyn, ale użytkownicy tych komputerów nie widzieli żadnej różnicy, bo obsługa komputera i wymagania dotyczące programów użytkowych, które system obsługiwał, były identyczne. Jednak na dużej maszynie wszystko biegło o wiele szybciej niż na małej.

Warto przypomnieć, że sukcesy komputerów serii IBM 360, będące m.in. skutkiem wykorzystania systemu operacyjnego OS/360, spowodowały, że w latach 80. XX wieku ZSRR nakazał we wszystkich krajach komunistycznych produkcję komputerów serii Riad, będących naśladownictwem serii IBM 360. Było to niekorzystne dla Polski, bo nasze zakłady Elwro produkowały wtedy bardzo dobre komputery Odra 1305 i minikomputery Odra 1325, świetnie się sprzedające w kraju i za granicą, bo wyposażone były w bardzo dobry system operacyjny George (kupiony w angielskiej firmie ICL). Ale nakaz był twardy i musieliśmy produkować komputery Riad R-32 pracujące pod systemem wzorowanym na OS/360.

System OS/360 miał wiele zalet, ale jego tworzenie zajęło – jak wspomniałem wyżej – znacznie więcej czasu, niż planowano. Psuło to sprzedaż komputerów IBM 360, które elektronicy wyprodukowali wcześniej, ale dla których na początku brakowało nowego systemu operacyjnego i pracowały na starych wersjach, co skwapliwie podkreślała konkurencja. Dlatego IBM w desperacji w ostatnim dniu 1964 r. ogłosił, że dostarczy do komputerów serii 360 uproszczoną wersję systemu operacyjnego określanego jako DOS/360. System ten w stosunku do wprowadzonego później OS/360 miał liczne ograniczenia, ale przez to był łatwy do opanowania i przyjazny. Dobrze działał nawet na najmniejszych komputerach serii IBM 360 i do większości potrzeb użytkowników był całkowicie wystarczający. W rezultacie w latach 1964–1966 był najczęściej używanym systemem operacyjnym na świecie, a później – nawet po udostępnieniu pełnego OS/360 – wielu użytkowników nadal używało DOS/360, bo ten system po prostu dał się lubić!

Autor jest profesorem AGH w Krakowie