Programmi Windows su Linux e viceversa

Praticamente da quando c’è Linux si è lavorato, nel mondo del software libero, per creare la possibilità di eseguire su Linux programmi scritti per il sistema operativo Windows. La prima versione sperimentale di un software che lo consente risale al 4 luglio 1993 ed è stata seguita da una serie di altre versioni per sviluppatori e smanettoni, non alla portata dei comuni mortali. Il primo serio e concreto risultato destinato al grande pubblico risale al 17 giugno 2008, data del rilascio della versione 1.0 di WINE. Il 20 aprile 2017 è stata rilasciata l’ultima versione, la 2.0.1. Grazie a WINE possiamo utilizzare su Linux moltissimi programmi scritti per Windows. Moltissimi e non tutti: in genere girano bene i programmi per architettura a 32 bit e quelli che possono funzionare senza interfacciarsi con altri.
Con il rilascio dell’Anniversary Update di Windows 10, che risale al 2 agosto 2016, Microsoft ha fatto qualche cosa di simile rendendo possibile, per computer equipaggiati Windows 10 upgradato alla versione Anniversary su architettura a 64 bit, utilizzare la shell del sistema operativo Linux su Windows. Il tutto ad uso di di gente che usa la shell, cioè di gente che lavora a riga di comando (sviluppatori, smanettoni, hacker, ecc.).
Da qualche giorno fa bella mostra di sé su Windows Store una App, che si chiama Ubuntu e che rende più agevole di prima attivare questa potenzialità. La comparsa nello Store, cui accedono anche principianti e dilettanti, ha fatto credere a qualcuno che siamo arrivati ad un WINE rovesciato, cioè a qualche cosa che consenta di far girare su Windows qualsiasi programma scritto per Linux.
Purtroppo non è così e, per fare chiarezza, oltre che per diffondere la conoscenza dei meriti di WINE, ho ritenuto di proporre l’allegato vademecum, liberamente scaricabile, stampabile e distribuibile.

wine_wsl

Più difficile essere liberi con UEFI, anche grazie a Windows.

