Precedente Principale Sommario Informazioni Redazione Browser

[Rubrica IBM OS/2] Coordinamento di Paolo Tortiglione

Il CONFIG.SYS di OS/2 Warp

di Paolo Tortiglione

Una delle maggiori novità che da una lato sconvolgono il neofita ma dall'altro affascinano l'utente OS/2 é il nuovo e complesso file di configurazione di sistema che fin dalle prime fasi l'utente si trova a dover affrontare: parlo ovviamente del famigerato (e da molti così tanto odiato) CONFIG.SYS.
Le nuove potenzialità di OS/2 e le molteplici funzioni che il sistema operativo supporta non potevano necessariamente fare a meno di un loro specifico file di configurazione. Se ciò da un lato comporta forzatamente un grosso sforzo in fase di apprendimento dall'altro offre tante e tali peculiarità da essere uno dei punti cruciali per impostare al meglio la performance dell'intero sistema.
Per cui in questa sede ci confronteremo con tale file di configurazione e vedremo come, con un pò di pazienza, tale file sia tutto sommato piuttosto comprensibile ed i segreti che vi troveremo nascosti tra i vari parametri siano più che un mistero, una fonte pressoché illimitata di nuove ed interessanti possibilità.
Iniziamo quindi con il verificare a grandi linee in quante parti può essere diviso un file di CONFIG.SYS e quali siano le funzioni specifiche di ognuna di queste grandi sezioni.
Per tutti gli esempi che seguiranno valga una volte per tutte la sintassi che vi mostriamo di seguito:

Xxx=D:\PATH\DEVICE.SYS /SWITCH

