Disabilitare il Write Caching su Mac OS X: Safe Remove USB Device

remove-USB-safely

Posso staccare la penna USB senza forzare la rimozione?

Quante volte ho sentito questa domanda, la maggior parte della gente toglie la propria penna USB dal pc senza “smontarla” secondo la procedura, sicuri che non si danneggi nulla. Ma e’ davvero “sicuro” farlo??

Bhe se avete un pc con Windows 7 e versioni successive, e’ abbastanza sicuro. Windows disabilita il write caching sulle periferiche che riconosce come removable , consapevoli del fatto che la maggior parte dei sui utilizzatori non smonta mai il proprio device USB.

A questo punto, se sei arrivato a leggere fino a qui e non sei uno esperto/smanettone ti sarai chiesto: Ma cosa e’ il write-caching?

E’ la policy che utilizza la maggior parte dei Sistemi Operativi quando si deve scrivere un dato in una memoria dati esterna, magari collegata tramite USB. Tramite tale tecnica, non vengono copiati immediatamente i dati dal vostro pc sulla memoria (soprattutto se sono dati di piccoli dimensioni), ma vengono messe in una cache in attesa che ci siano altri dati da scrivere in modo da aumentare le performance. Infatti, la scrittura sui device esterni avviene molto piu’ velocemente per file di dimensioni grandi e non con file piccoli.

Per tale motivo, molti Sistemi Operativi la adottano; per aumentare le performance… costringendoci a “smontare” la chiavetta e “forzare” la scrittura dei dati che sono ancora in cache.

Mac OS X adotta la stessa politica di Windows?

Bhe se avete un Mac, vi tocca smontarla. Infatti il Sistema Operativo di casa Cupertino, non disabilita il write-caching come Windows.

Ma è possibile forzare in qualche modo tale policy e dire a Mac OS X di non usare il write-caching. Come farlo?

Il miglior modo per farlo è con il comando mount tramite la shell dei comandi:

[sourcecode language=”bash”]
mount -o noasync /dev/diskls1
[/sourcecode]

Dove diskls1 è il nome del device che vogliamo montare.

Il comando vale anche per molte distribuzioni Linux.

Ora potete rimuovere la vostra penna USB senza doverla smontare 😀

Reference:

http://developer.apple.com/mac/library/documentation/Darwin/Reference/ManPages/man8/mount.8.html

Formattare Disco FAT32 con Mac OS X

Per gli amanti della Command Shell, eccovi il comando per poter formattare un qualsiasi disco utilizzando il File System FAT32 , ma allo stesso modo si potrebbe usare il FAT16 o addirittura il FAT12 ( basta specificare il giusto flag )

[sourcecode language=”bash”]
# newfs_msdos -F 32 /dev/disk2
[/sourcecode]

Mac OS X: free(), The Missing Command

Il comando messo a disposizione da Linux: free(1) è molto utile per capire l’ammontare di memoria RAM e memoria Swap libera ( ed usata ) sulla nostra macchina. Semplice e molto comodo… peccato che sul nostro Mac OS X non è presente, nonostante ciò la nostra cara Apple ci mette a disposizione altri eseguibili che ci danno queste informazioni ( anche se in maniera meno esplicita e meno diretta ): top(1) e vm_stat(1).

Prima di capire come interpretare le loro informazioni e vedere lo script che mi sono creato per estrapolarle e visualizzarle in modo conciso ed “umano”, facciamo una piccola parentesi ( sperando di ricordare correttamente i concetti studiati a Sistemi Operativi 😛 ) sul funzionamento della memoria sui moderni Sistemi Operativi.

Mac OS X, come i più moderni Sistemi Operativi, usa un sistema di memoria virtuale per la gestione della memoria.

Memoria Virtuale

Tra i molti scopi di tale tecnica, vi è quello di permettere al Sistema Operativo  di dare l’illusione di poter mettere a disposizione dei processi un ammontare illimitato di memoria ( in realtà abbiamo un limite indirizzabile per ogni processo di 4Gb per i sistemi a 32bit e 18 exabyte per i sistemi a 64bit ). Ex. anche se abbiamo sul nostro PC solo 2GB di memoria RAM installata, il Sistema Operativo, grazie a tale tecnica, potrà stanziare per ogni processo in esecuzione un ammontare di memoria superiore al totale della memoria RAM fisicamente installata.

