Domande frequenti Gentoo Linux/Alpha Thomas Cort Cristiano Chiucchiolo Paolo Palana Questa FAQ intende rispondere ad alcune delle domande più frequenti relative a Gentoo/Alpha e a Linux/Alpha in generale. 1.2 2006-06-21 Questo documento
Introduzione

Questo documento contiene risposte alle domande più comuni riguardanti Gentoo/Alpha e Alpha/Linux. E' rivolto sia ai nuovi utenti sia a quelli esperti.

Contenuto

Il progetto Gentoo/Alpha

  • Che cos'è Gentoo/Alpha?
  • Qual è lo stato attuale del progetto Gentoo/Alpha?

L'architettura Alpha

  • L'architettura Alpha non è morta?
  • Posso eseguire applicazioni a 32 bit?
  • Alpha è big endian o little endian?
  • Posso far girare applicazioni Linux/x86 su Alpha?
  • Perchè installare Gentoo su Alpha?
  • Dove posso acquistare hardware Alpha?

Hardware

  • Ho aperto il case di un AlphaServer ed ora non si vuole accendere, che cosa devo fare?

Compiler Flags specifiche per Alpha

  • L'uso di compiler flags specifiche per Alpha è raccomandato?
  • Come ottimizzare per uno specifico set di istruzioni e per uno specifico modello di programmazione?
  • Come specifare il modello di programmazione senza cambiare il set di istruzioni?
  • Come abilitare i numeri floating point assistiti dal software?
  • Come specificare la latenza della memoria del mio sistema?
  • Come specificare che i dati statici dovrebbero essere posti nell'area small data?
  • Come specificare che il codice oggetto dovrebbe essere posto nell'area small text?
  • Cosa fare se una di queste compiler flags causa un errore di compilazione, di collegamento o di runtime?

Avvio e bootloaders su Alpha

  • Che cos'è SRM?
  • Che cos'è ARC?
  • Come sapere quale tipo di firmware ha la mia macchina Alpha: ARC o SRM?
  • Quale bootloader utilizzo?
  • Aboot è in grado di avviare kernel da partizioni xfs, reiserfs, o jfs?

Software

  • Com'è il supporto Java in Gentoo/Alpha?
  • Che problema c'è con compaq-jdk?
  • Ci sarà mai un supporto Java funzionante?
  • Com'è supportato .NET in Gentoo/Alpha?
  • Cosa è necessario per il supporto a .NET?

Alpha Linux Kernel

  • Quali sorgenti del kernel è opportuno utilizzare?
  • Gli hardened-sources sono supportati?
  • Il kernel 2.6 supporta Alpha SMP?

Aiutare il Progetto Gentoo/Alpha

  • Come segnalare i bugs?
  • Come aiutare il Progetto Gentoo/Alpha?
  • Esiste un progetto di Alpha Arch Testers?

Altre risorse

  • Perchè non c'è un forum di Gentoo su Alpha?
  • Dove ottenere maggiori informazioni su Gentoo/Alpha?
  • Dove ottenere maggiore aiuto o informazioni su Alpha/Linux?
Il Progetto Gentoo/Alpha
Che cos'è Gentoo/Alpha?

Il progetto Gentoo/Alpha è responsabile di mantenere aggiornata la distribuzione Gentoo per la piattaforma Alpha. In primo luogo ciò implica apporre le keywords, effettuare il porting del software, e creare nuove release. Il progetto Gentoo/Alpha mira a fornire un ambiente utilizzabile sia per desktop che per server.

Qual è lo stato attuale del progetto Gentoo/Alpha?

E' possibile conoscere lo stato attuale del progetto Gentoo/Alpha nei nostri status reports. Questi report mirano a tenere informato il pubblico su cosa si sta facendo. Nuovi status report su Gentoo/Alpha verranno postati circa ogni 6 mesi. Status report passati e presenti possono essere trovati nella Status Reports Project page.

L'architettura Alpha
L'architettura Alpha non è morta?

Non ancora! HP accetterà  ordini per nuovi sistemi Alpha fino al 27 ottobre 2006 e per aggiornamenti e optional Alpha fino al 2 novembre 2007. Vedi la loro planning page per maggiori dettagli.

Posso eseguire applicazioni a 32 bit?