Senza che l’ignaro consumatore se ne sia accorto, nel corso degli ultimi anni è cambiato qualche cosa nella macchina che chiamiamo personal computer: il software installato in un chip della scheda madre, che si attiva all’accensione del computer per collegare la macchina al sistema operativo, non è più quello di un tempo.
Al BIOS (Basic Input Output System) è subentrato l’UEFI (Unified Extensible Firmware Interface).
L’idea del cambiamento risale all’inizio del secolo, esattamente al 2003, e il primo annuncio dell’idea è stato dato dalla Intel nell’Intel Developer Forum di San Josè il 24 febbraio di quell’anno. In una dozzina di anni, con estrema gradualità, il cambiamento si è generalizzato ed oggi tutti i personal computer in vendita a 64 bit, a meno che si tratti di vecchi fondi di magazzino, sono equipaggiati UEFI.
La differenza tra i due sistemi sta innanzi tutto nel miglioramento della grafica del software: il BIOS era molto spartano e antiquato mentre UEFI ha una interfaccia grafica moderna, del tipo di quelle cui siamo ormai abituati.
L’accesso al sistema, fatte salve le complicazioni introdotte da Microsoft che vedremo poi, avviene sempre utilizzando, al momento dell’accensione del computer, i tasti F10 (per modelli HP/Compaq), F2 (per modelli Acer, Toshiba, Dell e alcuni modelli Asus), CANC/DEL (per modelli MSI e alcuni modelli Asus), comunque come indicato nei manuali che accompagnano le varie macchine.
Praticamente nello stesso modo con cui lo si faceva con il BIOS si può agire affinché il PC si avvii prioritariamente da disco o chiavetta USB (cosa che sul Mac si può fare senza intervenire sul software ma semplicemente tenendo premuto il tasto C all’avvio del computer).
La grande innovazione di sostanza sta nella diversa organizzazione del settore di boot del sistema operativo.
Nel vecchio sistema BIOS la tabella delle partizioni dell’hard disk e il boot loader per l’avvio del sistema operativo erano alloggiati nel MBR (Master Boot Record), una piccola zona che occupava i primi 512 byte dell’hard disk. Il disco basato su MBR non poteva superare la dimensione di 2 Terabyte e non poteva ospitare più di quattro partizioni primarie.
Nel nuovo sistema UEFI saltano tutte queste limitazioni: sono i vari sistemi operativi che qua e là eventualmente ne pongono (per esempio, il numero delle partizioni primarie ammesse in genere è attorno alle 128, Windows accetta la dimensione del disco, che teoricamente potrebbe arrivare a oltre 9 Zettabyte, cioè 9 miliardi di Terabyte, fino a 256 Terabyte). Tabella delle partizioni e boot loader dei sistemi operativi stanno nella GPT (GUID Partition Table), una zona del disco chiamata “efi system partition” o qualche cosa di simile, a seconda di macchine e sistemi.
I kernel Linux sono da sempre compatibili con lo standard UEFI.
Mac è compatibile con lo standard UEFI da quando ha adottato il processore Intel nel 2005.
Windows ha cominciato a supportare lo standard UEFI nel 2009 con la versione a 64 bit di Windows 7.
Fino al settembre 2012 tutti d’amore e d’accordo nel graduale passaggio al nuovo standard, in parallelo all’uscita delle macchine attrezzate con UEFI (concretamente iniziata all’inizio del 2011), nel senso che, a seconda del tipo di macchina, il sistema operativo che vi si installava, purché a 64 bit, vi si adattava senza che nessuno se ne accorgesse.
Con il rilascio di Windows 8, appunto nel settembre 2012, Microsoft, approfittando di una funzione chiamata “secure boot”, resa disponibile da UEFI e in forza della quale è possibile inibire il funzionamento di sistemi operativi non accreditati dal costruttore, pretese che tutti i computer con precaricato Windows 8 avessero attivata la funzione “secure boot” in favore del sistema Windows. Senza dubbio il provvedimento, almeno si spera, fu ispirato da validi motivi di sicurezza: sta di fatto che il mancato coinvolgimento preventivo di altri onesti produttori di sistemi operativi ha creato momenti di panico e il giusto, pesante intervento della Free Software Foundation. Tutte le distro Linux in circolazione passarono infatti bruscamente per software non accreditato e tutte le live dimostrative con le quali si provavano i vari sistemi operativi del mondo Linux per decidere se installare o meno il sistema stesso smisero di funzionare sui computer con precaricato Windows 8, cioè tutti quelli che si acquistavano nei soliti negozi.
Su Internet troviamo numerose tracce delle diatribe che ne seguirono e si può immaginare ciò che si disse della Microsoft e della sua mossa da elefante in cristalleria. Soprattutto troviamo in rete tanti suggerimenti su come fare a superare il problema, suggerimenti che si sono stratificati nel tempo e non sempre tengono conto della realtà che nel frattempo si è creata. Per cui, letti oggi, sono obsoleti.
Ad oggi, marzo 2017, la situazione è la seguente.
Microsoft, nel frattempo passata a Windows 10, mantiene l’imposizione ai fabbricanti di computer che preinstallano il suo sistema operativo di attivare il “secure boot”. In più mantiene per default la modalità di avvio rapido (si chiamava “Fast Boot” in Windows 8, si chiama “Fast Startup” in Windows 10), in forza della quale, come si accende il computer, qualunque tasto si utilizzi per cercare di entrare in UEFI, non si riesce nell’intento e si avvia, invece, il sistema operativo Windows. Come dire, al malcapitato non esperto che ha comperato un qualsiasi computer in un negozio, “non avrai altro sistema operativo al di fuori di me”.
Se il malcapitato diventa un po’ esperto scopre che all’interno di Windows c’è un modo per disattivare la funzione “Fast Startup”, così come c’è modo di entrare in UEFI per eventualmente disattivare anche il “secure boot”: entrata in UEFI che diventa comunque fattibile, una volta disattivata la funzione “Fast Startup”, premendo i necessari tasti all’avvio del computer.
A questo punto, con disattivate entrambe le funzioni, il malcapitato recupera finalmente la libertà di  mettere il sistema operativo che più gli aggrada su un computer che, tra l’altro, ha pagato di più in quanto arricchito – anzi, direi, infestato – da Windows precaricato.
Fortunatamente, almeno ricorrendo a vendite on-line (Amazon, sito HP, catena LinuxSi, Kelkoo, ecc.), è diventato ormai possibile acquistare una grande varietà di computer con preinstallato il sistema Linux o senza alcun sistema operativo, in modo da potervi installare ciò che si vuole senza avere tra i piedi Windows con i problemi che si porta appresso e risparmiando mediamente un centinaio di euro.
Nel frattempo, comunque, i seguenti sistemi Linux a 64 bit si sono accreditati e funzionano anche con attivata la funzione “secure boot” di UEFI:
Ubuntu e derivate dalla versione 12.10
Linux Mint dalla versione 15
Fedora dalla versione 18
openSuse dalla versione 12.3
Dal momento, infine, che UEFI è nato in un clima di libertà, rammento che, una volta si riesca ad entrarci dentro eludendo le trappole escogitate da Microsoft, esso, oltre ad offrirci la possibilità di attivare o disattivare la funzione “secure boot”, ci consente di attivare la funzione “Legacy Boot”: con questa si disabilitano tutte le funzionalità proprie di UEFI e si ripristina qualche cosa di simile alla vecchia modalità BIOS, in modo da permettere il corretto avvio di tutti i sistemi operativi che non supportano UEFI (versioni di Linux precedenti quelle sopra indicate, Windows precedenti a Windows 8, sistemi che ancora non supportano UEFI, ecc.).
Per quanto riguarda i supporti esterni autoavviabili non si dovrebbero avere problemi con i DVD con masterizzata l’immagine ISO, sia in versione destinata all’installazione sia in versione live.
Parlando invece di pennette USB, in generale vale la regola che supporti autoavviabili generati con computer UEFI e con software aggiornato sono utilizzabili, e lo sono solo in ambiente UEFI. Se lavoriamo su un computer con il BIOS possiamo avere qualche problema: per esempio, se creiamo una chiavetta con Unetbootin su un vecchio computer partendo da una immagine ISO di un qualsiasi sistema Linux appena rilasciato, con ogni probabilità ci ritroveremo una chiavetta formattata UEFI che non funzionerà sul nostro vecchio computer BIOS. Per renderla funzionante anche su BIOS ci dobbiamo sorbire la non banale operazione di installazione di GRUB nel Master Boot Record della chiavetta utilizzando le opzioni avanzate del software Boot Repair Disk a 64 bit, di cui ho parlato nell’allegato PDF, intitolato “backup_e_non_solo”, al mio articolo dell’ottobre 2016 “Software libero per aver cura del computer”.
Nel frattempo il mondo del software libero ha fatto omaggio agli utenti Windows di un programmino, chiamato Rufus (l’ultima versione, 2.12, è scaricabile da http://filehippo.com/it/download_rufus/), con il quale è possibile creare, da Windows, chiavette usb avviabili sia con il vecchio BIOS sia con il nuovo UEFI e con installata l’immagine live di un sistema Linux, in modo da provarlo e, volendo, installarlo più o meno a fianco di Windows.
In qualche modo bisogna riconquistarsi la libertà.

Compatibilità tra file system

Frequentando i vari forum dedicati a Linux ci troviamo spesso di fronte a disperate segnalazioni della lentezza con cui a volte avviene il trasferimento o la copiatura di file di dimensione elevata dal nostro computer Linux a supporti esterni (pennette, dischi esterni, ecc.): al punto che ho trovato un caso in cui una sfortunata esperienza di questo tipo ha suscitato grande delusione ed è stata motivo di abbandono del sistema Linux e di ritorno a Windows da parte di un utente.
Peccato! perché, anche con questo inconveniente, Linux, come ripeto sempre, rimane il miglior sistema operativo del mondo ed è infatti l’unico sistema operativo che nativamente, cioè senza bisogno di software aggiuntivo, può leggere e scrivere dati su supporti formattati per altri sistemi operativi.
Cioè a dire: se da Windows vogliamo copiare un file su un supporto formattato per Linux, il supporto manco lo vediamo; con un software aggiuntivo gratuito possiamo vederlo e trattarlo in sola lettura; con un software parecchio costoso possiamo provare anche a scriverci sopra, con i tempi che ci passerà il convento. Da Linux, invece, possiamo copiare i file dove vogliamo: se ci capita di copiarne uno di parecchie decine di MB su un supporto formattato NTFS (il file system corrente per Windows) può darsi che ci tocchi di metterci un po’ di tempo. Tutto qui.
Ma vediamo di capirci qualche cosa in più, anche per saperci regolare.
File system usati e riconosciuti dai vari sistemi operativi
Il file system è il modo con cui i file sono organizzati su un dispositivo di archiviazione. Ciascun sistema operativo ha un suo modo di archiviare innanzi tutto i file che lo costituiscono.
Attualmente Linux utilizza il sistema ext4, Windows utilizza il sistema NTFS e Mac utilizza il sistema HFS+.
Quando il sistema operativo si collega ad un supporto diverso da quello su cui sono memorizzati i suoi file (altra partizione dello stesso disco, disco esterno, pennetta USB, ecc.) si aspetta innanzi tutto di trovare su questo supporto lo stesso tipo di organizzazione dei file oppure un tipo di organizzazione della stessa natura: per Linux si tratta dei sistemi ext2 e ext3, per Windows si tratta del sistema FAT32, per Mac si tratta del sistema HFS. Questi sistemi sono rispettivamente precedenti edizioni dei sistemi attuali, con i quali sono perfettamente compatibili, soltanto meno efficienti e, soprattutto, con alcune limitazioni riguardanti la dimensione massima dei file memorizzabili.
Lettura, trasferimento e copiatura di file avendo a che fare con supporti con questo tipo di compatibilità vengono realizzati con la massima velocità.
Ciascun sistema operativo, poi, si comporta in una certa maniera se il supporto diverso da quello su cui sono memorizzati i suoi file ha anche un diverso tipo di organizzazione dei file. In particolare:
. dal sistema Linux si può leggere e scrivere anche su sistemi FAT32 e NTFS (quelli di Windows), pur con l’inconvieniente della lentezza di scrittura cui si accennava prima nel caso di NTFS, e su sistemi HFS e HFS+ (quelli di Mac), in quest’ultimo caso in sola lettura se journaled;
. dal sistema Windows si può leggere e scrivere solo su sistemi FAT32 e NTFS; con gli accessori gratuiti Mini Tool Partition Wizard e HFS Explorer con Java si può rispettivamente andare in sola lettura anche su ext2, ext3 ed ext4 (quelli di Linux) e HFS (uno di quelli di Mac); per andare su HFS e HFS+ (quelli di Mac) in lettura e scrittura occorre arricchire Windows di costosi software commerciali (MacDrive o Paragon HFS);
. dal sistema Mac si può leggere e scrivere su FAT32 (uno di quelli di Windows) e, da OSX “Leopard” in poi, anche su NTFS (l’altro di Windows).
Come si vede, il tipo di organizzazione dei file che si presta meglio ad un interscambio tra sistemi operativi è il FAT32, sul quale leggono e scrivono senza problemi tutti i tre sistemi operativi che fanno funzionare i personal computer. Unici difetti quello di essere un file system di vecchia concezione, meno efficiente di quelli che sono venuti dopo e, per gente esosa, quello di supportare una capacità massima di memorizzazione di 1 TiB e di poter memorizzare file di dimensione massima di 4 GB ciascuno. Grande pregio quello di essere il sistema riconosciuto da lettori USB diversi dai computer (lettori MP3, lettori DVD con presa USB, ecc.).
Nessun dubbio sul fatto che, se ci riferiamo a pennette USB, il FAT32 è il meglio in quanto i difetti praticamente non si avvertono e il pregio si esalta.
Se ci riferiamo a dischi esterni o a partizioni su dischi condivisi da sistemi operativi diversi il problema si complica e siamo sicuramente attratti da NTFS, a causa della sua maggiore efficienza sotto Windows, però con il citato inconveniente sotto Linux.
Formattazione dei supporti dai vari sistemi operativi
La struttura del file system viene impostata con la così detta formattazione del supporto di memorizzazione.
Il sistema operativo è dotato di tools per la formattazione, attraverso i quali ciascun sistema, oltre a realizzare la formattazione per il proprio file system, può realizzare altri tipi di formattazione. In particolare:
. dal sistema Linux si può formattare anche in FAT32 e NTFS (i sistemi di Windows) e, previo caricamento dal gestore software del programma hfsprogs, in HFS+ (quello di Mac);
. dal sistema Windows arricchito del software gratuito MiniTool Partition Wizard si può formattare anche in ext2, ext3 ed ext4 (i sistemi di Linux) e installando il software commerciale a pagamento Mac Drive, si può formattare anche in HFS+ (quello di Mac);
. dal sistema Mac si può formattare anche in FAT32 e, con software aggiuntivi, anche in NTFS (Windows) e ext2, ext3 ed ext4 (i sistemi di Linux).

Addio 32 bit

Ubuntu 16.04, che sarà rilasciato il prossimo aprile, sarà l’ultimo che affiancherà alla versione a 64 bit la versione a 32 bit.
Nel mondo Linux si è avuto da tempo il precedente Chakra Arch Linux, che ha preso la decisione di abbandonare l’architettura a 32 bit già nel 2012 suscitando un vespaio di critiche: tale decisione fu infatti ritenuta di totale incoerenza con il concetto “linux per tutti” che caratterizza questo mondo. E, nel 2012, mi pare non si trattasse di critiche infondate.
Quattro anni dopo, peraltro di fronte ad una versione, la 16.04 di Ubuntu, che sarà una LTS e sarà cioè supportata e aggiornata per altri quattro anni, direi che non c’è proprio nulla da dire.
Del resto, se guardiamo al mondo Windows o Mac, le attenzioni verso l’architettura a 32 bit riguardano ormai il minimo di correttezza nei confronti di chi aveva acquistato sistemi operativi basati su quell’architettura.
Infine occorre considerare che software a 64 bit se ne trova parecchio e che anche software originariamente ed ancora basato sull’architettura a 32 bit gira molto bene anche su sistemi a 64 bit.
Forse troviamo qualche problemino nel mondo Linux, dove, per far girare su un 64 bit software a 32 bit, qualche volta dobbiamo smanettare un po’ per aggiustare le dipendenze: speriamo che il 64 bit di Ubuntu 16.04, in questo senso, sia migliore di Ubuntu 14.04 e precedenti.
Così ci dobbiamo preparare a dare l’addio al 32 bit e viene voglia di farlo subito.
Ma vediamo innanzi tutto cosa vuol dire.
Lavorare a 64 bit piuttosto che a 32 bit significa semplicemente poter accedere a una memoria RAM enormemente superiore, con il risultato di poter eseguire programmi sempre più impegnativi dal punto di vista dell’occupazione di memoria o di poter eseguire programmi meno impegnativi con velocità e scioltezza più elevate.
Perché i vantaggi del lavorare a 64 bit siano avvertibili dobbiamo però averla, la memoria RAM.
Se il nostro computer è non troppo giovane e di fascia media probabilmente avrà attorno a 2 GB di RAM: con questa dimensione non noteremo alcuna differenza tra il lavorare con un sistema operativo a 64 bit e il lavorare con un sistema operativo a 32 bit.
Per entrare in una zona grigia, dove forse si comincia a notare la differenza, dobbiamo avere a disposizione almeno 4 GB di RAM.
Se abbiamo a disposizione oltre 4 GB, con il sistema a 64 bit è un’altra vita.
Comunque, dal punto di vista della RAM che abbiamo a disposizione, se muore il 32 bit non abbiamo problemi a passare al 64 bit.
Il problema vero è il processore: se, anche indipendentemente dalla sua architettura, può lavorare solo a 32 bit, esso non potrà funzionare con un sistema operativo a 64 bit.
Prima di avventurarci a caricare un sistema a 64 bit dobbiamo pertanto sapere se il nostro processore lo può reggere.
Un computer di fascia media acquistato di recente dovrebbe essere senz’altro già pronto per il 64 bit; anzi, con ogni probabilità, ha già montato un Windows a 64 bit ed allora la risposta ce l’abbiamo già.
Di fronte ad un computer non giovane, con un sistema operativo Windows imballato che si inceppa ogni due per tre, ci potrebbe venire voglia di installare un bel sistema Linux a 64 bit ed allora la curiosità si giustificherebbe.
Se usiamo un sistema operativo Linux – che, come sempre ricordo, è il migliore di tutti – basta che apriamo il terminale e scriviamo il comando lscpu; nella seconda riga della risposta, intitolata CPU op-mode, troviamo ciò che cercavamo: se c’è scritto solo 32-bit vuol dire che il nostro processore può lavorare solo a 32 bit, se c’è scritto 32-bit, 64-bit vuol dire che il nostro processore può lavorare anche a 64 bit, ecc.
Se usiamo un sistema operativo Mac dobbiamo andare nel menu Apple -> Informazioni su questo Mac -> Più informazioni -> Hardware -> Nome del processore; ottenuto il nome del processore andiamo su Internet e vediamo di capirci qualche cosa.
Se usiamo un sistema operativo Windows evitiamo di perdere tempo con i vari suggerimenti che troviamo in rete o sul sito della stessa Microsoft, tra cui addirittura quello di andare a sfrugugliare nel registro di sistema: in questo modo sono arrivato a scoprire che un processore Intel Core2 Duo, notoriamente adatto anche per sistemi a 64 bit, può supportare solo il 32 bit. Più semplicemente, seguendo i vari percorsi inventati nelle varie edizioni di Windows, accertiamo tra le risorse di sistema il nome del processore e poi andiamo su Internet.
Se poi, rimanendo in campo Windows, l’informazione ci interessa solo per sapere se possiamo upgradare il sistema operativo Windows a 32 bit che già abbiamo, mamma Microsoft ci mette a disposizione il programma Windows 7 Upgrade Advisor che rimedia al casino citato prima.
Altra opportuna verifica, ad evitare di crearci problemi inutili, quella sul sistema operativo in uso: potremmo infatti avere già un sistema a 64 bit senza saperlo.
Questa verifica è semplicissima. In Windows basta aprire il Pannello di Controllo e andare su Sistema e troviamo la descrizione del sistema operativo: se è presente in qualche modo la sigla x64 significa che abbiamo già un sistema a 64 bit. In Linux e Mac OS X basta digitare nel terminale il comando uname -a: se nella risposta compaiono sigle come i386, i486, i586, i686 vuol dire che abbiamo installato un sistema a 32 bit; se nella risposta compare la sigla x86_64 vuol dire che abbiamo installato un sistema a 64 bit.
Una volta dotati di un sistema a 64 bit potremo farvi girare anche vecchi programmi a 32 bit.
Se ci dilettiamo a fare noi stessi programmi, ricordiamo tuttavia che un eseguibile da noi compilato su un sistema a 64 bit non gira su un sistema a 32 bit.
Ovviamente, invece, script o bytecode tipo Python, Java e quant’altro viene interpretato, ovunque sia stato scritto, gira dove trova l’interprete.
Buon 64 bit.

Arricchiamo il nostro Android

Se abbiamo acquistato uno smartphone lo abbiamo fatto soprattutto per comunicare: con il telefono, con la messaggistica, con la posta elettronica, attraverso i social su internet, ecc. Secondariamente abbiamo forse pensato anche ad avere la possibilità di passare il tempo con qualche giochino elettronico o ascoltando un po’ di musica.
Probabilmente le stesse motivazioni, magari con minor peso la comunicazione telefonica e con più peso lo svago, dal gioco e dall’ascolto di musica alla lettura di un e-book o alla visione di un filmato, hanno spesso ispirato l’acquisto di un tablet.
Per non parlare, in entrambi i casi, della possibilità di scattare discrete fotografie, istantaneamente scambiabili con i nostri parenti ed amici.
In moltissimi casi si trascura il fatto che con queste apparecchiature si può fare molto di più, perché siamo in presenza di veri e propri computer: sia lo smartphone, sia il tablet sono infatti dotati di un chip che ingloba un microprocessore ed hanno un sistema operativo che li fa funzionare come un vero e proprio computer. Con il grande limite, soprattutto nel caso dello smartphone, della ristrettezza dello spazio per lavorare, sia con riguardo allo schermo sia con riguardo alla tastiera. Limite che, come ho sostenuto nel mio appunto di qualche giorno fa “Allarmismi senza costrutto”, farà in modo che questi apparecchi non potranno mai decretare la morte del personal computer, contrariamente a quanto alcuni sostengono.
Per certe cose, tuttavia, come il calcolo e collegate applicazioni scientifiche o lavoretti ricollegabili al nostro stato o alla nostra professione utilmente eseguibili in momenti di lontananza dalle consuete attrezzature di casa o dell’ufficio, il fatto di avere in tasca un apparecchietto che ci può dare una mano può risultare molto utile.
Quando acquistiamo uno di questi apparecchi lo troviamo già dotato del sistema operativo, cioè del software di base per farlo funzionare, oltre che di tutta una serie di applicazioni (in questo mondo, secondo la terminologia introdotta da Steve Jobs, chiamate “app”) che rispondono a tutte le esigenze primarie per le quali abbiamo acquistato l’apparecchio e che ho prima citato: comunicare, navigare su internet, fotografare, ascoltare musica, leggere e-book, vedere filmati, giocare.
Se il sistema operativo del nostro apparecchio è Android possiamo trovare centinaia di altre applicazioni per fare queste stesse cose o per farne altre su Google Play, il negozio on-line di Google, raggiungibile con il nostro apparecchio utilizzando la app Play Store.
Se mi chiedete perché tanta attenzione per Android e non per gli altri sistemi operativi che possiamo trovare in giro vi rispondo che Android, non a caso il più diffuso, è il migliore ed è basato su GNU-Linux, che è il sistema operativo per eccellenza del mondo del software libero, mondo al quale è dedicato questo mio blog. Peraltro, lo stesso Android, protetto dalla licenza Apache 2.0, è software libero.
Probabilmente, trovando installato sul nostro apparecchio tutto ciò che ci serve per le nostre esigenze primarie, la prima direzione verso la quale siamo interessati a trovare arricchimenti è quella dei giochi. In questo campo, su Google Play, possiamo trovare di tutto: dai giochi di movimento ai giochi da scacchiera, dai giochi di carte a rompicapi di tutti i tipi. Le nostre preferenze ci guideranno nella scelta.
Per quanto riguarda arricchimenti su altri fronti, vista la grande mole di applicazioni disponibili, non tutte ugualmente funzionali e realmente corrispondenti alle aspettative ingenerate dalle loro descrizioni, ho ritenuto utile compilare il manualetto allegato in formato PDF, scaricabile e stampabile.

le migliori app per arricchire Android

Esecuzione di script Python

Un programma Python, meglio sarebbe dire uno script Python, non è compilato, cioè non è direttamente eseguibile dalla CPU del computer.
Esso, infatti, è costituito da un elenco di istruzioni, composto secondo le regole sintattiche del linguaggio di programmazione Python, scritte in caratteri alfanumerici leggibili dall’uomo: da qui il nome più adatto di “script”.
Per essere eseguito ha bisogno di essere interpretato nel momento stesso dell’esecuzione.
Vediamo ciò che può avvenire nei due sistemi operativi Linux e Windows.

Sistema Linux

Il modo basico di eseguire lo script è quello di posizionarci nella directory dove lo abbiamo archiviato e richiamarlo con l’interprete scrivendo a terminale, nel caso l’interprete sia Python3 e lo script sia quello del gioco Master Mind scaricabile dal relativo articolo:
python3 MasterMind.py
Se questa istruzione la inseriamo in un launcher, indicando al posto di MasterMind.py anche tutto il percorso per raggiungerlo, avremo un’icona da inserire nei nostri menu, cliccando sulla quale lanceremo il programma.
Se vogliamo poter lanciare il programma senza richiamare l’interprete dobbiamo inserire nello script, come prima riga, dopo i simboli #! il percorso per raggiungere l’interprete con il nome dell’interprete stesso. In questo modo, con alcuni gestori di file come Nemo, potremo anche lanciare il programma con doppio click sull’icona del file.
Ovviamente lo script va reso preventivamente eseguibile con chmod 555.
Per i programmi che utilizzano moduli, come avviene per il nostro Master Mind con il modulo tkinter, occorre che, insieme all’interprete, sia presente sul computer anche il modulo stesso.
Nei sistemi Linux, che hanno generalmente preinstallato Python insieme al sistema, può accadere che la preinstallazione non comprenda il modulo tkinter. Si rimedia subito cercando tkinter nel gestore di programmi e installandolo. Indirettamente si può installare tkinter installando la Idle (Integrated DeveLopment Environment) del nostro Python, peraltro utilissima per produrre gli script.

Sistema Windows

Tutti gli installatori di Python per Windows installano anche tkinter, e questo è bene.
Il male viene dal fatto che l’installatore inserisce l’interprete in una directory intitolata alla versione di Python che installa, all’interno della quale, però, il nome del programma interprete è sempre python.exe, indipendentemente dalla versione. Mentre, cioè, nel sistema Linux abbiamo un eseguibile python2 per la versione 2 e un eseguibile python3 per la versione 3, in Windows abbiamo un eseguibile python.exe archiviato nella directory Python20 per python 2 e un eseguibile, ancora python.exe, archiviato nella directory Python30 per python 3.
L’installatore non inserisce il percorso a python.exe nel path di sistema: forse fa questo per evitare casini. Infatti se installassimo due versioni di Python su Windows, la 2 e la 3, e inserissimo entrambe nel path di sistema combineremmo un guaio, in quanto il richiamo dell’eseguibile python.exe per interpretare uno script Python avverrebbe a caso, senza tener conto della versione di Python con cui è stato generato lo script.
Nè possiamo sperare che ci aiuti la prima riga dello script, dove, dopo i simboli #! inseriamo il percorso per raggiungere l’interprete giusto: questa riga, infatti, è capita solo dal sistema operativo Linux (che, come tutti ormai sanno, è il miglior sistema operativo esistente).
In conclusione, se abbiamo il nostro giochino Master Mind su Windows e vogliamo inserirlo nel menu lo facciamo indicando ove dovuto i percorsi all’interprete e allo script da eseguire.
Se vogliamo che il nostro giochino parta con doppio click sulla sua icona:
. o, visto che lo script è in Python 3, inseriamo nel path di sistema il percorso c:\python30 e tutte le volte che richiamiamo python ci esce la versione 3;
. oppure creiamo un file batch con l’istruzione
c:\python30\python.exe “<percorso allo script da eseguire>”,
lo archiviamo con l’estensione .bat e lanciamo il nostro giochino con doppio click sull’icona del file batch.