Alpha/FAQ (Domande frequenti)

From Gentoo Wiki
Jump to: navigation, search
This page is a translated version of the page Alpha/FAQ and the translation is 100% complete.

Other languages:
English • ‎italiano • ‎日本語 • ‎한국어 • ‎polski • ‎русский • ‎中文(中国大陆)‎

Queste FAQ vogliono rispondere ad alcune delle domande più frequenti riguardo a Gentoo e Linux in generale.

Contents

Introduzione

Questo documento contiene risposte ad alcune delle domande più frequenti riguardo a Gentoo/Alpha e Linux/Alpha. È indicato sia per utenti esperti che novizi.

Riguardo il progetto Alpha

Cos'è Alpha?

Il progetto Alpha è responsabile del mantenimento della distribuzione Gentoo su piattaforme Alpha. Ciò comprende prima di tutto l'amministrazione delle Keyword dei pacchetti, il porting del software e fare nuovi rilasci. Il progetto Alpha mira a fornire un ambiente utilizzabile sia per desktop che per server.

L'Architettura Alpha

Ma l'architettura Alpha non è morta?

Da un certo punto di vista, sì. HP ha interrotto la possibilità di fare ordini per nuovi sistemi Alpha il 27 Aprile 2007 e gli aggiornamenti il 25 Aprile 2008.

Posso farci girare applicazioni a 32 bit?

No, tutti i sistemi Alpha usano un kernel a 64 bit ed uno userland "puri". Non è nemmeno possibile forzare gcc per ottenere codice a 32 bit utilizzando la flag del compilatore -m32.

Alpha è big endian o little endian?

I sistemi Alpha sono little endian. Un grande sistema Cray con Alpha fu big endian, ma Linux non lo supporterà mai.

Posso far girare applicazioni Linux/x86 su Alpha?

No, non senza un emulatore come qemu. In passato DEC/Compaq/HP mantenevano un programma chiamato em86 che permetteva alle applicazioni Linux/x86 di girare su sistemi Linux/Alpha. Comunque, il programma è proprietario e non più mantenuto. Non ci sono binari em86 disponibili che siano compatibili con le ABI di gcc-3.

Perché installare Gentoo su Alpha?

A dire il vero, è possibile trovare sistemi a 64 bit più veloci, come amd64. Comunque, questo non significa che i sistemi Alpha siano inutili. Di seguito sono elencate alcune buone ragioni per installare Linux su questo tipo di hardware:

  • È possibile trasformare un vecchio computer in qualcosa di utile. I vecchi sistemi Alpha sono ottimi server e/o router. Non sono male nemmeno le loro prestazioni come desktop.
  • Si impara qualcosa di inconsueto riguardo all'hardware.
  • È fico. Quante persone possono dire di avere Linux che gira su Alpha?

Dove posso comprare dell'hardware Alpha?

L'hardware Alpha solitamente non è disponibile nel negozio vicino casa. eBay di solito è una buona opzione, sempre ammesso che le spedizioni non costino troppo. Ci sono diversi rivenditori di usato rintracciabili via Google, anche se molti di loro ricaricano troppo sul prezzo.

Hardware

Ho aperto il case di un AlphaServer ed ora non si accende, che faccio?

Assicuratevi che il pannello superiore sia montato ed in posizione corretta. Il centro del case ha un piccolo pezzo di metallo a faccia in giù. Quando il pannello superiore è rimesso in sede in modo appropriato, il pezzo di metallo premerà su un interruttore. Se l'interruttore non è tenuto giù, il sistema si rifiuterà di partire.

Flag di Compilazione Specifiche per Alpha

L'utilizzo di flag di compilazione specifiche per Alpha è raccomandato?

Come per tutte le ottimizzazioni di compilazione, non si deve abusarne. Utilizzando queste flag con cura esse garantiranno un sistema stabile e veloce; un uso troppo aggressivo può portare invece a seri problemi. Quando si è in dubbio, è meglio lasciar perdere. Se si ha bisogno di maggiori chiarimenti, consultare la pagina man di gcc.

Come faccio l'ottimizzazione per uno specifico set di istruzioni e modello di scheduling?

È possibile ottimizzare per uno specifico set di istruzioni e modello di scheduling con -mcpu=XXX, dove XXX è il tipo di CPU. Tipi di CPU validi sono ev4, ev45, ev5, ev56, pca56, ev6 and ev67. Se non si utilizza la flag -mcpu=XXX, allora gcc utilizzerà in maniera predefinita il tipo di CPU della macchina sulla quale è stato compilato. -mcpu= è equivalente alla flag -march= su x86.

Note
Gli utenti di AlphaServer 800 dovrebbero utilizzare ev5. Ci sono alcuni problemi conosciuti con ev56, in particolare con Xorg che causa un blocco totale del sistema.

