Storia di OS/2 (OS/2 History)

 os2

La nascita di OS/2 è legata in modo inscindibile alla generazione PC-AT dei PC IBM, introdotti sul mercato nel 1984 ed equipaggiati con la CPU i286.

Il problema principale dell'OS standard dell'epoca, il DOS, è la mancanza della funzionalità di Multitasking che costringe gli utenti al ciclo OSCO (Open, Save, Close, Open), ovvero all'apertura, salvataggio, chiusura e riapertura, ogni qual volta si renda necessario lavorare con applicazioni diverse. IBM promette subito di risolvere il problema e la divisione ESD (Entry System Division), dedicata allo sviluppo dei PC, contatta Microsoft per creare un nuovo OS dotato di tali funzionalità ed ottimizzato per la nuova famiglia del PC.

In realtà Gates non risponde con entusiasmo alla richiesta, perché ha intenzione di concentrare le energie sullo sviluppo di soluzioni per l'i386 in modo da sfruttare la modalità Protected Mode. Inoltre Microsoft è presa dallo sviluppo della prima release di Windows, snobbato da IBM in favore del proprio sistema multitasking denominato TopView.

A giugno del 1985 IBM e Microsoft stringo un accordo generico di collaborazione chiamato  Joint Development Agreement (JDA) che ad Agosto si trasforma in “Phase II”, una sorta di piano per OS/2. Inizialmente il nuovo sistema viene chiamato CP/DOS, seguendo i canoni degli OS per Mainframe di IBM, ma anche DOS 5 (specialmente da Microsoft), 286-DOS o Big DOS. Nessun riferimento, quindi, al nome OS/2.

Tra la fine del 1986 e l’inizio del 1987 il progetto viene rinominato in OS/2 (ma anche in OS|2) per creare una decisa assonanza con il nuovo PS/2 con cui IBM vorrebbe riconquistare il ruolo di leadership nel settore che essa stesso ha creato, così come la presentazione prima della reale disponibilità è una politica di marketing a cui BigBlue non è abituato, ma necessaria per il lancio del nuovo hardware. Ovviamente OS/2 è in grado di funzionare anche su macchine diverse dal nuovo PS/2, tant’è che tutta la prima fase di sviluppo viene portata avanti su “classiche” macchine AT, così come su di esse è perfettamente funzionante l’MS OS/2 SDK.

OS/2 1.00 viene rilasciato il 2 aprile del 1987. Si trattava di un sistema operativo con funzionalità multitasking, fortemente legate all’hardware di BigBlue, ma senza Interfaccia Grafica, il che prevede la possibilità di avere un solo applicativo attivo per volta, mentre gli altri sono in modalità “dormiente”. Questa prima versione, così come le minor release successive, è a 16 bit essendo pensata per gli i286, supporta dischi rigidi con dimensioni fino a 32Mb, con file system FAT, e fornisce un supporto limitato per le DOS-Application.

A quasi un anno e mezzo di distanza, nell'ottobre del 1988, viene rilasciata la prima minor release, OS/2 1.10 SE (Standard Edition) che introduce il Presentation Manager (PM) ovvero una GUI basata su sull’esperienza maturata da Microsoft con Windows (che nel frattempo ha raggiunto la versione 2) ed il supporto a dischi rigidi fino a 2 GB. Nonostante PM semplifichi l’utilizzo del sistema per gli utenti finali, si rileva un incubo per gli sviluppatori che devono prendere confidenza con un nuovo pattern di sviluppo, anche se abbondantemente supportato dall'efficiente e potente OS/2 API (OS/2 Application Programming Interfaces). La versione SE è seguita qualche mese dopo dall'edizione EE (Extended Edition), curata da IBM ed integrante un Database Relazionale Multitasking e il supporto alle architetture client-server grazie a Communications Manager , che riprende i concetti dei Mainframe di BigBlue.

Novembre del 1989 è invece il mese di OS/2 1.20 (SE e EE) , che migliora notevolmente Presentation Manager e nella versione Extended introduce il più efficiente e sicuro file system High Performance File System (HPFS), oltre al lignaggio REXX (REstructured eXtended eXecutor) pensato per offrire agli sviluppatori un linguaggio interpretato, potente e flessibile.

 

msos2_announcing

 

