Narodziny i upadek OS/2
23.07.2017 | aktual.: 24.07.2017 13:08
Wstęp
O OS/2 dzisiaj mało kto wie czy pamięta. Nic dziwnego, w końcu nawet w latach 90 domowi użytkownicy używali raczej systemów od Microsoftu, gdzie OS/2 był raczej przeznaczony na rynek profesjonalny albo serwerowy. System IBM, zrodzony ze współpracy tej firmy z Microsoftem, ma jednak swoje miejsce w historii. Do dzisiaj istnieje jego dziedzictwo w różnych formach pomimo, że od premiery ostatniej wersji minęło 15 lat. Jak więc powstał OS/2 i czym on właściwie był?Narodziny i początki
Lata osiemdziesiąte to lata popularyzacji komputerów i systemu DOS. To właśnie w tychże latach powstał pierwszy pecet, czyli IBM Personal Computer, znany też pod skrótem IBM PC. DOS (a właściwie PC‑DOS dla komputerów IBM, który jednak do wersji 6.1 był tylko rebrandowanym MS‑DOS) miał pełno swoich słabości, o czym zdawano sobie sprawę. Niestety w ich skutecznym zwalczaniu przeszkadzał największy wróg postępu – kompatybilność. Nikt nie chciał sobie pozwolić na całkowite przebudowanie systemu i utratę wsparcia masy aplikacji. Warto wspomnieć, że Microsoft chciał dodać do DOS multitasking czy pracę w trybie chronionym (wprowadzonym przez procesor Intel 286), jednak prace szły powoli i ciągle to przekładano. Początkowo DOS wielozadaniowość miał uzyskać w wersji 3.0, później przełożono to na 4.0. Wielozadaniowy DOS stał się w istocie faktem, lecz nie podbił za bardzo rynku. DOS 5.0 miał być systemem pracującym w trybie chronionym.
W 1985 roki firmy IBM i Microsoft nawiązały współpracę. Ich celem było stworzenie nowoczesnego systemu operacyjnego dla rozwijających się pecetów. Początkowo system nazwano, w stylu IBM, CP/DOS (Control Program/DOS). Nie istniała wtedy nazwa OS/2. Produkt był też nazywany DOS 5 (zwłaszcza w Microsofcie), 286‑DOS lub Big‑DOS. Niektóre stare biblioteki deweloperskie używają nazw DOS 3 dla DOS i DOS 5 dla OS/2, odnosząc się do planowanych początkowo nazw. Nazwa OS/2 powstałą gdzieś w roku 1986 lub 1987. IBM w tym samym czasie wydał kolejną generacje swoich komputerów zwaną IBM Personal System/2, w skrócie IBM PS/2 (sam miałem szczęście posiadać maszynę z tej generacji) – nazwa Operating System/2 pasowała więc idealnie. Niestety rodziło to też błędne przekonanie, że OS/2 może pracować wyłącznie na IBM PS/2.
OS/2 1.0 został zaprezentowany w kwietniu 1987 roku i wydany w grudniu tego samego roku. Nieco inaczej niż w stylu IBM, który prezentował produkt w momencie jego ukończenia i gotowości do sprzedaży. Nowy system był reklamowany jako następca DOS. System póki co nie miał interfejsu graficznego (co było jedną z przyczyn jego niskiej popularności – wszakże konkurencja w postaci Macintosha, Amigi czy nawet Windowsa oferowała tryb graficzny). Z wierzchu nowy system był bardzo podobny do DOSa. Podobnie jak on używał systemu plików FAT (co pozwalało swobodnie wymieniać dane z DOS), pozwalał także na swobodny dual boot – ba, nawet dało się go zainstalować na tej samej partycji co system Microsoftu bez konfliktów. Posiadał także sesje kompatybilności z DOS, dzięki czemu zachowano kompatybilność i było możliwe uruchamianie jego aplikacji. Dzięki Family API stało się także możliwe pisanie aplikacji działających na obu systemach. Z wierzchu więc OS/2 wyglądał nieomal identycznie jak DOS – odróżniała go jednak od niego strona techniczna. Wspólny wytwór IBM i Microsoft pracował w trybie chronionym – aplikacje więc nie mogły sobie swobodnie hasać po całej pamięci. Zawierał także bogate API do obsługi wideo czy urządzeń wejściowych nie zmuszając programistów do odwoływania się do BIOS w trybie rzeczywistym. Mimo wszystko był to nadal system 16 bitowy – bo taki był procesor Intel 286. 24 linie adresowe pozwalały jednak zaadresować 16MB RAM – podczas gdy poprzednie mogły zaadresować max. 1MB RAM. Na wykorzystanie możliwości procesora Intel 386, a więc przejścia w świat 32 bitów trzeba było jeszcze poczekać.
Kolejne wersje OS/2 były dopracowywaniem tego, co znalazło się w wersji 1.0. Wydana w październiku 1988 roku wersja 1.1 przyniosła oczekiwany tryb graficzny – Presentation Manager. Ten wyglądem przypominał wydany kilka miesięcy wcześniej Windows 2.0. W kolejnych wersjach to GUI zostało nieco zmienione i bardziej przypominało Windowsa 3.0. Nieco później wydano też wersje 1.1 Extended Edition (dostępną tylko przez kanały sprzedaży IBM), która zawierała obsługę rozproszonych baz danych dla systemów baz danych IBM i obsługę komunikacji SNA do sieci IBM.
W 1989 roku wydano wersję 1.2. W jądrze OS/2 pojawiła się obsługa Installable File System – modułu odpowiedzialny za obsługę systemów plików i jednoczesny dostęp do woluminów zawierających różne systemy plików. Wraz z nim pojawił się nowy system plików – High Performance File System, w skrócie HPFS, zaprojektowany przez Gordon’a Letwin’a. Ten był sporym skokiem w porównaniu do limitów FAT i czynił z OS/2 sensowny system serwerowy. Ten w przeciwieństwie do DOS’owego systemu plików pozwalał na wiele więcej. Na przykład długie nazwy plików – w HPFS limit długości nazwy pliku wynosił 255 znaków w przeciwieństwie do formatu 8.3 z FAT (8 znaków nazwy i 3 znaki rozszerzenia). Zwiększono też dopuszczalne znaki w nazwie o choćby znak spacji. Poza tym dodano obsługę rozszerzonych atrybutów (każdy plik lub katalog mógł zawierać 64kB rozszerzonych atrybutów, w których mógł przechowywać różne informacje, np. opis czy ikonę), obsługę znacznie większych woluminów (64GB w przeciwieństwie do 2GB FAT. Jednakże w praktyce ta wielkość była limitowana wtedy przez sterowniki), zapobieganie fragmentacji, lepszą alokację zależną od rozmiaru woluminu oraz odporność na awarię. Microsoft wspierał ten system plików w swoim późniejszym Windows NT aż do wersji 3.51 (na jego podstawie stworzono też NTFS). Poprzednie wersje mogły być też na nim instalowane. Wraz z NT4 obsługa HPFS wyleciała z domyślnej instalacji a później wyleciał także sam sterownik. 1.2 Extended Edition przyniosła wsparcie TCP/IP i Ethernet.
Wersja 1.3 była kresem pierwotnego OS/2 rozwijanego wspólnie przez Microsoft i IBM. Rosnąca popularność Windows sprawiła, że Microsoft poczuł się silniejszy i zaczął myśleć, że IBM przestał mu być potrzebny. Współpraca między firmami się nieco rozluźniła, gdyż korporacja z Redmond wolała się skupiać na Windowsie, tak więc wersja 1.3 została przygotowana głównie przez IBM. 1.3 wydany w 1990 roku nie wprowadzał żadnych dużych nowości. Szykowano się do wersji 2.0, która miała być kolejnym sporym krokiem naprzód. 1.3 przyniosła głównie optymalizacje w kwestii wydajności czy zużycia pamięci. Choćby minimalna wymagana ilość RAM zmniejszyła się do 2MB z poprzednich 2,5MB. Poza tym pojawiła się też obsługa języka skryptowego REXX, Adobe Type Manager z dodatkiem fontów oraz poprawki w systemie drukowania.
Rozłam i samotność
Jak już wspomniałem, wersja 1.3 była kresem klasycznego OS/2. Ten do tej pory był brandowany zarówno przez IBM i Microsoft – w zależności od źródła kupna, mogliśmy mieć IBM OS/2 lub Microsoft OS/2, które niczym się nie różniły (coś jak MSDOS i PCDOS). Od tej pory miało się to zmienić. Zwracano też uwagę na słabą kompatybilność OS/2 i Windows, co Microsoft starał się rozwiązać wprowadzając warstwę kompatybilności z Windowsem zwaną WLO. Jednakże Windows zaczął zdobywać coraz większą popularność, liczoną w milionach sprzedanych kopii. Zaczął być też dołączany do nowych komputerów, w przeciwieństwie do OS/2, którego należało kupić, a do tanich nie należał. Windows wspierał też więcej sprzętu pochodzącego spoza IBM. Ostatecznie prace podzielono – IBM miał zająć się wersją 2.0, podczas gdy Microsoft miał przygotować wersję 3.0, która miała być prawdziwą rewolucją – nadano jej nazwę kodową NT OS/2. Ostatecznie korporacja Bill’a Gates’a poczuła się wystarczająco silna by zerwać dalszą współpracę z IBM. NT OS/2 zmienił się w Windows NT, a sam Microsoft ostatecznie zakończył jakiekolwiek prace nad wspólnym systemem, zostawiając jego rozwój samemu IBM. Ci nie spodziewali się takiego obrotu spraw, jednak postanowili nadal rozwijać wspólny system, tym razem już samotnie.
W 1992 roku wydano wersję 2.0. Nastąpiło wkroczenie w erę 32 bitów – OS/2 po raz pierwszy obsługiwał 32 bitowe aplikacje. Sam system zawierał jednak jeszcze nieco 16 bitowego kodu i sterowników. Wprowadził także nowy, obiektowo zorientowany, interfejs zwany Workspace Shell. Zamiast oferować środowisko dla okien programu (np. Program Manager) nowy interfejs dostarczał środowisko, w którym użytkownik mógł zarządzać programami, plikami czy urządzeniami. Wszystko w systemie było obiektem, którym można było manipulować.
Nie bez powodu wersja 2.0 była reklamowana sloganem „better DOS than DOS and better Windows than Windows”. OS/2 2.0 posiadał kompatybilność z tymi systemami operacyjnymi. W systemie umieszczono licencjonowanego DOS5 z łatkami i poprawkami. W końcu dało się uruchamiać więcej niż jedną aplikacje DOS naraz. Ta kompatybilność była na tyle dobra, że nawet Windows 3.0 dawał się na niej uruchomić wraz z programami. Zwiększono też bezpieczeństwo – przez limity procesora 286 aplikacja DOS uruchomiona w OS/2 była w stanie kontrolować cały komputer. Intel 386 wprowadził wirtualny tryb 8086, w którym naśladował działanie starych procesorów w bezpieczny sposób poprzez wykorzystanie czegoś w rodzaju maszyn wirtualnych. Dzięki temu nie dość, że stało się możliwe uruchamianie wielu starych aplikacji naraz, to te nie miały kontroli nad całym komputerem. Niestety warstwa kompatybilności nie pozwalała uruchamiać programów DOS pracujących w trybie chronionym za pomocą VCPI (jednak większość warstw cierpiała na podobny problem), działały jednak programy wykorzystujące DPMI. W przeciwieństwie do Windowsa NT, OS/2 dawał aplikacjom DOS możliwość maskowania przerwań, co sprawiało, że taka aplikacja mogła „zakleszczyć” system. Na niektórych komputerach (głównie od IBM) OS/2 potrafił jednak użyć sprzętowego watchdog’a i zapobiec zakleszczeniu systemu. Problem w pełni rozwiązano dopiero w wersji 3.0 z pomocą nowych funkcji procesorów 486 i Pentium. Warto też wspomnieć, że w 1991 roku IBM przygotowywał następce OS/2 zwanego Workplace OS. To był całkowicie nowy produkt, jedynie częściowo korzystający z kodu OS/2, używający mikrojądra Mach. Workplace OS miał też służyć jako baza dla innych systemów, a także zapewnić prostą migracje IBM z x86 na PowerPC. Miał być podzielony na osobowości mogące pracować obok siebie. Niestety wiele problemów technicznych a także fiask z migracji IBM na PowerPC spowodowały anulowanie tego projektu.
Nie tylko aplikacje DOS były wspierane. Działały też aplikacje Windows 3.0. Udało się to osiągnąć dzięki bibliotekom Windowsa i wirtualnej maszynie DOS. Początkowo niemal kompletny Windows 3.0 był dołączony do systemu IBM – później OS/2 potrafił wykorzystać zainstalowany już Windows odpowiednio go dostosowując, co oszczędzało dodatkowy koszt w postaci licencji na system Microsoftu. Tak przerobiony Windows mógł wystartować na pełnym ekranie, używając własnych sterowników, albo aplikacje Windowsa mogły się pojawiać na pulpicie OS/2. Proces zawierający Windowsa miał szeroki dostęp do sprzętu, zwłaszcza wideo, co sprawiało, że przełączanie pomiędzy pełnoekranowym Windowsem, a Workspace Shell mogło powodować problemy. Aplikacje odpalane w jednej sesji Windowsa mogły działać wspólnie, jednak bez ochrony pamięci – dokładnie tak samo jak w oryginale. OS/2 zapewniał jednak rozwiązanie na to – pozwalał otworzyć więcej sesji „okienek” dzięki czemu aplikacje nie mogły sobie wzajemnie mieszać i nadal mogły działać wielozadaniowo. Niestety wymagało to większych zasobów.
Aplikacje Windows uruchomione w dowolny sposób mogły też się komunikować pomiędzy sobą z wykorzystaniem OLE (Object Linking and Embedding), a nawet z natywnymi aplikacjami OS/2 z wykorzystaniem DDX (Dynamic Data Exchange).
Era Warp i upadek
Wydana w 1994 roku wersja 3.0 została nazwana OS/2 Warp. „Warp” był wcześniej używany wewnętrznie jako nazwa kodowa. W porównaniu do poprzedniej wersji, nowa zrobiła kolejny krok w kierunku 32 bitów, przepisując do nich kilka podsystemów. OS/2 Warp poprawiał też możliwości korzystania z internetu a także multimediów. Wprowadzał też podstawowy pakiet biurowy IBM Works. Został także po raz pierwszy podzielony na dwie wersje „Red Spine” i „Blue Spine” (takich kolorów używały też pudełka). Ta pierwsza była tańsza i wykorzystywała już zainstalowanego Windowsa do kompatybilności z nim. Droższa wersja zawierała wszystko co potrzebne w sobie i nie potrzebowała Windowsa. Z racji tego, że większość komputerów była sprzedawana z Windowsem, to czerwona wersja cieszyła się większą popularnością. Warp 3 (tak też była oznaczana ta wersja) wprowadzała też 32 bitowy system okien, a kolejna wersja przyniosła 32 bitowy, obiektowo zorientowany, model sterowników wyświetlania.
W 1996 roku wydano wersję OS/2 Warp 4. Ta przyniosła Jave oraz system rozpoznawania mowy. Wydane zostały też serwerowe edycje Warp 3 i Warp 4 z dołączonym IBM Lan Server. Dołączono też Lotus Note w wersji Personal z wieloma szablonami baz danych. Wydawane w Wielkiej Brytanii demo OS/2 Warp 4 zawierało pełny system i okazało być się łatwo podatne na cracking, co ułatwiło zdobycie systemu IBM za darmo. Podejrzewano też, że to celowa praktyka mająca na celu zwiększenie popularności systemu. Podejrzenia jednak opadły, jak szybko wydano poprawione demo.
Sprzedaż OS/2 była koncentrowana na profesjonalnym zastosowaniu. Jednak tam zaczął być wypierany przez Windows NT. IBM poległ także na domowym zastosowaniu, gdyż OS/2, pomimo technicznej przewagi, nie zdołał przebić popularności Windowsa 95. Jednym z powodów klęski OS/2 było to, że programowanie na niego było zwyczajnie drogie. IBM chciał zarobić na sprzedaży narzędzi deweloperskich. Windows był zwyczajnie tańszy. Do tego OS/2 wspierał jego aplikacje – po co więc pisać natywne aplikacje dla systemu IBM? Przez to dziecko korporacji z Armonk cierpiało na braki w oprogramowaniu natywnym. W 1994 roku Microsoft zaoferował IBM partnerstwo na takich samych zasadach jak Compaq (który w tamtym czasie był jednym z największych producentów pecetów), gdzie korporacja miała dostać licencje na Windows 95, pod warunkiem zakończenia rozwoju OS/2. Ten jednak odmówił i postanowił podjąć walkę z dawnym partnerem. Negocjacje utrudnił też fakt zakupu przez IBM Lotus SmartSuite, który mógłby podjąć walkę z Microsoft Office. Poprzez konflikt IBM podpisał kontrakt 15 minut przed startem Windowsa 95, co było zbyt późno i mocno nadwyrężyło sprzedaż ich komputerów. Później korporacja oficjalnie przyznała, że OS/2 nie utrzyma ich na rynku komputerów. W ten sposób system IBM ostatecznie upadł. Jego ostatnia aktualizacja miała miejsce w 2001 roku (OS/2 Convenience Pack 2 (wersja 4.52)), a był wspierany do grudnia 2006 roku.
Pomimo fiasku rynkowego system IBM był spotykany m.in. w bankomatach czy innych urządzeniach ze względu na swoją stabilność i mały apetyt na zasoby. Nigdy jednak nie udało mu się podbić rynku komputerów osobistych, czyli rynku, na który został stworzony.
Dziedzictwo
Pomimo śmierci OS/2, ten stał się bazą kilku projektów. Najpopularniejszym z nich jest eComStation publikowany przez Serenity Systems i Mensys BV, a obecnie posiadany i rozwijany przez XEU.com. Pierwsza wersja eCS została wydana w 2001 roku bazując na ostatniej, wydanej wtedy wersji OS/2. Jego pierwsza wersja zawierała m.in. JFS i LVM (Logical Volume Manager) dostępny wyłącznie w serwerowej edycji OS/2, a także dołączał do systemu usprawienia, które były dostępne dla OS/2 wyłącznie w formie aktualizacji, jak 32bitowy stos TCP/IP, firewall czy zaaktualizowane sterowniki grafiki. Dołączył także ulepszenia dostępne dla OS/2 wyłącznie dla klientów ze specjalnymi kontraktami. W tych ulepszeniach znalazła się między innymi obsługa USB czy UDF. Kolejne wersje eCS przyniosły też wsparcie ACPI, sterownik dźwięku bazujący na ALSA, możliwość bootowania z JFS, AHCI, porty Firefoksa, Thunderbirda czy OpenOffice i wiele innych. Najnowsza wersja eComStation wydana została w 2011 roku i do dzisiaj jest stosowana.
Kolejnym projektem wartym uwagi jest ArcaOS, znany wcześniej pod nazwą OS/2 Blue Lion. Został on ogłoszony w 2015 roku podczas Warpstock (zlotu użytkowników OS/2 i eComStation) przez Lewis’a Rosenthal’a, członka zarządu Arca Noae. Jako usprawnienia względem oryginału podano wsparcie dla instalacji z USB oraz przez sieć, nowe jądro z obsługą SMP, usprawnienia Workspace Shell, wsparcie eCUPS oraz sterowniki stworzone przez Arca Noae. Nazwa „ArcaOS” po raz pierwszy została podana w maju 2016 roku, a rok później wydano ArcaOS 5.0 (5, gdyż ostatnia wersja OS/2 nosiła numer 4.52). Zapowiedziano też wersję 5.1, która ma przynieść obsługę innych języków, taki jak francuski, niemiecki itd. Trwają też pracę nad wsparciem dla UEFI. Poza obsługą aplikacji OS/2, obsługuje też aplikacje 16 bitowe aplikacje Windows 3.11 poprzez warstwę kompatybilności zwaną WinOS2 (która jest de facto zmodyfikowanym Windowsem 3.11). Dzięki ODIN (projekt oparty na WINE) jest też w stanie uruchomić część aplikacji Win32. Nie wiem do czego komuś potrzebny dzisiaj taki system, ale może i ktoś się znajdzie. O ile nie odstraszy go cena.
Po śmierci OS/2 społeczność tworzyła petycje do IBM proszące o udostępnienie kodu systemu, lecz ten odmówił. Powodem odmowy jest fakt, że sporo kodu OS/2 jest licencjonowana przez m.in. Microsoft. W sumie mogliby wydać własny kod, bez licencjonowanych części, ale kto wie ile go jest, zważywszy na fakt, że OS/2 to wspólny twór IBM i Microsoft? Szkoda, kod OS/2 byłby ładnym darem dla społeczności.
Zakończenie
Na tym ten wpis się kończy. Jak widać OS/2 pomimo porzucenia rozwoju ponad 10 lat temu, nadal w pewien sposób żyje. IBM popełnił wiele błędów, które przekreśliły szansę na jego dominację. Nieoficjalnie mówi się o „umowie” między Microsoftem i IBM, gdzie ten drugi, za „datek” w wysokości kilkuset milionów, miał się usunąć z drogi temu pierwszemu z jego Windowsem 95. Wydaje się to mało prawdopodobne, ze względu na ówczesną politykę IBM „IBM First”, która polegała na promowaniu jego produktów kosztem produktów Microsoftu i innych. Niestety IBM trochę przysnął moment sklonowania jego komputerów i po tym próbował wykorzystać mało popularny system, by ponownie zdobyć rynek komputerów swoimi maszynami. Jak to się skończyło, to opisałem w tym wpisie. Gdyby jednak IBM postąpił inaczej może obecnie dominującym na świecie systemem desktopowym byłby OS/2? Nie wiadomo, lecz nie można tego wykluczyć. A sam system IBM to produkt ciekawy i warto sobie o nim choć na chwilę przypomnieć.