No, tutti i sistemi Alpha utilizzano un kernel puro a 64 bit ed un ambiente a 64 bit altrettanto puro. Non si può neanche forzare gcc ad emettere codice a 32 bit usando la compiler flag -m32.

Alpha è big endian o little endian?

Tutti i sistemi Alpha supportano sia little che big endian. Tuttavia, Linux usa solo little endian.

Posso far girare applicazioni Linux/x86 su Alpha?

No, non senza un emulatore completo di un sistema x86, come bochs. In passato DEC/Compaq/HP mantenevano un programma chiamato em86, che consentiva di far girare applicazioni Linux/x86 sui sistemi Linux/Alpha. Tuttavia, il programma è a sorgente chiuso e non è più mantenuto. Non esistono binari em86 che siano compatibili con l'ABI di gcc3.

Perchè installare Gentoo su Alpha?

Effettivamente, esistono sistemi a 64 bit più veloci, come amd64. Tuttavia, questo non significa che i sistemi Alpha siano inutili. Ecco alcune buone ragioni per cui si potrebbe installare Linux su questo tipo di hardware:

  • Si potrebbe trasformare un vecchio computer in qualcosa di utile. Gli Alpha più vecchi sono eccellenti sia come router che come server. Neanche le loro prestazioni come desktop sono poi tanto male.
  • Si avrà la possibilità di imparare riguardo ad un hardware inusuale.
  • E' bello. Quante persone possono dire di avere Linux che gira su un Alpha?
Dove posso acquistare hardware Alpha?

Generalmente l'hardware Alpha non è disponibile nei negozi di computer. Se si desidera un sistema Alpha nuovo, è necessario contattare la HP. Se si desidera un Alpha usato (più economico), eBay di solito è una buona opzione, sempre che le spese di spedizione non siano troppo alte. Ci sono diversi altri rivenditori che possono essere trovati attraverso google, ma la maggior parte di essi hanno prezzi troppo alti.

Hardware
Ho aperto il case di un AlphaServer e ora non vuole accendersi, cosa devo fare?

Bisogna assicurarasi che il pannello superiore del case sia a posto e opportunamente collocato. La parte centrale della pannello superiore ha un piccolo pezzo di metallo orientato verso il basso. Quando il pannello superiore viene ricollocato nella propria sede in maniera opportuna, il piccolo pezzo di metallo preme un interruttore. Se l'interruttore in questione non risulta premuto il sistema rifiuterà  di accendersi.

Compiler flags specifiche per Alpha
L'uso di compiler flags specifiche per Alpha è raccomandato?

Come per tutte le ottimizzazioni, è bene non esagerare. Se si usano queste flags con attenzione si avrà un sistema stabile e veloce; utilizzandole con troppa aggressività  si potrebbe danneggiare seriamente il proprio sistema. Se si è in dubbio, è meglio lasciare perdere. Per maggiori informazioni, è opportuno consultare la man page di gcc.

Come ottimizzare per uno specifico set di istruzioni e per uno specifico modello di programmazione?

Si può ottimizzare per uno specifico set di istruzioni e per uno specifico modello di programmazione con -mcpu=XXX, dove XXX è il tipo di CPU. Tipi validi di cpu sono ev4, ev45, ev5, ev56, pca56, ev6 e ev67. Se non si utilizza il flag -mcpu=XXX, gcc userà  come default il tipo di cpu su cui è stato compilato. -mcpu= equivale alla flag -march= sui sistemi x86.

Come specificare il modello di programmazione senza cambiare il set di istruzioni?

Puoi specificare il modello di programmazione senza cambiare il set di istruzioni con -mtune=XXX, dove XXX è il tipo di CPU. Validi tipi di cpu sono ev4, ev45, ev5, ev56, pca56, ev6 e ev67. -mtune= è sottinteso da -mcpu=, quindi non serve specificare questo flag se si ha già impostato -mcpu=. -mtune= equivale al flag -mcpu= sui sistemi x86.

Come abilitare i numeri del floating point assistiti dal software?

E' possibile abilitare i numeri floating point assistiti dal software con -mieee. Questo attiverà  l'assistenza software per supportare correttamente numeri denormalizzati e valori IEEE eccezionali, come un "non numero" o un più/meno infinito.

Questo flag dovrebbe stare nelle CFLAGS globali, a meno che non si sia veramente sicuri ciò che si sta facendo.