Nel frattempo è già cominciata la progettazione della versione 2.0 (a 32bit e, ovviamente, incompatibile con l'i286) e addirittura della 3.0 (non la 3.0 WARP che, come vedremo, sarà il successore della 2.0 di IBM) concepita come versione Server cross-platform. Il clamoroso successo di Microsoft con Windows 3.0 (1990) spinge la casa di Redmond a rivedere le proprie priorità. Inoltre anche i team hanno grosse difficoltà nel coordinarsi, come afferma anche Tandy Trower, project manager di Windows 1.0x e Windows 2.xx, a causa delle forti differenze nel ciclo di sviluppo delle due società.

Windows diventa così il fulcro di tutte le attività di Gates mentre OS/2 assume un ruolo del tutto marginale, fino a diventare un prodotto quasi esclusivamente IBM, sia per quanto riguarda il  supporto alla serie 1.x che relativamente allo sviluppo della next release 2.0. Microsoft, dal canto suo, partendo dalle fondamenta della V3 darà vita al progetto OS/2 NT (profondamente diverso dalla V2), da cui nascerà Windows NT che invece di utilizzare le API OS/2 utilizzerà le API Win32. 

Orfana di Microsoft, IBM rilascia nel 1991 OS/2 1.30 (SE ed EE), anche se parte del sistema contiene ancora codice scritto dalla società di Gates.

OS/2 deve ora confrontarsi direttamente con Windows e, nonostante con questa release sia in grado di supportare le nuove periferiche offerte dal mercato, l’elenco dell’hardware compatibile è decisamente inferiore, anzi decisamente limitato. In questa minor release IBM riscrive completamente il gestore di stampa Print Manager, ma il risultato è tutt'altro che lusinghiero. Inoltre l'edizione EE si arricchisce del supporto ai caratteri Adobe Type I, di un nuovo sistema di swapping e della possibilità di gestire risoluzioni video fino a 1024x768px.

Della versione 1.30 esiste anche un’edizione retail targata Microsoft, utilizza dal big di Redmond per iniziare la propria scalata, in attesa di NT, nel settore server.

 

microsoft_os2_1_3_front


Nella primavera del 1992 IBM presenta OS/2 2.00, accompagnandolo con lo slogan: a better DOS than DOS and a better Windows than Windows.

Si tratta del primo sistema operativo a 32bit per PC, un decisivo passo in avanti per OS/2 che introduce l'utilizzo di Virtual DOS Machine (VDM) per l'esecuzione di applicazioni DOS in un ambiente isolato, in modo da eseguirle concorrentemente con applicazioni Windows (eseguiti grazie ad una speciale versione embedded dell'ambiente Microsoft licenziata per IBM e denominata Win-OS/2) ed OS/2 senza compromettere la stabilità del resto del sistema. Grazie alla funzionalità Dynamic Data Exchange (DDE) e alla Clipboard, le applicazioni sono in grado di scambiare informazioni tra loro in modo diretto ed indiretto, il tutto all’interno della nuova Workplace Shell (WPS), maggiormente integrata nell'OS e completamente Object Oriented (OOUI): per la prima volta la GUI non è più un componente aggiuntivo ma un elemento essenziale del sistema, anche se non completamente a 32bit.

Il primo aggiornamento alla nuova major release arriva a maggio del 1993 con OS/2 2.10 che sfoggia un rinnovato e più veloce sottosistema grafico, anch’esso ora completamente a 32 bit. Tra le altre novità più evidenti troviamo: supporto ai font TrueType per Win-OS/2, il Multimedia Presentation Manager (MMPM/2) per la gestione dei contenuti multimediali (audio, video, ecc), l'Advanced Power Management (APM) e il supporto allo standard PCMCIA (anche se in maniera molto limitata), caratteristiche, quest'ultime, particolarmente importanti per il mondo dei computer portatili.

La versione 2.10 viene rilasciata anche in una edizione speciale ribattezzata OS/2 for Windows, dedicata agli utenti che già dispongono di Microsoft Windows 3.x installato nel loro PC. In fase di installazione, OS/2 for Windows effettua alcune modifiche automatiche ai file SYSTEM.INI e WIN.INI, ed alcuni hook al codice che gli permettono il controllo diretto di Windows nelle VDM. Ovviamente l’utilizzo di una versione pre-esistente di Windows abbassa notevolmente il costo di OS/2 perché non è più necessario pagare la licenza di Win-OS/2. 
Nonostante Microsoft abbia ormai catturato la maggior parte dell'utenza domestica con Windows, creando un'attesa senza precedenti con l'annuncio di Windows 95, IBM crede fortemente in OS/2 e nell'ottobre del 1994 rilascia OS/2 3 Warp, inizialmente solo "for Windows", chiaro segno del netto distacco che la società intende prendere dal diretto concorrente.La necessità di supportare gli applicativi Windows e fornire agli utenti un sistema chiavi in mano, spinge però IBM a rilasciare una edizione di OS/2 Warp 3 con Win-OS/2, creando due filoni paralleli: Blue Spin con Win-OS/2 e Red Spin senza il sistema Microsoft. Il nome delle due edizioni derivava semplicemente dal colore predominante della confezione.

Warp 3 viene progettato per essere installato ed eseguito, con performance accettabili, anche su computer con "soli" 4 MB di RAM, grazie soprattutto ai miglioramenti della WPS. Inoltre i driver sono finalmente in grado di supportare buona parte delle periferiche sul mercato mercato e gestire efficacemente le operazioni di stampa così come le espansioni PCMCIA. Per la prima volta viene fornito in bundle un BonusPak CD contenente diverse applicazioni home-office, tra le quali IBM Works, una suite stile office con  foglio di calcolo, word processor, database, generatore di report e grafici.

Nel 1995 viene rilasciata l'edizione Warp 3 Connect che aggiunge funzionalità intranet avanzate grazie al Warp Connect Peer per la condivisione dei file, delle stampanti e del modem con altri utenti in rete. All'inizio del 1996 IBM rilascia Warp 3 Server che estende Warp 3 Connect con le funzionalità di rete proprie di IBM LAN Server 4.0.

Grazie ad una completa integrazione dei vari servizi, Warp Server può vantare di essere  l'ambiente server più efficiente e completo del periodo. In effetti la soluzione IBM offre una piattaforma integrata per lo sviluppo di Server Application, con strumenti avanzati per il Disaster Backup e Recovery, la condivisione delle risorse ed il monitoraggio costate di ogni sua parte attraverso SystemView.

Nonostante queste caratteristiche, il raffronto con Windows 95 e Windows NT è impietoso, e le soluzioni Microsoft hanno ormai conquistato gran parte del mercato relativo ai PC-IBM, condannando OS/2 ad un inesorabile declino tanto che gli esperti del settore cominciano ad indicarlo come: l'occasione mancata del mondo dei PC. Ogni commento è ovviamente superfluo.

os2_warp_4

 

Nel 1996 IBM rilascia OS/2 Warp 4 (Codename "Merlin") che permette, nativamente e per la prima volta nella storia dei sistemi operativi, il pieno controllo vocale (VoiceType), della navigazione in rete alle applicazioni compatibili.

WPS subisce un profondo restyling diventando la GUI più elegante mai progettata per i PC ed avvicinandosi molto allo stile del MAC. Warp 4 viene definito da IBM come "Universal Client", essendo in grado di connettersi praticamente con qualsiasi rete e supportando una miriade di standard, come openGL, openDOC e Java.

La tortuosa storia di OS/2 si conclude con OS/2 Warp 4.5 (Codename "Aurora") rilasciato nel 1999, come Server Release Upgrade, utilizzabile per aggiornare la sola edizione Warp 4.0 Server, ma decisamente importante, grazie al nuovo stack TCP/IP a 32-bit, al Journaling File System (JFS) e ad un gestore di volumi logici. Successivamente, nel 2000, viene rilasciato il “Convenience Pack for Warp 4” (etichettato come release 4.51), che riallinea l'edizione Desktop a quella Server ed effettua un piccolo upgrade di quest’ultima. Nel 2002 viene anche rilasciato il "Convenience Pack 2", l’ultimo rilascio ufficiale di IBM dedicato sempre ad entrambe le edizioni.

In concomitanza con il rilascio del "Convenience Pack for Warp 4", una società chiamata Serenity System annuncia di aver raggiunto un accordo di licenza con IBM per commercializzare in proprio OS/2: nasce eComStation 1.0. In realtà si tratta di OS/2 4.51 con un diverso sistema di setup e alcune utility di terze parti incorporate. Serenity System rilascia anche eComStation 1.10 nel 2003, basata sul Convenience Pack 2.

Per quanto riguarda IBM, il supporto ad OS/2 è terminato ufficialmente nel 2006, mentre Serenity System continua a proporre eComStation anche se, senza l'acceso al codice sorgente di OS/2, non è ben chiaro come la società possa garantire un futuro allo sfortunato OS che doveva rivoluzionare il concetto stesso di PC.

OS/2 SDK 1.00 - 1.02: road to OS/2

Tra la fine del 1986 e l’inizio del 1987 Microsoft (e non IBM !) rilascia a tutti gli iscritti al Microsoft OS/2 Development Program il primo OS/2 Software Development Kit (SDK), dando così il via a quella che la casa di Redmond spera diventi l’era OS/2.

Bisogna sottolineare che l’OS/2 Development program è tutt’altro che economico: circa 3.000$ (siamo nel 1987!), anche se Microsoft garantisce l’invio puntuale di tutto quello che è necessario per sviluppare applicazioni OS/2. Tra i tool inviati si segnalano: OS/2 stesso, Microsoft C e MSAM, esempi di programmi, documentazione (elettronica e stampata), la sottoscrizione al Microsoft Systems Journal, l’accesso al supporto telematico Microsoft DIAL.

Ovviamente a carico dello sviluppatore resta l’hardware. A tal proposito va ricordato che OS/2 era decisamente avaro di risorse: era necessario un IBM PC/AT o compatibile con almeno 1.5 MB RAM.

Col senno di poi, il Microsoft OS/2 Development Program si rileverà un mezzo fallimento, soprattutto a causa dell’alto costo, spingendo gli sviluppatori a continuare a realizzare prodotti per DOS (e Windows) e causando un deciso rallentamento nello sviluppo di soluzioni per OS/2 che al momento del lancio sono decisamente poche. Il Big di Redmond cambierà totalmente approccio quando rilascerà Windows NT, con un SDK Program decisamente più accessibile.

Ad Aprile del 1987 Microsoft ed IBM annunciano ufficialmente OS/2 contemporaneamente all’annuncio del nuovo IBM PS/2, e a maggio viene rilasciato l’OS/2 SDK 1.00.

 

 1987-05-11-InfoWorld-p13

 Pc World pubblicizza l'OS/2 SDK 1.0


Questa versione pubblica dell’SDK contiene una pre-release build di OS/2, simile alla versione che verrà commercializzata a dicembre, ma ancora non completa di tutti i componenti accessori. Infatti il sistema non presenta l’help online, la shell multi-tasking è assolutamente spartana(realizzata sulla falsa riga di TopView) è in grado di girare solo sui PC/AT. Dal punto di vista dello sviluppo vengono fornite le versioni 4.5 beta (quasi RC) di Microsoft MASM e Microsoft QucikC, oltre ad una completa documentazione di tutto quanto fornito, compreso le guide ai linguaggi e quella per lo sviluppo di applicazioni per il nuovo OS.  Una nota sulla documentazione: anche questa risulta ancora incompleta e presenta alcuni riferimenti atipici al DOS 5 (uno dei nomi con cui OS/2 viene indicato durante lo sviluppo e che non ha nulla a che vedere con il PC/MS DOS).

 

ms100_shell

La shell per il multitasking in OS/2


Con l’OS/2 SDK il Big di Redmond fornisce anche il Microsoft Windows 1.04 SDK, contenente lo stesso Windows 1.04, il Microsoft C 4.0, le librerie di sviluppo specifiche e la documentazione. In realtà, però, l’intenzione di MS non è (ancora) quella di promuovere Windows al posto di OS/2 (neanche lo stesso Gates si aspettava il successo che Windows avrebbe avuto nel giro di un paio di anni), ma quella di far toccare con mano agli sviluppatori cosa avrebbero trovato nel futuro (OS/2 1.1) Presentation Manager, ovvero il windows engine di OS/2.

Nonostante tutte le limitazioni, l’OS/2 SDK 1.00 è sufficiente per permette ai developer di prendere confidenza con il nuovo sistema e sviluppare applicazioni adatte ad esso in grado di sfruttarne le grandi potenzialità. A loro supporto arrivano anche i seminari tecnici organizzati, tra luglio e settembre dello stesso anno, a Seattle e New York, in cui tecnici Microsoft e sviluppatori presentano le funzionalità CORE del nuovo OS con uno sguardo particolare al futuro Presentation Manager. Durante uno di questi incontri (ad Agosto), tra l’altro, viene presentato un primo aggiornamento dell’SDK (versione 1.01) praticamente identico per quel che riguarda l’OS tranne che per l’introduzione del nuovo Program Selector (shell multitasking).

 

ms101_prgsel

OS/2 SDK 1.01 Program Selector


Gli strumenti di sviluppo, invece, si arricchiscono della documentazione (pre-release) relativa a Presentation Manager, e dell’ OS/2 DDK 1.0(Device Driver Development Kit, spesso chiamato anche DDDK) per lo sviluppo di device driver per OS/2, supportato da una versione leggermente modificata del Kernel di OS/2 (OS/2 debug kernel) che include un debugger ed una serie speciale di librerie per validare i driver sviluppati.

Un mese prima del rilascio pubblico di OS/2 1.0 (avvenuto a dicembre 1987), l’SDK raggiunge la versione 1.02. Questo nuovo update include, ovviamente, la versione definitiva del sistema operativo, MASM 5.00A e la versione 5.1 beta del Microsoft C e, chiaramente, la documentazione aggiornata.

OS/2 1.0

OS/2 1.00 (Codename: CP/DOS, Control Program/DOS, o anche Next DOS) viene presentato ufficialmente da Microsoft ed IBM il 2 Aprile del 1987 e rilasciato a Dicembre dello stesso anno, con un discreto anticipo sul previsto primo quadrimestre del 1988.

Già la scelta del nome rappresenta un intreccio di con-cause che è interessante ricordare. Infatti gli albori di OS/2 possono essere ricercati a partire dal 1983 in quello che comunemente viene chiamato European MS-DOS 4.0 (da non confondere con il disastroso PC/MS DOS 4.0), il primo DOS multitasking made in Redmond e distribuito solo in Europa, in edizione OEM, principalmente tramite Siemens.

A giugno del 1985 IBM e Microsoft stringo un accordo generico di collaborazione chiamato  Joint Development Agreement (JDA) che ad Agosto si trasforma in “Phase II”, una sorta di piano per OS/2. Inizialmente il nuovo sistema viene chiamato CP/DOS, seguendo i canoni degli OS per Mainframe di IBM, ma anche DOS 5 (specialmente da Microsoft), 286-DOS o Big DOS. Nessun riferimento, quindi, al nome OS/2.

Tra la fine del 1986 e l’inizio del 1987 il progetto viene rinominato in OS/2 (ma anche in OS|2) per creare una decisa assonanza con il nuovo PS/2 con cui IBM vorrebbe riconquistare il ruolo di leadership nel settore che essa stesso ha creato, così come la presentazione prima della reale disponibilità è una politica di marketing a cui BigBlue non è abituato, ma necessaria per il lancio del nuovo hardware. Ovviamente OS/2 è in grado di funzionare anche su macchine diverse dal nuovo PS/2, tant’è che tutta la prima fase di sviluppo viene portata avanti su “classiche” macchine AT, così come su di esse è perfettamente funzionante l’MS OS/2 SDK.

Nella distribuzione del nuovo OS, Microsoft ed IBM adottano la stessa dualità già utilizzata per il DOS: IBM propone IBM OS/2 ottimizzato per i propri calcolatori (anche se è possibile utilizzarlo, senza supporto ufficiale, sui PC compatibili), mentre Microsoft rilascia MS OS/2 direttamente agli utenti (versione Retail) o agli altri OEM (Compaq, Zenith, Tandy, Epson, AST, ecc), responsabile direttamente della personalizzazione del sistema per adattarlo al proprio hardware tramite la scrittura di appositi device driver.

 

ms102_splash

Microsoft OS/2 1.0 Boot Screen

 

tut_logo

IBM OS/2 1.0 Boot Screen


E’ IBM a rilasciare per primo OS/2 1.0 Standard Edition, a circa 325$ (contro i 120$  del DOS  3.30), mentre la versione OEM di Microsoft viene resa disponibile l’anno seguente con un leggero ritardo.

OS/2 1.0 è un sistema operativo a 16bit operante in modalità protetta ed offre un multitasking pre-emptive, multi-threading (con il supporto alla shared memory, alle pipes, alle code, ai semafori e ai signals), dynamic linking (per l’utilizzo delle DLL di sistema) e la gestione della memoria virtuale segmentata (segment swapping). La modalità protetta taglia di fatto fuori il supporto ai vecchi sistemi (è richiesto almeno una CPU 286), mentre è possibile utilizzare 16MB di memoria reale a cui va aggiunta quella virtuale, limitata a 32Mb per la dimensione massima delle partizioni su disco realizzabili.

In realtà la scelta di realizzare un OS a 16bit basato sul 286 (fatta perché il 386 era ancora in cantiere e sia IBM che Microsoft avevano la necessità di presentarsi con qualcosa di nuovo), fa si che il sistema sia vulnerabile alle vecchie applicazione DOS non in grado di girare in protect-mode che, in caso di crash, mandano in blocco tutto il sistema. Il problema verrà risolto solo con OS/2 2.0 e il supporto alla modalità Virtual-8086 (V86 mode) introdotta con i 386, con grande ritardo rispetto a Windows/386, DesqView, TopView e diverse varianti di UNIX.

Ovviamente il nuovo sistema è pensato per portare l’esperienza d’uso dei PC a nuovi livelli, andando gradualmente a sostituire il DOS e, proprio per questo, il file system è il “classico” FAT che permette di scambiare agevolmente file tra i due sistemi operativi.

Viene introdotto anche un sistema di Dual Boot che consente di far convivere ed eseguire sulla stessa macchina sia OS/2 che il DOS, anche se le applicazioni pensate per quest’ultimo possono essere normalmente eseguite in una sessione “DOS Compatibility” di OS/2. Inoltre tramite le “Family API” si possono scrivere applicazioni che traggono vantaggio da entrambi gli OS.

La grossa differenza nella scrittura delle applicazioni per OS/2 rispetto a quelle per il DOS è che ora è necessario interagire con l’hardware attraverso le API dell’OS, piuttosto che accedere direttamente ad essere in modo libero e senza controlli.

Come accennato, OS/2 SE richiede almeno un processore 80286 e circa 1.5MB RAM, oltre che un HD per l’installazione del sistema stesso. In realtà è possibile eseguire direttamente l’OS da floppy (tipicamente fornito su 4 supporti da 5,25” e 4 da 3,50”) anche se non è assolutamente consigliato lavorare in tal modo. Durante l’installazione è possibile partizionare / formattare il proprio disco rigido ed effettuare alcune selezioni relative ai device installati.

 

tut_main

Il sitema di Help di OS/2 1.0


Questa prima versione è sprovvista della GUI, il che rende impossibile la visualizzazione contemporanea di più applicazioni, mostrandone solo una per volta mentre gli altri sono come "dormienti".  Inoltre l’aspetto con cui l’OS si presenta è praticamente identico a quello del DOS, sia per il set di comandi (ad esempio: CD, DIR, COPY, ecc) e sia per la possibilità di eseguire le varie applicazioni pensate per esso, incluso Windows 1.03. L’interprete dei comandi (CMD.exe) è, però, decisamente più completo del COMMAND.COM, permettendo di creare, ad esempio, catene di comandi in stile UNIX (tramite gli operatori &&, ||, &).

Se non fosse per il Program Selector (e ovviamente applicazioni specifiche in grado di sfruttarne le potenzialità), l’installazione di OS/2 non da particolari vantaggi rispetto ad una tipica installazione del DOS. Ma questo tool (simile a TopView per DOS), rappresenta decisamente un valore aggiunto permettendo di usufruire di tutti i vantaggi multi-tasking del sistema operativo, avviando, ad esempio, nuove applicazioni concorrenti.

 

ms102_selector

os2_help 

OS/2 1.0 Program Selector


Le due versioni gemelle, MS ed IBM, sono compatibile al 100% ma non identiche per quel che riguarda la dotazione. Ad esempio l’edizione Microsoft non dispone di alcun driver per i sistemi PS/2, così come differente è la documentazione fornita, sia dal punto di vista dei contenuti (nel caso di IBM non esistono le sezioni dedicate agli OEM) sia dal punto di vista del layout/stampa.

Inoltre le due edizioni presentano alcune differenze di facciata: l’MS OS/2 utilizza i n nomi OS2BIO.COM e OS2DOS.COM, rispettivamente per il loader ed il kernel, mentre nel caso di IBM troviamo IBMBIO.COM e IBMDOS.COM (gli stessi del DOS). Inoltre anche le directory di sistema sono diverse: Microsoft utilizza tre dir primarie:  “\OS2\BIN”, “\OS2\PBIN”, e “\OS2\RBIN” per li comandi dedicati al dual-mode, al protected-mode, e al real-mode, mentre IBM utilizza la sola directory “\OS2”.

Queste differenze comunque spariranno nelle successive minor release, tanto da rendere le due edizioni praticamente indistinguibili.

Ovviamente, questa prima release presenta una serie di bug di gioventù:

  • Nonostante il limite teorico di 16MB RAM, OS/2 1.0 va in crash nel caso in cui tenti di utilizzare più di 8MB di RAM;
  • Partizioni fino a 32MB;
  • Compatibilità limitata per le applicazioni DOS (risolta come detto solo con la V 2.0);
  • Nessun supporto al Networking;
  • Nessun supporto multi-utente.

OS/2 SDK 1.03 - 1.06: born of OS/2

A marzo del 1988 viene rilasciata la versione 1.03 dell’OS/2 SDK che si fa subito notare per la pre-release di OS/2 1.1 che sfoggia una prima build pubblica di Presentation Manager, finalmente disponibile fuori dagli ambiti Microsoft/IBM.

Si tratta si una GUI con un look and feel derivato direttamente da Windows 2.0 ma non ancora ultimata, sia dal punto di vista funzionale che dal punto di vista delle API di sviluppo. Nonostante ciò gli sviluppatori possono finalmente iniziare a scrivere concretamente codice e non limitarsi a leggere la documentazione relativa.

ms103_presentation_manager 

OS/2 SDK 1.03 Presentation Manager


Inoltre con la pre-release di OS/2 1.1 arriva la possibilità di gestire partizioni che superano il limite dei 32 MB, non compatibili, ovviamente, con le versioni del DOS contemporanee (la compatibilità verrà ripristinata con il PC/MS DOS 4.0)

Finalmente arrivano alla loro completa maturazione (relativa) sia Microsoft C che MASM, entrambi nella release 5.1, e la documentazione è disponibile nel nuovo formato QuickHelp. In realtà Microsoft rilascia anche l’ OS/2 Programmer’s Toolkit 1.0, del tutto similare all’OS/2 SDK 1.03, ma senza i compilatori e molto più economico.

In linea con le precedenti release dell’SDK, nel pacchetto è incluso Windows 2.03 e il proprio SDK, in modo da consentire il design di applicazioni per un engine grafico decisamente più completo e stabile di Presentation Manager (e anche del precedente Windows 1.04), accompagnato da una guida per la conversione di applicazioni da Windows a Presentation Manager. Per aiutare ulteriormente i developer a preparare applicazioni per l’engine grafico di OS/2, nell’SDK viene inserita una versione draft dell’ottimo libro “Programming the OS/2 Presentation Manager” di Charles Petzold, corredato da numerosi esempi.

Ad Aprile arriva un aggiornamento minore (che non fa variare il numero di release) che allinea il DDK alla pre-release 1.1 di OS/2, introducendo pochissimi cambiamenti. Inoltre iniziano una serie di conferenze denominate Advanced Network Development Conferences (San Francisco e New York) in cui viene presentato il networking secondo OS/2, con particolare enfasi su LAN Manager e SQL Server, che verranno inclusi (in versione preview) nell’ SDK 1.04 di Maggio

.

ms104_lanmanager 

OS/2 Lan Manger Preview

Questa prima preview di Lan Manager è fornita con client per DOS e per OS/2 Workstation, oltre, ovviamente, ai componenti per OS/2 Server. In realtà la strategia di Microsoft è quella di non vendere direttamente Lan Manager agli utenti finali, ma solo agli OEM, ragion per cui il sistema di networking supporta un numero veramente limitato di schede di rete. La sua installazione è possibile sia su OS/2 1.0 (non consigliato) che sulla preview-release di OS/2 1.1 ma i componenti grafici per Presentation Manager sono ancora instabili e MS stessa ne sconsiglia l’utilizzo.

Ad Agosto (sempre del 1988) arriva l’SDK 1.05 con un aggiornamento significativo della build di OS/2 1.1 è del suo Presentation Manager, ormai molto simile a quello definitivo, stabile e completo delle API di sivluppo.

 

ms105_desktop 

SDK 1.05 Presentation Manager


A settembre (anche in questo caso senza far variare il numero di release), arriva l’aggiornamento del DDK che include gli strumenti per lo sviluppo dei driver specifici per Presentation Manager, tra cui il codice sorgete per i driver EGA/VGA e per l’IBM 8514/A. Manca ancora, invece, un valido supporto allo sviluppo dei driver per stampanti, a partire da codice sorgente di esempio.

In realtà lo sviluppo dei driver per le schede video è tutt’altro che semplice, dovendo essere scritti interamente in assembler (per motivi prestazionali e per renderli compatibili con Windows) e limitando decisamente il numero di driver di qualità realizzati dagli OEM. Purtroppo questo complesso modello accompagnerà OS/2 fino al 1996, anno di rilascio dell’ultima major release OS/2 WARP 4 .

La versione SDK 1.06 arriva a novembre con la release definitiva di IBM OS/2 1.1 SE, ma con in tool di sviluppo ancora in versione preview anche se, praticamente, identici a quelli finali. Da notare che solo la versione “IBM” di OS/2 è stata già rilasciata, mentre per la versione OEM targata Microsoft bisognerà aspettare ancora diversi mesi, anche se, dal punto di vista dello sviluppo delle applicazioni e del CORE, le due release sono assolutamente identiche.

La versione definitiva dell’SDK per OS/2 1.1, chiamata semplicemente OS/2 1.1 SDK, viene rilasciata addirittura ad Aprile del 1989, oltre un anno dopo la prima apparizione di Presentation Manager in un SDK e ben dopo due anni dal suo annuncio (Aprile 1987).

 

ms11_desk 

Microsoft OS/2 1.1 Presentation Manager

 

Il DDK viene aggiornato alla release finale 1.1 includendo codice di esempio per i driver delle stampanti e dei plotter (scritti in C), mentre il resto rimane praticamente invariato.

Con l’uscita di OS/2 1.1 e dei tool di sviluppo maturi, Microsoft decide che è tempo di abbandonare il programma di sviluppo per OS/2 basato sull’SDK e di passare ai singoli prodotti Retail. Per lo sviluppo entry level è infatti sufficiente una copia di OS/2 1.1 e una di Microsoft C 5.1, anche se quest’ultimo deve essere corredato da uno specifico OS/2 Presentation Manager Softset (dal costo di circa 150$) per la scrittura di applicazioni specifiche per il Presentation Manager, includendo librerie, esempi, icone, font ed altro. Microsoft rilascia anche il nuovo OS/2 Presentation Manager Toolkit (circa 500$), un superset dell’add-on appena descritto.

Ovviamente anche Microsoft Press fa la propria parte rilasciando ben tre volumi dedicati allo sviluppo OS/2, disponibili sia in formato cartaceo che come parte della Microsoft Programmer’s Library CD-ROM a 395$.

    OS/2 1.10 - 1.20

    Il 2 Aprile del 1987, oltre alla versione 1.00, viene annunciata anche la minor release 1.10 Standard Edition (Codename TRIMARAN), evidenziando i piani di sviluppo per la GUI Presentation Manager.

    Il rilascio ufficiale arriva a circa 18mesi di distanza, 30 Ottobre del 1988, con uno smagliante Presentation Manager (PM) che permette agli utenti di lavorare in modo molto più intuitivo e user friendly.

     

    os211_desk

    OS/2 1.10 Presentation Manager


    os211_cpanel

    OS/2 1.10 Control Panel


    Nonostante Presentation Manager condivida gli stessi elementi portanti di Windows 2.0, i due ambienti si differenziano tra loro in diversi punti. Prima di tutto le API sono assolutamente nuove e non si portano dietro i problemi di compatibilità che Windows 2.0 deve tollerare come erede diretto della prima versione.

    Inoltre il motore grafico di OS/2 è il Graphics Programming Interface (GPI), sviluppato da IBM, decisamente più potente dell’engine di Windows e, fondamentale, indipendente dal device grafico (scheda video).  Anche la struttura stessa della finestra è leggermente diversa: Windows usa una singola finestra con una “client area” e un frame control, PM, al contrario, utilizza una serie distinta di sub-finestre per i vari elementi (controlli, client, ecc.).

    Queste differenze fanno si che sia relativamente semplice portare applicazioni disegnate per Windows nell’ambiente Presentation Manager, ma il contrario può risultare decisamente complesso. Inoltre, proprio per favorire l’utilizzo di applicazioni Windows all’interno di Presentation Manager, Microsoft sviluppa WLO (si pronuncia ‘Willow’), un insieme di librerie che fornissce uno layer di compatibilità con le Windows API. L’idea di base è quella di evitare di dover ricompilare le applicazioni specifiche dell’ambiente a finestra di BigM.

    In realtà, rispetto a questa soluzione, esisteva una resistenza interna alla stessa Microsfot dovuta, essenzialmente, a due motivi:

    1. Il ridotto numero di applicazioni disponibili per Windows nel 1988
    2. Il rischio che gli sviluppatori realizzassero applicazioni basate sulle Windows API ignorando completamente le API proprietarie di Presentation Manager, essendo

    A febbraio del 1991 viene rilasciato WLO 0.9, ma il mercato lo ignora quasi del tutto, nonostante Microsoft lo utilizzi con successo per effettuare il porting di Excel e Word. WLO viene ampiamente documentato nell’SDK specifico di Windows 3.0, ma viene totalmente ignorato da IBM, probabilmente per problemi di licenza o per lo scarso interesse a supportare soluzioni cross-platform a favore di quelle verticali.

    Le migliorie, comunque, non si limitano alla GUI. Viene infatti superato il limite delle partizione di 32MB, ora teoricamente 4GB esattamente come il PC/MS DOS 4.0 ma sempre su FAT, e viene aggiunto il supporto per le named pipe, fondamentale per il nascente Lan Manager.

    Inoltre lo spooler di stampa è completamente rivisto sia per utilizzare al meglio le funzionalità di controllo della nuova GUI sia per gestire più efficacemente le code di stampa. Con questa versione arriva anche l’Editor “E”, sicuramente più efficace del vecchio EDLIN, che farà la propria comparsa anche nel DOS 5 targato IBM.

    ms11_editor

    "E" Editor


    Qualche mese dopo la versione SE IBM rilascia inoltre la versione EE (Extended Edition) di OS/2 1.10 che include un Database Manager (un DB relazionale multitasking) e il Communications Manager (per la creazioni di architetture client-server basate su Mainframe IBM).

    A Novembre del 1989 arriva OS/2 1.20 (SE e EE). Si tratta in sostanza della release matura di OS/2 che si presenta con importanti miglioramenti al Presentation Manager, che acquista un look decisamente più modero anticipando, per la prima volta, le innovazioni che verranno introdotte con Windows (3.0).

     

    os212_desk

    OS/2 1.2 Presentation Manager


    win30

    Windows 3.0 Program Manager


    Con questa minor release arriva anche il nuovo linguaggio di scripting REXX, pensato per offrire agli sviluppatori un linguaggio interpretato potente e flessibile, anche se l’innovazione più importante è il nuovo dell'High Performance File System (HPFS), ovvero un file system più efficiente e sicuro rispetto al FAT. Disponibile solo nella Extended Edition, il nuovo file system è progettato direttamente da Gordon Letwin, Chief Architect OS/2 per Microsoft, e rappresenta una soluzione moderna che supera molte delle limitazioni del FAT e proietta, potenzialmente, OS/2 nel mondo dei Server.

    Il nuovo file system ha una serie impressionante di features:

    • Supporto ai nomi lunghi dei file (255 caratteri);
    • Supporto agli attributi estesi (EAs);
    • Supporto per partizioni/dischi fino a 64GB;
    • Bassa frammentazione;
    • Tasso minimo di spazio di allocazione sprecato (allocation waste);
    • Resistenza (tramite ridondanza) al danneggiamento di settori fisici del disco;

    In realtà furono create due versioni di HPFS: HPFS “light” e HPFS386. La seconda è decisamente più veloce e performante, ma viene scritta direttamente nell’assembler specifico per l’i80386, costringendo il team a riscriverlo successivamente in C e, per diverse ragioni non del tutto note, tralasciando alcune funzionalità avanzante come le ACL (Access Control List) e le limitazioni sulle directory.

    E’ interessante sottolineare che sia IBM che Microsoft erano ben consci delle limitazioni del fs FAT e che entrambi avviarono progetti paralleli per la realizzazioni di un suo sostituto, ma alla fine a spuntarla fu la soluzione di Letwin.

     

    os212_tut os211_cpanel

    os211_fman xl2_chtypes

    interfaccia versione 1.xx