La sensazione che si prova la prima volta che si apre il config.sys di OS/2 è un misto di smarrimento e frustrazione: smarrimento per la vastità del file stesso e frustrazione per il fatto che molto di ciò che si vede ci appare assolutamente nuovo e, possibilmente, misterioso.
In questo articolo cercheremo di mostrare come, con un po' di pazienza, sia possibile non solo venirne a capo, ma addirittura ottimizzare il funzionamento di OS/2 e migliorarne le prestazioni generali.
Quanto andremo a dire sul config.sys di OS/2 Warp 4 vale, con poche eccezioni (ad esempio il WarpCenter), anche per il config.sys di OS/2 Warp 3.
Prima di iniziare, tuttavia, occorrono un po' di preliminari, in particolare è bene fare una copia di sicurezza del config.sys e, inoltre, impratichirsi un po' con l'editor testuale di OS/2, il tedit.
In caso di problemi, infatti, è possibile che ci si ritrovi con il sistema che non riparte correttamente e, in casi come questo, l'unica è premere la combinazione [Alt][F1] all'avvio quando compare in alto a sinistra sullo schermo la scritta "OS/2" preceduta da un rettangolo bianco.
La combinazione [Alt][F1] fa comparire un menù dal quale con [F2] si passa a una finestra comandi a tutto schermo nella quale è possibile eseguire qualunque comando testuale come l'editor suddetto andando a cambiare le eventuali impostazioni sbagliate che
sono state inserite nel config.sys, oppure si ripristina il config.sys dalla copia che si era fatta (vero ?) prima di iniziare a seguire i suggerimenti che troverete in questo articolo.
La grafia [...] significa: premere il tasto indicato tra le parentesi quadre; nel caso ci siano più tasti tra parentesi quadre, uno affianco all'altro come in [Alt][F1], si intende che si devono premere insieme i due tasti. Chiarita la procedura necessaria ad aggirare eventuali problemi possiamo incominciare a vedere com'è fatto il config.sys della nostra macchina, pertanto apriamo una finestra comandi di OS/2 e digitiamo tedit config.sys ottenendo il risultato visibile in fig. 1.
Preme ricordare, a questo punto, che i due comandi fondamentali del tedit sono: [F2] per salvare le modifiche e [F3] per terminare il tedit stesso; inoltre tutte le impostazione del config.sys che mostreremo in questo articolo fanno riferimento al disco H: che è la partizione che sulla macchina dello scrivente contiene OS/2, è ovvio che sulla vostra macchina la partizione potrebbe essere diversa e pertanto i riferimenti ad H: andranno sostituiti con l'identificativo dell'unità corretta. (C: o D: o quale che sia).
Vediamo ora una panoramica dei vari tipi di comandi che sono inclusi nel config.sys:
I comandi diretti comunicano delle impostazioni alla procedura di avvio di OS/2 e servono, in genere, a impostare alcune caratteristiche dell'ambiente di lavoro che non possono essere altrimenti specificate.
Data la loro natura esamineremo uno per uno i più importanti tra questi comandi visto che ognuno di loro è in grado di influenzare in maniera abbastanza significativa l'intero funzionamento di OS/2.
Scorrendo un normale config.sys si trovano, in genere in quest'ordine, i seguenti comandi:
PROTSHELL=H:\OS2\PMSHELL.EXE che serve a inizializzare Presentation Manager, ovvero l'interfaccia grafica di OS/2; mettendo al suo posto =H:\OS2\CMD.EXE si ottiene di partire a tutto schermo con la sola finestra comandi di OS/2 potendo così eseguire solo applicativi a pieno schermo e non grafici (ovvero quello che succede quando si parte con [Alt][F1] e poi [F2] come spiegato prima).
LIBPATH=.;H:\VT\SPCH_BIN;H:\opendoc\BIN;H:\OS2\DLL;[...] questo comando indica a OS/2 dove andare a cercare le .DLL qualora il programma richiedente non specifichi anche la sub directory in cui andare a prelevarle. Il comando è un comando diretto e non un comando d'impostazione di una variabile d'ambiente e per modificare il percorso attivo occorre riavviare il sistema. Il primo parametro ".;" significa cerca la .DLL nella subdirectory corrente. (Si veda la parte successiva per le variabili d'ambiente BEGINLIBPATH e ENDLIBPATH).
PRIORITY_DISK_IO=YES serve a garantire che il programma che si trova in primo piano, ovvero il programma che sta interagendo con l'utente, abbia un aumento della sua priorità atto a garantirgli una più veloce gestione delle operazioni di I/O. Qualora si eseguano programmi in background che necessitano di frequenti accessi ai dischi (tipo un gestore di BBS o un web server) conviene porre questo comando a =NO al fine di non penalizzare le prestazioni di questi applicativi.
FILES=30 riguarda le finestre DOS (VDM) ed equivale all'omonimo comando presente nel config.sys del DOS (in tutte le sue versioni compresa la 95), tale comando non influenza gli applicativi OS/2 che hanno tutti il limite di 64000 file aperti ognuno.
BUFFERS=20 ogni applicativo che esegue delle operazioni di I/O vede tali operazioni arrotondate a un multiplo di 512 (ovvero un programma che legga 50 byte in realtà esegue un'operazione di lettura di 512 byte che vengono messi in uno dei buffer disponibili); se si usano solo partizioni FAT, o si usano molto i floppy o dispositivi rimovibili formattati FAT, conviene incrementare tale numero (il minimo è 3 il massimo 100) in modo da consentire al sistema di disporre di buffer sufficienti per tali operazioni; se, viceversa, si usano in prevalenza partizioni HPFS non è necessario tale incremento in quanto lo HPFS ha un diverso schema di bufferizzazione delle operazioni di I/O.
IOPL=YES questo comando consente a un programma di eseguire delle operazioni di I/O senza passare per un device driver, ma sfruttando un segmento a 16 bit apposito (cosa che potrebbe risultare pericolosa per l'integrità del sistema in determinati casi), per inibire questa possibilità porre a =NO il comando; in realtà di applicativi che necessitano di questa possibilità ce ne sono pochi in giro (uno degli ultimi era il faxworks lite incluso in Warp 3) e non vi è molta differenza tra il lasciarlo a =YES e il porlo a =NO.
DISKCACHE=D,LW questo comando imposta la memoria cache per le partizioni FAT; il primo parametro indica quanta memoria usare come cache (D=10%), il secondo abilita la modalità lazy write (ovvero le operazioni di scrittura vengono riportate sul disco solo quando il sistema è inattivo migliorando quindi le prestazioni); nel caso si utilizzino solo (o in prevalenza) partizioni HPFS conviene porre il primo parametro a 128 o 256 in modo da evitare di utilizzare una parte potenzialmente grossa della memoria come cache di un file system che si usa poco. Infine conviene aggiungere come terzo parametro AC:xyz laddove xyz rappresentano il nome delle partizioni FAT disponibili nel sistema, ottenendo così un controllo automatico delle partizioni specificate nel caso il sistema non venga chiuso correttamente (ad esempio a causa di una interruzione della corrente).
MAXWAIT=3 questo comando specifica il tempo in secondi che un thread pronto, ma bloccato da altri thread di pari priorità, deve attendere prima che la sua priorità sia innalzata al fine di consentirgli di essere eseguito per uno timeslice (quantità di tempo normalmente pari a 32 ms) dalla cpu. E' fortemente consigliato porre questo valore a 1 a meno che non si stia usando un vecchio 386.
MEMMAN=SWAP,PROTECT e SWAPPATH=H:\OS2\SYSTEM 2048 2048 sono due comandi che specificano le modalità di funzionamento della memoria virtuale sotto OS/2.
Attraverso il primo il sistema è impostato in modo da utilizzare parte del disco fisso quando la RAM presente nel sistema non è sufficiente alle richieste dei programmi attivi. E' senz'altro da lasciare così com'è perché disabilitando lo swapping (lo scambio di dati tra disco fisso e memoria) non si potrebbero più utilizzare contemporaneamente molti programmi.
Il secondo, invece conviene cambiarlo, in quanto è uno dei parametri fondamentali (con riguardo alle prestazioni del sistema) e le impostazioni di base sono molto conservative.
In particolare la sintassi è SWAPPATH=DISCO, PERCORSO, m, n dove m e n sono due numeri che indicano rispettivamente la dimensione minima che deve restare libera sulla partizione dove c'è il file di swap e la dimensione iniziale del file di swap medesimo. La regola di base recita: porre il file di swap sulla partizione più utilizzata del disco meno utilizzato questo al fine di avere le testine dello hd sempre più o meno vicine al file di swap medesimo. Nel caso siano presenti più dischi fissi conviene quindi porre il file medesimo su un disco diverso da quello dove si trova OS/2 al fine di sfruttare la parziale contemporaneità delle operazioni di I/O sui due dischi per migliorare le prestazioni. Inoltre, ma questo vale a maggior ragione per la partizione che contiene OS/2, conviene porre il file di swap in una partizione formattata HPFS per sfruttare le migliori prestazioni dello HPFS rispetto alla FAT.
Un ulteriore discorso meritano i parametri m e n. In particolare il parametro n (dimensione iniziale del file di swap), per migliorare le prestazioni, va settato alla massima dimensione raggiunta dal file di swap durante un normale uso del sistema. Per determinare tale dimensione è sufficiente un semplice script REXX, SWAPMON.CMD allegato con questo numero di "Just WARP!", che monitorizza la dimensione del file di swap registrando nel file SWAPMON.LOG la dimensione massima raggiunta.
Pur essendo il file di swap dinamico (ovvero cresce in dimensione quando OS/2 necessita di memoria e decresce non appena questa non serve più), le operazioni di ridimensionamento del file di swap stesso impegnano la CPU e il disco fisso incidendo negativamente sulle prestazioni dell'intero sistema.
THREADS=1024 il thread è la più piccola unità di elaborazione che OS/2 può gestire, ogni programma ha almeno un thread e i programmi più sofisticati possono averne anche un decina o più. Non vi è nessun reale motivo per modificare questo valore se non in condizioni ristrettissime di memoria dove si può portarlo a un valore compreso tra 256 e 512 senza problemi (dato che comunque la poca memoria a disposizione rende improbabile l'evento di avere attivi un numero di programmi sufficiente a richiedere così tanti thread).
PRINTMONBUFSIZE=134,134,134 imposta la dimensione del buffer rispettivamente per LPT1, LPT2 e LPT3. Si può incrementare la dimensione (per le porte effettivamente usate) fino a un massimo 2048; occorre che siano sempre definite le dimensioni per tutte e tre le porte. Conviene porre il parametro che si riferisce alla porta parallela più utilizzata a 1024 e verificare se le prestazioni di stampa migliorano.
Ci si può, inoltre, domandare come mai il valore di base che si trova nel config.sys sia pari a 134; ebbene, secondo l'ipotesi più accreditata, 134 è la lunghezza delle linee nei mainframe una volta che si sia aggiunta la coppia di caratteri CR e LF.
COUNTRY=039,H:\OS2\SYSTEM\COUNTRY.SYS è l'equivalente dell'omonimo comando presente nel config.sys del DOS e imposta il codice della nazione in uso (39 per l'Italia).
SET KEYS=ON attiva il buffer dei comandi nelle sessioni OS/2, il buffer è di 64 Kbyte e i comandi immessi si richiamano con i tasti freccia su e giù. E' possibile porlo a =OFF nel caso non serva questa funzionalità.
PROTECTONLY=NO consente il funzionamento della modalità V86 delle cpu a partire dal 386 e consente quindi l'esecuzione di applicativi DOS e Windows all'interno di OS/2. Se posto a =YES è possibile eseguire solo applicativi nativi OS/2. Quando è posto su =YES si recuperano i primi 640K di memoria a favore delle sessioni OS/2 oltre a rendere parzialmente più sicuro il sistema visto che i virus per DOS o Windows non sono più in grado di funzionare.
SHELL=H:\OS2\MDOS\COMMAND.COM H:\OS2\MDOS questo comando indica qual'è la shell di comandi per le sessioni DOS all'interno di OS/2. E' possibile indicare un'altra shell standard per le sessioni dos - ad esempio la shell 4DOS - semplicemente specificandone il percorso e il nome al posto di quelli presenti.
FCBS=1,1 RMSIZE=640 e DOS=LOW,NOUMB sono tutti comadi che specificano le caratteristiche delle sessioni DOS all'interno di OS/2 e sono equivalenti (tranne quello centrale) agli omologhi comandi presenti nel config.sys del DOS. Il comando centrale serve a indicare quanta ram viene resa disponibile alle VDM DOS o Windows, ridurre questo valore solo in caso si sappia esattamente ciò che si sta facendo.
CODEPAGE=850, 437 indica quali sono la codepage primaria e secondaria del sistema.
Nel caso si abbia intenzione di utilizzare programmi CLI ("command line interface" ossia programmi da riga di comando) utilizzanti la codepage 437, al fine di ottenere una corretta visualizzazione dei caratteri semigrafici nelle sessioni comandi OS/2 e DOS, si puo' lanciare questi ultimi da un batch che provveda a scambiare le codepage o intervenire durante l'installazione editando la direttiva CODEPAGE nel CONFIG.SYS del dischetto di installazione o scegliendo di usare la codepage alternativa nel primo dialog della procedura d'installazione delle varie periferiche del sistema.
Con questo abbiamo finito i comandi diretti presenti all'interno di un config.sys standard, tuttavia il consiglio è di aggiungere in un punto qualsiasi del config.sys anche il comando AUTOFAIL=YES che consente di sopprimere le finestre di avviso che compaiono quando, ad esempio, si tenta di accedere al cd senza che vi sia un cd-rom all'interno.
Warp 4, inoltre, riconosce un nuovo comando diretto, RESERVEDRIVELETTER=x consente di alterare l'assegnazione standard delle lettere ai dispositivi fatta da OS/2 riservando la lettera specificata nel comando; è possibile impostare questa opzione anche dall'oggetto Unità all'interno di Sistema OS/2 Warp, andando alla pagina "Riservato" delle impostazioni.
Da prove svolte non pare, tuttavia, possibile alterare l'assegnazione delle lettere delle partizioni locali.
Comandi d'impostazione delle variabili d'ambiente
In questa categoria ricadono tutti i comandi del tipo SET XX=YY e che servono a impostare delle copie nome = valore che poi verranno utilizzate dalle sessioni OS/2 sia a schermo intero/finestra che grafiche.
Analizzeremo, di questo gruppo, solo alcuni tra i comandi presenti nel config.sys e che influenzano direttamente il funzionamento di OS/2 poiché molti di questi comandi sono inseriti dagli applicativi che si installano via via nel sistema e riguardano solo gli applicativi medesimi.
SET USER_INI=H:\OS2\OS2.INI e SET SYSTEM_INI=H:\OS2\OS2SYS.INI questi due comandi specificano nome e locazione dei due file principali di OS/2 (OS2.INI e OS2SYS.INI) che contengono tutte le caratteristiche della Scrivania così come ci appare nonché, spesso, i dati di configurazione di una parte degli applicativi installati sotto OS/2. Si tratta di due file fondamentali per il funzionamento di OS/2, la loro mancanza o un danno causano, immancabilmente, un malfunzionamento del sistema o la mancata visualizzazione della Scrivania.
SET COMSPEC=H:\OS2\CMD.EXE SET OS2_SHELL=H:\OS2\CMD.EXE questo comando è l'equivalente OS/2 del comando SHELL visto prima mentre il comando precedente, SET COMSPEC, è equivalente all'omonimo comando presente nell'AUTOEXEC.BAT del DOS.
SET AUTOSTART=PROGRAMS,TASKLIST,FOLDERS,CONNECTIONS,WARPCENTER questo comando elenca quali elementi della Scrivania verranno attivati automaticamente alla partenza del sistema. Vi è da notare la mancanza del parametro LAUNCHPAD che in Warp 3 faceva partire il Pannello di Avvio (che è ancora presente in Warp 4) e che, se aggiunto, ne consente la partenza anche sotto Warp 4. Troviamo, invece, il parametro WARPCENTER che è responsabile della partenza del nuovo componente che è stato aggiunto a Warp 4 e che è il WarpCenter medesimo. E' possibile avere contemporaneamente sia il WarpCenter che il Pannello di Avvio. Il significato dei parametri è: SET AUTOSTART=PROGRAMMI, ELENCO PROCESSI, CARTELLE, CONNESSIONI, WARPCENTER ovviamente non è possibile usare la traduzione italiana dei parametri.
SET RESTARTOBJECTS=STARTUPFOLDERSONLY questo comando è complementare a quello precedente e non viene messo nel config.sys dalla procedura di installazione, perciò conviene aggiungervelo in un secondo momento a mano. Il significato di questo comando è quello di consentire la partenza automatica all'avvio del sistema solo di quegli oggetti che si trovano dentro alle cartelle di Avviamento (si, ce ne possono essere più di una). E' utile avere questo comando nel config.sys per due motivi: il primo è che in caso di avvio dovuto a blocco del sistema non si corre il rischio che l'applicazione che ha provocato il blocco riparta automaticamente causando un successivo blocco e così via; il secondo è che se si esegue una chiusura del sistema con degli applicativi in background, alla successiva partenza tali applicativi sono nuovamente eseguiti in maniera automatica, questo provoca un allungamento dei tempi di avvio di OS/2 oltre a essere causa di inspiegabili rallentamenti, avvio dopo avvio, dovuti semplicemente al fatto che ci sono sempre più applicativi in background che girano.
SET RUNWORKPLACE=H:\OS2\PMSHELL.EXE questo comando indica quale sarà l'interfaccia usata da OS/2, in questo caso l'indicazione riguarda la Scrivania. Ponendo questo comando =H:\OS2\CMD.EXE si ottiene di avere come interfaccia la finestra comandi standard d i OS/2, con però Presentation Manager (l'interfaccia grafica di OS/2) attiva e quindi con la possibilità di eseguire sessioni WinOS/2 o applicativi grafici per OS/2 tranne quegli applicativi che richiedono espressamente la "Workplace Shell" per funzionare. Per quanto si perdano le funzionalità dell'interfaccia ad oggetti di OS/2, l'utilizzo di questa particolare impostazione può essere interessante nel caso si abbia la quantità di memoria a propria disposizione sia di solo 4 - 8 MB.
SET PATH=H:\MPTN\BIN;H:\IBMCOM[...] come l'equivalente comando del config.sys del DOS dice a OS/2 dove cercare i programmi.
SET DPATH=H:\MPTN;H:\IBMCOM;H:\[...] questo comando è simile nel funzionamento al comando APPEND del DOS, tuttavia gli applicativi OS/2 devono essere espressamente progettati per sfruttarne le possibilità.
SET HELP=H:\MPTN;H:\OS2\HELP;H:\VT\SPCH_RO\HELP[...] indica a OS/2 dove cercare i file di help specifici del sistema insieme a SET GLOSSARY=H:\OS2\HELP\GLOSS; consente di avere un glossario di tutti gli help disponibili nel sistema nonché un indice analitico degli stessi, inoltre il comando SET BOOKSHELF=H:\OS2\BOOK;H:\Bonu[...] indica dove si trovano i file di tipo .INF che contengono le informazioni in linea degli applicativi oltre che di alcune componenti del sistema.
SET BEGINLIBPATH= e SET ENDLIBPATH= sono due variabili d'ambiente introdotte a partire da OS/2 Warp 3 e che vengono valutate da OS/2 rispettivamente prima e dopo aver valutato le impostazioni del comando LIBPATH= (di cui abbiamo trattato nella sezione precedente). In tal modo è possibile modificare (localmente alla sessione in cui vengono usate) il percorso di ricerca delle .DLL usato da OS/2 in risposta a una richiesta di caricamento di una .DLL eseguita da un applicativo.
All'interno di Warp 4 c'è il WarpCenter che viene installato automaticamente con OS/2, il WarpCenter ha un paio di caratteristiche non documentate che sono impostabili tramite alcune SET e in particolare:
SET SCUSEPRETTYCLOCK=ON che modifica la modalità di visualizzazione dell'orologio che si trova all'estrema destra del WarpCenter.
SET KILLFEATUREENABLED=ON che consente di avere una lista dei processi terminabili d'autorità dal sistema. Per ottenere questa lista occorre (dopo aver riavviato il sistema perché l'impostazione abbia effetto) clickare sull'icona che mostra l'elenco dei processi attivi (la seconda da sinistra) tenendo premuto il tasto [Ctrl]; tale azione farà comparire un elenco dei processi terminabili, selezionandone uno comparirà una finestra di conferma che se confermata provocherà l'immediata terminazione del processo scelto.
SET SCKILLCONFIRMDISABLED=ON consente di eliminare la finestra di conferma di cui si diceva al comando precedente.
SET SCFINDUTILITY=NOME PROGRAMMA consente di associare all'icona della torcia un programma di ricerca a scelta.
SET SCCANBENUKED=ON rende cancellabile l'icona del WarpCenter.
Questi ulteriori comandi sono, come del resto quasi tutti i comandi del config.sys di OS/2, inseribili in un punto a piacere del config.sys stesso.
In questa categoria rientrano i componenti base che consento a OS/2 il funzionamento, in Warp 4 si trovano tutti all'interno della subdirectory \OS2\BOOT del disco di avvio di OS/2 (nel caso dello scrivente H:) e possono essere solo li o nella directory base H:\ del disco di avvio dal momento che OS/2 quando carica questi file non è ancora in grado di svolgere ricerche nel filesystem.
Non c'è molto da dire su questi file se non che sul sito OS/2 Device Driver Pack On-Line è possibile prelevare delle versioni beta di alcuni di questi file che hanno delle funzionalità aggiuntive rispetto alle versioni presenti nel cd di OS/2, i file nello specifico sono:
BASEDEV=IBM1S506.ADD presente in tutti i sistemi con dischi ide o eide, la versione beta consente di abilitare i trasferimenti in DMA (ovvero senza intervento della cpu) sui dischi fissi. Per fare ciò è necessario avere una scheda madre con chipset triton e dischi eide (ovviamente il possesso di un sottosistema SCSI risolve alla partenza questi problemi). L'attivazione del DMA in un sistema multitasking come OS/2 porta dei notevoli vantaggi in quanto la cpu non deve più occuparsi personalmente del trasferimento dei dati dal disco fisso alla memoria, ma delega questa operazione al controller dei dischi e, pertanto, è libera di fare altro mentre il trasferimento è in corso.
BASEDEV=OS2DASD.DMD la versione beta disponibile nel sito di cui sopra contiene il supporto per le unità rimovibili (Syquest, magnetottici etc.).
Infine, nell'installazione standard di OS/2 viene inserito nel config.sys anche il comando BASEDEV=IBM2FLPY.ADD che fornisce il supporto ai floppy sulle macchine con bus microchannel, nel caso non si disponga di una macchina con tale caratteristica (oramai non si producono più macchine microchannel) si può rimuovere questo comando recuperando quel po' di memoria che occupa.
Per risparmiare memoria conviene mettere un REM anche davanti alla riga BASEDEV=XDFLOPPY.FLT che serve esclusivamente per i floppy di formato esteso usati per installare OS/2.
BASEDEV=PRINT01.SYS sempre l'installazione standard pone nel config.sys questo basedev che fornisce il supporto per le porte parallele; conviene provare ad aggiungere a questo comando il modificatore /IRQ che abilita i trasferimenti in interrupt verso la stampante, questo tipo di trasferimenti alleggerisce di molto il sistema, ma non è supportato da tutte le stampanti (e, cosa più importante, da tutti i cavi per stampante: occorre disporre di un cavo parallelo con tutti i pin connessi, spesso i cavi stampante per DOS o Windows non hanno tale caratteristica).
Questi sono i programmi di controllo delle periferiche nativi per OS/2; OS/2 a differenza di Windows non può usare device driver nati per il DOS e, pertanto, sarà possibile utilizzare solo quei dispositivi che sono forniti di device driver nativi.
I device driver fisici (riconoscibili dal fatto che si trovano, generalmente, in \OS2\BOOT) sono insieme ai device driver di base e ad alcuni IFS l'unica parte di OS/2 ancora a 16 bit (questo per motivi di compatibilità con le versioni precedenti di OS/2); in realtà a 16 bit è principalmente l'interfaccia delle chiamate a questi device driver, non necessariamente i device driver stessi che possono contenere anche codice a 32 bit. Comunque il fatto che siano ancora a 16 bit non costituisce, secondo IBM, un motivo di rallentamento dal momento che moltissime periferiche sono ancora a 8 bit e, in genere, è la velocità della periferica il vero collo di bottiglia e non il device driver.
L'elenco dei device driver presenti in un config.sys varia grandemente a seconda dello hardware presente nella macchina su cui è stato installato OS/2 e delle scelte fatte durante l'installazione; ad esempio caricando il supporto di rete ci saranno tutta una serie di device driver presi dalle subdirectory \IBMCOM\ e \MPTN\.
C'è da dire che in Warp 4 è rimasto un problema già presente in Warp 3, ovvero la procedura d'installazione richiede un mouse per essere completata (da un certo punto in poi non è possibile usare solo la tastiera), e se il mouse che si possiede non viene riconosciuto ?
Premesso che tutti i mouse recenti vengono riconosciuti, il problema sorge nel caso si abbia un mouse con qualche anno di vita sulle spalle come il Logitech serie 9 dello scrivente (almeno 8 anni di onorato servizio).
In questo caso la soluzione migliore è acquistare un mouse da 20000 lire giusto per portare a termine l'installazione, una volta che tutto è a posto si può vedere di rimettere in funzione il vecchio mouse usando un driver shareware presente su
Hobbes ovvero il file
rodnt100.zip.
Una volta preso il file si deve modificare il config.sys in questo modo:
DEVICE=H:\OS2\BOOT\POINTDD.SYS DEVICE=H:\OS2\BOOT\RODENT.SYS MOUSE=C BUTTONS=3 BAUD=9600 DEVICE=H:\OS2\BOOT\MOUSE.SYS TYPE=RODENT$ QSIZE=100 DEVICE=H:\OS2\MDOS\VMOUSE.SYS DEVICE=H:\OS2\BOOT\COM.SYS DEVICE=H:\OS2\MDOS\VCOM.SYScalma e sangue freddo e vediamo cosa cambia rispetto a un config.sys standard. Innanzi tutto cambia l'ordine con il quale sono posti i driver ovvero: per primo il POINTDD.SYS che è il device driver fisico che fornisce il supporto mouse alle sessione a tutto schermo, poi il RODENT.SYS che è il driver appena preso sul sito Hobbes e che fornisce il supporto oltre che a vecchi mouse a dispositivi diversi quali tavolette grafiche. RODENT.SYS ha una marea di parametri che non discuteremo in questa sede (quelli mostrati vanno bene con il mouse dello scrivente), ma che consentono di impostarne con esattezza il funzionamento. Dopo viene il MOUSE.SYS a cui si specifica di usare il device logico RODENT$ come programma di controllo mouse. Il secondo parametro QSIZE=100 indica al driver quante azioni del mouse vanno conservate nel caso si svolgano operazioni col mouse più velocemente di quanto il sistema riesca a elaborarle (in pratica è la dimensione di un buffer delle azioni compiute: valori da 10 a 100).
I device driver virtuali sono a 32 bit e servono a virtualizzare dei dispositivi fisici (quali porte seriali o tastiera) in modo che più applicativi (DOS o Windows) possano accederci contemporaneamente senza che un applicativo possa intralciare il funziona mento degli altri.
All'interno del config.sys ci sono diversi driver virtuali quali: DEVICE=H:\OS2\MDOS\VEMM.SYS per il supporto delle specifiche EMS o DEVICE=H:\OS2\MDOS\VXMS.SYS per quelle XMS o ancora DEVICE=H:\OS2\MDOS\VDPMI.SYS per le specifiche DPMI.
Vi è inoltre da notare che non è necessario che un device driver virtuale faccia riferimento a uno fisico (come nel caso di COM.SYS e VCOM.SYS), ad esempio i vari device virtuali che emulano i tipi di memoria disponibile in una macchina DOS si interfacciano direttamente alle api di sistema di OS/2 consentendo di avere, nella stessa vdm, tipi diversi di memoria e in quantità anche molto elevata (ad esempio di memoria DPMI se ne possono assegnare a ogni vdm fino a 512 Mbyte).
Inoltre, in genere, i device driver virtuali appaiono all'interno delle impostazioni degli oggetti della Scrivania che si riferiscono a un programma DOS o Windows e consentono di modificare, oggetto per oggetto, i parametri relativi all'emulazione che forniscono al sistema.
I file system installabili servono per poter gestire più unità o partizioni formattate in maniera differente. OS/2, di suo, fornisce i file system per gestire partizioni HPFS e cd rom (oltre alle partizioni FAT che però non vengono gestite con un file system, ma direttamente dal kernel di OS/2).
IFS=H:\OS2\HPFS.IFS /CACHE:1536 /CRECL:8 /AUTOCHECK:DEFGH questa è normalmente la prima linea del config.sys e provoca il caricamento dello IFS responsabile della gestione delle partizioni HPFS. Il parametro /CACHE:x indica quanta memoria dedicare alla cache e, se non indicato, equivale al 10% della ram disponibile fino a un massimo di 2048 Kb. Nel caso non si abbiano dischi HPFS conviene porre un'istruzione REM all'inizio della riga in modo da evitare il caricamento del file system stesso. Nel caso si disponga di poca ram (8 Mb) conviene dedicare massimo 512 Kb alla cache per evitare di sottrarre risorse preziose al sistema. E' bene tenere a mente che la cache dello HPFS è molto più efficiente rispetto a quella che si ha sotto DOS con l'uso di SMARTDRV.SYS e pertanto si può evitare di dedicare troppa ram alla cache lasciandola disponibile al sistema. /CRECL:n indica la dimensione massima di un record inseribile nella cache (in multipli di 2Kb) e /AUTOCHECK:xyz indica di eseguire un test automatico sulle partizioni xyz nel caso il sistema non sia stato chiuso ordinatamente la volta precedente. E' possibile avere un controllo automatico a ogni avvio facendo precedere la lettera della partizione da un segno "+" in questo modo: /AUTOCHECK:C+DEF+GH che significa esegui un controllo a ogni avvio sulle partizioni D e G, nonché sulle altre in caso di un precedente spegnimento non ordinato del sistema.
IFS=H:\OS2\BOOT\CDFS.IFS /C:6 /M:16 /Q questo secondo comando (senza le opzioni /C e /M di cui parleremo dopo) è presente se avete un lettore di cd sulla vostra macchina, dal momento che OS/2 Warp 4 viene fornito solo su cd rom avrete sicuramente anche questo IFS. I due parametri presenti nell'esempio servono: /C:n a impostare il numero di blocchi da 64 Kb da dedicare alla cache del lettore di cd e conviene porlo almeno a 4 per un totale di 256 Kb di cache; /M:n indica il numero massimo di settori da leggere in una volta e il valore di base è 8; anche in questo caso, se usate molto i cd conviene provare ad aumentare questo valore (massimo consentito 32) e vedere se le prestazioni migliorano. In ogni caso attenzione che se avete poca ram non conviene sottrarla a OS/2 che potrebbe averne un bisogno maggiore.
Per chi ha anche Linux sulla sua macchina è disponibile un file system per partizioni ext2 che consente la lettura e la scrittura sulle partizioni Linux e che assegna alle partizioni Linux una lettera così come farebbe OS/2. Il file system è prelevabile da Hobbes o da altri siti contenenti programmi per OS/2.
Infine, è disponibile negli EWS(software gratuito scritto dagli impiegati IBM) il Toronto Virtual File System ( TVFS.IFS) che consente di avere sotto OS/2 alcune delle caratteristiche disponibili sulle macchine Unix e VM oltre a consentire di accedere alle unità come se fossero subdirectory di un'unica unità virtuale; l'analisi delle caratteristiche di questo file system va oltre le possibilità di questo articolo, ma consigliamo ai più esperti di darci un'occhiata perché potrebbe riservare loro alcune piacevoli sorprese.
Questi comandi vengono eseguiti nell'ordine in cui si trovano all'interno del config.sys dopo che sono stati caricati tutti i device driver. Possono essere eseguiti in questo modo solo programmi testuali, ovvero non programmi PM o WPS e, in genere, questi comandi vengono inseriti nel config.sys dalla procedura d'installazione di OS/2 o di alcuni applicativi. Se si vuole che un programma particolare venga eseguito automaticamente ad ogni avvio conviene porre una copia collegata (shadow) del programma stesso nella cartella di Avvio del sistema oppure creare un file di nome STARTUP.CMD nella directory base della partizione di avvio e al suo interno elencare, uno per riga, i nomi dei programmi che si vogliono lanciare e i parametri dei programmi stessi.
RUN=H:\OS2\CACHE.EXE /MAXAGE:40000 /DISKIDLE:30000 /BUFFERIDLE:20000 questo comando non si trova all'interno del config.sys ma occorre aggiungerlo a mano al fondo del config.sys stesso al fine di ottimizzare i parametri di funzionamento della cache delle partizioni HPFS, ovviamente non va inserito in caso non si abbiano tali partizioni. I parametri servono a modificare le temporizzazioni della cache e in particolare /MAXAGE:n indica in millisecondi quanto tempo i dati possono permanere nella cache prima di
essere marcati come "vecchi" e quindi essere resi disponibili alla sostituzione da parte di nuovi dati, oppure scritti su disco nel caso siano stati modificati; /DISKIDLE:n indica quanto il disco fisso può restare inattivo prima che il processo di aggiornamento rifletta su disco le modifiche presenti nella cache; /BUFFERIDLE:n indica dopo quanto tempo i dati della cache devono comunque essere scritti su disco.
Altri parametri disponibili sono /LAZY:ON|OFF|n dove n rappresenta un numero, che fa sì che i dati vengano scritti sul disco solo quando esso non deve effettuare altre attività (il valore di default è /LAZY:ON) e il non documentato /READAHEAD:n che presumibilmente provoca la lettura anticipata di blocchi di dati contigui.
I valori mostrati sono stati indicati dalla Proportional Software (che produce il DCF/2 un programma di compressione per partizioni nativo OS/2) e, a loro dire, sono quelli che forniscono le migliori prestazioni.
Da una finestra comandi di OS/2 è possibile eseguire il comando cache con alcuni parametri non documentati, il primo è /DSTG:ON che mostra le impostazioni attualmente in vigore per la cache.
Gli altri (inseribili anche nel config.sys) sono /DIRTYMAX:n che imposta il numero di buffer, che possono trovarsi nella cache in attesa di scrittura, superato il quale viene forzata la scrittura dei buffer medesimi su disco e /WRITECACHE:n che indica la dimensione massima che un'operazione di scrittura differita attraverso la cache può avere, ovvero se un applicativo scrive i dati sul disco in blocchi superiori a questa dimensione le scritture avverranno direttamente su disco, altrimenti verranno fatte sul la memoria cache che poi li copierà su disco non appena avrà tempo. La dimensione massima di questo parametro è di 65535 byte e corrisponde al valore impostato di default dal sistema.
RUN=H:\TCPIP\BIN\VDOSCTL.EXE di questo comando, che viene posto nel config.sys se si sceglie di installare il TCP/IP e che serve a fornire il supporto TCP/IP alle sessioni DOS e WinOS/2, parleremo più estesamente nella sezione dedicata ai comandi REM.
Comandi per lo scambio delle codepage
Questi comandi servono per quelle periferiche che sono in grado di supportare più insiemi di caratteri estesi, in particolare sotto OS/2 questi sono la tastiera e lo schermo. DEVINFO=KBD,IT141,H:\OS2\KEYBOARD.DCP questo comando indica al driver della tastiera quale set di caratteri dovrà usare e dove trovare la tabella di conversione dei caratteri stessi. Di default, per la versione italiana di OS/2 viene installato il layout di tastiera di tipo 142 in cui alcuni caratteri ("@", "#", "[" e "]") sono in posizione differente rispetto alle tastiere di tipo 141 che sono le più diffuse in Italia.
DEVINFO=SCR,BGA,H:\OS2\BOOT\VIOTBL.DCP questo invece serve al driver dello schermo per impostare le codepage indicate con il comando CODEPAGE trattato nella sezione Comandi diretti.
Questa è l'ultima categoria (anche come importanza) di comandi presenti nel config.sys.
Il comando REM, posto all'inizio di una riga, identifica la riga stessa come commento e fa si che il processo di avvio di OS/2 la salti.
Il config.sys standard contiene, nel caso si sia deciso di installare il supporto TCP/IP, i seguenti comandi:
DEVICE=H:\TCPIP\BIN\VDOSTCP.VDD DEVICE=H:\TCPIP\BIN\VDOSTCP.SYS RUN=H:\TCPIP\BIN\VDOSCTL.EXEche forniscono il supporto TCP/IP alle sessioni DOS (e quindi anche WinOS/2). Nel caso non si eseguano programmi DOS, o Windows (in particolare programmi Internet quali Netscape per Windows o altro) è possibile rimuovere (o meglio, commentare facendoli precedere da REM) questi tre comandi recuperando le risorse occupate.
Con questo abbiamo terminato la nostra passeggiata attraverso il config.sys; non è stato un giro esaustivo, ma non avrebbe comunque potuto esserlo data la molteplicità e varietà di comandi che possono trovarsi all'interno di tale file.
Ci auguriamo, tuttavia, di essere riusciti a fare un po' di chiarezza sulla struttura e le funzioni di questo file essenziale per il funzionamento di OS/2 Warp.
Molte cose resterebbero da dire (ad esempio riguardo al supporto per le reti e alle istruzioni specifiche che si trovano all'interno del config.sys), ma avremmo scritto un libro e non un articolo, pertanto si è deciso di descrivere le parti fondamentali, nonché quei comandi che possono influire anche pesantemente sul funzionamento e le prestazioni di una macchina OS/2.