Chapter 6. Applicazioni a 32 bit ed a 64 bit in un ambiente a 64 bit

Table of Contents

6.1. Supporto runtime
6.2. Sviluppo software
6.3. Compilare del software su architetture bipiattaforma
6.4. Specificazioni Kernel

Abstract

è disponibile per diverse piattaforme a 64 bit. Questo non significa necessariamente che tutte le applicazioni contenute siano già state portate al modo a 64 bit. supporta l'utilizzo di applicazioni a 32 bit in un ambiente a 64 bit. Il presente capitolo vi offre una breve rassegna del modo in cui viene implementato il supporto di applicazioni a 64 bit su piattaforme .

Per le piattaforme a 64 bit AMD64 ed EM64t è stato implementato in modo che applicazioni a 32 bit già presenti siano eseguibili “out-of-the-box” in un ambiente a 64 bit. Grazie a questo supporto sussiste la possibilità di continuare a utilizzare le vostre applicazioni a 32 bit preferite senza dover attendere che sia messo a disposizione un rispettivo port al modo a 64 bit.

Per una migliore comprensione del supporto a 32 bit dobbiamo trattare i seguenti temi:

Supporto runtime

In che modo è possibile eseguire applicazioni a 32 bit?

Supporto sviluppo

In che modo devono essere compilate le applicazioni a 32 bit per poter essere eseguite sia in ambienti a 32 bit che a 64 bit?

Kernel API

Come è possibile che applicazioni a 32 bit girano con un kernel a 64 bit?

6.1. Supporto runtime

[Important]Conflitto tra la versione a 32 bit e 64 bit di una applicazione

Se una applicazione è disponibile sia nel modo a 32 bit che a 64 bit, l'installazione parallela di entrambi le versioni comporterà inevitabilmente delle difficoltà. In questi casi dovrete stabilire quale delle due versioni disponibili installare e utilizzare.

Ogni applicazione richiede una serie di librerie per poter essere eseguita correttamente. Purtroppo le denominazioni delle librerie per versioni a 32 bit e 64 bit sono identiche – va quindi ricercato un modo diverso per distinguerle l'una dall'altra.

Per mantenere la compatibilità con la versione a 32 bit, le librerie vengono archiviate esattamente proprio là dove lo sono anche in un ambiente a 32 bit. La versione a 32 bit di libc.so.6 si trova sia in un ambiente a 32 bit che in uno a 64 bit sotto /lib/libc.so.6.

Tutte le librerie a 64 bit e file oggetto vengono archiviati in directory denominate lib64, ciò significa che i file oggetto a 64 bit che normalmente andreste a cercare sotto /lib, /usr/lib e /usr/X11R6/lib adesso si trovano sotto /lib64, /usr/lib64 e /usr/X11R6/lib64. Di conseguenza le librerie a 32 bit sono reperibili sotto /lib, /usr/lib e /usr/X11R6/lib mentre il nome file per entrambi le versioni può essere mantenuto invariato.

In linea di massima le sottodirectory delle directory contenenti file oggetto, il cui contenuto file non dipende dalla dimensione della parola (ingl. word size) non sono state spostate. Ad esempio i font di X11 li troverete come di consueto sotto /usr/X11R6/lib/X11/fonts.

Questo schema è conforme all'LSB (Linux Standards Base) ed all' FHS (File System Hierarchy Standard).