Autorem informacji jest Paweł Boguś

Historia systemu CP/M

Zawartość


Wstęp

W roku 1974 Gary Kildall stworzył CP/M - pierwszy dyskowy system operacyjny dla mikrokomputera zbudowanego na bazie mikroprocesora Intel 8080. CP/M odniósł niesamowity sukces, stał się niekwestionowanym standardem oraz platformą łączącą komputery oparte na 8-bitowych procesorach Intel 8080 i Zilog Z80. Wiele firm i programistów tworzyło programy narzędziowe i użytkowe dla tego systemu. Wszystkie te programy mogły być uruchamiane na dowolnej maszynie z zainstalowanym systemem CP/M. Można było złożyć komputer z komponentów różnych producentów i uruchomić na nim CP/M, uzyskując dostęp do niezmiernie szerokiej oferty oprogramowania. Jedną z najbardziej popularnych aplikacji (tzw. killer application) dla CP/M był doskonały edytor tekstu WordStar. Równie znana jest pierwsza aplikacja do obsługi baz danych na mikrokomputerach pracująca właśnie pod CP/M - dBaseII. Oferta oprogramowania dla CP/M była tak obszerna i atrakcyjna, że Microsoft (tak tak, właśnie ten Microsoft) opracował i sprzedawał z wielkim powodzeniem SoftCard dla Apple - moduł sprzętowy pozwalający uruchamiać na "jabłuszku" programy pracujące w środowisku CP/M. Pozycja CP/M była praktycznie niezachwiana, aż do momentu wprowadzenia przez IBM komputera osobistego wyposażonego w system PC-DOS/MS-DOS (patrz rozdział: IBM PC i jego system operacyjny).

CP/M nie był wynikiem wieloletniej pracy i wysiłku zespołu programistów, lecz podobnie jak większość programów w tych pionierskich czasach, dziełem jednego człowieka. CP/M był doskonałym produktem, a zastosowane rozwiązania programistyczne wyniosły go do roli obowiązującego standardu. Należy nadmienić, że CP/M powstał rok przed ukazaniem się w sprzedaży pierwszego popularnego mikrokomputera MITS Altair.

Tak to się zaczęło...

W 1972 roku Gary Kildall otrzymał tytuł doktorski na University of Washington, wstąpił do Marynarki Wojennej (U.S. Navy Naval Reserve) i rozpoczął pracę jako wykładowca "computer science" na United States Naval Post Graduate School w Monterey, California (podobno miał do wyboru to lub wyjazd do Wietnamu). Na uczelnianej tablicy ogłoszeń zauważył reklamę pierwszego mikroprocesora Intel 4004. Ogłoszenie mówiło o "mikrokomputerze" za $25 - co nawet jak na ceny z 1972 roku było wyjątkowo korzystną propozycją (pierwsze egzemplarze i4004 w 1972 były sprzedawane w cenie ok. $200). Tak naprawdę opisywało ono nie cały komputer, lecz pierwszy mikroprocesor - i4004 - zaprojektowany przez Teda Hoffa i jego zespół w firmie Intel . Nowy układ był urządzeniem fundamentalnie innym od dotychczas produkowanych - był uniwersalny, o szerokich możliwościach zastosowania, w przeciwieństwie do wielu wcześniejszych układów, które spełniały wyłączenie wąsko specjalizowane zadania i nie nadawały się do zastosowania w innych urządzeniach niż te, z myślą o których zostały zaprojektowane.

Intel 4004

Cyfra "4" w nazwie "4004" oznacza, że układ pracował operując 4-bitową magistralą systemową. Uzyskanie czegokolwiek użytecznego przy takich ograniczeniach było trudne (4 bity wystarczają do zapisu cyfry z zakresu 0-15), a wydajność pozostawiała wiele do życzenia.

Kildall kupił jeden układ i rozpoczął pisanie programów dla niego. W pierwszych miesiącach 1972 roku Kildall odwiedził zakłady Intela i był zaskoczony, że cały departament mikrokomputerów (microcomputer division), który zajmował się i4004 i nowym układem i8008, składał się z zaledwie kilku małych pomieszczeń. Kildall porozumiał się z Intelem i rozpoczął pracować dla niego jako konsultant jeden dzień w tygodniu. Spędził kilka miesięcy programując i4004 i jak sam stwierdził "nearly went crazy with it".

Zarówno w przypadku i4004 jak i jego 8-bitowego następcy - i8008, do pracy używał minikomputera, na którym uruchamiał emulator mikroprocesora i jego zestawu instrukcji. Programy były pisane na "dużym" komputerze (na emulatorze) i testowane ostatecznie na prawdziwym mikroprocesorze.

Praca nad PL/M

W roku 1973 Kildall brał udział w prezentacji nowego procesora firmy Intel - 8080 i zaproponował Intelowi, że napisze dla niego kompilator języka PL/1 (Programming Language Number 1). Intel zgodził się natychmiast. W owych czasach PL/1 był bardzo często używany na maszynach klasy mainframe.

