Come copiare testo da terminale agli appunti di X

A volte è necessario o comodo copiare del testo dal terminale agli appunti (clipboard) di X – ad esempio per incollare il testo su una chat o forum con un semplice CTRL+V. Si può fare facilmente con il programma xclip. Per installarlo su Debian, Ubuntu e derivate, bisogna eseguire:

sudo aptitude install xclip

Il suo utilizzo e molto semplice: basta mandare in pipe a xclip il testo che si desidera. Ad esempio per copiare le informazioni relative a dhclient presenti nei log, si può eseguire:

grep dhclient /var/log/syslog | xclip -selection c

In questo modo tutte le linee in /var/log/syslog contenenti dhclient vengono copiate negli appunti e possono essere incollate con CTRL+V.

Resettare i pannelli di Gnome

Capita abbastanza spesso che su IRC qualcuno chieda come riportare alle loro impostazioni iniziali i pannelli di Gnome dopo averli completamente rimossi, danneggiati o comunque resi inaccessibili. La soluzione fortunatamente è semplicissima. Basta aprire un terminale ed eseguire il seguente comando:

gconftool --recursive-unset /apps/panel && killall gnome-panel

In questo modo i pannelli di Gnome verranno riportati alle loro impostazioni predefinite.

Mac OS X su VirtualBox 3.2

Pochi giorni fa Oracle ha annunciato il rilascio della prima beta di VirtualBox 3.2. Con il passaggio da Sun a Oracle VirtualBox è stato “declassato”, non sarà più proposto anche per la virtualizzazione di server (per cui Oracle ha già la sua offerta) ma solo di desktop. La novità più rilevante è il supporto a Mac OS X:  è sufficiente un CD di Snow Leopard per installare il sistema operativo Apple.

Essendo una beta, il supporto non è ancora perfetto. In particolare:

  • la dimensione dello schermo è fissa;
  • non è supportato l’audio;
  • il disco di VirtualBox deve avere dimensione fissa e non dinamica;
  • il folder sharing delle Guest Addition non è supportato.

La rete e le connessioni USB invece sono funzionanti. Le altre feature importanti introdotte con questa beta sono:

  • il memory ballooning, che permette di modificare dinamicamente la RAM dedicata al sistema operativo guest;
  • il CPU hot-plugging, che permette di aggiungere e rimuovere CPU dedicate al guest (la rimozione è supportata solo su host Linux);
  • supporto alle large pages su processori con tecnologia di virtualizzazione VT-x/AMD-V (solo 64 bit) per migliorare le prestazioni della virtualizzazione;
  • possibilità di cancellare gli snapshot durante il funzionamento della virtual machine;
  • accelerazione video di RDP (Remote Desktop Protocol è il protocollo con cui VirtualBox realizza la modalità seamless, quella che fa convivere sullo stesso desktop le finestre del sistema operativo host e del guest).

I binari per l’installazione di VirtualBox 3.2 beta 1 possono essere scaricati da qui. Si tenga presente che è ancora una versione beta e potrebbe causare instabilità anche gravi, sia al sistema guest che all’host.

Monitoraggio delle performance del kernel Linux giorno per giorno

Phoronix ha lanciato un progetto per cui ogni giorno viene automaticamente scaricata e compilata l’ultima versione del kernel Linux disponibile e vengono eseguiti i benchmark del Phoronix Test Suite. I risultati vengono pubblicati su phoromatic.com. È un progetto interessante che permette di monitorare facilmente i progressi nelle performance del kernel. Un esempio dei grafici disponibili è il seguente:

In cui vengono mostrati il numero di secondi necessari per effettuare un encoding di un file audio da WAV a FLAC. I risultati mostrati sono relativi all’ultimo mese di sviluppo del kernel, che incidentalmente coincide con il completamento della release 2.6.33.

Phoromatic è un progetto piuttosto interessante, vale la pena di perderci qualche minuto a settimana per tenere d’occhio cosa combinano gli sviluppatori da un punto di vista sensibile per l’utente finale. I risultati dei test sono disponibili all’indirizzo http://www.phoromatic.com.

Posted in linux. No Comments »

Prestazioni kernel 32 bit, 32 bit con PAE e 64 bit

Sul mercato consumer desktop e laptop sono ormai ampiamente diffusi sistemi con processori a 64 bit associati a dotazioni di memoria che superano facilmente i 4GiB. Per sfruttare completamente la RAM è necessario un kernel a 32 bit che supporti il PAE o un kernel a 64 bit. Fino a qualche tempo fa gli utilizzatori di Linux potevano essere restii ad utilizzare la versione a 64 bit per la mancanza di driver o software proprietario (un esempio tipico era Adobe Flash).