Come specificare la latenza della memoria del mio sistema?

E' possibile specificare la latenza della memoria del sistema con -mmemory-latency=XXX, dove XXX è il numero dei cicli di clock. Questo flag imposta il periodo di latenza che lo scheduler dovrebbe assumere per le referenze di memoria. gcc ha alcuni valori "tipici" predefiniti, che sono accettati anche da -mmemory-latency=XXX. Questi valori sono L1 per Dcache, L2 per Scache, L3 per Bcache, e main per la memoria principale.

Questo flag probabilmente non dovrebbe essere presente nelle CFLAGS globali, dato che il valore da scegliere dipende molto dal tipo di accesso alla memoria richiesto dall'applicazione che si sta compilando.

Come specificare che i dati statici dovrebbero essere posti nell'area small data?

E' possibile specificare che i dati statici dovrebbero essere posti nell'area small data con -msmall-data. Questo farà  si che gcc tragga vantaggio di alcune caratteristiche dell'architettura Alpha salvando i dati molto utilizzati in sezioni specifiche chiamate sezioni di small memory. Queste sezioni sono limitate a 64kb, il che significa che accedere a qualunque cosa vi sia stata salvata richiederà  una sola istruzione.

-fPIC ha la precedenza su -msmall-data, quindi bisognerebbe utilizzare il flag -fpic se non si vuole che -msmall-data sia ignorato.

Questo flag probabilmente non dovrebbe essere usato nelle CFLAGS globali, dato che alcuni oggetti necessitano di più di 64kb per essere salvati, e questo causerebbe un errore ld gp_overflow.

Come specificare che il codice oggetto dovrebbe essere posto nell'area small text?

E' possibile specificare che il codice oggetto dovrebbe essere posto nell'area small text con -msmall-text. Questo farà  si che gcc presupponga che l'intero programma (o libreria) entri in 4MB, e sia quindi raggiungibile con una branch instruction. Questo riduce il numero di istruzioni richieste per una chiamata di funzione da 4 a 1.

Questa flag probabilmente non dovrebbe essere usata nelle CFLAGS globali, dato che alcuni programmi (o librerie) sono più grandi di 4MB, e questo causerebbe un errore ld.

Cosa fare se una di queste compiler flags causa un errore di compilazione, di collegamento o di runtime?

Come già  menzionato, è opportuno utilizzare queste CFLAGS con cautela. Esse possono danneggiare il sistema. Se si notano problemi, è bene provare ad usare CFLAGS meno aggressive prima di segnalare un bug.

Avvio e bootloaders Alpha
Che cos'è SRM?

SRM è basato su Alpha Console Subsystem, che fornisce un ambiente operativo per i sistemi operativi OpenVMS, Tru64 UNIX, e Linux. Vedi l' SRM Howto per maggiori informazioni su SRM.

Che cos'è ARC?

ARC è basato su Advanced RISC Computing (ARC), che fornisce un ambiente operativo per Windows NT.

Come sapere quale tipo di firmware ha la mia macchina Alpha: ARC o SRM?

Se si sta usando SRM, all'accenzione del sistema si vedrà apparire una schermata con sfondo blu e testo bianco. Se si sta usando ARC invece, si vedra apparire un sistema di boot grafico.

Quale bootloader usare?

Se il sistema Alpha supporta SRM, bisognerebbe usare aboot. Se il sistema supporta sia SRM sia gli ARC (ARC, AlphaBIOS, ARCSBIOS), sarebbe opportuno seguire the SRM Firmware Howto per passare a SRM e usare aboot. Se il sistema utilizza solo gli ARC (Ruffian, nautilus, xl, etc.) dovrai bisognerà milo.

Aboot è in grado di avviare kernel da partizioni xfs, reiserfs, o jfs?

No, aboot suppporta l'avvio di kernel solo da partizioni ext2 e ext3. Per la propria partizione di root si possono tranquillamente utilizzare altri file system, a patto di creare una partizione per /boot formattata con i file system ext2 o ext3.

E' pianificato il supporto per reiserfs e xfs. Infatti sono disponibili patches che aggiungono il supporto per questi due file system. Tuttavia l'uso di tali patches non è supportato.

Software
Com'è il supporto Java su Gentoo/Alpha?