Niestety, w tym czasie nowych mikroprocesorów było bardzo mało, a Intel dopiero projektował system bazujący na 8080. Kildall nie posiadał komputera z mikroprocesorem i8080 i chociaż preferował pracę bezpośrednio na mikrokomputerze (częściowo także dlatego, że mógłby pracować w domu i nie musiałby dojeżdżać każdego dnia 50 mil do biur Intela), zdany był, podobnie jak w przypadku poprzednich procesorów, na emulator uruchomiony na jednym z "dużych" minikomputerów Digital Equipment PDP-10. Po kilku miesiącach pracy kompilator - napisany w języku FORTRAN na DEC PDP-10 - będący implementacją języka PL/1 i nazwany PL/M (Programming Language for Microprocessors lub Microcomputers) działał bez zarzutu. Jako część zapłaty za wykonaną pracę Kildall otrzymał od Intela "development system" Intellec-8 (z procesorem i8008), który był przez Intela z biegiem czasu stopniowo rozbudowywany m.in. o mikroprocesor i8080, czytnik taśmy perforowanej i monitor.

Pamięć masowa - napęd dysków


UWAGA: Aby otrzymać naprawdę użyteczny system komputerowy Kildallowi brakowało bardzo ważnego elementu - efektywnej pamięci masowej. We wczesnych latach siedemdziesiątych standardowym nośnikiem informacji była papierowa taśma perforowana oraz karty perforowane. Żadne z tych rozwiązań nie było skuteczne w przypadku mikrokomputerów, gdzie stosunkowo niewielka wydajność procesora nakładała się na zawodność i powolność mechanicznych układów do perforacji papieru.

Rozwiązanie pojawiło się w momencie, gdy IBM wprowadził nowy rodzaj pamięci masowej, o wiele szybszej i efektywniejszej. Bazowała ona na technologii zapisu danych jako układu domen magnetycznych na szybko obracających się dyskach pokrytych warstwą odpowiedniego nośnika. Inżynierom IBM udało się znaleźć rozwiązanie pozwalające obniżyć rozmiary i koszty urządzenia - stworzyli napęd dysków elastycznych.

Jeden dysk elastyczny w cenie $5 był w stanie pomieścić taką samą ilość informacji co 70 metrów taśmy perforowanej. Napęd dysków kosztował wówczas około $500. Przemysł rozpoczynał właśnie prace nad uruchomieniem produkcji masowej napędów. Jednym z pionierów tej branży była firma Shugart.


W 1973 roku Kildall w zamian za oprogramowanie otrzymał od Shugarta napęd dysków elastycznych 8" (wg innych źródeł dostał go w prezencie lub dostał od Intela egzemplarz demonstracyjny przekazany Intelowi przez Shugarta). Nie miał do niego kabli, zasilacza ani najistotniejszego elementu - kontrolera, który umożliwiłby podłączenie napędu do posiadanego systemu Intellec-80 i komunikację pomiędzy komputerem a dyskiem. Taki kontroler wtedy jeszcze nie istniał. W tym czasie sprzedawane mikrokomputery wyposażane były w urządzenia pamięci masowej wykorzystujące jako nośnik taśmę papierową lub magnetyczną. Napędy dysków stały się standardowym wyposażeniem mikrokomputerów dopiero kilka lat później.

Próby samodzielnego zbudowania odpowiedniego kontrolera nie powiodły się. Ostatecznie w październiku 1973 Kildall poprosił o pomoc swojego przyjaciela z University of Washington, Johna Torode'a. Torode'owi udało się zbudować kontroler, podłączyć napęd do systemu zbudowanego na bazie procesora 8080 (Intellec-80) i sprawić, żeby zaczął pracować. Powstanie systemu z napędem dysków elastycznych było wielkim skokiem jakościowym. Pojawiła się potrzeba stworzenia odpowiedniego oprogramowania, które umożliwiłoby korzystanie z możliwości jakie oferował napęd, czyli przede wszystkim pozwalało zapisywać pliki na dysku i odczytywać je z dysku.

Narodziny systemu CP/M