Come specifico un modello di scheduling senza modificare il set di istruzioni?

È possibile specificare un modello di scheduling senza modificare il set di istruzioni con -mtune=XXX, dove XXX è il modello di CPU. Modelli di CPU validi sono ev4, ev45, ev5, ev56, pca56, ev6 ed ev67. La flag -mtune= è automaticamente inclusa da -mcpu=, quindi non è necessario specificarla se viene settato -mcpu=. -mtune= è l'equivalente della flag -mcpu= su x86.

Come abilito i numeri in virgola mobile "con assistenza software"?

È possibile abilitare i numeri in virgola mobile con assistenza software utilizzando -mieee. Ciò abiliterà l'assistenza software per supportare correttamente numeri de-normalizzati e valori IEEE eccezionali come "non-numeri" e più/meno infinito.

Questo dovrebbe essere inserito nelle CFLAGS globali, a meno che non si sappia veramente cosa si sta facendo.

Come specifico la latenza di memoria per il mio sistema?

È possibile specificare la latenza di memoria con -mmemory-latency=XXX, dove XXX è il numero di cicli di clock. Ciò imposta il tempo di latenza che lo scheduler dovrebbe assumere per riferirsi alla memoria. Il compilatore gcc ha alcuni valori "tipici" predefiniti, anch'essi accettati da -mmemory-latency=XXX. Questi valori sono L1 per Dcache, L2 per Scache, L3 per Bcache, e main per la memoria principale.

Questa 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 specifico che i dati statici dovrebbero essere posti nell'area small data?

È possibile specificare che i dati statici debbano essere posti nell'area small data con -msmall-data. Ciò farà si che gcc tragga vantaggio da alcune caratteristiche dell'architettura Alpha salvando i dati utilizzati più spesso in sezioni specifiche chiamate "sezioni di small memory". Queste sezioni sono limitate a 64KiB, il che significa che accedere a qualunque cosa vi sia stata salvata richiederà una sola istruzione.

-fPIC avrà la precedenza su -msmall-data, quindi si dovrebbe utilizzare la flag -fpic se non si desidera che -msmall-data venga ignorata.

Questa flag non dovrebbe essere utilizzata nelle CFLAGS globali, dato che alcuni oggetti richiedono più di 64KiB per essere memorizzati e questo causa errori di tipo ld gp_overflow.

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

È possibile specificare che il codice oggetto venga posto nell'area small text con -msmall-text. Ciò farà in modo che gcc presuma che l'intero programma (o libreria) debba poter essere contenuta in 4MB, e che quindi sia raggiungibile con istruzioni di diramazione (branch instruction). Ciò riduce il numero di istruzioni richieste per una chiamata ad una funzione da 4 a 1.

Questa flag non dovrebbe essere utilizzata nelle CFLAGS globali, dato che alcuni programmi (o librerie) sono più grandi di 4MB, e ciò causa un errore ld.

Cosa si deve fare se una di queste flag di compilazione causa un errore durante la compilazione, il collegamento o l'esecuzione?

Come CFLAGS si usino queste CFLAGS cautamente, in quanto potrebbero rompere il sistema. Se si incontrano problemi, si provi ad utilizzare CFLAGS meno aggressive prima di segnalare un bug.

Avvio di Alpha e Bootloader

Cos'è SRM?

SRM è basato sulle specifiche del Sottosistema Console di Alpha, che forniscono un ambiente operativo per i sistemi operativi OpenVMS, Tru64 Unix e Linux. Consultare l'SRM Howto per ulteriori informazioni riguardanti SRM.

Cos'è ARC?

ARC è basato sulle specifiche Advanced RISC Computing (ARC), che forniscono un ambiente operativo per Windows NT.

Come si capisce se il firmware di Alpha è ARC o SRM?

Quando il sistemasi accende, si vedrà una schermata con uno sfondo blu e del testo bianco se viene usato SRM. Se viene usato ARC, si vedrà invece un sistema di avvio basato sulla grafica.

Quale bootloader è meglio usare?

Se il sistema Alpha in uso supporta SRM, allora si dovrebbe usare aboot. Se il sistema supporta sia SRM sia ARC (ARC, AlphaBios, ARCSBIOS), allora si dovrebbe seguire la guida al firmware SRM per migrare a SRM ed usare aboot. Se il sistema può usare solo ARC (Ruffian, xl, ecc.) allora è necessario scegliere milo.

aboot può far partire kernel da partizioni EXT4, XFS, ReiserFS o JFS?

No, aboot supporta solo l'avvio di kernel da partizioni ext2 ed ext3. Si possono comunque usare altri filesystem per la partizione di root, l'importante è creare una partizione /boot in ext2 o ext3.

È stato pianificato il supporto a ext4. Infatti, ci sono delle patch che girano che aggiungono il supporto a ReiserFS, XFS, e ext4.

