Perché usare Windows CE o Windows XP Embedded?

Mike Hall risponde alle obiezioni degli sviluppatori sull'utilizzo dei sistemi operativi Windows Embedded. Quanto segue è un estratto del suo blog , in cui l'autore controbatte le convinzioni più diffuse.

"Non userò MAI Windows CE o Windows XP Embedded!" Ecco un'affermazione, un po' forte, che viene spesso pronunciata dagli sviluppatori. Ma quali sono i motivi che li scoraggiano dall'utilizzare questi sistemi operativi?

Aa731327.3squares(it-it,MSDN.10).gif

In questa pagina

 "Le dimensioni dei sistemi operativi sono eccessive"
 "Non supporta il real time"
 "I sistemi operativi non sono sicuri"
 "La configurazione del sistema operativo in base alle specifiche esigenze è troppo complessa"
 "Gli strumenti di sviluppo sono troppo costosi"
 "I costi delle licenze sono troppo elevati"
 "Non esiste supporto"
 "Non esistono driver a supporto dell’hardware di cui ho bisogno "
 "Non voglio che il mio dispositivo embedded abbia l'aspetto di Windows"
 "Non sono disponibili risorse di formazione che mi assistano nei miei progetti"
 "Non esistono partner che forniscano hardware, driver, caricatori di avvio e risorse di formazione"
 "È difficile trovare tecnici disposti a collaborare ai miei progetti"
 "È difficile spostare gli sviluppatori da una piattaforma all'altra"

Dovrebbe essere tutto, ma se ho dimenticato qualcosa o se avete altro da aggiungere, scrivetemi.

Se tutte queste obiezioni corrispondessero al vero, di certo non avrei il minimo interesse a utilizzare Windows CE o Windows XP Embedded. Questo elenco riporta alcuni dei pregiudizi più diffusi tra i clienti riguardo i sistemi operativi Windows Embedded. Ma vediamoli insieme uno alla volta.

"Le dimensioni dei sistemi operativi sono eccessive"

Innanzitutto, è importante sottolineare che Windows CE e Windows XP Embedded sono sistemi operativi basati su componenti, quindi è possibile scegliere i componenti appropriati a seconda del dispositivo da sviluppare. Windows CE include circa 500 componenti, mentre Windows XP Embedded ne ha circa 12.000; di questi, circa 9.000 sono driver di periferica, mentre i componenti rimanenti sono tecnologie del sistema operativo.

La dimensione minima della build di Windows CE è di circa 200 KB. La dimensione dell'immagine di un gateway domesticeo è di circa 4 MB e includeil supporto delle reti LAN o wireless, dell'interfaccia di amministrazione remota (server Web).Un'immagine simile a quella di un PDA che includa la shell di Windows, funzionalità di networking, il protocollo RDP, un browser Internet, Windows Media Player, COM/DCOM e così via, richiede circa 18 MB. Ovviamente, tutto questo può essere ottimizzato in base alla specifica applicazione che si sta sviluppando.

La dimensione minima della build di Windows XP Embedded è di circa 5 MB.Si tratta di una build basata esclusivamente sul kernel, difficilmente utilizzabile, anche se è possibile avviarla ed eseguirla. La dimensione di una immagine di Windows XP Embedded si aggira mediamente intorno ai 40 MB o anche oltre, ma comunque molto meno rispetto a un'installazione tipica di Windows XP Professional per sistemi desktop. Durante lo sviluppo dell'immagine del sistema operativo, è possibile selezionare i componenti hardware e software da includere nella piattaforma. Se Windows Media Player, DCOM, RPC o Microsoft Internet Explorer non sono necessari, si eviterà di includerli nell'immagine.

 

"Non supporta il real time"

Non è chiaro da dove nasca questa convinzione. Windows CE è progettato per esser un sistema operativo hard real time. L'architettura del sistema operativo sottostante è completamente diversa da quella dei sistemi operativi desktop Windows. Per saperne di più, leggete l'articolo di RTC Magazine che illustra le funzionalità real time di Windows CE e i white paper della società di consulenza Dedicated Systems Experts che forniscono una valutazione di Windows CE 5.0 e, in particolare, di Windows CE 5.0 su piattaforme x86.