Attualmente, c'è una sola opzione per Java VM e Java SDK su Gentoo/Alpha. I pacchetti si chiamano compaq-jre e compaq-jdk.

Qual è il problema con compaq-jdk?

compaq-jre e compaq-jdk non sono molto desiderabili perchè non sono supportati a monte e sono obsoleti. Forniscono solo Java 1.3.1 e contengono solo i binari. Tali binari sono compilati con una vecchia versione di glibc, il che causa alcuni risultati inaspettati quando si sta usando una versione più recente. Vedere il bug #84306 per conoscere i nostri tentativi di trovare una soluzione.

Ci sarà  mai un supporto Java funzionante?

Lo speriamo veramente. Stiamo seguendo lo sviluppo di jdk da SableVM. Non è ancora pronto, ma speriamo che con il tempo si potrà  avere un jdk completamente nuovo.

Come è supportato .NET in Gentoo/Alpha?

Nessuno dei due principali progetti opensource,mono e DotGNU, supporta l'architettura Alpha.

Cosa è necessario per il supporto a .NET?

Portare .NET su alpha non è un compito facile. Fare ciò implica riscrivere tutte le macro di generazione di codice assembly per il compilatore JIT (just in time) e scrivere funzioni specifiche per l'architettura (allocatore dei registri, etc).

Alpha Linux Kernel
Quali sorgenti del kernel dovrei usare?

gentoo-sources e vanilla-sources sono entrambi supportati. Bisognerebbe leggere la Guida ai Kernel Gentoo Linux per determinare qual è la scelta giusta per le proprie esigenze.

Gli hardened-sources sono supportati?

Sul supporto hardened-sources e SELinux sta lavorando Stephen Bennett (spb). hardened-sources attualmente è keyworded per alpha. Speriamo di vedere un profilo SELinux per Alpha nell'albero del Portage non appena possibile.

Il kernel 2.6 kernel supporta Alpha SMP?

In passato, alcune volte, tale supporto veniva meno. Tuttavia è noto che i kernel 2.6.15.1 e 2.6.16.19 lavorano bene. Se si hanno problemi con il supporto SMP e si vuole tale supporto, sarà necessario utilizzare una delle versioni di kernel precedentemente citate oppure usare un kernel 2.4. Se realmente si ha la necessità di utilizzare l'ultima versione del kernel 2.6 su una SMP box e non vi interessa che solo uno dei processori sia utilizzato allora è possibile configurare il kernel 2.6 senza il supporto per SMP.

Aiutare il progetto Gentoo/Alpha
Come segnalare i bugs?

Se si trova un bug o si vuole mandare delle patch, sarà necessario creare un bug report. Richiede solo un momento, e l'aiuto di ognuno sarà molto apprezzato. Per aprire un bug report seguire la Gentoo Bug Reporting Guide.

Come aiutare il progetto Gentoo/Alpha?

Gli utenti possono aiutarci:

  • Creando bug reports chiari e concisi.
  • Testando software che non ha ancora la keyword ~alpha.
  • Rispondendo alle domande sulle mailing lists, sul forum e sul canale IRC.
  • Inviando patch
  • Diventando un AT
Esiste un progetto Alpha Arch Testers?

Si, consultare la pagina Gentoo Linux Alpha Arch Testers Project per ulteriori dettagli.

Altre risorse
Perchè non c'è un forum dedicato a Gentoo su Alpha?

Sui Gentoo Forums ci sono diverse categorie arch-specifiche, come Gentoo su PPC e Gentoo su Sparc. Non c'è una categoria Gentoo su Alpha semplicemente perchè non c'è abbastanza attività  riguardante Gentoo/Alpha da garantirne una. Tutti i post relativi ad Alpha dovrebbero andare nella categoria Gentoo su Architetture Alternative.

Dove posso ottenere maggiori informazioni su Gentoo/Alpha?

Se qualche domanda non ha trovato risposta qui, si può tentare con altre risorse, come il Manuale Gentoo Linux Alpha o l'homepage del nostro progetto. Si può anche chiedere nel canale #gentoo-alpha su irc.freenode.net, sul Gentoo on Alternative Architectures Forum, o sulla mailing list gentoo-alpha@lists.gentoo.org.

Dove posso ottenere maggiori informazioni o aiuto su Alpha/Linux?

AlphaLinux.org è il repository centrale per tutto ciò che riguarda Alpha/Linux.