Tranne alcuni casi particolari in generale i kernel a 64 bit possono tranquillamente essere utilizzati sulle macchine domestiche. In effetti a parte le perdite di performance un kernel a 32 bit funziona perfettamente su una macchina a 64 bit.

Oggi, 30 dicembre, Phoronix ha rilasciato i risultati dei suoi test che mettono a confronto le prestazioni di Ubuntu con kernel a 32 bit, 32 bit con PAE e 64 bit su una macchina con processore Intel Core 2 Duo T9300 e 4GiB di RAM. I 4 GiB di RAM sono completamente utilizzabili da tutte e tre le versioni del kernel – anche se quella a 32 bit senza PAE ne riporta solo 3, in quanto un GiB è riservato dal kernel e non è utilizzabile lato utente.  I risultati del test mettono quindi in luce le differenze di prestazioni soprattutto per le applicazioni di “number crunching”, dove il pieno utilizzo dei registri a 64 bit del processore permette al kernel 64 bit di avere prestazioni anche molto superiori rispetto alla versione a 32 bit. Il test completo può essere consultato sull’articolo di Phoronix.

La sostanza del test, per chi non avesse voglia di leggerlo integralmente, è che le prestazioni del kernel 32 bit e 32 bit con PAE sono sostanzialmente identiche, mentre il kernel 64 bit ha prestazioni migliori degli altri due. Le migliori prestazioni del kernel 64 bit sono apprezzabili, come è lecito aspettarsi, soprattutto in applicazioni computazionalmente intensive, come ray tracing o utilizzo di crittografia. Un interessante outsider è il benchmark relativo al server http Apache: sui kernel a 32 bit il test ha ottenuto una media di 470 richieste al secondo servite, mentre con il kernel a 64 bit una media di quasi 8000 richieste al secondo. Questa differenza di un fattore 20 mi fa pensare che o il test è fallato o c’è qualche problema di configurazione nella versione di Apache pacchettizzata per 32 bit. Sarebbe interessante approfondire la questione. In breve: il kernel a 64 bit è utilizzabilissimo sulle macchine domestiche che lo supportano ed è quasi un must sui server su cui si desidera ottenere migliori prestazioni in modo “gratuito”.

I risultati completi del test sono disponibili sul sito di Phoronix.

Ottenere di più da KRunner in KDE 4.x

KMenu icon by Oxygen KDE Team KRunner è l’interfaccia di KDE per avviare i programmi. Lo si avvia da tastiera di default con la combinazione Alt+F2. Oltre a essere un modo rapido per avviare software KRunner include diversi “fornitori di servizio” che gli permettono di eseguire molte altre attività differenti.

  1. File management. Basta specificare un percorso nel filesystem (ad. es.: /home/nomeutente ) per aprire il file manager predefinito, di default Dolphin.
  2. Web. Digitando un normale indirizzo web KRunner dà la possibilità di avviare direttamente il browser predefinito sulla pagina specificata.
  3. Google search. Per effettuare una ricerca su Google è sufficiente digitare gg:<parole chiave> seguito da Invio. KDE avvierà il browser predefinito sulla pagina di ricerca di Google relativa ai termini di ricerca inseriti. Per cercare immagini su Google images digitare images:<parole chiave>.
  4. Conversione unità di misura. Per convertire da una unità di misura all’altra digitare <valore> <unità di misura> in <unità di misura>. Ad esempio: 5 liters in gallons.
  5. Power management. KRunner si interfaccia con PowerDevil, il power manager di KDE, e permette di utilizzarne le funzionalità con le seguenti parole chiave:
    • power profile. Elenca i profili di gestione energetica disponibili e permette di scegliere quale attivare.
    • screen brightness. Elenca i livelli di luminosità dello schermo disponibili.
    • screen brightness n. Imposta la luminosità dello schermo al n%.
    • suspend. Mostra le opzioni per lo standby/ibernazione.
    • power governor. Permette di selezionare la politica per la gestione del clock della CPU
  6. Calcolatrice. Qualunque comando che inizia con “=” viene interpretato come una espressione matematica da calcolare. Ad esempio per calcolare la radice quadrata di 32+42 bisogna inserire =sqrt(3^2+4^2). La calcolatrice supporta funzioni come sqrt(), sin(), cos(), tan() e molte altre.
  7. E-mail. È sufficiente digitare il nome di un contatto della propria rubrica di KMail per avviare la finestra per inviargli una e-mail.

