playing with Darwin

A distanza di anni dalla prima volta in cui mi dilettai con l’emulazione di computer Macintosh con architettura PowerPC, recentemente il mio interesse è nuovamente ricaduto su Darwin, il sistema operativo open source di Apple che costituisce la base di Mac OS X, questa volta in versione X86. Premetto di essere piuttosto arrugginito per quanto riguarda il “mondo” UNIX!

Hexley, la mascotte di Darwin.
Hexley, la mascotte di DarwinOS. Copyright 2000 by Jon Hooper All Rights Reserved.

A dire il vero, già provai a installare Darwin su un PC, ma dopo aver disastrosamente cancellato la partizione sbagliata (mannaggia ai modi in cui i differenti fdisk chiamano dischi e partizioni!) dovetti desistere. Per stare tranquillo, ho deciso quindi di installare Darwin su una macchina virtuale, preferibilmente su Virtual Box (open source).

Per quanto riguarda la versione di Darwin, ho utilizzato l’ultima versione rilasciata ufficialmente da Apple  in forma di immagine ISO (la non proprio recente 8.0.1, corrispondente a MacOSX 10.4 “Tiger”), ancora reperibile sul sito di Apple. In seguito, tempo permettendo, mi piacerebbe provare anche le release di PureDarwin.

Sebbene abbia seguito la guida “My Mission to make a Darwin virtual machine in Virtual Box” alla lettera, più volte e con varie configurazioni, non sono riuscito a installare Darwin su una macchina virtuale in Virtual Box, per cui ho eseguito i passi riportati nella guida su una macchina virtuale VMware Player e in seguito ho creato una nuova macchina in Virtual Box, utilizzando il file immagine hard disk creato con VMware Player.

Per preservare il funzionamento della rete, alla scheda di rete in Virtual Box ho assegnato lo stesso MAC address della scheda configurata in VMware Player (suppongo che avrei potuto modificare la configurazione delle schede di rete in Darwin mediante ifconfig, ma per mancanza di tempo non ho approfondito la questione).

Portata a termine l’installazione, realizzo che, a differenza della versione per PowerPC che avevo precedentemente utilizzato (7.0.1), la 8.0.1 non contiene il sistema a finestre X. Per l’installazione di XFree86 e di altri utili software open source, decido di utilizzare MacPorts, in modo da automatizzare e velocizzare il processo di scaricamento, risoluzione delle dipendenze, compilazione e installazione delle applicazioni.

Scaricata l’ultima versione disponibile (1.9.1) in forma di codice sorgente mediante il tool curl (curl -O http://distfiles.macports.org/MacPorts/MacPorts-1.9.1.tar.gz), incluso in Darwin, mi accingo alla compilazione, che riesco a portare a termine solo invocando lo script di configurazione con l’opzione --without-objc-foundation:


./configure --without-objc-foundation
make
sudo make install

Per rendere effettiva l’installazione di MacPorts, ho creato un file .profile in cui, oltre ad alcune preferenze personali, ho impostato i path e la variabile DISPLAY, come illustrato nella guida di MacPorts.

Installato con successo MacPorts e, mediante MacPorts stesso, alcune piccole applicazioni giusto per verificarne il funzionamento, è giunta l’ora di dare a Darwin un’interfaccia grafica (nella fattispecie la versione 4.7.0 dell’implementazione XFree86 del sistema a finestre X11R6):


sudo port install XFree86

Al termine dell’installazione, prima di poter utilizzare X è necessario scaricare i file di keymapping e copiarli in /System/Library/Keyboards, come riportato sul sito di supporto di MacPorts. Nel mio caso, ho scaricato “USA” e “Italiano”, anche se devo ancora documentarmi su come utilizzare il mapping per tastiera italiana.

È giunta finalmente l’ora, dopo tanta fatica, di godersi il risulatato: basta creare un semplice script .xinitrc:


xterm -geometry 80x24+10+10 &
twm

e lanciare startx.

Darwin 8.0.1 con il window manager TWM
Darwin 8.0.1 con il window manager TWM