Top command con 3GB di memoria fisica

Come potete vedere nell’immagine in alto, la colonna VSIZE indica l’ammontare di memoria virtuale che il Sistema Operativo ha assegnato al processo o all’applicazione, in megabytes (M) in questo caso. Notiamo che la quantità dei memoria virtuale assegnata ai primi due processi è di granlunga superiore a quella fisicamente disponibile ( 3GB nel mio caso, dovrò abilitare le donazioni paypall prima o poi 😛 ). La colonna RSIZE indica l’ammontare di memoria fisica che il processo stà effettivamente occupando( in questo caso è in kilobytes ), ed è molto minore di quella virtuale.

Spero abbiate compreso l’importanza di usare la memoria virtuale al posto di quella fisica :P. Daltronde la memoria RAM non è illimitata, per tale motivo Mac OS X raggruppa tale memoria in quattro categorie:

  • Wired: è la memoria occupata dal S.O., e non può mai essere paginata fuori dalla memoria ( deallocata ), dato che contiene le routines del kernel, librerie di sistema e molto altro..
  • Active: è la memoria usata dai processi che sono in esecuzione ( i nostri programmi per capirci ).
  • Inactive: è la memoria che è stata usata di recente dai programmi ma non è stata ancora liberata, vuol dire che se il S.O. avrà bisogno di memoria l’andrà a prendere da questa categoria.
  • Free: è la memoria, come suggerisce il nome, che è libera e può essere immediatamente associata ad un processo.

Quando lanciate un programma/applicazione, esso viene caricato nell’Active memory. Quando uscite dal programma, tuttavia, esso non viene rimosso dalla RAM, ma la sua memroia viene classificata come Inactive . Viene attuata questa politica perchè , in tal modo, è molto più veloce ri-lanciare il programma dato che si trova già nella RAM ( chiudete e provate a ri-lanciare Chrome/Firefox e vedrete che la sua riapertura è molto più veloce).

Quando tutta la memoria fisica è occupata ( Memory Free è pari a 0 ), il S.O. sposterà la Memoria Inactiva nella Memoria di Swap, in modo da aumentare lo spazio in quella Free. La memoria di Swap è molto lenta, dato che si trova sul nostro Hard-Disk, per tale motivo si cerca di utilizzarla il meno possibile.

Per i motivi visti nel precedente paragrafo, quando vogliamo esaminare quanta memoria stà usando il nostro computer e le sue prestazioni, dobbiamo fare attenzione a quanta memoria di Swap stiamo usando. Un altro indicatore da tener ben a mente è Pageins, il quale ci indica quanto spesso il S.O. ha preso i dati dalle memoria di Swap e messi in quella Active.

Dopo questa premessa noiosa ( non per me, dato che amo capire l’architettura alla base dei S.O 😀 ), passiamo ad esaminare il comando che vedremo più nel dettaglio: vm_stat

[sourcecode language=”bash”]
unicondor@iMac:→ vm_stat
Mach Virtual Memory Statistics: (page size of 4096 bytes)
Pages free: 134596.
Pages active: 343278.
Pages inactive: 211846.
Pages speculative: 11035.
Pages wired down: 85028.
“Translation faults”: 43665599.
Pages copy-on-write: 999686.
Pages zero filled: 55006291.
Pages reactivated: 22831.
Pageins: 1624923.
Pageouts: 3796.
Object cache: 29 hits of 535971 lookups (0% hit rate)
[/sourcecode]

Grazie all’introduzione fatta, spero sia più chiaro come interpertrare correttamente i dati forniti in output. Per cui vi chiedo, qual’è l’ammontare di RAM non usata o libera? 

Io me la sono fatta spesso questa domanda, e la risposta che mi davo spesso era: Heh :-).

Adesso però possiamo dare una risposta “corretta” alla domanda, l’ammontare di RAM libera è data dalla somma di Free Memory + Inactive Memory .

C’è un problema, come spesso accade nel mondo dell’informatica :P, dato che l’output non parla di Memory ma di Pages.

Infatti per poter ottenere l’informazione che vogliamo, dobbiamo moltiplicare il numero di Pages per 4096 bytes ( che è la grandezza di ogni pagina) e poi dividere il tutto per 1048576 (dato che volgiamo l’output in MB).