Windows XP Embedded non è un sistema operativo real time, ma per renderlo tale esistono numerose estensioni di terze parti.

 

"I sistemi operativi non sono sicuri"

Windows CE 5.0. L'implementazione dell’ OEMCertifyModule consente di bloccare le immagini del sistema operativo in modo da eseguire soltanto il codice desiderato. Inoltre, in Windows CE 5.0 le funzionalità di protezione sono attivate per impostazione predefinita. Per una descrizione di queste funzionalità, consultate l'articolo di WindowsForDevices. Essendo un sistema operativo basato su componenti, Windows CE permette inoltre di includere nel dispositivo in corso di sviluppo soltanto i componenti e le tecnologie necessari. Un altro aspetto interessante è la differenza a livello di architettura tra Windows CE e i sistemi operativi desktop. Questi ultimi includono tre librerie principali a cui ogni programma deve fare riferimento: Kernel32, GDI32 e User32. Nessuna di queste librerie è invece presente in Windows CE, pertanto anche se il dispositivo viene eseguito con un processore x86, non sarà possibile eseguire neanche l'applicazione desktop più semplice, come ad esempio il Blocco note. Di conseguenza, in Windows CE non funzioneranno neanche virus, worm e altri programmi pericolosi per la sicurezza progettati per i sistemi operativi desktop.

Windows XP Embedded con Service Pack 2. Tanto per cominciare, potremmo dare un'occhiata alla panoramica di SP2. La prima cosa da dire è che, essendo basato su componenti, Windows XP Embedded consente di scegliere i componenti da includere nell'immagine del sistema operativo. Se non si necessita di componenti di rete quali MSMQ, DCOM, RPC o altri ancora, semplicemente si eviterà di includerli nell’immagine. Osservando il comportamento di alcuni virus e worm in un desktop infetto, si nota che la maggior parte di questi sfrutta RPC, DCOM e altre porte aperte nel PC. Windows XP Embedded con SP2 offre tutti gli aggiornamenti per la protezione presenti nella versione desktop, che includono un firewall (le cui porte sono tutte disattivate per impostazione predefinita, ad eccezione della porta 80) unito al supporto per funzionalità NX (No Execute) e per l'identificazione dei buffer overruns (entrambe sono descritte in un'intervista a Joe Morris realizzata dal team di Windows XP Embedded). Sono inoltre disponibili soluzioni di terze parti quali Computer Associates e Trend Micro.

 

"La configurazione del sistema operativo in base alle specifiche esigenze è troppo complessa"

Windows CE 5.0. Il sistema operativo è basato su componenti e il relativo strumento di sviluppo (Platform Builder) include una procedura guidata che assiste l'utente nella configurazione iniziale della piattaforma. In questa procedura sono disponibili nove configurazioni diverse, tra cui le configurazioni "solo kernel" (200 KB), gateway residenziale, Internet o WebPad, ognuna delle quali può essere considerata il punto di partenza dell'attività di progettazione. È possibile aggiungere o rimuovere caratteristiche dall'area di lavoro della piattaforma, ad esempio aggiungendo il supporto di .NET Compact Framework o rimuovendo il supporto del server Web HTTP. Lo strumento di sviluppo della piattaforma consente inoltre di aggiungere applicazioni e driver personalizzati. Per saperne di più, guardate le esercitazioni su Windows CE. Le configurazioni della piattaforma sono inoltre estendibili tramite la creazione di modelli personalizzati.

Windows CE include potenti driver e pacchetti BSP (Board Support Package) che facilitano le operazioni di configurazione, sviluppo, debug e testing. Gli strumenti di sviluppo includono il codice sorgente 2,5 milioni di righe distribuiti in licenza shared source, che può essere utilizzato come supporto per le attività di sviluppo e debug della piattaforma e per comprendere meglio il funzionamento del sistema operativo Windows CE.

