Amiga Hunk

Da Wikipedia, l'enciclopedia libera.

Hunk indica il formato di codifica delle informazioni dei file eseguibili (programmi) che girano sul sistema operativo AmigaOS.

Deve il suo nome al fatto che i file eseguibili di Amiga, suddividono porzioni di codice e dati presenti all'interno del programma in tanti 'hunk', in italiano "pezzi", "spezzoni", che contengono ognuno singolarmente parti di codice o di dati.

Struttura degli Hunk[modifica | modifica wikitesto]

Gli hunk possono esistere in varie versioni, hunk a 32 bit, hunk a 16 bit, e ve ne sono anche alcuni a soli 8 bit. In pratica gli hunk sono codificati in modo standard all'interno di AmigaOS, e ben documentati sui manuali Amiga "Kernel Manual" della Commodore negli anni in cui Amiga veniva prodotta. In pratica essi sono come i file IFF in quanto sono uno standard riconosciuto. La loro struttura è semplice: un header, o intestazione all'inizio del file indica che si tratta di un file di tipo riconosciuto e valido su Amiga, a seguire un ID (Identificativo) con l'indicazione della lunghezza dell'hunk stesso, ed infine il segmento contenente i dati veri e propri.

Caratteristiche del file eseguibile AmigaOS[modifica | modifica wikitesto]

L'eseguibile Amiga può essere lanciato sia dall'interfaccia grafica ad icone Amiga Workbench, sia dalla riga di comando, (in Amiga CLI o Amiga Shell) o anche dall'interno di un file manager. A differenza di altri sistemi operativi come MS-DOS o Windows che hanno bisogno di una estensione (".com", ".exe") per riconoscere di trovarsi di fronte ad un file eseguibile, Amiga adotta invece una sequenza particolare di byte nell'intestazione del file, che è il valore $000003f3.

Questa sequenza prende il nome di "magic cookie", o biscottino magico (dal nome dei biscottini magici nella favola di "Alice nel paese delle meraviglie").

Tale soluzione è mutuata dall'analoga soluzione del mondo Unix, dove i magic cookie sono chiamati "magic number". Anche se il magic number è tuttora in uso nel mondo Unix, vi è anche un altro metodo di indicare al sistema che si trova di fronte ad un file eseguibile, ed è quello di gran lunga più adottato in questo sistema operativo. Si tratta di adottare speciali attributi del file indicati nel suo descrittore (bit "x") o richiedono uno speciale marcatore in una posizione prestabilita all'interno del file stesso.

Struttura del file eseguibile[modifica | modifica wikitesto]

Il file eseguibile Amiga Hunk è così composto: all'inizio del file vi è il magic cookie, detto anche in Unix magic number, di seguito viene dichiarato il numero di hunks in cui è diviso il file, e quindi il numero progressivo degli hunks partendo da 0, che identifica sempre il primo Hunk (Ad esempio se il file è diviso in soli 3 hunk, verrà dichiarato il numero di hunks totali e cioè nel nostro esempio sono tre, seguito dal numero degli hunks: 0 il primo, 1 il secondo e 2 il terzo, e così via). Prima che inizino gli hunk contenenti codice e dati veri e propri vi è in penultima posizione la tabella con la grandezza dei vari hunk presenti nel file eseguibile. Per ultimi ovviamanete vengono i singoli hunk, ognuno indicato dal suo descrittore: HUNK_CODE, HUNK_DATA, eccetera.

Rappresentazione della struttura:

Magic Cookie Total number of hunks Progressive number of hunks Table of length Various Hunks (Hunk_Code, Hunk_Data, etc)

Descrittori dei tipi di Hunk[modifica | modifica wikitesto]

I tipi di hunk conosciuti sono:

Name Value
HUNK_UNIT 999
HUNK_NAME 1000
HUNK_CODE 1001
HUNK_DATA 1002
HUNK_BSS 1003
HUNK_RELOC32 1004
HUNK_RELOC16 1005
HUNK_RELOC8 1006
HUNK_EXT 1007
HUNK_SYMBOL 1008
HUNK_DEBUG 1009
HUNK_END 1010
HUNK_HEADER 1011
(not used) 1012
HUNK_OVERLAY 1013
HUNK_BREAK 1014
HUNK_DREL32 1015
HUNK_DREL16 1016
HUNK_DREL8 1017
HUNK_LIB 1018
HUNK_INDEX 1019
HUNK_RELOC32SHORT 1020
HUNK_RELRELOC32 1021
HUNK_ABSRELOC16 1022
HUNK_PPC_CODE 1257
HUNK_RELRELOC26 1260

Metadati[modifica | modifica wikitesto]