Quindi, ricapitolando, se vogliamo sapere l’ammontare in MB delle Pages Free dobbiamo fare: (134596*4096) / 1048576 = 525 MB.

Allo stesso modo per le Pages Inactive= (211846 * 4096) / 1048576 =  827 MB

Memoria RAM libera = Pages Free + Pages Inactive = 525 + 827 = 1352 MB  o  1.3 GB

L’ultima linea di vm_stat è il rapporto tra gli oggetti richiesti e quelli che sono già attivi in memoria. Semplificando, più il valore di hit rate è alto e meno Pageins abbiamo… quindi conviene avere un alto hit rate ( non come nel mio caso ) per avere un sistema reattivo.

Liberare la Memory Inactive è spesso un’operazione molto lenta, per questo motivo, a volte, è utile effettuare tale operazione prima dell’avvio di un processo e/o applicazione pensante. Il comando “purge” fa a caso nostro, dato che serve per liberare la Memory Inactive senza dover ravviare il PC.

Il comando è presente nella suite developer tools, per cui è necessario installarla per poterlo usare.

Basta semplicemente aprire la shell e digitare il comando:

[sourcecode language=”bash”]
unicondor@iMac:→ purge

[/sourcecode]

l’operazione potrebbe richiedere qualche minuto ( dipende dalla quantità di memoria da liberare ), durante la sua esecuzione il S.O. potrebbe rallentarsi un pò

 

Ecco il piccolo script che uso per visualizzare l’ammontare totale della RAM, quella Free e quella Used:

Update 21_02_2012: Aggiunta function Usage() ed il relativo controllo dei parametri

vm_free.sh

[sourcecode language=”bash”]

#!/bin/sh

argv=$1

bytes=1048576
size=”MB”

function usage(){
echo “Usage: $0 [option]”
echo ” OPTION:”
echo ” -g –> Output in GB”
echo ” -k –> Output in KB”
echo ” default option is: -m –> MB”
exit
}
if [ ! “$#” -le “1” ]; then

usage

fi
if [ $1 ]; then

if [ “$1″ == -g ] ; then
bytes=1073741824
size=”GB”
else
if [ “$1″ == -k ] ; then
bytes=1024
size=”KB”

else
usage
fi
fi

fi

free_memory=`vm_stat | grep -e free -e inactive -e speculative| awk ‘{sum+=$3} END { print “”(sum*4096)” “}’`

total_memory=`vm_stat | grep -e free -e inactive -e speculative -e active -e wired| awk ‘{sum+=$3} END { print “”(sum*4096)” “}’`

used_memory=`vm_stat | grep -e wired -e active| awk ‘{sum+=$3} END { print “”(sum*4096)” “}’`

let “out_total=$total_memory/$bytes”

let “out_used=$used_memory/$bytes”

let “out_free=$free_memory/$bytes”

 

printf “%5s \t\t%d %s\n” “Total” $out_total $size
printf “%5s \t\t%d %s\n” “Used” $out_used $size
printf “%5s \t\t%d %s\n” “Free” $out_free $size

[/sourcecode]

Possiamo lanciare lo script con il flag:

  • -g per output in GB
  • -k per output in KN

Optional:

Nel caso volessimo usare il piccolo script richiamando il comando free come nei sistemi Linux, non ci resta che spostare l’eseguibile bash in /usr/local/bin e rinominarlo:

[sourcecode language=”bash”]

unicondor@iMac:→ cp vm_free.sh /usr/local/bin/free
unicondor@iMac:→ free
Total 2742 MB
Used 1709 MB
Free 1271 MB

[/sourcecode]

 

 

N.B. nel calcolo della RAM libera si è inserito anche il conteggio delle Pages speculative.

Riferimenti:

https://developer.apple.com/library/mac/#documentation/Performance/Conceptual/ManagingMemory/Articles/AboutMemory.html

http://iamleeg.blogspot.com/2006/06/use-of-vmstat1.html

 

GitHub

https://github.com/flaviopace/MacOSX_free_bash_command

OS X Lion: gcc/g++ Error: Command not Found

Logo GCC

 

Da quando ho aggiornato il mio MacBook alla versione 10.7.1 (OS X Lion) non ho mai avuto la necessita’ di compilare codici sorgenti, ma oggi mentre eseguivo il classico ./configure , la shell mi sputato fuori il seguente problema.

 

[sourcecode language=”bash”]
unicondor@MacBook:etherape-0.9.12\> ./configure
checking for a BSD-compatible install… /usr/bin/install -c
checking whether build environment is sane… yes
checking for a thread-safe mkdir -p… ./install-sh -c -d
checking for gawk… no
checking for mawk… no
checking for nawk… no
checking for awk… awk
checking whether make sets $(MAKE)… no
checking for gcc… /Developer/usr/bin/gcc
checking whether the C compiler works… no
configure: error: in `/Users/unicondor/Downloads/etherape-0.9.12′:
configure: error: C compiler cannot create executables
See `config.log’ for more details.

[/sourcecode]

Il problema e’ dovuto al fatto di non aver aggiornato XCode alla versione 4.1 ( ma questo non e’ bastato per la risoluzione del problema ) e di conseguenza, non aver installato l’ultima versione di GCC compatibile con il nostro nuovo SO.

Dopo aver installato XCode 4.1, ho provato a settare la variabile d’ambiente CC con il percorso dell’eseguibile gcc /Developer/usr/bin

[sourcecode language=”bash”]

unicondor@MacBook:~> export CC=/Developer/usr/bin/gcc

[/sourcecode]

Ma il tentativo e’ stato lo stesso vano. Dopo aver ricercato un po’ su google ho trovato un commento in un blog dove si consigliava di installare Direttamente GCC senza installare XCode 4.1.

 

Soluzione:

 

Scaricate GCC-10.7.pkg ed installatelo

Sito di riferimento nel caso non funzionare il link sovrastante https://github.com/kennethreitz/osx-gcc-installer

Dopo aver installo il packages dovrebbe funzionare tutto come prima, e potrete di nuovo compilare i vostri sorgenti 😉

[sourcecode language=”bash”]

unicondor@MacBook:~> gcc –version
i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2335.15.00)
Copyright (C) 2007 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