dove Xxx é l'istruzione appartenente alla feature che si desidera implementare, D:\PATH é il percorso generico dove il file é posizionato, DEVICE.SYS é il nome del driver prescelto e /SWITCH é la specifica opzione o più opzioni che tale driver o istruzione ammette.
Un esempio generico di file come quello che vi mostriamo nella seguente figura 1:

  • TIPICO CONFIG.SYS

    Parte all'inizio con una delle istruzioni più importanti e vitali per il sistema operativo stesso: la dichiarazione del File System che l'OS/2 intende usare.
    Questa é una istruzione talmente fondamentale per l'utente che merita necessariamente un piccolo approfondimento. La tipica riga che inizializza il File System appare come qualcosa di simile a:

    IFS = D:\PATH\HPFS.IFS /CACHE:512 /CRECL:4 /AUTOCHECK:C

    La precedente istruzione inizalizza la struttura di memorizzazione ad alte prestazioni HPFS (si veda a tale proposito il nostro articolo apparso su OS/2 Magazine N°4); ed è' ovviamente necessaria se l'utente in fase di inizializzazione del sistema ha scelto questo tipo di struttura al posto della FAT (ricordiamo che IFS sta per Installable File System).
    Dispone di tre switch: il primo CACHE:n inizializza una disk cache e ne imposta la misura. Viene impostata quasi sempre di default a 64 e qualche volta anche a meno (dipende ovviamente dal tipo di installazione effettuata). Se si dispone di 8 MB di RAM potrebbe essere conveniente provare con 512 o anche più, basta ovviamente non eccedere dato che l'IBM consiglia ufficialmente un valore di massimo 1.5 MB e valori maggiori di 2048 finirebbero con il togliere importante RAM alle applicazioni. Il secondo CRECL:n imposta il valore massimo del record size per il caching: può variare da 2KB a 64 KB contando ovviamente per multipli di 2KB.
    Il terzo switch AUTOCHECK:d indica all'OS/2 di fare un check disk del drive specificato al momento dello startup. Chi usa solo FAT può evidentemente fare a meno di tale istruzione e risparmiare così circa 500 KB di RAM ! (con le limitazioni che la FAT comporta ovviamente).
    La prima sezione prosegue con un'altra istruzione fondamentale: l'impostazione della Shell di default per l'avviamento. L'istruzione dovrebbe essere del tipo:

    PROTSHELL = D:\PATH\PMSHELL.EXE

    Questo comando carica la GUI (Graphic User Interface) con la quale l'utente desidera lavorare. Per ora ovviamente si usa la ben nota e funzionale Workplace Shell - che da ora in poi chiameremo semplicemente WPS - (conforme alle norme CUA) ma non é detto che in un futuro qualche ISV (Indipendent Software Vendor) non ne sviluppi di alternative (si pensi ad esempio al Norton Desktop per Windows). Se si omette tale comando l'OS/2 caricherà il CMD.EXE di default.
    Da questo punto in poi, tolte poche eccezioni, inizia una seconda parte piuttosto lunga ma tuttavia necessaria. Si tratta di una serie di istruzioni di tipo SET che serviranno all'OS/2 a definire i propri parametri di funzionamento interno. Gli applicativi che fanno uso di queste variabili di ambiente sono moltissimi.
    Si parte con SET USER_INI = D:\PATH\OS2.INI. Questa definizione fornisce all'OS/2 il nome del file che contiene tutte le informazioni relative al setup delle applicazioni PM ed alla configurazione della WPS fatta dall'utente nella sessione precedente. Da notare che il file OS2.INI é un file particolarmente importante per l'OS/2 per cui dato che non é un file ASCII se ne sconsiglia vivamente la modifica con un editor di testi. Nel caso involontariamente il file rimanga danneggiato sarà necessario ricompilarlo con uno di default fornito con il sistema operativo e con il relativo compilatore. Il file per tutto il tempo in cui il sistema operativo ha il controllo dell'hardware é sempre attivo per cui risulta bloccato ad ogni tentativo di accesso e cancellazione, per cui l'utente non dovrebbe preoccuparsi eccessivamente di questo. Basta fare la dovuta attenzione e non usare "utility a rischio".
    La seconda istruzione appartenente a questo gruppo è generalmente SET SYSTEM_INI = D:\PATH\OS2SYS.INI
    L'uso e le funzionalità di questa istruzione sono molto simili alla precedente, unica differenza sta nel contenuto di questo file che contiene tutte le informazioni relative il tipo di hardware che il sistema usa.
    Oltre troviamo ancora una istruzione di tipo set e precisamente SET OS2_SHELL = D:\OS2\CMD.EXE. Tale Istruzione è molto importante al punto che OS/2 non parte senza di essa dato che il CMD.EXE è il processore di comandi del sistema operativo. La sezione continua con altre righe di set che indicheranno al sistema tutte le caratteristiche e le operazioni da farsi al momento del IPL.
    Abbiamo l'istruzione SET AUTOSTART= PROGRAMS,TASKLIST,FOLDERS che viene usata per eseguire parti della WPS al momento dell'inizializzazione. Le istruzioni che seguono AUTOSTART sono molto chiare per cui non necessitano di ulteriore commento. Da aggiungere solo che in ambiente di rete il parametro CONNECTIONS esegue le necessarie connessioni di rete se necessarie e presenti al momento del precedente Shutdown.
    L'istruzione SET RESTARTOBJECTS può avere vari parametri. Generalmente viene posto YES di default in quanto è piuttosto comodo avere i programmi che erano attivi al momento dello Shutdown nuovamente attivi all'IPL ed esattamente al punto in cui si era lasciata l'esecuzione. Se tuttavia si usa il parametro STARTUPFOLDERSONLY verranno eseguiti solo i programmi inseriti nella cartella di Startup. L'istruzione SET COMSPEC = D:\OS2\CMD.EXE è simile alla analoga istruzione del sistema operativo D.O.S. ed ha in effetti gli stessi risultati per quanto riguarda i programmi che usano in modo intenso il CMD.EXE.

    A questo punto inizia un'altra sezione del file che imposta i vari path a seconda delle funzioni. Abbiamo in testa lo statement LIBPATH = D:\OS2\DLL;D:\PATH\...; questa istruzione è propria di OS/2 e non trova analogo in D.O.S. Serve a comunicare al sistema operativo i vari path dove sono memorizzate le varie DLL (Dynamic Link Libraries). Il comando è simile a DPATH e PATH che vedremo successivamente ma al contrario di questi può essere eseguito solo dall'interno del config.sys. Spesso si usa il punto "." per indicare a OS/2 di ricercare all'interno della directory corrente.
    Tutto ciò consente di inserire le varie DLL appartenenti ai vari software applicativi in directory separate in modo da non confonderle con quelle proprie di OS/2 che si trovano nella loro propria directory (\OS2\DLL). Questa istruzione non necessita del comando SET in quanto non si tratta ovviamente di una variabile di ambiente.

    Abbiamo poi l'istruzione SET PATH = D:\PATH\..; che ha la stessa funzione che ha in D.O.S. DPATH pur essendo simile potrebbe essere paragonata all'APPEND del D.O.S. tranne per il fatto che DPATH lavora solo con programmi progettati specificatamente per sfruttare questa caratteristica di OS/2. Segue poi il SET PROMPT=$i[$p] E' identico al Prompt del vecchio Autoexec.Bat del D.O.S.; il parametro "i" attiva l'help in linea. Un altro SET da impostare è SET HELP = D:\PATH\HELP;D:\PATH\... ed in OS/2 è peculiare dato che esso cerca per i particolari file di Help solo nei path specificati da questo comando.
    Stessa cosa valga per SET GLOSSARY = D:\PATH\HELP\GLOSS che specifica la locazione del master Help e del Glossario. Ultimo Set nell'ordine è SET DIRCMD = /ON/P o qualcosa di simile. Questo set indica al sistema operativo come presentare la dir alla richiesta dell'utente. L'utente troverà tutte le varie opzioni nella seguente figura 2.

  • LE OPZIONI DI SET DIRCMD

    A questo punto viene la parte più caratteristica ed interessante sulla quale è bene fare le dovute considerazioni. Alcune di queste features sono talmente importanti da condizionare tutte le sessioni di lavoro che si desidera aprire in OS/2 sia per quanto riguarda le VDM (Virtual Dos Machine) che le sessioni OS/2 vere e proprie.
    Alcune di queste si possono modificare fin dalle prime fasi dell'installazione o magari successivamente attraverso il pannello che si può osservare in figura 3

  • OPZIONI DOS NEL PANNELLO INSTALLAZIONE

    Uno dei comandi che ha maggiore effetto sul tuning del sistema è PRIORITY_DISK_IO = YES. Questo statement indica ai programmi che lavorano in foreground che possono avere priorità di accesso al disco rigido. Se di indica invece l'opzione "NO" tutti gli applicativi avranno la stessa priorità di accesso al disco.
    Altro ancora è PRIORITY = DYNAMIC. Questo parametro normalmente rimane invariato dato che OS/2 assegna ai vari thread componenti le diverse applicazioni la giusta priorità a seconda del loro stato di attività o di background. Si assegna PRIORITY = ABSOLUTE se si desidera dare una priorità ai vari thread determinata non dal sistema ma dai programmi nativi OS/2 che gireranno sulla macchina.
    Le istruzioni FILES=xx e BUFFERS=xx sono identiche al DOS con l'unica attenzione che non bisogna abusarne rispetto ai valori di default specialmente sulle macchine dotate di poca RAM dato che ogni numero in piu' decrementa la RAM di 512 byte per cui mettendone troppi si ridurrebbe di molti KB la quantità di memoria disponibile.
    DEVICE = D:\PATH\PMDD.SYS carica il device driver di Presentation Manager ed ovviamente è necessario a meno che non si usi OS/2 3.0 in modalità carattere!
    DEVICE = D:\PATH\TESTCFG.SYS è utile in quanto durante il processo di installazione o durante i vari aggiornamenti fatti attraverso l'Installazione Selettiva fa un test dell'hardware a disposizione, riportandone le varie caratteristiche nei rispettivi pannelli di scelta come si vede dalla seguente figura 4

  • OPZIONI DATE DAL TESTCFG.SYS

    Segue in comando proprio di OS/2: si tratta di IOPL = YES.
    IOPL sta per Input Output Privilege Level. Il livello di privilegio assegnato ad una applicazione determina i segmenti di codice e di dati ai quali il programma può accedere oltre a limitare anche particolari istruzioni macchina che esso può eseguire. Ciò vuol dire in poche parole che un programma pur avendo livello diverso potrebbe accedere a ruotine che hanno un livello diverso, tuttavia potrà accedere solo ai propri segmenti di dati e non può compiere istruzioni di I/O per cui in pratica lasciando YES si fa in modo che tutti i programmi possano accedere all'hardware direttamente. L'opzione NO non consente livelli di privilegio I/O ai programmi in elaborazione.

    La riga RUN=D:\PATH\CACHE.EXE /MAXAGE /LAZY /DISKIDLE /BUFFERIDLE richiederebbe troppo spazio per una trattazione esaustiva ed è rivolto in particolare a chi ha il disco formattato con il File System HPFS. Ha numerosi parametri all'interno di quelli mostrati proprio per la maggiore complessità di HPFS per cui ci promettiamo di tornarci nei torneremo nei prossimi articoli quando avremo a disposizione maggiore spazio. Per ora si ricordi solo che imposta la cache per il disco HPFS ed è usato solo in tale caso.

    Se invece si dispone di disco FAT l'istruzione analoga e' DISKCACHE = xxx,LW,32,AC:D che determina invece i parametri per la cache del disco FAT. La Cache del disco consente di usare una parte della RAM con memoria temporanea dell'Hard Disk, per cui questa istruzione è in grado, se ben usata, di aumentare la velocità dei programmi che leggono frequentemente al disco conservando in questa memoria la parte dei dati che vengono letti dal disco più frequentemente.
    In generale posso consigliare quanto segue: se il sistema dispone di una RAM tra 4 e 6 MB la cache dovrebbe essere di 64, se si dispone di più di 6 MB il parametro impostato a 256 o più dovrebbe andare bene. Nella maggior parte dei casi comunque 32 settori dovrebbero essere sufficienti. Il parametro LW sta per la tecnica Lazy Write ed AC:D indica il disco sul quale OS/2 farà l'autocheck della partizione avviabile.
    Ovviamente chi usa HPFS soltanto può benissimo omettere questa riga.
    MAXWAIT=x indica all'OS/2 quanti secondi un programma deve attendere prima che OS/2 stesso gli dia un diverso livello di priorità all'interno del sistema. Il range può variare da 1 a 255 secondi.
    Molto più usata invece l'istruzione MEMMAN=SWAP,PROTECT che indica ad OS/2 che può eseguire più programmi contemporaneamente di quanti non ne stiano nella memoria fisica installata sul sistema. E' evidente che nel caso di una macchina dotata di 64 MB di RAM tale istruzione risulta inutile!
    SWAPPATH = D:\PATH xxxx yyyy indica ad OS/2 dove deve effettuare lo swap richiesto dall'istruzione precedente ed i due numeri xxxx e yyyy indicano rispettivamente la quantità minima e massima che OS/2 deve riservare sul disco ad file di swap che verrà denominato SWAPPER.DAT di default.
    Segue BREAK=OFF. L'istruzione è identica a quella che si trova in DOS con la differenza che nel DOS di solito la si trova ad ON. Qui si preferisce OFF in quanto un monitoraggio extra di questi due tasti porterebbe via tempo macchina prezioso. Dato che le MVDM (Multiple Virtual Dos Machine) si possono in OS/2 terminare in altro modo si capisce come mai sia meglio forzare ad OFF tale parametro.
    Il numero dei Thread che possono essere eseguiti da OS/2 viene impostato dall'istruzione THREAD=xxxx dove xxxx può variare da 32 a 4096. Anche qui un alto numero non giova certo al sistema per cui nelle macchine con poca RAM si preferisce di solito lasciare tale numero a 128.
    Più in basso ancora troviamo la riga PRINTMONBUFSIZE=xxx,yyy,zzz che indica la dimensione in byte dei buffer dedicati alle rispettive porte parallele LPT1, LPT2, LPT3. Possono variare da 134 byte minimo ad un massimo di 2048 per cui eliminare mettendo a zero i buffers relativi alla seconda e terza porta se non si hanno a disposizione tali dispositivi. Un esempio potrebbe essere PRINTMONBUFSIZE=1024,0,0.
    Le impostazioni relative al paese sono date dallo statement COUNTRY = 039,D:\OS2\SYSTEM\COUNTRY.SYS che contiene tutte le impostazioni relative al paese in cui si usa la macchina tipo separatore decimale, formato data e ora, valuta ecc. SET KEYS=ON invece e' simile al DOSKEY per cui non credo abbia bisogno di ulteriori commenti, ma dato che occupa un buffer di 64 Kilobyte si consiglia di porlo ad OFF nei sistemi dotati di poca RAM.
    OS/2 come DOS ha il comando Undelete. La differenza sta nel fatto che OS/2 usa per questo comando delle directory particolari definite dall'utente proprio nella riga di config.sys che segue: SET DELDIR = D:\PATH,128.
    Il comando crea una directory chiamata PATH e nella stessa mette le informazione relativi ai file cancellati ed eventualmente da recuperare con il limite di 128 nell'esempio che ho riportato. Ma è possibile porlo a 512.

    Abbiamo poi numerose istruzioni di tipo BASEDEV. Per queste si consulti la figura 5 che indica bene il significato della maggioranza dei driver forniti.

  • SPECIFICHE di BASEDEV

    A questo punto si arriva ad un bivio: vi sono moltissime istruzioni che sono precedute dal comando DEVICE per cui il loro uso e' simile al DOS ma in OS/2 può variare dipendentemente dalla periferica per cui non ce ne occuperemo in questa sede
    Procederei invece ancora brevemente con alcune proprie di OS/2 che meritano certamente un ulteriore accenno.
    L'istruzione PROTECTONLY=NO è molto importante ad esempio in quanto permette di scegliere tra due diverse modalità operative. Se si specifica YES il sistema eseguirà solo programmi OS/2 nativi e PM ma non programmi che vanno sotto VDM. Per cui spesso la si lascia a NO come da default.
    Ma pensiamo ad un OS/2 LAN SERVER dedicato. Come imposterò il protectonly ? La risposta mi sembra si dia da sola.
    Ancora importante e' CODEPAGE=437,850 che serve in particolar per il controllo di visualizzazione e stampa secondo la modalità della nazione scelta ed infine DEVINFO=KBD,XX,D:\PATH\KEYBOARD.DCP per il set di caratteri internazionali della tastiera che si usa.

    Certo una trattazione totale e minuziosa sarebbe stata bella ma certamente al di fuori degli scopi del presente articolo. Rimandiamo come sempre alla documentazione originale di OS/2 3.0 per ogni ulteriore dettaglio. Speriamo solo di aver con questo stuzzicato "un leggero appetito all'approfondimento" in tutti coloro che fino ad ora non osavano "sporcarsi le mani" con questo lungo file. Certo vi sono ancora mille e mille cose ed alcune abbastanza oscure per un non informatico puro tuttavia il nostro buon OS/2 3.0 è un Signor Sistema Operativo e come tale non può essere trattato poi così superficialmente. Risulta ancora difficile? Noi siamo sicuri che con un po' di buona volontà e tanti... tanti reset chissà quanti buoni consigli e nuovi trucchetti arriveranno in redazione!

    ß

  • Copyright © 1996 Beta. Tutti i diritti riservati.


    Precedente Principale Sommario Informazioni Redazione Browser