Software

Com'è il supporto a Java su Alpha?

Compaq/HP offrivano pacchetti binari, chiamati compaq-jre e compaq-jdk. Essi hanno però terminato tutto il supporto, e i pacchetti sono stati rimossi da Gentoo l'11 ottobre 2006. Da allora, Java non è più supportato.

Ci sarà mai supporto a Java?

È possibile usare icedtea su Alpha, ma non c'è alcuna intenzione di supportarlo, a causa degli alti costi di manutenzione causati dal dover testare centinaia di pacchetti aggiuntivi.

Com'è il supporto a .NET su Alpha?

Nessuno dei due sforzi open source principali, mono o DotGNU, supportano l'architettura Alpha.

Cosa è necessario per il supporto a .NET?

Portare .NET su Alpha non è un lavoro semplice. Richiede la scrittura di tutte le macro di generazione del codice in linguaggio assembly necessarie per il compilatore JIT (Just in time) e la scrittura delle funzioni specifiche per l'architettura (allocatori dei registri, ecc.).

Kernel Linux Alpha

Quali sorgenti kernel si devono usare?

Si raccomanda di utilizzare gentoo-sources ma anche vanilla-sources sono supportate da Alpha. Si dovrebbe consultare la Guida al Kernel Gentoo per determinare qual è quello giusto per i propri bisogni.

Il sistema è rotto con il kernel-2.6, è possibile costruire un sistema basato sulla versione 2.4?

Alpha ha terminato il supporto al kernel ed al profilo 2.4 da gennaio 2008. Tecnicamente si può costruire un Sistema Gentoo 2.4 (il kernel è nell'albero) ma si devono mascherare tutti i pacchetti esclusivi della versione 2.6 e non c'è alcun supporto da parte degli sviluppatori.

Alpha prenderà in considerazione tutti i rapporti bug circa sistemi non funzionanti basati su kernel 2.6 e tenterà di aiutare il più possibile.

Le sorgenti hardened sono supportate?

La risposta breve è no. Erano supportate qualche tempo da, ma l'hardware e il manutentore sono andati perduti, quindi ora non sono supportate. Se si è interessati e si vuole continuare il lavoro iniziale, lo si faccia sapere.

Il kernel 2.6 supporta Alpha SMP?

Ci sono state alcune occasioni nel passato in cui non funzionava. Tuttavia, le versioni del kernel moderne funzionano bene.

Aiutare il progetto Alpha

Come segnalo un bug?

Se si trova un bug o si vuole mandare delle patch, allora si deve compilare un rapporto bug. Basta poco per farlo, e ogni aiuto è veramente apprezzato. Per favore, si segua la Guida al Rapporto dei Bug di Gentoo.

Com'è possibile aiutare il progetto Alpha?

Gli utenti possono aiutare:

  • Compilando dei bug chiari e concisi
  • Testando il software che non ha ancora la parola chiave ~alpha
  • Rispondendo alle domande su mailing list, forum e canale IRC
  • Mandando patch
  • Diventando un AT

Esiste un progetto di test per architettura Alpha?

Sì, consultare la pagina progetto di test per architettura Alpha per maggiori dettagli.

Risoluzione dei problemi

Perché Xorg blocca Alpha?

Ciò è solitamente causato da un'impostazione -mcpu sbagliata. Per esempio, l'AlphaServer 800 ha bisogno di essere compilato con la flag ev5 per xorg e glibc. Se ciò non viene fatti, si può incorrere in risultati indesiderati.

Altre risorse

Perché non esiste un forum per Gentoo/Alpha?

Sul forum Gentoo ci sono molte categorie divise per architettura, come Gentoo su PPC e Gentoo su Sparc. Non esiste una categoria per Alpha semplicemente perché non c'è abbastanza attività per giustificarne una. Tutti i port relativi ad Alpha dovrebbero essere pubblicati nella categoria Gentoo su Architetture Alternative.

Dov'è possibile ottenere più aiuto o informazioni riguardo Alpha?

Se ci sono ancora domande senza risposta, è possibile consultare altre risorse come il Manuale Alpha o la nostra homepage del progetto. È anche possibile chiedere a noi su irc.freenode.net in #gentoo-alpha, nel forum Gentoo su Architetture Alternative, o sulla mailing list gentoo-alpha@lists.gentoo.org.

Dove posso ottenere più aiuto o informazioni riguardo Alpha su Linux?

AlphaLinux.org è il fulcro di tutte le cose riguardo Alpha/Linux.
This page is based on a document formerly found on our main website gentoo.org.
The following people contributed to the original document: Thomas Cort, Brian Evans, nightmorph, Matt Turner
They are listed here because wiki history does not allow for any external attribution. If you edit the wiki article, please do not add yourself here; your contributions are recorded on each article's associated history page.