Capitolo 7. Applicazioni a 32 e 64 bit in ambienti di sistema a 64 bit

Sommario

7.1. Supporto di runtime
7.2. Sviluppo di software
7.3. Compilazione di software in piattaforme bivalenti
7.4. Specifiche del kernel

Estratto

SUSE Linux è disponibile per numerose piattaforme a 64 bit. Ciò non significa che tutte le applicazioni incluse siano anch'esse state modificate per le piattaforme a 64 bit. SUSE Linux supporta l'uso di applicazioni a 32 bit in ambienti di sistema a 64 bit. Il presente capitolo offre una breve panoramica sul modo in cui tale supporto è implementato nelle piattaforme SUSE Linux a 64 bit. Vengono descritte la modalità di esecuzione delle applicazioni a 32 bit (supporto di runtime) e la procedura di compilazione che deve essere eseguita per le applicazioni a 32 bit in modo da consentirne l'esecuzione sia negli ambienti a 32 che in quelli a 64 bit. Vengono inoltre fornite informazioni sull'API del kernel nonché una descrizione su come le applicazioni a 32 bit possono essere eseguite in un kernel a 64 bit.

SUSE Linux per le piattaforme AMD64 e EM64T a 64 bit è progettato in modo che le applicazioni a 32 bit possano essere eseguite in ambienti a 64 bit "senza ulteriori modifiche". Mediante questo supporto, è possibile continuare a usare le proprie applicazioni a 32 bit senza dover attendere la disponibilità delle corrispondenti versioni a 64 bit.


7.1. Supporto di runtime

[Important]Conflitti tra versioni di un'applicazione

Se un'applicazione è disponibile sia per ambienti a 32 che 64 bit, l'installazione di entrambe le versioni genera dei problemi. In tali casi, scegliere quale delle due versioni installare e usare.

Per un'esecuzione corretta, ogni applicazione richiede una serie di librerie. Purtroppo i nomi delle librerie nelle versioni a 32 e 64 bit sono identici. Per differenziarli, è necessario trovare un altro modo.

Per mantenere la compatibilità con la versione a 32 bit, le librerie vengono memorizzate nel sistema nella stessa ubicazione dell'ambiente a 32 bit. La versione a 32 bit di libc.so.6 so trova in /lib/libc.so.6 sia negli ambienti a 32 che in quelli a 64 bit.

Tutte le librerie e i file oggetto a 64 bit si trovano in directory denominate lib64. I file oggetto a 64 bit normalmente presenti in /lib, /usr/lib e /usr/X11R6/lib si trovano ora sotto /lib64, /usr/lib64 e /usr/X11R6/lib64. Ciò significa che è possibile collocare le librerie a 32 bit sotto /lib, /usr/lib e /usr/X11R6/lib lasciando invariato il nome in entrambe le versioni.

Nessuna delle sottodirectory di oggetti il cui contenuto di dati è svincolato dalla dimensione delle parole è stata spostata. Ad esempio, i font X11 si trovano sempre nella solita ubicazione in /usr/X11R6/lib/X11/fonts. Questo schema è conforme con gli standard LSB (Linux Standards Base) e FHS (File System Hierarchy).