Autore: Delirio Tecnologico

Ma come?
Apple migrò ad architettura x86 a partire dall’architettura powerpc…
Si esattamente come Intel vendette il ramo di azienda che si occupava di architettura arm , processore Xscale, per poi trovarsi qualche hanno dopo fuori dal mercato mobile che è stato invaso nel mercato mobile dall’architettura arm…

Inoltre anche Sony e Microsoft per le loro console da gioco stanno migrando da powerpc a x86 …. Ma ricordiamoci che Sony arrivava dall’architettura Mips e Microsoft Xbox dall’architettura x86, per cui non è detto che tutto il settore console e consumer debba migrare solo verso x86 definitivamente…

Infatti stiamo assistendo alla migrazione da x86 verso ARM anche nel mercato server,infatti Applied Micro ha presentato i suoi Server arm 64bit X-Gene, inoltre diversi data-center stanno migrando ad architettura powerpc, come Servergy insegna.


I personalmente ho un accesso ai server RPLE di Servergy che gira su architettura Powerpc in particolare il Freescale P4080 DS, con 8 core a 1,2 Ghz

cat /proc/cpuinfo
processor    : 0
cpu        : e500mc
clock        : 1200.000000MHz
revision    : 2.0 (pvr 8023 0020)
bogomips    : 75.00

processor    : 1
cpu        : e500mc
clock        : 1200.000000MHz
revision    : 2.0 (pvr 8023 0020)
bogomips    : 75.00

processor    : 2
cpu        : e500mc
clock        : 1200.000000MHz
revision    : 2.0 (pvr 8023 0020)
bogomips    : 75.00

processor    : 3
cpu        : e500mc
clock        : 1200.000000MHz
revision    : 2.0 (pvr 8023 0020)
bogomips    : 75.00

processor    : 4
cpu        : e500mc
clock        : 1200.000000MHz
revision    : 2.0 (pvr 8023 0020)
bogomips    : 75.00

processor    : 5
cpu        : e500mc
clock        : 1200.000000MHz
revision    : 2.0 (pvr 8023 0020)
bogomips    : 75.00

processor    : 6
cpu        : e500mc
clock        : 1200.000000MHz
revision    : 2.0 (pvr 8023 0020)
bogomips    : 75.00

processor    : 7
cpu        : e500mc
clock        : 1200.000000MHz
revision    : 2.0 (pvr 8023 0020)
bogomips    : 75.00

total bogomips    : 600.00
timebase    : 37500000
platform    : P4080 DS
model        : servergy,jade-rev3
Memory        : 16384 MB

In particolare sembra sia basato sul sistema di sviluppo Frescale P4080DS che sembrerebbe basato sul processore P4081 a 1,2 Ghz.


Ma torniamo al titolo e vediamo cosa ci hanno suggerito gli amici di Servergy nel meetup di Maggio per migrare a powerpc.

Cosa significa portare le applicazioni su powerpc?

  • X86 è diventata di fatto l’architettura standard
  • Molto del codice ( compreso il codice di Linux) sono sviluppati per la piattaform x86
  • Il modo corretto per scrivere applicazione è di farle independenti dall’architettura
  • Questo è semplice per le applicazioni ma applicato non spesso
  • C’è una certa necessità di dover migrare il codide su altre piattaforme
  • Essenzialmente ricompilare il codice per farlo girare su nuove architetture

Fattori da tenere presente portando applicazioni da x86 a Power

  • HW
  • Big endian vs Little endian
  • CISC vs RISC
  • grandezza delle Istruzioni
  • Chip level design
  • 32bit vs 64bit
  • Implementazione
  • Data type size (int and long difference in 32 vs 64)
  • EABI
  • Librerie
  • Il codice fatto bene è scritto in maniera trasparente dall’Architettura  

Porting Kernel/drivers contro Applicazioni Userspace

  • Vari Casi di porting, dall più semplice ricompilazione al peggior caso
     
    • Più semplice: codice indipendente che usa librerie standard
    • Leggermente più complicato: quando ci sono dipendenze speciali
    • Più difficile: quando è implicato anche l’hardware (es: kernel, drivers) Include la conversione endian, la struttura del repacking, i messaggi (tra hardware e CPU)
    • La più difficile: quando c’è del codice assembler ( si base sul set di istruzioni della cpu specifica)

Ubuntu Build

  • http://qa.ubuntuwire.org/ftbfs/
  • Log delle build
  • Tracciamento degli errori
  • Risolvere gli errori 

Debug delle Applicazioni

  • grep /web search
  • lsof
  • strace
  • gdb
  • printf
  • Kernel debug

lsof

  • fa un elenco delle informazioni dei file aperti da vari processi(che include librerie, pipes, sockets, devices….)
  • Molto utile per fare debugging
  • Ricerca per user, pid…

strace

  • Fare partire un comando e visualizzare tutte le sue chiamate di sistema, così è possibile vedere esattamente cosa il programma sta facendo sino a prima dell’uscita.
  • Può essere usato per il debugging ed il perfezionamento delle prestazioni.


Il prossimo meetup degli utenti powerlinux è questo sabato 15 Giugno alle ore 20 , ora italiana, potete iscrivervi da questo link, ricordatevi di iscrivervi per il webinar non appena sarà noto il link di iscrizione.