Windows XP Embedded. Anche Windows XP Embedded è un sistema basato su componenti. Come Windows CE 5.0, Windows XP Embedded offre numerosi modelli "di partenza" per lo sviluppo del sistema operativo, che possono essere applicati a set-top box, terminali Windows, dispositivi Internet e così via. È comunque possibile cominciare da zero e selezionare i componenti hardware e software desiderati. La procedura finalizzata ad eseguire Windows XP Embedded su una nuova piattaforma è molto semplice. L'hardware e l'architettura x86 sottostanti consentono di eseguire uno strumento in grado di analizzare l'hardware e produrre un file di output XML contenente un elenco dei componenti hardware per la reference board. Questa definizione XML permette di visualizzare in modo ordinato la piattaforma hardware per la reference board. A questo punto è sufficiente aggiungere uno dei modelli o singoli componenti software alla definizione dell'hardware e quindi sviluppare il sistema operativo. Tutto con estrema facilità. Guardate le esercitazioni su Windows XP Embedded per toccare con mano la semplicità del processo.

 

"Gli strumenti di sviluppo sono troppo costosi"

Questa è facile. Windows CE e Windows XP Embedded possono essere scaricati GRATUITAMENTE dal sito Web Microsoft. Ripeto: GRATUITAMENTE. Scaricate subito il Windows Embedded Introductory Kit. Potrete valutare il sistema operativo e i relativi strumenti per un periodo di 120 giorni, allo scadere dei quali potrete acquistare il prodotto completo. La versione di valutazione di Windows CE include gli stessi strumenti per lo sviluppo e i 2,5 milioni di righe di codice sorgente del prodotto completo.

 

"I costi delle licenze sono troppo elevati"

L'acquisto delle licenze per i sistemi operativi embedded diventa necessario solo quando si inizia a fornire ai clienti il prodotto reale. Fino ad allora, è possibile utilizzare gli strumenti della versione di valutazione (o del prodotto completo) per creare e inviare ai clienti versioni di test dell'immagine del sistema operativo, senza bisogno di alcuna licenza.

Ma quanto costano le licenze per i sistemi operativi? I prezzi delle licenze per Windows CE e Windows XP Embedded sono del tutto trasparenti. Windows CE dispone di una licenza "Core" che copre la maggior parte dei componenti del sistema operativo oppure una licenza "Professional".Anche per Windows XP Embedded non è necessario acquistare licenze di runtime finché non si distribuisce il prodotto reale. Questo significa che i costi di sviluppo sono piuttosto ridotti. Gli strumenti di sviluppo possono essere scaricati GRATUITAMENTE dal sito Web Microsoft Embedded e sono utilizzabili per 120 giorni..

 

"Non esiste supporto"

Esistono diversi modi per ottenere supporto per Windows CE e Windows XP Embedded, dal supporto GRATUITO ai corsi di formazione, dalla consulenza dei partner al servizio Microsoft Developer Support. Il supporto gratuito include l'accesso a newsgroup monitorati dai nostri partner e team di sviluppo, chat online ed esercitazioni.

 

"Non esistono driver a supporto dell’hardware di cui ho bisogno "

Windows CE 5.0. Windows CE include almeno un Board Support Package per ogni processore supportato (x86, ARM, MIPS, SH4). Per informazioni più dettagliate, consultate l'elenco completo dei BSP supportati. Windows CE offre a sviluppatori hardware, integratori di sistemi e fornitori di prodotti IT l'interessante capacità di estendere il catalogo di componenti Windows CE tramite l'aggiunta del supporto per reference board, BSP e driver personalizzati. Consultate l'elenco completo dei driver supportati da Windows CE per verificarne la compatibilità.