Kildall, korzystając z pomocy swoich studentów, używając języka PL/M, rozpoczął pisanie pierwszego dyskowego systemu operacyjnego dla mikrokomputerów. Nazwał go CP/M (Control Program for Microcomputers lub Control Program/Monitor). Jeden ze studentów Garyego, Gordon Eubanks (późniejszy prezes i CEO Symantec'a) napisał interpreter BASICa dla nowego systemu. Wiele elementów (np. niektóre polecenia oraz sposób nadawania nazw plikom) zostało przejętych z systemu operacyjnego DEC PDP-10 VMS. Tworzenie i testowanie CP/M Kildall zakończył w 1974 roku. System był spartański, zawierał jedynie absolutnie niezbędne elementy. Jednak jego prostota doskonale pasowała do bardzo skromnych możliwości ówczesnych mikrokomputerów.

Kildall był bardzo dumny ze swojego dzieła. Zaprezentował Intelowi kompilator PL/M oraz system CP/M i zasugerował cenę $20 000. Intel choć kupił od razu PL/M, nie był jednak zainteresowany dyskowym systemem operacyjnym. Sposób myślenia Intela mógł być następujący: odbiorcami tego typu systemów będą prawdopodobnie inżynierowie, ludzie podobni do Kildalla, który stworzył budzące respekt oprogramowanie dla 4004, 8008 i 8080 nie posiadając żadnego systemu operacyjnego, więc inni również sobie poradzą. Stąd wniosek: system operacyjny przy tak określonej grupie odbiorców nie jest niezbędny, a wydawanie na ten cel $20 000 jest niepotrzebne.


UWAGA: W połowie lat siedemdziesiątych nikt nie uważał, żeby mikrokomputer jak ten, który stał na zapleczu uczelnianej pracowni Kildalla, znalazł duży rynek zbytu. Zastosowanie mikroprocesorów widziano przede wszystkim w inteligentnych urządzeniach użytkowych i przemysłowych, jak np. mieszacze czy gaźniki. Kildall dostrzegał możliwość zainteresowania systemami podobnymi do Intellec-8 ze strony inżynierów, którzy mieliby konstruować owe inteligentne urządzenia użytkowe. W owym czasie trudno jednak było sobie wyobrazić, żeby ktoś chciał i mógł mieć własny "mały komputer" do prywatnego użytku. Wszyscy liczący się producenci wierzyli, że przyszłość należy do wielkich systemów. Dopiero pojawienie się w 1975 r. Altaira częściowo zweryfikowało te nastawienie.

Poglądy kierownictwa firmy Intel były równie konserwatywne. Gdy Kildall i kilku programistów Intela napisało prostą grę dla i4004 i zaproponowało wypuszczenie jej na rynek, jednak szef Intela Bob Noyce zablokował ten pomysł. Jego zdaniem przyszłość mikroprocesorów leżała gdzie indziej: "It's in watches".


Powstanie Intergalactic Digital Research Inc.

Początkowo Kildall nie wiedział co zrobić z właśnie napisanym systemem. Ostatecznie uwierzył w CP/M i mimo niechęci Intela uznał, że znajdą się osoby, dla których będzie on interesujący. Gordon Eubanks przytacza taką rozmowę: "I remember having lunch with him one day and he said to me, 'I don't know what to do with the CP/M.' So I said, 'You had better make it a business.' And he said, 'I am not sure if people will buy it.' I replied, 'Oh Gary, come on...'." Gary był inżynierem, nie businessman'em, ale wkrótce zrozumiał, że właśnie trafił na żyłę złota (ale uwaga, że zarówno CP/M jak i interpreter BASIC'a powstały w instytucji publicznej opłacanej z pieniędzy podatników i posiadały formalnie status "public domain" - kopie oprogramowania można było spotkać w całej Kalifornii).

Gary wraz z żoną (Dorothy McEwen) założyli w 1975 roku firmę pod nazwą Intergalactic Digital Research Inc., skróconą później do Digital Research Inc. i rozpoczęli sprzedaż CP/M. W 1976 Gary opuścił U.S. Navy i zajął się programowaniem, a Dorothy prowadzeniem interesu. Na małe ogłoszenie w "Dr. Dobb's Journal", ku ich zaskoczeniu, otrzymali bardzo dużo zamówień od indywidualnych odbiorców (pakiet z systemem kosztował wówczas $90).

Pierwszy instytucjonalny klient Digital Research - Tom Lafleur z GNAT Computers - zrobił raczej dobry interes kupując nieograniczone prawo do użytkowania CP/M jako systemu operacyjnego na każdym z komputerów wyprodukowanych przez jego firmę za śmieszne $90. W ciągu roku cena wzrosła o faktor 100. Cena pojedynczej licencji CP/M w wersji 1.4 wynosiła $90 (inne źródła mówią o $70). Wkrótce system bardzo się rozpowszechnił i był instalowany na większości komputerów z i8080.

Rozwój rynku mikrokomputerowego (MITS Altair, IMSAI)

W roku 1975 firma MITS zapowiedziała i wprowadziła na rynek pierwszy mikrokomputer oparty na procesorze Intel 8080 (patrz: MITS Altair). W roku 1976 powstało wiele nowych firm, które również zaczęły oferować zestawy mikrokomputerowe do samodzielnego złożenia (tzw. kits), a czasami także gotowe, zmontowane systemy (np. IMSAI). Wiele z tych systemów jako nośnika pamięci używało taśmy papierowej lub magnetycznej, co nie było rozwiązaniem satysfakcjonującym. Potrzebne były napędy dysków oraz dyskowy system operacyjny. Większość producentów nie posiadała doświadczenia ani czasu by tworzyć oprogramowania od podstaw i albo zlecała to innym firmom, albo kupowała gotowy produkt. W momencie pojawienia się i gwałtownego wzrostu zapotrzebowania na mikrokomputery CP/M był odpowiednim produktem na właściwym miejscu i we właściwym czasie.

Rozpowszechnienie CP/M zbiegło się w czasie z ukazaniem się na rynku pierwszych konstrukcji wzorowanych na Altairze. Moment ten można uznać za początek rewolucji w dziedzinie komputerów osobistych. Komputer i stosowny do jego możliwości system operacyjny trafiły do "normalnych użytkowników", przestały być "wiedzą tajemną" dostępną dla wybranych i rozumianą tylko przez wąskie grono fachowców (zobacz notkę o filmie Wargames na stronie IMSAI 8080)

