iTunes impedisce a Dtrace di effettuarne il debug. Ma cos’è Dtrace?
Con il rilascio di
Leopard, Apple ha introdotto uno strumento utile a tutti gli sviluppatori per ottimizzare le loro applicazioni:
Instruments.
Instruments (contenuto nel nuovo Xcode 3) consente il tracciamento delle attività dell’interfaccia delle applicazioni, delle chiamate di sistema che fanno, della risposta in termini di prestazioni che viene generata e delle operazioni di lettura/scrittura su memoria.
Tutti questi parametri, se analizzati e valutati attentamente, consentono ai programmatori di capire dove un programma sovraccarica il sistema, magari occupando troppo processore o troppa ram.
Queste conoscenze consentono ai tecnici di poter correggere le parti di codice critiche, andando ad ottimizzare il funzionamento delle applicazioni e consentendo a tutti noi di avere delle prestazioni migliori.
Uno strumento utile a tutti, quindi.
Instruments è costruito a partire da
DTrace, un’utility a riga di comando creata da Sun nel 2005 e rilasciata sotto licenza opensource, a cui Apple ha creato una
Gui (Graphical User Interface) che consente agli utilizzatori di poter visualizzare in maniera estremamente comoda il comportamento delle applicazioni di cui si sta effettuando il debug.
Forse, ha pensato Apple, in maniera troppo comoda.
Infatti l’implementazione di Dtrace nella versione di Cupertino è “estesa” da un’opzione, P_LNOATTACH, che può essere attivata su di un’applicazione in modo che questa non sia analizzata dal sistema di debug.
Quest’opzione non esisteva nella versione opensource, in molti infatti nella comunità di sviluppatori si sono chiesti il motivo per cui Apple avesse fatto una scelta del genere.
Alcuni, guidati dalla voglia di capire, hanno effettuato un’operazione di debugging dell’intero pacchetto di applicazioni Apple, per scoprire che solo una ha l’opzione P_LNOATTACH attiva: iTunes.
La risposta alla domanda che in molti si son posti, “perché proteggere iTunes dal debugging?”, è semplice: FairPlay, il sistema di protezione musicale.
Il DRM di Apple, con cui vengono gestite le canzoni acquistate nello store online e suonate in milioni di
Mac ed
iPod, è il motivo per cui l’azienda californiana può aver deciso di impedire il debug di iTunes, l’unica applicazione in tutto il sistema operativo.
Apple ha ovviamente tutti i diritti di proteggere parti del sistema come meglio crede, FairPlay poi è il modo in cui Steve Jobs
ha convinto le major ha vendere milioni di brani nell’iTunes Store, ma certo un’aggiunta del genere a delle specifiche opensource non è un buon segnale.
Al di là del problema “etico” di una modifica al codice opensource in direzione sostanzialmente contraria a quella del progetto, in particolare si crea un problema di stabilità.
Infatti la possibilità da parte di un’applicazione di inibire il debugging su se stessa può causare dei crash a strumenti di analisi che non siano in grado di trattare l’opzione P_LNOATTACH.
Vedremo come ora si muoveranno le due parti, la comunità opensource ed Apple.
[Via]
Davvero interessante. Bell’articolo! ;)
Grazie mille!
:-)