[/sourcecode]

Indirizzo IP del Gateway tramite shell di Mac OS X

Mi è capitato ultimamente di dover capire quale fosse il Gateway preso in DHCP associato alla mia scheda di rete su Mac OS X. Ovviamente da buon “smanettone” linux ho dato subito il comando

[sourcecode language=”bash”]
unicondor@iMac:~> route -n
usage: route [-dnqtv] command [[modifiers] args]
[/sourcecode]

 

La risposta della shell mi ha lasciato pietrificato, non ero abituato ad una situazione del genere… ma ovviamente Mac OS X deriva da Unix, per cui la sintassi è leggermente diversa rispetto ad una qualsiasi distribuzione Linux.

Dopo qualche breve ricerca, ho trovato i seguenti metodi per risalire all’indirizzo IP del Gateway

 

1° Metodo

Interroga la tabella di routing tramite il comando route . Il flag “-n” serve per non risolvere l’indirizzo IP e lasciarlo in formato numerico, mentre “get” è il comando vero e proprio per interrogare il DNS specificato e farci ritornare tutte le info per raggiungerlo ( compreso il Gateway).

[sourcecode language=”bash”]
unicondor@iMac:~> route -n get www.vitadastudente.it
route to: 217.64.195.223
destination: 217.64.195.223
gateway: 192.168.1.1
interface: en1
flags:
recvpipe sendpipe ssthresh rtt,msec rttvar hopcount mtu expire
0 0 0 0 0 0 1500 0
[/sourcecode]

 

2° Metodo

Questo metodo usa il comando netstat per stampare a video le informazioni riguardanti la struttura dati relativo al traffico di rete. Il flag “-r” serve per interrogare la tabella di routing

[sourcecode language=”bash”]
unicondor@iMac:~> netstat -r
Routing tables