W roku 1976 na rynku mikrokomputerów przodowało dwóch dużych producentów zestawów do montażu, MITS (z modelami Altair)oraz IMSAI (z modelem IMSAI 8080). IMSAI był zainteresowany wykorzystaniem CP/M w swoich produktach. Jednakże pojawił się pewien problem. CP/M obsługiwał jedynie "standardowe", kompatybilne z IBM napędy dysków elastycznych. Napędy IMSAI były z tym standardem nie w pełni zgodne. W tym momencie większość normalnych programistów zmieniłaby po prostu część kodu, dostosowałaby system do innego formatu dysków i sprzedała go.

Zmiany w systemie (BIOS)

Kildall miał lepszy pomysł. Przerobił system, wyodrębnił możliwie najmniejszą, odpowiedzialną na bezpośrednią komunikację ze sprzętem część systemu CP/M (np. odpowiedzialną za adresowanie specyficznego formatu dyskietki) i umieścił ją w oddzielnym module o nazwie BIOS (Basic Input/Output System). Dodał także do systemu edytor, assembler, debugger i kilka programów narzędziowych tworząc w ten sposób kompletne środowisko programistyczne. Dzięki temu DRI mogło tworzyć nowe wersje CP/M, a producenci sprzętu lub użytkownicy mogli dopasowywać je do konkretnych konfiguracji sprzętowych.

System składał się z trzech całkowicie oddzielnych jednostek logicznych:

  • CCP: Console Command Processor - procesor dyrektyw systemowych zapisywanych na konsoli operatora; moduł rozpoznający i wykonujący polecenia wydawane przez użytkownika,
  • BDOS: Basic Disk Operating System - moduł obsługujący podstawowe operacje plikowe związane z zewnętrzną pamięcią dyskietkową,
  • BIOS: Basic Input/Output System - moduł zapewniający obsługę podstawowych operacji wejścia-wyjścia.
W ten sposób system mógł łatwiej zostać zaadaptowany do nowego sprzętu, bez potrzeby przerabiania na nowo całego skomplikowanego serca systemu. Decyzja o "zrobieniu tego porządnie", mimo iż kosztowała sporo czasu i wysiłku, doprowadziła do tego, że CP/M stał się systemem operacyjnym w dużej mierze uniezależnionym od konfiguracji sprzętu, na jakim był uruchamiany. Pracował w identyczny sposób na praktycznie każdej maszynie z procesorem i8080. Producenci nie musieli tworzyć nowych systemów operacyjnych do obsługi ich sprzętu, wystarczało że z zaadaptowali moduł BIOS'u systemu CP/M, nie zmieniając reszty systemu. Także twórcy oprogramowania mogli korzystać ze standardowych procedur wejścia-wyjścia BIOS'u nie troszcząc się o zależny od konkretnego urządzenia sposób realizacji operacji I/O.

Idea takiej organizacji systemu powróciła wiele lat później jako "hardware abstraction layer", m.in. w systemie IBM OS/2 Version 3.

Punkt zwrotny - transakcja z IMSAI