Amiga registra anche dei metadati in file noti come ".info" (dal nome della loro estensione), questi possono essere equiparati ai resource fork del mondo Macintosh, sebbene non siano esattamente equivalenti ad essi. Ad esempio: salvando un progetto su disco, vengono salvati due file, MyProject e MyProject.info. In MyProject saranno registrati i dati veri e propri del progetto, mentre in MyProject.info saranno contenute, l'icona del progetto, e l'informazione riguardante quale programma è quello originale (oppure quello preferito dall'utente) per aprire il progetto (in AmigaOS non esiste l'application binding), inoltre le opzioni particolari del progetto ed i commenti dell'utente. I file.info, sullo schermo del Workbench ('la scrivania'), non appaiono come file a sé ma l'icona stessa, estratta dall'interno dell'info cui si riferisce, essendo visibile sulla scrivania, è il medium che interconnette fisicamente l'info con il file dati che gli appartiene. La pressione del tasto destro del mouse sull'icona, apre una finestra di input che permette di leggere o modificare i metadati. Per visualizzare i file info come file a sé, questi devono essere visualizzati usando la riga di comando o tramite un file manager. L'utente può anche fare a meno del file info, cancellandolo, rinunciando però alla comodità dell'icona e dei metadati.

Tipi di file eseguibili[modifica | modifica wikitesto]

AmigaOS riconosce altri diversi tipi di file eseguibili, AmigaOS in versione classica, fino al numero di revisione 3.9 riconosce eseguibili in formato PPC, che vengono fatti girare dalle schede acceleratrici create nel passato per gli hardware Amiga Classic (A2000/A3000/A1200/A4000). Grazie alle librerie WarpUP e PowerUP, Amiga indirizza questi file al processore PPC presente sulla scheda acceleratrice, dove vengono eseguiti in modalità PPC nativa.

I moderni AmigaOS e i sistemi operativi da esso derivati MorphOS e AROS hanno adottato il formato ELF.

Icone interne al file .info associato all'eseguibile[modifica | modifica wikitesto]

Le vecchie versioni di AmigaOS potevano associare all'interno del file.info le immagini in formato bitmap dell'icona corrispondente. Questa caratteristica si è mantenuta in tutte le versioni di AmigaOS e sistemi operativi da esso derivati.

La bitmap interna al file.info che va a costituire l'Icona è una sorta di RAW, cioè "grezzo" e non è associato allo standard IFF di Amiga. Le icone possono però essere modificate e salvate dal programma IconEdit da sempre presente fra i programmi di utilità di AmigaOS (IconEdit è presente sul disco floppy di nome Utility fino a AmigaOS3.1 e poi nell'apposita directory su CD a partire da AOS 3.5). A partire dalla versione AOS 2.0 IconEdit è in grado di caricare normali file IFF/LBM per importarli nel suo spazio di lavoro.

Le icone su Amiga possono anche essere modificate e salvate dai programmi grafici Amiga che sono in grado di modificare e salvare i file.info, come ad esempio Personal Paint di Cloanto.

L'icona di Amiga ha un effetto simulato di animazione a cartoni animati, cioè è presente con due immagini corrispondenti a due stati diversi di selezione. La prima a riposo, la seconda attivata o cliccata. Una volta che l'utente clicca due volte col mouse sull'eseguibile lanciandolo, l'icona cambia stato, e il sistema mostra a video la seconda immagine con un gradevole effetto simile ad una subitanea animazione, o dando un'impressione come se si aprisse una scatola a sorpresa.

Metodi moderni di selezione dei file eseguibili, tramite gli engine grafici Magic User Interface (MUI) o ReAction comportano vari tipi di selezione delle icone, e nuovi e vari effetti per mostrare lo stato di attivazione, che sono alternativi alla doppia icona grafica a due stati (attivato e riposo). Tra questi ricordiamo: l'inverse grafico, brillamenti dell'icona, aloni intorno alle icone, e così via, secondo diverse modalità selezionabili a scelta dell'utente nel pannello delle preferenze di AmigaOS.

I cloni moderni dell'Amiga (AROS, Morphos e AOS4), oltre alle icone bitmap in formato RAW, possono anche accettare file grafici standard PNG come immagine dell'icona del file.info.

Riferimenti[modifica | modifica wikitesto]

  • AmigaDOS manual 3rd Edition (Bantam Books)
  • Commodore Business Machines: Amiga ROM Kernel Reference Manual, Includes and Autodocs (3rd edition; dark gray cover) Addison-Wesley, 1991. ISBN 0-201-56773-3
  • Commodore Business Machines: 1989 Amiga Developers Conference Notes, Commodore, 1989. CATS part numbers: NOTES89 & NOTES89D
  • Commodore Business Machines: V3.1 Amiga Developer Update Disk Set, Commodore, 1994. CATS part number: AMDEV3.1

(le informazioni di questo set di floppy sono superate e sono state rinnovate nel "The Developer CD")

  • Commodore Business Machines: 1988 Amiga Developers Conference Notes Commodore, 1988. CATS part numbers: NOTES88 & NOTES88D
  • Stephen Levy: Amiga Programmer's Guide, Compute! Publications, 1986. ISBN 0-87455-028-9
  • Eugene P. Mortimore: Amiga Programmer's Handbook, Sybex, 1985. ISBN 0-89588-343-0