Internet:
Destination Gateway Flags Refs Use Netif Expire
default 192.168.1.2 UGSc 53 0 en1
127 localhost UCS 0 0 lo0
localhost localhost UH 0 225 lo0
169.254 link#5 UCS 0 0 en1
192.168.1 link#5 UCS 5 0 en1
192.168.1.1 0:19:e0:96:18:e6 UHLWI 58 1774 en1 975
192.168.1.2 f0:7d:68:8f:41:9a UHLWI 6 12 en1 990
server link#5 UHLWI 2 428312 en1
192.168.1.61 0:40:f4:ec:80:86 UHLWI 0 600 en1 796
192.168.1.131 localhost UHS 0 0 lo0
192.168.1.255 ff:ff:ff:ff:ff:ff UHLWbI 0 12 en1
[/sourcecode]

 

Purtroppo la formattazione del codice lascia ancora un pò a desiderare, ma datemi tempo ed imparerò ad usare anche quella 😛

Eseguire Script Avvio Mac OS X

Uno dei primi problemi riscontrati nel passaggio da Linux a Max e su cui ho dovuto documentarmi, è stato quello di poter eseguire in automatico uno script all’avvio di Max OS X ( dell’interfaccia grafica nel mio caso).
La cosa belle è che ci sono riuscito quasi da subito a sistemare il tutto, cosa che accade molto raramente 😀 per tal motivo è una cosa davvero banale e che si può fare in vari modi… il seguente metodo è uno dei tanti.

il mio script è molto banale, non fa altro che montare le partizioni esportate dal mio server ( 192.168.1.60 ) tramite il demone nfs. La stessa ed identica procedura piò essere utilizzata per qualsiasi altro script..

Per prima cosa editiamo il nostro file come se fosse un normalissimo script in Bash, ecco il mio di esempio…


#!/bin/sh

mount server:/win1 /Users/unicondor/Win_nfs
mount server:/share_donkey /Users/unicondor/Share_donkey

e settiamolo con estensione .command.

Per esempio il mio file si chiama : nfs_up.command

Una volta editato il file e rinominato con l’stensione .command apriamo Preferenze di Sistema–>Account ed andiamo in “Elementi login”

clicchiamo sul segno  “+” ed aggiungiamo il nostro file appena creato alla lista dei programmi da eseguire all’avvio.

 

Schermata Script Avvio Max OS X

Quale Sistema Operativo Scegliere?

 

Windows vs Mac OS X vs Linux - La sfida di sempre

 

 

 

Diffidate della gente che vi dice: Questo Sistema Operativo e’ meglio di quell’altro.. questo Sistema e’ piu’ sicuro… quel Sistema  e’ il piu’ veloce ecc.. Diffidate anche di questa guida, serve solo per darvi un’idea, la mia idea, su quale Sistema Operativo scegliere per il vostro computer.

Da quel poco che ho potuto capire dagli esami sostenuti riguardo l’architettura alla base dei Sistemi Operativi, e’ che l’unica risposta sensata da dare quando una persona ci chiede consiglio su quale Sistema Operativo scegliere e’ : Dipende.

Ho un feeling speciale con Mac OS X, il quale e’ l’ideale per l’uso che voglio fare del mio calcolatore, Ha un cuore BSD ( tutti gli strumenti di amministrazione messi a disposizione da Unix) ed una interfaccia Aqua davvero accattivante ed innovativa… ma cio’ che funziona egregiamente per me non e’ detto che vada bene per qualsiasi altra persona.
Questo non significa che Mac OS X non ha “problemi”. Ne ha molti: Apple usa spesso hardware gia’ vecchiotto, ha una limitata scelta nella configurazione hardware dei suoi calcolatori, Kernel Panic a iosa quando si cerca di modificare qualcosa nel Kernel :D… e costano un bel po’.
Nonostante questo, credo che attualmente Mac OS X sia la piattaforma client piu’ meritevole e con un alto tasso di sicurezza rispetto agli atri sistemi.

Certo, la sicurezza di un Sistema Operativo e’ un parametro molto labile in questo campo. Sono consapevole del fatto che la maggior parte delle Falle di Sicurezza e dei Bug si riferiscono al Sistema Operativo Windows, ma questo e’ dovuto al semplice fatto che sono i piu’ utilizzati.. per tale motivo una persona che voglia sottrarre informazioni cerca di “bucare” il Sistema Operativo piu’ utilizzato e non quello con un numero esiguo di utenti.

 

Nota che non il termine “client” voglio indicare l’uso con cui la maggior parte degli utenti fa del proprio personal computer. Un sinonimo di client potrebbe essere “Desktop Replacement”, con il quale si vuole indicare una macchina usata tutti i giorni sia per lavoro che per gioco.