Do roku 1977 IMSAI kupowało licencje CP/M na zasadzie pojedynczych kopii. Firma ta planowała sprzedaż tysięcy mikrokomputerów wyposażonych w napędy dysków do zastosowań biznesowych i chciała zmienić zasady współpracy z DRI. W 1977 roku IMSAI zakupiła od DRI licencję na instalowanie CP/M na wszystkich swoich systemach wyposażonych w napędy dysków. Ówczesny marketing director Seymour Rubenstein (późniejszy założyciel MicroPro Int. Inc. i współtwórca WordStar'a) wynegocjował z Kildallami opłatę licencyjną w wysokości jedynie $25 000. Nic nie ujmują Kildallowi jako doskonałemu programiście Rubenstein uważał, że jest on słabym businessmanem i jak stwierdził czuł się, jak gdyby "he had virtually stolen CP/M from them". Być może miał rację, jednakże z perspektywy DRI transakcja z IMSAI przeniosła DRI na inny, wyższy poziom biznesu. Do roku 1977 Digital Research była, podobnie jak duża część dopiero rozwijającej się branży, jedynie czymś nieco więcej niż hobby. Teraz dla DRI wybiła wielka godzina. Wielu innych producentów poszło w ślady IMSAI i chciało instalować CP/M na swoich komputerach. Transakcję z IMSAI trzeba nazwać punktem zwrotnym w historii DRI.

Microsoft SoftCard dla Apple II

Pod koniec lat siedemdziesiątych na maszynach pracujących pod kontrolą systemu CP/M produkowanych m.in. przez firmy Apple, Radio Shack, Commodore, Zenith, Sharp można było uruchomić np. Microsoft BASIC i FORTRAN, UCSD Pascal, MicroPro WordStar, Ashton-Tate dBase i wiele, wiele innych programów. Na rynku amerykańskim, na początku lat osiemdziesiątych wielkim powodzeniem cieszył się również mikrokomputery Apple II - najlepiej sprzedające się komputery nie pracujące pod systemem CP/M. Oferta oprogramowania dla CP/M była tak duża i tak szybko się powiększająca, że firma Microsoft, z reguły nie angażująca się w sprawy sprzętowe, opracowała tzw. SoftCard dla Apple II - moduł pozwalający uruchamiać na "jabłuszku" programy pracujące pod CP/M. Następnie, w listopadzie 1977 Bill Gates spotkał się z Garym Kildallem i za $50 000 wykupił licencję na CP/M od DRI aby móc sprzedawać system wraz z SoftCard. Wkrótce Microsoft sprzedawał więcej kopii CP/M niż sam DRI.

Okres świetności

Wersje systemu

Pierwsza komercyjna wersja CP/M, oznaczona 1.4, nie była tak popularna jak późniejsze. W 1979 roku pojawiła się wersja 2.0, która zawierała jednak sporo błędów i została szybko zastąpiona wersją 2.1. Ta z kolei posiadała ograniczenie w postaci obsługi tylko napędów dysków elastycznych, a w okolicach 1977 roku zaczęły pojawiać się już pierwsze dyski twarde. W szybko udostępnionej wersji 2.2 dodano rozszerzoną tablicę formatów dysków (expanded disk formatting tables) co umożliwiło dostęp do maksymalnie ośmiu napędów po 8 MB każdy. To właśnie ta wersja stała się megahitem i prawdziwym standardem.

Praktycznie każdy sprzedawany w drugiej połowie lat siedemdziesiątych i początku lat osiemdziesiątych mikrokomputer oparty na procesorze Intel 8080 lub Zilog Z80 dostarczany był z systemem CP/M. Digital Research sprzedała ponad 250 000 kopii systemu, który pracował na 3 000 różnych konfiguracji sprzętowych. Ostrożnie szacując pod kontrolą systemu CP/M pracowało co najmniej 500 000 mikrokomputerów. System ten był używany na całym świecie, oferował zaskakująco wysoką wydajność przy bardzo niskich wymaganiach sprzętowych, prostej architekturze i obsłudze. Jego krytycy wytykają mu trudne do zapamiętania polecenia, skomplikowaną składnię i brak bardziej zaawansowanych narzędzi. Należy jednak pamiętać, że CP/M powstawał w okresie, kiedy procesor (i8080) mógł zaadresować jedynie 64 kB pamięci, a napęd dyskietek był rzadkością. Sam system operacyjny zajmował wówczas jedynie 8 kB (niektóre źródła mówią zgoła o 4 kB!) i pozwalał się uruchomić na systemach z 20 kB pamięci(!) pozostawiając jeszcze przestrzeń dla programów użytkowych lub narzędziowych. Każdy zbędny dodatek czy "wodotrysk" powodowałby zwiększenie wymagań stawianych przed jakże słabymi wówczas systemami.

IBM PC i jego system operacyjny

I oto w czerwcu 1978, kiedy CP/M znajdował się w apogeum świetności (zysk DRI wyniósł w tym roku 6 milionów dolarów, firma zatrudniała 75 osób), na horyzoncie pojawiła się nowa generacja procesorów Intela - i8086 (i w rok później nieco mniej wydajny, ale tańszy w produkcji i zastosowaniu i8088) - układy 16-bitowe. Mogły one adresować niewyobrażalne wówczas 1 MB pamięci. DRI nie dostrzegło lub zlekceważyło potencjalne możliwości nowych chipów i skoncentrowało się na opracowywaniu CP/M 3.0 dla dominującej w danej chwili platformy i8080/Z80. Plany adaptacji systemu do środowiska 16-bitowego (tzw. CP/M-86) oczywiście istniały, jednakże nie należały do priorytetowych.

IBM, który posiadał naprawdę dużo pieniędzy i siły marketingowej aby zrealizować swoje plany, zaczął przymierzać się do wejścia na rynek mikrokomputerów, który z biegiem czasu stał się poważnym i lukratywnym biznesem. Jako serce swojego PC wybrał procesor Intel 8088 (co poniekąd spowodowało późniejszą dominację Intela na rynku mikroprocesorów, która trwa(?) praktycznie po dziś dzień). IBM potrzebował, rzecz oczywista, systemu operacyjnego i zamiast tworzyć własny od podstaw, jak to z reguły ma miejsce w przypadku całkowicie nowej technologii, rozglądał się, ze względu na brak czasu i wymogi rynku, za gotowym rozwiązaniem. W połowie 1980 roku IBM prowadził rozmowy z młodą firmą ze Seattle o nazwie Microsoft na temat konstrukcji nowej maszyny i jej oprogramowania, szczególnie na temat BASIC'a, którym zajmował się MS. Naturalnym partnerem do rozmowy na temat systemu operacyjnego był Digital Research i jego CP/M-86, nowa wersja systemu dla 16-bitowych procesorów Intela. Z różnych powodów Kildall nie był zainteresowany współpracą z IBM, ten więc kontynuował rozmowy z MS'em, któremu w lipcu 1980 udało się zakupić za $50 000 pełne prawa do systemu operacyjnego dla 8086 napisanego przez Tima Pattersona ze Seattle Computer Products. We wrześniu transakcja z IBM została przypieczętowana. Microsoft miał dostarczać zarówno BASIC - w czym miał pewne doświadczenia - jak i system operacyjny, z którym do tej pory praktycznie nie miał do czynienia (szczegóły patrz: historia MS-DOS).

Historia o tym, jak Digital Research stracił kontrakt z IBM na rzecz Microsoftu była opowiadana często i w różnych wersjach. Faktem jest, że stało się to podstawą sukcesu Microsoft'u i miało poważne konsekwencje dla DRI.

Faza schyłkowa

Błędy, błędy, błędy...

DRI nadal miało duże zyski ze sprzedaży swojego systemu (w 1981 roku 5.4 milionów dolarów), ale zaczęło popełniać coraz więcej poważnych błędów. Jednym z najgorszych był brak dbałości o zadowolenie klientów. DRI pełniło w latach osiemdziesiątych podobną rolę co Microsoft w dziewięćdziesiątych. Była to niewdzięczna (pod tym względem) rola praktycznego monopolisty, od którego wszyscy są uzależnieni, do którego wszyscy mają żal z tego powodu i którego wszyscy obarczają winą za ewentualne problemy. Niestety, DRI nie traktował skarg, życzeń i zapytań klientów dostatecznie poważnie. Kiedy ktoś proponował dodać do systemu jakiś "feature", Gary prawie zawsze odmawiał. Nie chciał zaśmiecać dobrego kodu jakimiś "wymyślnymi" funkcjami o wątpliwej, jego zdaniem, przydatności. Typowym przykładem może być polecenie "PIP". W systemie CP/M "przesyłasz strumień" ("you pipe") na dysk B z dysku A, w systemie MS-DOS "kopiujesz" ("you copy") z dysku A na B. Gary uważał, że nie ma nic złego w używania polecenia PIP do kopiowania plików i że każda w miarę inteligentna osoba zrozumie zasadę, że "you pipe" (or "you copy") z prawej na lewą. Co z tego, że duża część klientów uważała inaczej?

Innym przykładem niefrasobliwego podejścia DRI do nowości i trenów na rynku była opóźniona reakcja na pojawienie się twardych dysków. CP/M obsługiwał początkowo jedynie napędy dysków elastycznych. Wielu producentów sprzętu zwracało się do DRI z propozycją umieszczenia w systemie obsługi twardych dysków, które bardzo szybko zdobywały rynek. DRI bardzo długo zwlekał z upgrade'm systemu, aż spadek sprzedaży systemów wyposażonych jedynie w napędy dyskietek o mało nie doprowadził do poważnych problemów. Dopiero wtedy Kildall zarządził "crash program" w celu modyfikacji systemu i ratowania sytuacji. Mimo iż firma praktycznie otarła się bankructwo (Gordon Eubanks porównał to później do "zawału serca") Kildall nie zmienił swojego nastawienia.

Inną bardzo drażniącą klientów sprawą była niestabilna polityka DRI, która objawiła się w "robieniu szybkich pieniędzy" (quick buck) bez strategicznego planu i wizji długofalowych zysków. DRI zaprzestał wsparcia kilku swoich produktów (np. CBASIC, GEM czy też wreszcie CP/M i DR-DOS), mimo iż obiecywał "lifetime worth of support" czym zraził sobie licznych użytkowników. Taka postawa Kildalla kosztowała DRI utratę wielu klientów, a co za tym idzie pozycji rynkowej i pieniędzy, na rzecz m.in. Microsoftu.

Niewykorzystane pomysły

Departament naukowo-badawczy DRI (R&D Department - określany potocznie "the skunkworks") opracował kilka dobrych pomysłów, jednakże najciekawsze z reguły pochodziły od Kildalla. To on wykonał przełomowe prace w oprogramowaniu dla CD-ROM (system plików, struktura danych) oraz technologii multimedialnej (dyski z zawartością video). Kildall utworzył w 1985 nową firmę o nazwie Knowledge-Set, w celu stworzenia zastosowań konsumenckich dla CD-ROM, nowego medium oferującego potężną pojemność. Jednym z pierwszych projektów była publikacja Grolier’s Encyclopedia na CD-ROM. Po pewnym czasie sprzedał jednak większościowe udziały w przedsięwzięciu i próbował swoich sił (tworząc firmę Video Design Group) w dziedzinie zapisu i odtwarzania video na dyskach komputerowych. Wiele doskonałych pomysłów Kildalla wykorzystał później Microsoft budując swoją pozycję na rynku CD-ROM. Bill Gates potrafił dostrzec potencjał tkwiący w tych ponysłach, wykorzystać je i wreszcie korzystnie sprzedać.

Wynikiem fascynacji graficznym interfejsem użytkownika zastosowanym w komputerach Apple LISA była wersja CP/M z powłoką użytkownika (user-interface shell) w formie "nakładki" na system. Był to GEM (Graphical Environment Manager), pierwszy GUI (Graphical User Interface) - graficzny interfejs użytkownika w stylu Mac'a dla komputerów pracujących pod kontrolą systemu CP/M. Zdobył on sporą popularność na długo przed pojawieniem się nadającej się do użytkowania wersji Windows Microsoftu. GEM stał się podstawą pierwszego pakietu DTP dla komputerów PC - Ventura Publisher firmy XEROX, a 68 kB wersja GEM przetrwała wiele lat w Atari 520ST. Firma Apple stwierdziła, że GEM jest za bardzo zbliżony do Mac'a i zagroziła procesem. DRI wprowadził kosmetyczne poprawki zmieniające nieco wygląd systemu, ostatecznie jednak nie zauważył potencjału tkwiącego w tym rozwiązaniu, nie prowadził aktywnego marketingu produktu i praktycznie wycofał się z projektu. Microsoft, który również opracował podobny do Mac'a graficzny interfejs użytkownika nie został jednak wówczas pozwany do sądu przez Apple, a jego GUI odniosło w końcowym efekcie wielki sukces.

Innym, nie wykorzystanym rynkowo produktem opracowanym przez DRI była wersja CP/M oznaczona jako MP/M. System ten posiadał rozwiązania wielodostępowe (multi-user) i wielozadaniowe (multi-tasking).

Digital Research popełniał błąd za błędem i przeżywał poważne problemy, gdy tymczasem Microsoft rozkwitał i rósł w siłę na gruncie "wyczyszczonym" przez Kildalla, tak w przypadku MS-DOS, jak i w przypadku technologii multimedialnej i CD-ROM. Legenda Billa Gatesa, jako geniusza, który wymyślił bądź wynalazł wszystko co tylko możliwe w świecie PC, kłóciła się z pamięcią wielu użytkowników, którzy w tym kontekście pamiętali raczej nazwisko Kildalla. Patrząc na podział uznania i zasług w branży komputerowej z czystko akademickiej perspektywy, widać wyraźnie, że Bill Gates i Microsoft zbierają pochwały i przypisują sobie zasługi, które tak naprawdę należą się innym. Jednakże pod względem formalno-prawnym wygląda to nieco inaczej i tutaj o wiele trudniej coś Microsoftowi skutecznie zarzucić i udowodnić. Chociaż, spraw sądowych akurat w tej branży nie brakuje, a Microsoft często bywa także pozwanym (patrz np. tutaj). Eubanks powiedział kiedyś o Garym Kildallu: "Człowiek, który podarował Billowi Gatesowi świat."

Walka z MS-DOS

Wersja CP/M 3.0, nazywana również CP/M Plus, ukazała się dopiero w roku 1982. Niestety, było to rok po wprowadzeniu IBM PC z konkurencyjnym systemem PC-DOS 1.0, który to duet święcił pierwsze tryumfy, a upgrade dotyczył tylko platformy i8080/Z80, która powoli ustępowała miejsca, a przynajmniej nie była już postrzegana przez nabywców jako rozwojowa. Pomimo zaadaptowania CP/M-86 w 1982 roku dla IBM PC, wyposażenia go w większą ilość ciekawych funkcji i narzędzi oraz lepszej wydajności, zaczął on jednak znikać ze sceny systemów operacyjnych. IBM zagrożony procesem ze strony DRI, oferował klientom oba systemy do wyboru, jednakże CP/M-86 kosztował $240 (wg innych źródeł $175), a DOS $40-60. Pomimo iż Microsoft i IBM skopiowały wywołania systemowe (system calls), strukturę systemu i interface użytkownika z CP/M, DRI nie wystąpił jednak na drogę sądową przeciwko nim. Być może DRI wierzył, że klient dokona wyboru "lepszego" systemu CP/M nie bacząc na cenę, być może obawiał się, że nie ma da rady dwóm tak silnym przeciwnikom - jakby nie było, pozwu nie złożył. Po wprowadzeniu wersji DOS 2.0, która zawierała duże zmiany w stosunku do 1.0, szansa na wygranie procesu dodatkowo zmalała (zdaniem niektórych, gdyż jak pokazała Caldera, można było wygrać jeszcze w 2000 r. - patrz niżej).

Pomimo iż Digital Research kontynuował promocję CP/M i w 1983 roku wypracował rekordową sprzedaż o wartości 44.6 milionów dolarów, zaczął coraz szybciej tracić rynek na rzecz MS-DOS. Kiedy Lotus stworzył swój niezwykle popularny arkusz kalkulacyjny Lotus 1-2-3, który pracował już tylko na komputerach z DOS'em, CP/M stracił praktycznie resztę zainteresowania ze strony programistów, producentów sprzętu i wkrótce również użytkowników.

W 1987 roku ukazała się pierwsza wersja DR-DOS, systemu w pełni (przynajmniej w założeniu) kompatybilnego z MS-DOS, zawierającego jednak wiele rozwiązań i udogodnień nieobecnych w systemie Microsoft'u. Zmusiło to Billa Gates'a do zmiany polityki cenowej w kanale OEM, szybkiego opracowania nowej wersji systemu po okresie pewnego zastoju (wersje 5 i 6) oraz kosztowało zapewne miliony dolarów uszczerbku w zyskach. W 1988 CP/M został ostatecznie przemianowany na DR-DOS. Był to jednak już tylko łabędzi śpiew DRI.

Zakończenie

W latach osiemdziesiątych rynek mikrokomputerów eksplodował, a one same ewaluowały w kierunku PC. Systemy operacyjne zmieniały się wraz z nimi. CP/M został zastąpiony większymi, bardziej skomplikowanymi i przyjaznymi dla użytkownika systemami. Oczywiście CP/M nie zniknął do końca. Jego prompt w formie "A>" jest nadal wyświetlany w MS-DOS oraz jego implementacjach (tzw. "DOS-Box") dla Windows i OS/2. Na nieco głębszym poziomie, pierwsze 36 wywołań funkcji systemowych DOS dokładnie odpowiada swoim pierwowzorom z systemu CP/M. Wiele osób nadal uważa, że oryginalny kod CP/M został skopiowany jako DOS 1.0 przez jego twórcę (patrz: Historia MS-DOS). Gary Kildall powiedział kiedyś w wywiadzie: "Ask Bill [Gates] why the string in function 9 is terminated by a dollar sign. Ask him, because he can't answer, only I know that."


W roku 1991 Gary Kildall oraz pozostali akcjonariusze Digital Research Inc., założonej przez Garyego i Dorothy Kildallów w 1975 roku, sprzedali swoje akcje DRI firmie Novell Inc., a następnie 23 lipca 1996 wszystkie aktywa DRI nabyła Caldera Inc. 24 lipca 1996 Caldera Inc. złożyła pozew sądowy w Federalnym Urzędzie Antymonopolowym przeciwko Microsoft Corp. o domniemaną nielegalną działalność i nieuczciwe praktyki związane ze sprzedażą systemu MS-DOS i jego nastepców, w tym Windows95 i Windows98, które nadal w istotnych fragmentach jądra systemu zawierają kod CP/M. Postępowanie zostało zdjęte z wokandy w styczniu 2000, kiedy Microsoft zgodził się z niektórymi zarzutami, przystał na pewne warunki i wypłacił pewne sumy na rzecz Caldera Inc. Nieoficjalnie mówi się o kwotach rzędu 150-200 milionów dolarów.

Caldera Inc. posiada pełne prawa do systemu CP/M i jest właścicielem wszystkich znaków towarowych z nim związanych. Następcami CP/M są: system Caldera DR-DOS (jako system dla pojedynczego użytkownika) oraz IMS Ltd. REAL/32 (do zastosowań sieciowych). Oba systemy są najbardziej zaawansowanymi dostępnymi 32-bitowymi wersjami DOS'a. Nadają się do zastosowań jako Thin Server i Thin Client Server w różnych dziedzinach.


Gary Kildall zmarł 11 lipca 1994 w Monterey w wieku 52 lat. Prasa prawie nie zauważyła tego wydarzenia. Gordon Eubanks podaje, że przyczyną śmierci były obrażenia głowy, inne źródła wymieniają również wewnętrzny krwotok, bójkę w barze, upadek z drabiny i atak serca.

I to już koniec historii Gary Kildalla i Digital Research. Należy jeszcze dodać, że dorobek Gary Kildalla został doceniony. W marcu 1995 The Software Publishers Association pośmiertnie uhonorowała Gary'ego za jego zasługi dla przemysłu komputerowego. Oto lista niektórych z jego dokonań:

  • He introduced operating systems with preemptive multitasking and windowing capabilities and menu-driven user interfaces.
  • Through DRI, he created the first diskette track buffering schemes, read-ahead algorithms, file directory caches, and RAM disk emulators.
  • In the 1980s, through DRI, he introduced a binary recompiler.
  • Kildall defined the first programming language and wrote the first compiler specifically for microprocessors.
  • He created the first microprocessor disk operating system, which eventually sold a quarter million copies.
  • He created the first computer interface for video disks to allow automatic nonlinear playback, presaging today's interactive multimedia.
  • He developed the file system and data structures for the first consumer CD-ROM.
  • He created the first successful open-system architecture by segregating system-specific hardware interfaces in a set of BIOS routines, making the whole third-party software industry possible.

Kalendarium

1972
  • Kildall kupuje mikroprocesor Intel i4004 i rozpoczyna pisanie programów dla niego,
  • rozpoczyna pracę jako konsultant dla Intela
  • 1973
  • Kildall tworzy implementację (kompilator) języka PL/1 dla i8080 nazwaną PL/M,
  • otrzymuje napęd dysków 8" Shugart
  • w październiku John Torode buduje dla niego kontroler.
  • 1974CP/M ("Control Program for Microcomputers") - pierwszy dyskowy system operacyjny - jest gotowy.
    1975
  • Intel nie jest zainteresowany zakupem CP/M,
  • Kildallowie zakładają (Intergalactic) Digital Research Inc.
  • MITS wprowadza na rynek pierwszy popularny mikrokomputer Altair
  • 1977
  • DRI sprzedaje licencję na CP/M firmie IMSAI,
  • Microsoft wprowadza SoftCard dla Apple II i wykupuje licencję na CP/M od DRI (listopad)
  • pojawiają się pierwsze twarde dyski
  • 1978Intel opracowuje 16-bitowy procesor i8086
    1979
  • Intel opracowuje i8088 (low-cost i8086),
  • DRI wprowadza CP/M version 2.2
  • 1980
  • IBM przymierza się do wejścia na rynek mikrokomputerów (i8088)
  • rozmowy IBM z Microsoftem i DRI (oprogramowanie dla IBM PC),
  • DRI traci kontrakt na system operacyjny dla nowego komputera IBM na rzecz MS
  • 198112 sierpnia IBM wprowadza komputer osobisty oparty na 16-bitowym procesorze Intel 8088 z systemem PC-DOS 1.0
    1982
  • Digital Research wprowadza CP/M 3.0 dla platformy 8080/Z80
  • oraz CP/M-86 dla IBM PC.
  • 1983Rekordowa sprzedaż CP/M, ale jest to początek szybkiego końca systemu.
    1987Ukazuje się pierwsza wersja DR-DOS.
    1988IBM ostatecznie przemianowuje CP/M na DR-DOS.
    1991DRI zostaje wykupiony przez Novell Inc.
    1996DRI zostaje wykupiony przez Caldera Inc.


    Główny spis treści

    Masz uwagi? Napisz.