Windows XP Embedded. Windows XP Embedded include lo stesso set di driver della versione desktop di Windows XP Professional, ovvero oltre 9.000 driver disponibili come singoli componenti. Questo elenco può essere facilmente esteso tramite gli strumenti di sviluppo per Windows XP Embedded. Se si dispone di driver di terze parti per Windows 2000 o Windows XP, è possibile includerli nel catalogo di Windows XP Embedded importandone il file INF. Una volta importato il file INF e verificato il componente nel database di componenti, il nuovo driver può essere utilizzato esattamente come qualsiasi altro driver esposto negli strumenti di sviluppo.

 

"Non voglio che il mio dispositivo embedded abbia l'aspetto di Windows"

Ogni sistema embedded presenta requisiti specifici per l'interfaccia utente. Nel caso dei sistemi embedded headless, l'interfaccia utente può essere solo basata sul Web. La procedura per la creazione di interfacce HTML/DHTML è estremamente flessibile e permette di ottenere un aspetto totalmente personalizzato per l'interfaccia utente remota. Talvolta, un'interfaccia utente HTML può risultare appropriata anche per un dispositivo headed; in questi casi per l'interfaccia del dispositivo è possibile utilizzare l'applicazione Internet Explorer 6.0 o i controlli ActiveX.

Sia in Windows CE che in Windows XP Embedded la shell può avere l'aspetto di un desktop Windows, completo di pulsante Start, icone e così via. In entrambi i casi, però, la shell di Windows può essere interamente rimossa dal sistema operativo, per avere la possibilità di eseguire l'avvio nell'applicazione personalizzata. L'utente del dispositivo non necessita di un'interfaccia Windows, non può accedere ad alcun desktop né al Pannello di controllo (perché non esistono) e così via. È possibile sviluppare un'applicazione da utilizzare come shell del dispositivo. In Windows XP Embedded sono disponibili numerose shell di esempio, tra cui la shell di Windows Explorer, la shell comandi e la shell di Task Manager.

 

"Non sono disponibili risorse di formazione che mi assistano nei miei progetti"

Sono disponibili risorse di formazione sia per Windows CE che per Windows XP Embedded. Windows XP Embedded richiede due giorni di formazione, mentre per Windows CE 5.0 è disponibile un corso della durata di 5 giorni.

 

"Non esistono partner che forniscano hardware, driver, caricatori di avvio e risorse di formazione"

I partner a cui è possibile rivolgersi sono numerosissimi: quasi 2.500 dislocati in oltre 50 paesi.

 

"È difficile trovare tecnici disposti a collaborare ai miei progetti"

Che cos'hanno in comune SPOT, Windows CE e Windows XP Embedded? Tutti possono essere programmati utilizzando C# e una versione del linguaggio CLR (Common Language Runtime). Inoltre, Windows CE e Windows XP Embedded espongono Win32, librerie MFC (Microsoft Foundation Classes) e librerie ATL (Active Template Libraries). Pertanto, gli sviluppatori che hanno esperienza nella programmazione di Windows con Win32, MFC o ATL sono in grado di realizzare applicazioni per Windows CE e Windows XP Embedded. Gli sviluppatori con esperienza nello sviluppo di applicazioni gestite possono realizzare applicazioni SPOT, Windows CE e Windows XP Embedded. Inoltre, più di sei milioni di sviluppatori in tutto il mondo hanno le competenze necessarie per scrivere codice per la piattaforma Windows. Lo sviluppo dei progetti è quindi supportato da abbondanti risorse.

Un altro aspetto interessante è il numero di estensioni al .NET Compact Framework in fase di sviluppo. Per saperne di più, visitate i siti Web The Code Project e OpenNETCF.org. Infine, i professionisti possono facilmente passare da un progetto Windows CE a un progetto Windows XP Embedded, dal momento che sanno già programmare in una di queste piattaforme.

 

"È difficile spostare gli sviluppatori da una piattaforma all'altra"

Praticamente vale quanto detto per il commento precedente. Se i professionisti sanno già programmare in una piattaforma Windows, allora sapranno anche scrivere codice per Windows CE o Windows XP Embedded.