Ho avuto la fortuna di poter utilizzare i tre maggiori Sistemi Operativi lato client: La famiglia Linux, Mac OS X, e la famiglia di Windows. In queste poche righe cerchero’ ( umilmente ) di dare la mia opinione su tutti e tre.

 

Leggi tutto “Quale Sistema Operativo Scegliere?”

La Shell di Mac OS X

Una persona sana di mente può mai mettersi a scrivere un articolo sulla Shell di Mac OS X a mezzanotte in punto!!??

Ovviamente no… ma visto che il blog inizia ad avere 50-60 visitatori assoluti al giorno mi fa ben sperare di non essere solo e che ci siano altri “malati” come me 😀

Partiamo con un pò di nozioni di base dato che molti dei fortunati possessori di un Macintosh non hanno mai utilizzato una shell ( Terminale ). Mac OS X viene fornito con la shell di default Bourne Again SHell, comunemente detta bash, ma include anche altri tipi di shell come TENEX C shell (tcsh), Korn shell (ksh) ecc..

Spero abbiate già l’iconcina del Terminale sul vostro Dock, altrimenti spostate l’icona Terminale dalla subdirectory Utility di Applicazioni in modo da avere un veloce accesso alla command line.

Chiunque abbia mai usato un Sistema Operativo UNIX-like per scopi che non siano solo di gioco o per farsi bello con gli altri 😀 ha avuto modo di scoprire tale strumento fino a tal punto da non poterne più fare a meno. Non esagero quando dico che è indispensabile, soprattutto nel caso in cui il nostro Sistema Software deve compiere particolari task e/o automatismi che da interfaccia grafica sarebbero molto più complessi, se non addirittura impossibili..

Un altro mio articolo sui principali comandi shell può esservi di aiuto nel capire cosa è possibile fare, e spero vi renda così curiosi da iniziare a smanettare con la vostra shell 😀

In questo articolo volevo mostrarvi qualche piccolo esempio sull’uso della shell, ed in particolare in riferimento all’ambiente Mac OS X.

Esempio 1


#!/bin/sh
# Script nw opens a new Terminal window
osascript << EOF
tell app "System Events"
  keystroke "n" using command down
end tell
EOF

Questo piccolo esempio usa il comando osascript per invocare un AppleScript, il quale a sua volta interagisce con il System Events e serve per emulare l’effetto che si ha premendo ⌘-N , cioè aprendo un altra finestra Terminale

 

Esempio 2


#!/bin/sh
# Script opens a new Terminal Tab in existing window
osascript << EOF
tell app "System Events"
  keystroke "t" using command down
end tell
EOF

Quest’altro piccolo esempio invece emula ⌘-T, cioè apre una nuova tab sul Terminale già in uso.

 

Esempio 3


#!/bin/sh
# Script Run Vim
osascript << EOF
tell app "Terminal"
set number of rows of first window to 34
set number of columns of first window to 96
set custom title of first window to "Vim Editor :D"
EOF
vim $@

Quest’ultimo esempio vi mostra come aprire Vim utilizzando uno shell script.

Per poter eseguire questi script, dobbiamo renderli eseguibili. Supponiamo di aver chiamato quest’ultimo esempio RunVim, dobbiamo dare il seguente comando ( sempre da shell ):


chmod +x RunVim

L’ora tarda e la dolce visione del mio cuscino non mi permettono di andare oltre.. ma il prossimo articolo sarà sui parametri di personalizzazione della nostra Shell.

XNU – Kernel Mac OS X

Questo articolo nasce da una mia recente rilettura della famosa diatriba Kernel Monolitico vs MicroKernel, tra il giovinastro Linus Torvalds ( Kernel Monolitico ) ed il professore rinomato  Andy Tanenbaum ( MicroKernel ). Vi rimando a questo link per avere una idea sul loro scambio di opinioni a riguardo

http://www.dina.dk/~abraham/Linus_vs_Tanenbaum.html