Linux on Dell Studio 15 1557

This is my new laptop: a Dell Studio 15 1557 with a Intel i7 720QM CPU.

Short review

Here’s a very short review. First, the cons:

  • There are no LEDs on the keyboard. No LED for caps lock, no LED for HD activity, nothing;
  • by default the function keys (F1..F12) work as multimedia key (switch off WiFi, mute, volume up and so on), but this setting can be changed in the BIOS;
  • there is no numeric keypad. Usually on 15” laptops using the Fn key some keys can be used as numeric keypad, but this is not the case: there is simply no way to have a numeric keypad. This baffled me and it is annoying, especially on Windows. On the italian keyboard layout there is no “~” or “È” key, so we type them using the numeric keypad and tapping Alt+0126 or Alt+0200. Since there is no numeric keypad I have to copy&paste those characters. I’ll look for an explanation from Dell;
  • the fast CPU and graphic card mean a lot of heat: the system idles at 50 °C and can easily reach 70 °C under stress.

Pros:

  • the chassis is sturdy;
  • the touchpad supports multitouch, allowing for some cool gestures when using Windows;
  • the HD is huge (500GB);
  • the i7 CPU is as fast as it can get on laptops, looking at 8 columns for CPU load in the task manager gives a warm fuzzy feeling (the i7 720QM is a quad-core CPU with hyperthreading, so  the OS thinks that there are 8 CPUs);
  • the graphic card isn’t the fastest one available for laptops, but still I was able to play Mirror’s Edge with high settings;
  • I can virtualize Windows XP (and use IBM DB2 on it) on Windows Vista while browsing with Firefox and chatting and installing OpenOffice and still the average CPU load is at 30%;
  • the DDR3 RAM is fast;
  • did I say that it is fast?

Linux on Dell Studio 15 1557

I wanted to install Linux on it, my distro of choice being Kubuntu 9.10 Karmic Koala, but plain Ubuntu should run flawlessy too. The good news is that all the hardware is supported: WiFi, SD reader, ATI card, audio, everything. The bad news is that you have to fiddle a little to make it work. Here’s some gotchas:

  1. Don’t install any proprietary driver while using the Live CD. The Broadcom STA driver, needed to make the wireless work, made my system freeze. And if it freezes while it’s modifying the partition table you’ll be very, very sorry. Just install the system without doing anything fancy.
  2. The wireless card is reported by lspci as 05:00.0 Network controller: Broadcom Corporation BCM4312 802.11b/g (rev 01). If you have internet access via Ethernet just use the Hardware Drivers manager to install the Broadcom STA wireless driver. If you don’t have internet access use Synaptic (on Ubuntu) or KPackageKit (on Kubuntu) or apt-cdrom (everywhere) to add the installation cd-rom as software source and then use the Hardware Drivers manager.
  3. To make the audio work edit as root /etc/modprobe.d/alsa-base.conf and add this line:
    options snd-hda-intel model=dell-m6

    and then execute:

    sudo alsa force-reload

And that’s it, enjoy your Linux :)

(Not so) fun fact: when rebooting the system the first time, after installing Kubuntu, the system didn’t boot, even the BIOS screen didn’t show up. It just beeped four times and then turned off. Dell’s manual says that “four beeps = possible motherboard damage”, which just doesn’t make sense. However I tried again after a couple of minutes and it worked. I don’t know why and I hope it doesn’t happen again.

Accelerare Firefox 3 ripulendo il suo database

Firefox icon by everaldo.comCon Firefox 3.0 è stata introdotta la “Awesome Bar”: la barra degli indirizzi intelligente che può essere utilizzata come navigatore della cronologia.

Questa funzionalità fa un uso piuttosto intenso dei database intensi di Firefox, e con il tempo può diventare piuttosto lenta. È possibile però “ripulire” il database per ritornare ad avere buone performance. Per farlo:

  1. Dal menu Tools (Strumenti) selezionate Error Console (Console degli errori)
  2. Nella casella Code (Codice) inserite la seguente istruzione su un unico rigo:
    Components.classes["@mozilla.org/browser/nav-history-service;1"].getService(Components.interfaces.nsPIPlacesDatabase).DBConnection.executeSimpleSQL("VACUUM");
  3. Cliccate su Evaluate (Valuta): l’interfaccia grafica si bloccherà per alcuni secondi mentre i database di Firefox vengono riorganizzati.

Al termine dell’operazione la awesome bar di Firefox dovrebbe tornare ad avere buone prestazioni.

Sulla lunghezza delle chiavi negli algoritmi crittografici simmetrici

EncryptedOggi Bruce Schneier ha pubblicato un brano tratto dal suo Applied Criptography. L’occasione è il debunking di un bizzarro algoritmo crittografico simmetrico che usa chiavi da 49152 bit — segno piuttosto chiaro che gli autori dell’algoritmo non hanno esattamente in mente di cosa stiano parlando. Mi permetto di riportare qui il brano correggendo i dati numerici e modificando leggermente gli esempi.

Una delle conseguenze del secondo principio della termodinamica — osserva Schneier — è che è necessaria una certa quantità di energia per rappresentare l’informazione. Memorizzare un singolo bit cambiando lo stato di un sistema richiede una quantità di energia pari almeno a kT, dove k è la costante di Boltzmann e T è la temperatura assoluta del sistema.

Dato che k = 1.38065 × 10-23 J/K e che la temperatura dell’universo è di 2.725 K, un computer ideale funzionante a 2.725 K consumerebbe 3.7623 × 10-23 J per impostare un bit a 0 o 1. Per far funzionare il computer a una temperatura ancora più bassa servirebbe dell’energia aggiuntiva per far funzionare una pompa di calore.

Il nostro Sole emette ogni anno circa 1.22 × 1034 J, che è il necessario per far 3.2427×1056 cambi di bit sul computer ideale, vale a dire per far ciclare attraverso tutti i suoi valori un contatore da 187 bit. Se costruissimo una sfera di Dyson (un’ipotetica megastruttura che cattura tutta l’energia di una stella) attorno al nostro Sole basterebbero 32 anni per poter contare fino a 2192. Ovviamente non rimarrebbe energia per poter elaborare in alcun modo questi valori.

Un piccolo ammasso globulare, cioè una specie di mini-galassia che orbita attorno a una galassia maggiore, può avere una massa di 5.5 × 1037 kg. Se annichilissimo tutta la materia dell’ammasso con un pari quantitativo di antimateria come conseguenza del famoso E=mc2 otterremmo 2 × 1053 J, poco più del necessario per far ciclare completamente un contatore da 256 bit.

Questi numeri non hanno nulla a che fare con la tecnologia dei computer: sono il massimo che la termodinamica permette. Questo vuol dire che gli attacchi di forza bruta contro chiavi da 256 bit saranno computazionalmente insostenibile fino a quando i computer non saranno fatti di qualcosa di diverso dalla materia e occuperanno qualcosa di diverso dallo spazio.

Una leggenda metropolitana piuttosto diffusa vuole che i mitici computer quantistici polverizzeranno senza problemi le chiavi degli algoritmi crittografici simmetrici “provando tutte le chiavi contemporaneamente”. In realtà nel 1996 Bennet, Bernstein Brassard e Vazirani hanno dimostrato che un attacco di forza bruta su un algoritmo simmetrico non può richiedere meno di 2n/2 invocazioni dell’algoritmo stesso, dimezzando quindi lo spazio delle chiavi da esplorare. Un algoritmo con chiave da 256 bit offre dunque una resistenza a un ipotetico computer quantistico di almeno 128 bit (link al paper).

Gli attacchi agli algoritmi di crittografia mirano quindi a ridurre drasticamente lo spazio di ricerca in modo intelligente, dato che lo spazio di tutte le chiavi possibili è un problema fisicamente inaffrontabile.

Ha ben ragione Schneier quando mette tra le caratteristiche per individuare la crittografia farlocca “ridiculus key lengths”: chi propone algoritmi con chiavi da 49152 bit o addirittura 1 milione probabilmente ha le idee un po’ confuse.

Exploit per Microsoft Server Message Block (SMB)

Encrypted

Il 7 Settembre Laurent Graffié ha pubblicato sulla mailing list Full Disclosure un attacco per Windows Vista, Windows 7 RC e Windows Server 2008 in grado di causare un BSoD da remoto (post originale, security advisory della Microsoft, CVE-2009-3103).

Meno di 24 ore fa H.D. Moore ha aggiunto al codice su SVN di Metasploit un modulo che consente l’esecuzione arbitraria di codice sfruttando lo stesso bug (codice). L’exploit è stato sviluppato da Stephen Fewer.

Al momento non esistono patch e l’unica protezione possibile è disabilitare SMB. L’articolo KB975497 sulla Knowledge Base di Microsoft spiega come fare.