Visualizzazione post con etichetta pcbsd. Mostra tutti i post
Visualizzazione post con etichetta pcbsd. Mostra tutti i post

martedì 2 aprile 2013

Passare da [OpenSource Desktop] a OSX è giusto?

Miguel De Icaza ha pubblicato giorni fa un post piuttosto sconvolgente circa il suo passaggio definitivo ad OSX, il sistema operativo di casa Apple.

Prima di addentrarsi nei dettagli dell'articolo occorre ricordare chi Miguel De Icaza sia. Miguel è uno sviluppatore eccezionale, autore prima di Midnigth Commander, e poi fondatore e leader del progetto Gnome, uno dei desktop piu' famosi per ambienti Unix e Linux. E' anche fondatore di Mono, il "port" della tecnologia .NET di casa Microsoft su piattaforma Unix, ed è stato, fra le altre cose, fondatore di Ximian e ora di Xamarin. Miguel è una mente brillante, ha dato prova nel tempo di essere un hacker eccellente e di saper vedere nel sistema Open Source una ragione di essere e un modo di fare business. E' ovviamente un forte sostenitore del Free Software, e Mono inizialmente tanto criticato si è rivelata una delle sue ennesime scelte azzeccate: rendere i clienti Microsoft interessati anche al mondo Unix e Linux (free).

Solitamente gli hacker "impegnati" del calibro di Miguel non si lasciano "corrompere" dal mondo Apple. Parliamo di gente che è in grado di aggiustare i driver del proprio computer se non funzionano, e quindi di persone che non devono aspettare un qualche rilascio su mainstream o una patch solo per avere funzionante il tasto del volume del loro nuovo portatile.
Ecco quindi perche' il post di Miguel è sembrato sconvolgente.

E il cambiamento di Miguel verso il mondo Apple era gia' stato annunciato da un precedente post in cui spiegava come Linux avesse perso la corsa al desktop. http://tirania.org/blog/archive/2012/Aug-29.html

Ultimamente la discussione sui desktop alternativi a OSX e a Microsoft Windows diviene sempre piu' serrata, e molti utenti sui forum continuano a chiedere a gran voce supporto per i loro computer.
Il post di Miguel sostanzialmente puo' essere riassunto in "uso OSX perche' l'hardware funziona e ho accesso ad un sistema Unix", pensiero condiviso da sempre piu' hacker. Perché OSX funziona? Beh tutto sommato è semplice: la Apple fornisce un sistema completo, ovvero hardware e software. Ne consegue che la Apple ha le specifiche hardware prima ancora di installare il software, e quindi puo' creare il connubio perfetto cambiando il software ad-hoc o ricercando hardware differente e meglio compatibile. E tipicamente un utente Apple non farà modifiche all'hardware se non per sostituire un componente rotto con uno rigorosamente Apple (e rigorosamente bianco con una mela morsicata sopra).
Questa cosa mi ricorda molto le workstation Sun: funzionava tutto alla perfezione, e vi erano perfino comandi appositi per controllare le schede grafiche 3D, e tutto questo era possibile perché chi forniva il software era, prima di tutto, un fornitore hardware.

Nello scenario del commodity hardware la situazione é invece differente: Microsoft stringe da sempre alleanze con i produttori di hardware per avere la possibilità di fornire driver di (mediocre) qualità. Di contro, i sistemi liberi si trovano nella difficoltà di non aver accesso a tutto l'hardware esistente, come pure di non avere sufficiente forza lavoro per implementare nuovi driver e stare al passo con il mercato. Certo, fino a che i driver si possono appoggiare a degli standard il gioco regge. O meglio puo' reggere: l'hardware puo' infatti essere affetto da bug, e non sempre questi sono di facile soluzione. In tutto questo chi produce anche l'hardware si trova nell'indiscussa posizione di vantaggio che gli consente di fornire ai clienti un prodotto finito solo quando tutto sia ben testato: i bug vengono corretti o i problemi hardware vengono risolti sostituendo addirittura i componenti fallati.

In altre parole, il vero nocciolo della questione e' il supporto hardware e i relativi driver.
Gia', i driver, sono questi quelli che gli utenti chiedono a gran voce, e sono questi quei componenti che i sistemi open tanto faticano a fornire.
E si badi, non è un problema di compatibilità binaria, come descritto da Miguel: sistemi operativi come FreeBSD (che fondamentalmente importano "tutto") non sono messi bene nel ramo desktop, anzi sono ancora indietro rispetto a Linux.

E' quindi forse un problema legato all'API di [Open/Next]Step e alla scelta del linguaggio, Objective-C, rispetto all'uso ad esempio del C++ di KDE o del C (ad oggetti) di Gnome/GTK?
Io non penso, visto che il progetto GNUStep, fondamentalmente una implementazione libera della suddetta API compatibile con l'implementazione OSX, non ha portato piu' avanti il desktop Linux. Infatti, nonostante WindowMaker sia un ottimo window manager, e uno dei miei preferiti quando ero un'apprendista unixiano, non mi pare sia uno dei piu' apprezzati, anzi credo di poter affermare che ricopre un ruolo di nicchia. Si lo so, WindowMaker e GNUStep sono progetti tutto sommato separati e GNUStep non necessita nemmeno di un window manager, ma mi si passi il ragionamento.

La soluzione quindi e' forse condividere la ricerca sui driver open in modo che tutti i vari sistemi possano ispirarsi a risultati gia' ottenuti per incrementare il loro supporto? Non mi pare nemmeno questa la strada, visto le forti discrepanze fra i vari OS.

Creare allora livelli di astrazioni che mascherino l'hardware (ad es. Solid di KDE)? Si, sulla carta, ma alla fine quello che capita e' che ogni sistema prima o poi reinventa un pezzo di ruota. Ad esempio Gnome e' ormai fortemente ispirato a Linux, e quindi di difficile adattamento a BSD; PCBSD ha scelto deliberatamente di riscrivere quasi tutti i tool gia' inclusi in KDE piuttosto che "adattarli", e cosi' via.

Allora la soluzione e' prendere un sistema OSX che funziona out-of-the-box?
Beh, saro' forse un purista, ma non penso sia nemmeno questa la soluzione. Anzi, penso sia la morte del sistema Open Source. Eh si, perche' se e' vero che tutti noi abbiamo un lavoro da fare e un sistema che non si blocca e' meglio di uno che ha dei problemi, comprare un sistema proprietario, per quanto buono sia, significa ammettere esplicitamente il fallimento del movimento Open Source e negare il nostro supporto ad esso.

Vale la pena rifletterci.

venerdì 13 luglio 2012

Impostare uno splash screen accattivante in FreeBSD/PCBSD

Il boot di un sistema FreeBSD è piuttosto minimale, ma molto efficace: vengono mostrati i messaggi del kernel e dei vari demoni che si avviano. Questo è molto utile per un server, ma potrebbe non essere molto accattivante per un sistema desktop. PCBSD offre un proprio splash screen grafico dalla versione 9, ma è possibile applicarne uno anche ad un FreeBSD puro. I passaggi per la realizzazione di uno splash screen di avvio personalizzato sono abbastanza semplici:
  • salvare una immagine in formato PCX (meglio usare una palette ad-hoc e non andare oltre la risoluzione di 1024x768, dopotutto l'immagine non deve essere troppo pesante);



  • copiare l'immagine nella cartella /boot della macchina FreeBSD (ad esempio usando scp se si sta editando l'immagine da una macchina remota);
  • editare il file /boot/loader.conf della macchina FreeBSD aggiungendo le seguenti righe di configurazione (ovviamente il nome dell'immagine deve coincidere con quello esatto dello splash screen che si vuole avere):

splash_pcx_load="YES"
vesa_load="YES"
bitmap_load="YES"
bitmap_name="/boot/freebsd.pcx"


A questo punto all'avvio della macchina si avra' il nuovo splash screen in esecuzione. E' sufficiente premere un tasto qualunque sulla tastiera della console per ottenere il boot verbose, ossia far sparire lo splash screen e far comparire i messaggi del kernel. Unico accorgimento il nome del file immagine, che deve essere "semplice" (corto e senza caratteri speciali '-','_'). Nell'esempio di cui sopra il nome dell'immagine FreeBSD-Daemon-Wallpaper.pcx è stato modificato nel nome finale freebsd.pcx.


sabato 12 maggio 2012

PCBSD 64 bit su VirtualBox

Avendo a disposizione un sistema a 64 bit e la versione di VirtualBox a 64 bit è possibile eseguire una macchina virtual PCBSD a 64 bit. Affinché però il kernel non vada in panic all'avvio è necessario abilitare due opzioni nella configurazione di VirtualBox. La prima è il supporto ai 64 bit VT-x/AMD-v mentre la seconda è relativa all'uso di APIC.



venerdì 11 maggio 2012

Micro patch all'installer di PCBSD

Mi sono accorto che l'installer della versione 9 di PCBSD presenta un tasto back abilitato fin dalla prima pagina del wizard, cosa che ovviamente non ha molto senso. Ho quindi scritto una patch di 2 righe che potrebbe risolvere il problema, sicuramente non grave (anzi!), evitando confusione ai nuovi utenti.

sabato 21 gennaio 2012

PC BSD 9 pronto!

Seguendo a ruota l'annuncio ufficiale di FreeBSD 9 anche la versione finale di PCBSD 9 è stata rilasciata ed è disponibile per il download. Il mio piccolo contributo, diverse traduzioni, sono purtroppo sparse chissà dove nella rete....

giovedì 29 dicembre 2011

sudo: root o utente?

Ormai quasi tutti si sono abituati all'uso di sudo, un software che consente di fornire credenziali elevate (di amministratore) ad utenti normali. L'idea è semplice: l'amministratore di sistema fornisce una lista di utenti non amministratori che possono richiedere privilegi maggiori (specificando anche cosa possono fare). Quando uno di questi utenti deve eseguire un programma con privilegi maggiori invoca sudo che gli consente di innalzare i propri permessi.
Se ben usato sudo aumenta anche la protezione del sistema: è possibile con sudo utilizzare un account root senza nemmeno averlo abilitato, e quindi lasciando un account noto (e quindi attaccato) inaccessibile.
Molti sistemi Linux in default installano sudo abilitando per l'utente che ha effettuato la prima installazione. Un caso classico sono gli *buntu in versione sia server che desktop. L'utente quindi con una sola password puo' amministratore il computer.
PCBSD fa una scelta di default differente: abilita sudo per l'utente che effettua l'installazione ma richiede che la password fornita non sia quella dell'utente ma quella di root stesso. 
Qual'è la motivazione di questa scelta, a prima vista inutile? Se durante l'installazione l'utente principale viene abilitato a sudo allora questo avrà la possibilità di accedere direttamente come amministratore, cosa che a volte non è fattibile. Usando invece la password di root solo gli utenti che conoscono tale password saranno abili e abilitati a eseguire comandi privilegiati. Certo, potrebbero farlo come root stesso, ma il sistema puo' continuare a tenere l'account di root disabilitato permettendo un innalzamento dei privilegi dell'utente normale.
Difficile dire quale scelta sia la migliore, probabilmente quella di PCBSD, anche se richiede qualche accorgimento in piu'. In entrambi i casi il comportamento puo' essere modificato dall'amministratore in qualunque momento agendo sul file /etc/sudoer che contiene delle righe simili a:

## Uncomment to allow any user to run sudo if they know the password
## of the user they are running the command as (root by default).
Defaults targetpw  # Ask for the password of the target user


E come riporta la pagina man:

targetpw        If set, sudo will prompt for the password of the user specified
                       by the -u option (defaults to root) instead of the password of
                       the invoking user.  Note that this precludes the use of a uid not
                       listed in the passwd database as an argument to the -u option.
                       This flag is off by default.

venerdì 23 dicembre 2011

Traduzioni Italiane di PCBSD

Avendo avuto un po' di tempo, che ormai è sempre piu' una rarità, ho completato la traduzione di alcuni file di PCBSD in italiano. In particolare desktopschema.po  SysInstaller.po  SystemUpdaterTray.po sono ora completamenti localizzati. Penso possa ritenersi il mio personale regalo di Natale (al quale hanno contribuito altri prima di me) per questo sistema operativo e la sua community. Purtroppo non sono stato in grado di caricare i file sul server ufficiale, perchè sembra che al momento ci sia qualche problemino....