Da ormai tre anni ho scelto di usare Mac, in principo la scelta e’ stata dettata dalla necessita’ di liberare la mia scrivania da tutti quei fili penzolanti ( mia madre voleva uccidermi 😛 ) e dal fatto che iMac ha il suo fascino ( soprattutto da quando gira su IA64 ) e la sua eleganza. Con il passare del tempo sono rimasto ammaliato dalla bellezza e semplicita’ del Sistema Operativo di Cupertino, la potenza di un sistema BSD-based con un interfaccia accattivante e’ stata davvero una bella scoperta, fino ad arrivare a documentarmi sull’architettura alla base di tale sistema e cercare di capire qualcosa in piu’…

Architettura Kernel Mac OS X

Il cuore di Mac OS X e’ il kernel XNU, il quale puo’ essere visto come un insieme di piu’ componenti : il core basato su Mach 3, le features supplementari offerte da FreeBSD 5, la personalita’ di un Sistema Operativo basato su BSD ed un ambiente basato su un sistema object-oriented per quanto concerne i driver. In effetti il Kernel di Mac OS X e’ molto di piu’ che XNU, infatti esistono molti driver che non risiedono nel core di XNU ma derivano dai packages Darwin.

Leggi tutto “XNU — Kernel Mac OS X”

Chat di Facebook su Desktop

Partiamo dal presupposto che ormai Facebook è entrato a piè pari nella nostra routine quotidiana, informatica e non. A tal proposito voglio dare un consiglio a quanti, come me, lo utilizzano per un unico motivo: cazzeggiare con i compagni di università (in primis, altrimenti non mi sarei proprio iscritto) e chattare, seppur sporadicamente. In effetti successe anche all’inizio del mio percorso universitario con MSN Messenger, la cui iscrizione feci solo ed unicamente perché Flavio, il direttore/capo del nostro blog 😛 (ti prego di non licenziarmi se ho scritto questa “baggianata” rispetto ai tuoi articoli, ma ti prometto che la recensione su iLife ’11 è quasi pronta e la pubblico appena possibile!!! :-D), lo usava come unico strumento di comunicazione “internettiano”, dal mio canto invece, ho sempre preferito Skype (ma questa è un’altra storia ndr)!! Non sopportando il fatto di dover tenere aperto il browser internet (nel mio caso Safari) sulla Home di FB per poter comunicare con i miei contatti (non tutti concepiscono Skype e MSN Messenger per l’instant messaging), ero alla ricerca di un software che mi permettesse di avere tutti gli account di instant messaging direttamente dal desktop. Mi imbattei in Adium, ottimo client multi-protocollo, leggero ed altamente personalizzabile grazie ai suoi Xtras, scaricabili gratuitamente dal sito del software stesso. E’ bastato aggiungere il nuovo account dal menù Adium/Preferenze/Account:

2 secondi per collegarsi al servizio e il gioco era fatto. Che goduria, niente più link da leggere, niente continuo refresh della Home, niente più rallentamenti del browser durante la navigazione e, soprattutto, potevo attivare la chat senza aprire la pagina FB…una mano santa!!!

Tutto questo fino a 2 o 3 giorni fa, non ricordo con precisione, quando, cambiando la pwd di FB, ho dovuto ri-settare l’account anche su Adium, ma niente da fare, la connessione con il servizio non riusciva e così ho abbandonato l’idea di utilizzare la chat di FB. Or ora invece mi sono messo alla ricerca e ho trovato questo: http://www.facebook.com/sitetour/chat.php, in effetti FB ha bloccato l’accesso dai software, obbligandoli a far passare tutte le connessioni verso il loro servizio di messaggistica istantanea, attraverso un server Jabber (sempre per il discorso sulla privacy che non sto qui a raccontarvi perché di sicuro ne avrete la testa piena). Quindi hanno creato la pagina linkata poc’anzi, per chi, come il sottoscritto, non desidera sapere cosa hanno mangiato a cena, o pranzo, i propri contatti, ma vuole solo essere “reperibile” via desktop! Spero che qualcuno, leggendo questo post, si converta all’utilizzo puramente comunicativo di FB, tralasciando la mania ossessiva di post, applicazioni, parla con… ecc. ecc. che sinceramente ci stanno rendendo alquanto ridicoli a tutto il mondo (sì, perché internet è Mondiale, sappiatelo!!). Nel caso in cui utilizzaste Adium, ecco come fare per risolvere i vostri problemi: