51
Présentation Présentation de de Windows CE 6 Windows CE 6 Olivier Bloch Olivier Bloch Relations techniques Relations techniques développeurs mobilité et développeurs mobilité et embarqué embarqué Microsoft France Microsoft France [email protected] [email protected]

Présentation de Windows CE 6 Olivier Bloch Relations techniques développeurs mobilité et embarqué Microsoft France [email protected]

Embed Size (px)

Citation preview

Page 1: Présentation de Windows CE 6 Olivier Bloch Relations techniques développeurs mobilité et embarqué Microsoft France obloch@microsoft.com

PrésentationPrésentation de deWindows CE 6Windows CE 6

Olivier BlochOlivier BlochRelations techniques développeurs Relations techniques développeurs mobilité et embarquémobilité et embarquéMicrosoft FranceMicrosoft [email protected]@microsoft.com

Page 2: Présentation de Windows CE 6 Olivier Bloch Relations techniques développeurs mobilité et embarqué Microsoft France obloch@microsoft.com

AgendaAgenda

• RappelsRappels• Windows CE 6.0 : les grandes lignesWindows CE 6.0 : les grandes lignes

• ObjectifsObjectifs• PiliersPiliers• Calendrier et état courantCalendrier et état courant

• Les nouveautésLes nouveautés• QuestionsQuestions

• RappelsRappels• Windows CE 6.0 : les grandes lignesWindows CE 6.0 : les grandes lignes

• ObjectifsObjectifs• PiliersPiliers• Calendrier et état courantCalendrier et état courant

• Les nouveautésLes nouveautés• QuestionsQuestions

Page 3: Présentation de Windows CE 6 Olivier Bloch Relations techniques développeurs mobilité et embarqué Microsoft France obloch@microsoft.com

Qu’est ce que CE ?Qu’est ce que CE ?FAQFAQ

• Est-ce issu de Windows ?Est-ce issu de Windows ?

• A quel point est-ce “petit” ?A quel point est-ce “petit” ?

• Quid du temps réel avec CE ? Quid du temps réel avec CE ?

• Combien d’ OEMs utilisent Windows CE? Combien d’ OEMs utilisent Windows CE?

• Combien de partenaires supportent Windows CE ? Combien de partenaires supportent Windows CE ?

• Windows CE en école et université ?Windows CE en école et université ?

• Qu’est-ce que le “shared source” ?Qu’est-ce que le “shared source” ?

• Windows CE est-il cher ?Windows CE est-il cher ?

• Microsoft est-il vraiment sérieux avec Windows CE?Microsoft est-il vraiment sérieux avec Windows CE?

• Et “CE” qu’est-ce que ça veut dire ?Et “CE” qu’est-ce que ça veut dire ?

Page 4: Présentation de Windows CE 6 Olivier Bloch Relations techniques développeurs mobilité et embarqué Microsoft France obloch@microsoft.com

SP1 SP1 2.112.11

SP2 SP2 2.122.12

JamesonJameson 4.1 4.1

McKendricMcKendric 4.2 4.2

TomatinTomatin NMD FP NMD FP

Bref historiqueBref historique

AlderAlderWindows CE 1.0Windows CE 1.0

11/199611/1996

BirchBirch Windows CE 2.0Windows CE 2.0

11/199711/1997

Cedar Cedar Windows CE 3.0Windows CE 3.0

4/20004/2000

TaliskerTalisker Windows CE Windows CE

.NET 4.0.NET 4.01/20021/2002

MacallanMacallan Windows CE 5.0Windows CE 5.0

8/20048/2004

YamazakiYamazaki Windows CE 6Windows CE 6

H2/2006H2/2006

Page 5: Présentation de Windows CE 6 Olivier Bloch Relations techniques développeurs mobilité et embarqué Microsoft France obloch@microsoft.com

Windows CE 6.0 :Windows CE 6.0 :les grandes lignesles grandes lignes

• Nom de code : YamazakiNom de code : Yamazaki• Les objectifsLes objectifs• Le Processus de développementLe Processus de développement

• PiliersPiliers• Devices (cibles)Devices (cibles)

• Les fondations pour l’avenirLes fondations pour l’avenir• Les limites “32/32” disparaissent dans le nouveau noyauLes limites “32/32” disparaissent dans le nouveau noyau• Et beaucoup, beaucoup plusEt beaucoup, beaucoup plus

• Nom de code : YamazakiNom de code : Yamazaki• Les objectifsLes objectifs• Le Processus de développementLe Processus de développement

• PiliersPiliers• Devices (cibles)Devices (cibles)

• Les fondations pour l’avenirLes fondations pour l’avenir• Les limites “32/32” disparaissent dans le nouveau noyauLes limites “32/32” disparaissent dans le nouveau noyau• Et beaucoup, beaucoup plusEt beaucoup, beaucoup plus

Page 6: Présentation de Windows CE 6 Olivier Bloch Relations techniques développeurs mobilité et embarqué Microsoft France obloch@microsoft.com

Les objectifsLes objectifs

• PerformancesPerformances• Pas de régression par rapport à Windows CE 5.0Pas de régression par rapport à Windows CE 5.0

• Cibler et améliorer certains “scenarios”Cibler et améliorer certains “scenarios”

• TailleTaille• Ne pas augmenter la taille de l’empreinte de plus de 5% pour une même Ne pas augmenter la taille de l’empreinte de plus de 5% pour une même

configurationconfiguration

• HardwareHardware• Pas besoin de nouvel équipement pour faire tourner Windows CE 6.0Pas besoin de nouvel équipement pour faire tourner Windows CE 6.0• Un hard supporté par Windows CE 5.0 le sera par Windows CE 6.0Un hard supporté par Windows CE 5.0 le sera par Windows CE 6.0• Certaines nouvelles features peuvent necessiter un nouveau hardware (ARMv6, Certaines nouvelles features peuvent necessiter un nouveau hardware (ARMv6,

etc…)etc…)

• Time-to-MarketTime-to-Market• Les outils intégrés à VS2005Les outils intégrés à VS2005• BSPs et drivers de qualitéBSPs et drivers de qualité• Documentation des procédures de portage pour accélérer les adaptations de Documentation des procédures de portage pour accélérer les adaptations de

BSP et de driversBSP et de drivers

Page 7: Présentation de Windows CE 6 Olivier Bloch Relations techniques développeurs mobilité et embarqué Microsoft France obloch@microsoft.com

PiliersPiliers ResultatsResultats

1. Robuste 1. Robuste et fiableet fiable

• Nouveau modèle de mémoire virtuelle, nouvelle Nouveau modèle de mémoire virtuelle, nouvelle architecture du Noyauarchitecture du Noyau• Qualité de production des BSPs/driversQualité de production des BSPs/drivers• Watson et debugging post-mortemWatson et debugging post-mortem

2. Sûr et sécurisé2. Sûr et sécurisé

• Protection du contenu et infos personnelsProtection du contenu et infos personnels• Librairies run-time C “Secure”Librairies run-time C “Secure”• Sécurité du bootloaderSécurité du bootloader• Intégration de mécanismes de défense dans le noyauIntégration de mécanismes de défense dans le noyau

3. Diminution du TTM3. Diminution du TTM

• Outils améliorés pour maximiser la productivité des Outils améliorés pour maximiser la productivité des développeursdéveloppeurs• Maximum de compatibilité ascendanteMaximum de compatibilité ascendante• Migration des drivers et OAL rendue la moins Migration des drivers et OAL rendue la moins “douloureuse” possible“douloureuse” possible• CommuneautésCommuneautés

4. Cohabitation améliorée avec 4. Cohabitation améliorée avec WindowsWindows

• Infratructure média enrichieInfratructure média enrichie• Connectivité enrichie (VoIP, Bluetooth, WiFi) Connectivité enrichie (VoIP, Bluetooth, WiFi) • Systèmes de fichiers PC-compatiblesSystèmes de fichiers PC-compatibles

5. Bases pour une “déferlente” 5. Bases pour une “déferlente” de devices Windows CE 6de devices Windows CE 6

• Ouverture et enrichissement de la prochaine génération Ouverture et enrichissement de la prochaine génération de devices pour l’entreprise, la mobilité, l’embarqué et le de devices pour l’entreprise, la mobilité, l’embarqué et le consumerconsumer

Les piliers de Windows CE 6Les piliers de Windows CE 6

Page 8: Présentation de Windows CE 6 Olivier Bloch Relations techniques développeurs mobilité et embarqué Microsoft France obloch@microsoft.com

Les catégories de device CE 6Les catégories de device CE 6

• Consumer electronicsConsumer electronics• Lecteurs HD-DVDLecteurs HD-DVD

• ““Networked Media Devices”Networked Media Devices”

• Set-Top boxes IPSet-Top boxes IP

• EnterpriseEnterprise• Téléphones VoIPTéléphones VoIP

• Clients légersClients légers

• MobilitéMobilité• Windows MobileWindows Mobile

• Windows AutomotiveWindows Automotive

• Windows Mobile for AutomotiveWindows Mobile for Automotive

• Portable Media PlayersPortable Media Players

• EmbarquéEmbarqué• C.a.d. tout le resteC.a.d. tout le reste

Page 9: Présentation de Windows CE 6 Olivier Bloch Relations techniques développeurs mobilité et embarqué Microsoft France obloch@microsoft.com

Calendrier et étatCalendrier et état

AlphaAlphaJanvier Janvier ’06’06

MEDC: MEDC: DVDs DVDs Windows CE 6 BetaWindows CE 6 Beta8-11 8-11 Mai Mai ’06’06

Etape “Feature-complete”Etape “Feature-complete”Juin Juin ’06’06

RTMRTMH2 ’06H2 ’06

Mai Mai ’06’06 BetaBeta

• Le portage de l’OS est complet pour la BetaLe portage de l’OS est complet pour la Beta• 660 composants de l’OS validés et testés660 composants de l’OS validés et testés• L’intégralité des composants du catalogue CE 5.0 tourne L’intégralité des composants du catalogue CE 5.0 tourne

sur le nouvel OS, CETK inclussur le nouvel OS, CETK inclus

• De plus, de nouveaux composants sont disponiblesDe plus, de nouveaux composants sont disponibles• ** indiquent que les composants seront disponibles en ** indiquent que les composants seront disponibles en

post Betapost Beta

• Le portage de l’OS est complet pour la BetaLe portage de l’OS est complet pour la Beta• 660 composants de l’OS validés et testés660 composants de l’OS validés et testés• L’intégralité des composants du catalogue CE 5.0 tourne L’intégralité des composants du catalogue CE 5.0 tourne

sur le nouvel OS, CETK inclussur le nouvel OS, CETK inclus

• De plus, de nouveaux composants sont disponiblesDe plus, de nouveaux composants sont disponibles• ** indiquent que les composants seront disponibles en ** indiquent que les composants seront disponibles en

post Betapost Beta

Page 10: Présentation de Windows CE 6 Olivier Bloch Relations techniques développeurs mobilité et embarqué Microsoft France obloch@microsoft.com

Windows CE 6.0 :Windows CE 6.0 :”Quoi de neuf ?””Quoi de neuf ?”

• Evolution des outilsEvolution des outils

• Noyau de nouvelle générationNoyau de nouvelle génération

• Les autres nouveautésLes autres nouveautés

• La compatibilité ascendanteLa compatibilité ascendante

• BSPs et DriversBSPs et Drivers

• Temps réelTemps réel

• Evolution des outilsEvolution des outils

• Noyau de nouvelle générationNoyau de nouvelle génération

• Les autres nouveautésLes autres nouveautés

• La compatibilité ascendanteLa compatibilité ascendante

• BSPs et DriversBSPs et Drivers

• Temps réelTemps réel

Page 11: Présentation de Windows CE 6 Olivier Bloch Relations techniques développeurs mobilité et embarqué Microsoft France obloch@microsoft.com

L’évolution des outilsL’évolution des outils

Page 12: Présentation de Windows CE 6 Olivier Bloch Relations techniques développeurs mobilité et embarqué Microsoft France obloch@microsoft.com

IDEIDEAvant : dans Windows CE 5.0Avant : dans Windows CE 5.0

• Integrated Development EnvironmentIntegrated Development Environment• Basé sur Visual Studio 6Basé sur Visual Studio 6

• Outils pour l’OS DesignOutils pour l’OS Design• Wizard “New Platform”Wizard “New Platform”

• OS Design ViewOS Design View

• Wizards pour les projets de baseWizards pour les projets de base• DLLs, EXEs, LIBsDLLs, EXEs, LIBs

• Lancements de compilation en lignes de Lancements de compilation en lignes de commandecommande• ““Unified Build”Unified Build”

• ““Targeted Build” Targeted Build”

• SDK Roller, BSP Wizard, Export WizardSDK Roller, BSP Wizard, Export Wizard

Page 13: Présentation de Windows CE 6 Olivier Bloch Relations techniques développeurs mobilité et embarqué Microsoft France obloch@microsoft.com

IDEIDEPortage vers le shell de Visual Studio 2005Portage vers le shell de Visual Studio 2005

Editeur, IntellisenseEditeur, Intellisense

Un outils unique pour le desktop, les designs Windows CE, Un outils unique pour le desktop, les designs Windows CE, et les applications.et les applications.

Automation et extensibilité de VSAutomation et extensibilité de VS

Apports :Apports :

Visual Studio language add-onVisual Studio language add-on

Page 14: Présentation de Windows CE 6 Olivier Bloch Relations techniques développeurs mobilité et embarqué Microsoft France obloch@microsoft.com

IDEIDEConversion du catalog en XMLConversion du catalog en XML

ApportsApports

Plus d’étape d’importPlus d’étape d’import

Meilleure cohabitation avec la gestion de configurationMeilleure cohabitation avec la gestion de configuration

Le CEC converti en XMLLe CEC converti en XML

CECCEC

Page 15: Présentation de Windows CE 6 Olivier Bloch Relations techniques développeurs mobilité et embarqué Microsoft France obloch@microsoft.com

IDEIDEEditeurs et “views”Editeurs et “views”

• Editeur .Bib et .RegEditeur .Bib et .Reg• IntellisenseIntellisense

• Syntax highlightingSyntax highlighting

• Visualisation graphique des fichiers .regVisualisation graphique des fichiers .reg

• Editeur de catalogueEditeur de catalogue• Creation et édition des fichiers XML catalogueCreation et édition des fichiers XML catalogue

• Runtime Image ViewerRuntime Image Viewer• Outils d’analyse statique de fichier nk.binOutils d’analyse statique de fichier nk.bin

Page 16: Présentation de Windows CE 6 Olivier Bloch Relations techniques développeurs mobilité et embarqué Microsoft France obloch@microsoft.com

Compilateurs :Compilateurs :Les apports de Visual Studio 2005Les apports de Visual Studio 2005

• Compilateurs basés sur ceux de Visual Studio 2005Compilateurs basés sur ceux de Visual Studio 2005• Meilleure conformité au language C++Meilleure conformité au language C++

• Meilleures librairies : CRT, ATL, MFCMeilleures librairies : CRT, ATL, MFC

• + de vérifications de sécurité au runtime (/GS)+ de vérifications de sécurité au runtime (/GS)

• Nouveau modèle de virgule flottanteNouveau modèle de virgule flottante

• Pluggable CRTPluggable CRT• Utilisation possible d’un autre Runtime C que celui du systèmeUtilisation possible d’un autre Runtime C que celui du système

• CoreDLL ne supportera que le CRT système pour des raisons de CoreDLL ne supportera que le CRT système pour des raisons de

compatibilité ascendantecompatibilité ascendante

• Les futures applications utiliseront une autre DLL CRT système ou bien une Les futures applications utiliseront une autre DLL CRT système ou bien une

autre DLL CRT (e.g. CRT 8.0)autre DLL CRT (e.g. CRT 8.0)

• /SafeSEH : pour plateformes x86 (les autres CPUs RISC ne /SafeSEH : pour plateformes x86 (les autres CPUs RISC ne présentent pas cette faille)présentent pas cette faille)

• PREFast : Native Code Analysis pour ARM, SH et MIPSPREFast : Native Code Analysis pour ARM, SH et MIPS

• Secure CRT (e.g. strcpy Secure CRT (e.g. strcpy strcpy_s) strcpy_s)

Page 17: Présentation de Windows CE 6 Olivier Bloch Relations techniques développeurs mobilité et embarqué Microsoft France obloch@microsoft.com

DEMO : L’évolution des outilsDEMO : L’évolution des outils

Page 18: Présentation de Windows CE 6 Olivier Bloch Relations techniques développeurs mobilité et embarqué Microsoft France obloch@microsoft.com

Le nouveau noyauLe nouveau noyau

Page 19: Présentation de Windows CE 6 Olivier Bloch Relations techniques développeurs mobilité et embarqué Microsoft France obloch@microsoft.com

Nouveau noyauNouveau noyau

• 32K processus32K processus

• 2Go de mémoire virtuelle par process2Go de mémoire virtuelle par process

• Architecture de l’OS modifiéeArchitecture de l’OS modifiée

• Ajout du support pour les CPU ARM v6Ajout du support pour les CPU ARM v6

• Toujours Temps réel durToujours Temps réel dur

• ** Gestionnaire de cache** Gestionnaire de cache

Page 20: Présentation de Windows CE 6 Olivier Bloch Relations techniques développeurs mobilité et embarqué Microsoft France obloch@microsoft.com

Architecture mémoire:Architecture mémoire: Windows CE 5.0 vs. Windows CE 6 Windows CE 5.0 vs. Windows CE 6

32 process

2 Go pour 2 Go pour tous les tous les processprocess

2 Go2 Gokernelkernel

Slot d’executionSlot d’execution

SharedSharedmemorymemory

KernelKernel

Slot 0 – ExecutionSlot 0 – ExecutionSlot 1 – ROM DLLsSlot 1 – ROM DLLsSlot 2 – Filesys.exeSlot 2 – Filesys.exeSlot 3 – Device.exeSlot 3 – Device.exeSlot 4 – GWES.exeSlot 4 – GWES.exe

Slot 5 – Slot 5 – Services.exeServices.exe

Slot 31Slot 31Slot 32Slot 32Slot 33Slot 33Slot 34Slot 34

::::

Slot 6Slot 6Process Process

codecode

Memory Memory mapped mapped

filesfiles

User DLLsUser DLLs

KernelKernelFilesystemFilesystem

GWESGWESDriversDrivers

. . . . . . .

. . . . . . .

. .

32 K32 Kprocessprocess

2 Go2 Goparpar

processprocess

Page 21: Présentation de Windows CE 6 Olivier Bloch Relations techniques développeurs mobilité et embarqué Microsoft France obloch@microsoft.com

Espace UserEspace User

Shared User DLLsShared User DLLs512 Mo512 Mo

RAM Backed RAM Backed MapfilesMapfiles256 Mo256 Mo

Shared System HeapShared System Heap255 Mo255 Mo

Process spaceProcess space1 Go par process1 Go par process

Espace UserEspace User2 Go2 Go

Chaque process a Chaque process a son propre mappingson propre mapping

R/W pour les composants OSR/W pour les composants OSLecture seule pour les process Lecture seule pour les process

useruserFichiers mappés en RAMFichiers mappés en RAM

Mappés à une adresse fixe pour une Mappés à une adresse fixe pour une meilleure compatibilité ascendantemeilleure compatibilité ascendante

Toute les DLLs – code et dataToute les DLLs – code et dataMême mapping pour tous les processMême mapping pour tous les process

Data = pages physiques uniquesData = pages physiques uniquesCode = pages partagéesCode = pages partagées

Code exécutable et dataCode exécutable et dataAllocation mémoire virtuelleAllocation mémoire virtuelle

Fichiers mappésFichiers mappés

0x000000000x00000000

0x400000000x40000000

0x800000000x80000000

Page 22: Présentation de Windows CE 6 Olivier Bloch Relations techniques développeurs mobilité et embarqué Microsoft France obloch@microsoft.com

0x800000000x80000000

Espace KernelEspace Kernel

Espace KernelEspace Kernel2 Go2 Go

Mapping fixe Mapping fixe indépendant de indépendant de l’espace Userl’espace User

0xFFFFFFFF0xFFFFFFFF

DLLs XIP du kernelDLLs XIP du kernel

Mapping mémoire Mapping mémoire physique Cachedphysique Cached

Mapping mémoire physique Mapping mémoire physique UncachedUncached

Système de fichier et registre Système de fichier et registre ramram

Mémoire Mémoire virtuelle virtuelle partagéepartagéepar tous les services et par tous les services et

drivers kerneldrivers kernel

Zone de System TrapZone de System TrapCPU Specific VMCPU Specific VM

Kernel VMKernel VM(if supported by CPU)(if supported by CPU)

256 MB256 MB

Kernel VMKernel VM256 MB256 MB

Object Store (128MB)Object Store (128MB)

Kernel XIP DLLs (128 MB)Kernel XIP DLLs (128 MB)

Static Mapped Static Mapped UncachedUncached512 MB512 MB

Static Mapped Static Mapped CachedCached512 MB512 MB

Page 23: Présentation de Windows CE 6 Olivier Bloch Relations techniques développeurs mobilité et embarqué Microsoft France obloch@microsoft.com

Nouvelle architecture du noyauNouvelle architecture du noyau

• Déplacement des drivers, du file system, et Déplacement des drivers, du file system, et de GWES dans le kernelde GWES dans le kernel• Version kernel de coredll.dll (k.coredll.dll)Version kernel de coredll.dll (k.coredll.dll)

• Mêmes APIsMêmes APIs

• ApportsApports• Réduction des overheads lors des appels Réduction des overheads lors des appels

système entre ces modules Kernelsystème entre ces modules Kernel

• Réduction des overheads lors des appels depuis Réduction des overheads lors des appels depuis l’espace Userl’espace User

Page 24: Présentation de Windows CE 6 Olivier Bloch Relations techniques développeurs mobilité et embarqué Microsoft France obloch@microsoft.com

OAL.DLL FILESYS.DLL GWES.DLL

DEVICE.DLLKERNEL.DLL

Applications

SERVICES.EXESHELL

Drivers

Hardware

Boot Loader

COREDLL / WINSOCK / COMMCTRL / WININET / COMMDLG

KernelSpace

UserSpace

KCOREDLL.DLL

ServicesServicesServicesServicesServicesServicesServices

User ModeDrivers

Nouvelle architecture du noyauNouvelle architecture du noyau

Page 25: Présentation de Windows CE 6 Olivier Bloch Relations techniques développeurs mobilité et embarqué Microsoft France obloch@microsoft.com

Performance et taillePerformance et taille

• Amélioration des temps de process switchingAmélioration des temps de process switching

• Performance équivalente Performance équivalente • Thread SwitchingThread Switching

• Allocation mémoireAllocation mémoire

• Appels SystèmeAppels Système

• Pertes de perf. En ce qui concerne les appels inter-Pertes de perf. En ce qui concerne les appels inter-processprocess• Obligent désormais un data marshallingObligent désormais un data marshalling

• Taille finale du noyau augmente de moins de 5%Taille finale du noyau augmente de moins de 5%

Page 26: Présentation de Windows CE 6 Olivier Bloch Relations techniques développeurs mobilité et embarqué Microsoft France obloch@microsoft.com

Appels système Windows CE 5.0Appels système Windows CE 5.0

• L’application fait l’appelL’application fait l’appel• PSLPSL

• Kernel Kernel • Validation des paramètresValidation des paramètres• Mapping du service dans le slot 0Mapping du service dans le slot 0

• Eventuellement flush du cacheEventuellement flush du cache

• Appel au serviceAppel au service• Service Service

• Traitement, Traitement, • Retour au KernelRetour au Kernel

• KernelKernel• Mapping de l’application dans le Mapping de l’application dans le

slot 0slot 0

• Eventuellement flush du cacheEventuellement flush du cache

• Retour à l’applicationRetour à l’application

AppApp ServiceService

KernelKernel

Page 27: Présentation de Windows CE 6 Olivier Bloch Relations techniques développeurs mobilité et embarqué Microsoft France obloch@microsoft.com

Appels système WinCE 6.0 BetaAppels système WinCE 6.0 Beta

• L’application fait l’appelL’application fait l’appel• PSLPSL

• L’application reste mappée L’application reste mappée durant l’appeldurant l’appel

• Kernel Kernel • Validation des paramètresValidation des paramètres

• Appel transmis au serviceAppel transmis au service

• Service Service • TraitementTraitement

• Retour direct à l’applicationRetour direct à l’application

AppApp

ServiceServiceKernelKernel

Page 28: Présentation de Windows CE 6 Olivier Bloch Relations techniques développeurs mobilité et embarqué Microsoft France obloch@microsoft.com

DEMO : Le nouveau noyauDEMO : Le nouveau noyau

Page 29: Présentation de Windows CE 6 Olivier Bloch Relations techniques développeurs mobilité et embarqué Microsoft France obloch@microsoft.com

Les autres nouveautés en revueLes autres nouveautés en revue

Page 30: Présentation de Windows CE 6 Olivier Bloch Relations techniques développeurs mobilité et embarqué Microsoft France obloch@microsoft.com

Les nouveautésLes nouveautés

• Tables de pagination et de handle par process Tables de pagination et de handle par process

• Remote Heaps sécurisées pour les modules de l’OSRemote Heaps sécurisées pour les modules de l’OS

• Fichiers mappés de grande tailleFichiers mappés de grande taille

• Secure loader (controle des app., signature des fichiers, Secure loader (controle des app., signature des fichiers, modèle de sécurité code-oriented)modèle de sécurité code-oriented)

• Service user mode UIService user mode UI

• Virtual Alloc Ex (mêmes APIs qu’XP)Virtual Alloc Ex (mêmes APIs qu’XP)

• Fonctions d’aide au marshallingFonctions d’aide au marshalling

• Horloge monotoneHorloge monotone

• Services et certains drivers en mode userServices et certains drivers en mode user

• Isolation de l’OALIsolation de l’OAL

Page 31: Présentation de Windows CE 6 Olivier Bloch Relations techniques développeurs mobilité et embarqué Microsoft France obloch@microsoft.com

Les nouveautés (suite)Les nouveautés (suite)

• Système de fichierSystème de fichier• Compatible avec le desktop, gros fichiers, cryptage, des données, ** Cache Compatible avec le desktop, gros fichiers, cryptage, des données, ** Cache

manager, **UDFS v2.5 avec support lecturemanager, **UDFS v2.5 avec support lecture

• VoIPVoIP• VoIP sur réseaux filaires et WLAN, aaplication de téléphonie, RTC 1.5, VoIP sur réseaux filaires et WLAN, aaplication de téléphonie, RTC 1.5,

synchronisation contacts depuis PC ou Exchange server, messages vocaux, synchronisation contacts depuis PC ou Exchange server, messages vocaux, Advanced provisionning, panneau de contrôle téléphonieAdvanced provisionning, panneau de contrôle téléphonie

• CoreCore networkingnetworking• Location framework v1.0, SIP RFC 3261…, nouveau moteur de traitement audio, MS Location framework v1.0, SIP RFC 3261…, nouveau moteur de traitement audio, MS

RTAudio Voice codec, Suppression echo soft, codecs tierce partieRTAudio Voice codec, Suppression echo soft, codecs tierce partie

• WLANWLAN• Multi radio et amélioration du Roaming AP-AP, diminution de la consommation, 802.11i pour Multi radio et amélioration du Roaming AP-AP, diminution de la consommation, 802.11i pour

WPA2, 802.11e pour QoS, “hardware offload” pour le cryptage, Optimisation des performances de WPA2, 802.11e pour QoS, “hardware offload” pour le cryptage, Optimisation des performances de la stack BT, profils BT : A2DP, AVRCPla stack BT, profils BT : A2DP, AVRCP

• MultimédiaMultimédia• Windows Media DRM 10 PD et ND, UI NMD compatible Media Connect, Client compatible Windows Media DRM 10 PD et ND, UI NMD compatible Media Connect, Client compatible

PlayForSure, DVR (MPEG 2), TIFF, capture audio/vidéo, streamer http 1.1, meilleur entrelacement, PlayForSure, DVR (MPEG 2), TIFF, capture audio/vidéo, streamer http 1.1, meilleur entrelacement, vidéo VC-1, son virtual surrond et multi canalvidéo VC-1, son virtual surrond et multi canal

Page 32: Présentation de Windows CE 6 Olivier Bloch Relations techniques développeurs mobilité et embarqué Microsoft France obloch@microsoft.com

Compatibilité ascendanteCompatibilité ascendante

Page 33: Présentation de Windows CE 6 Olivier Bloch Relations techniques développeurs mobilité et embarqué Microsoft France obloch@microsoft.com

Compatibilité HardwareCompatibilité Hardware

• Mêmes CPUs que Windows CE 5.0Mêmes CPUs que Windows CE 5.0• ARMV4I et +ARMV4I et +

• MIPSII avec instructions sync (ll, sc)MIPSII avec instructions sync (ll, sc)

• x86x86

• SH4SH4

• Meilleur performances avec les CPU dont le Meilleur performances avec les CPU dont le tagging du cache n’est pas virtualisétagging du cache n’est pas virtualisé

• Même HW que pour Windows CE 5.0Même HW que pour Windows CE 5.0

Page 34: Présentation de Windows CE 6 Olivier Bloch Relations techniques développeurs mobilité et embarqué Microsoft France obloch@microsoft.com

Compatibilité Software Compatibilité Software

• Compatibilité binaireCompatibilité binaire

• La structure générale de l’OS ne change pasLa structure générale de l’OS ne change pas• Compatibilité de CoreDLLCompatibilité de CoreDLL

• Impact minimale sur les API Win32Impact minimale sur les API Win32• Les modifications sont “cachées” dnas les librairies des APIs.Les modifications sont “cachées” dnas les librairies des APIs.

• Le code est toujours partagéLe code est toujours partagé

• Les applications développées correctement avec les SDK Les applications développées correctement avec les SDK devraient fonctionner avec peu ou pas de modificationdevraient fonctionner avec peu ou pas de modification

• Les applications utilisant des “techniques” non documentées Les applications utilisant des “techniques” non documentées devront subir des aménagements (e.g. passage de pointeurs devront subir des aménagements (e.g. passage de pointeurs ou de handles interprocess)ou de handles interprocess)

• Les principaux changements résideront dans l’accès àç la Les principaux changements résideront dans l’accès àç la mémoire “client” par les driversmémoire “client” par les drivers

Page 35: Présentation de Windows CE 6 Olivier Bloch Relations techniques développeurs mobilité et embarqué Microsoft France obloch@microsoft.com

Portage des applications non compatiblesPortage des applications non compatibles

• Les points bloquants :Les points bloquants :• Mauvaise utilisation des handlesMauvaise utilisation des handles

• Utilisation non-standard de la mémoireUtilisation non-standard de la mémoire

• Utilisation de certaines APIs spécifiques à Windows CEUtilisation de certaines APIs spécifiques à Windows CE

• Supression des ruses de sioux (partage de handle, Supression des ruses de sioux (partage de handle, détournement de l’utilisation des pointeurs…)détournement de l’utilisation des pointeurs…)

• Nos testsNos tests• Portage de Windows Mobile 5.0 sur Windows CE 6.0 BetaPortage de Windows Mobile 5.0 sur Windows CE 6.0 Beta

• Applications commerciales Windows CE 5.0 exécutées sur Applications commerciales Windows CE 5.0 exécutées sur Windows CE 6.0 BetaWindows CE 6.0 Beta

Page 36: Présentation de Windows CE 6 Olivier Bloch Relations techniques développeurs mobilité et embarqué Microsoft France obloch@microsoft.com

Autres portagesAutres portages

• DriversDrivers• Appels systèmeAppels système

• Utilisation des threads “workers”Utilisation des threads “workers”

• Accès à la mémoire de l’appelantAccès à la mémoire de l’appelant

• Article à venirArticle à venir

• BSPBSP• Nouveau mapping mémoireNouveau mapping mémoire

• Changement de l’OAL pour supporter les mises à jour Changement de l’OAL pour supporter les mises à jour d’imagesd’images

Page 37: Présentation de Windows CE 6 Olivier Bloch Relations techniques développeurs mobilité et embarqué Microsoft France obloch@microsoft.com

Outils de test de compatibilitéOutils de test de compatibilité

• Identifie les APIs qui ont changé, ont été Identifie les APIs qui ont changé, ont été supprimées ou encore dégradéessupprimées ou encore dégradées• Analyse statique et en exécutionAnalyse statique et en exécution

• Production d’un rapport détailléProduction d’un rapport détaillé

• Documentation et suggestionsDocumentation et suggestions

• Sera disponible avant la RTMSera disponible avant la RTM• Permettra aux clients de se préparer en amontPermettra aux clients de se préparer en amont

Page 38: Présentation de Windows CE 6 Olivier Bloch Relations techniques développeurs mobilité et embarqué Microsoft France obloch@microsoft.com

Les BSPs et driversLes BSPs et drivers

Page 39: Présentation de Windows CE 6 Olivier Bloch Relations techniques développeurs mobilité et embarqué Microsoft France obloch@microsoft.com

Famille BSP KernelDisponible dans

la beta (Oui/Non)

ARM

Intel Mainstone III (C-Step)

ARMv4i Oui

Plato VoIP Reference Platform

ARMv4i Oui

Device Emulator ARMv4i Oui

Aruba Board ARMv4i Non

TI OMAP 2420 ARMv6 Oui

MIPSNEC Rockhopper SG2 Vr5500

MIPSII & II_PF, MIPSIV & IV_FP Oui

SH4Hitachi/Renesas Aspen

SH4 Oui

x86 x86 (CEPC) X86 Oui

BSPs Windows CE 6 BetaBSPs Windows CE 6 Beta

Page 40: Présentation de Windows CE 6 Olivier Bloch Relations techniques développeurs mobilité et embarqué Microsoft France obloch@microsoft.com

DriversDrivers

• Portage des drivers existants pour un minimum Portage des drivers existants pour un minimum d’effortd’effort

• Modèle de drivers en mode User/KernelModèle de drivers en mode User/Kernel

• Couche d’abstraction DMACouche d’abstraction DMA

• Framework pour le developpement de classes USB Framework pour le developpement de classes USB HostHost

• USB On-The-GoUSB On-The-Go

• ** Nouveaux drivers USB function (composite)** Nouveaux drivers USB function (composite)

Page 41: Présentation de Windows CE 6 Olivier Bloch Relations techniques développeurs mobilité et embarqué Microsoft France obloch@microsoft.com

Drivers (suite)Drivers (suite)

• Drivers en mode Kernel (performance)Drivers en mode Kernel (performance)• Chargement dans l’espace Kernelpar device.dllChargement dans l’espace Kernelpar device.dll• Mêmes APIsMêmes APIs• K.coredll.dllK.coredll.dll

• Drivers en mode User (robustesse)Drivers en mode User (robustesse)• Chargement dans l’espace User par udevices.exeChargement dans l’espace User par udevices.exe• Presque les mêms APIs qu’un mode KernelPresque les mêms APIs qu’un mode Kernel• Le noyau effectuera un marshalling lors des appels systèmeLe noyau effectuera un marshalling lors des appels système• Bus d’extension (USB, SDIO), Clavier, touchscreen…Bus d’extension (USB, SDIO), Clavier, touchscreen…

• L’architecture driver globale reste la mêmeL’architecture driver globale reste la même• Changement dans la manière d’accéder à la mémoire client : Changement dans la manière d’accéder à la mémoire client :

CopyIn/CopyOut, ReadProcessMemory/WriteProcessMemory, Fonctions CopyIn/CopyOut, ReadProcessMemory/WriteProcessMemory, Fonctions Virtual Alloc ExVirtual Alloc Ex

• Plus de SetKMode, SetProcPermissions, MapPtrToProcess, MapCallerPtrPlus de SetKMode, SetProcPermissions, MapPtrToProcess, MapCallerPtr• Fonctions d’aide au marshallingFonctions d’aide au marshalling

Page 42: Présentation de Windows CE 6 Olivier Bloch Relations techniques développeurs mobilité et embarqué Microsoft France obloch@microsoft.com

OALOAL

• OAL isolée du kernelOAL isolée du kernel• Abstraction du Kernel par la couche NKStubAbstraction du Kernel par la couche NKStub

• Edition de lien de OAL.exe avec NKStub.libEdition de lien de OAL.exe avec NKStub.lib

• Mise à jour séparées et indépendantesMise à jour séparées et indépendantes

• La structure globale de l’OAL reste la mêmeLa structure globale de l’OAL reste la même• Fonctions OEM (OEMInit, OEMIoControl,…)Fonctions OEM (OEMInit, OEMIoControl,…)

• Modification de la phase d’initialisationModification de la phase d’initialisation• Mapping mémoireMapping mémoire

Page 43: Présentation de Windows CE 6 Olivier Bloch Relations techniques développeurs mobilité et embarqué Microsoft France obloch@microsoft.com

Le temps réelLe temps réel

Page 44: Présentation de Windows CE 6 Olivier Bloch Relations techniques développeurs mobilité et embarqué Microsoft France obloch@microsoft.com

Windows CE est un OS Temps réelWindows CE est un OS Temps réel

• Réponse à une interruption physique Réponse à une interruption physique dans un laps de temps bornédans un laps de temps borné• Analyses “OMAC User Group” : 95% des applications Analyses “OMAC User Group” : 95% des applications

temps-réel => 0,5 à 10 ms de temps de réponse avec temps-réel => 0,5 à 10 ms de temps de réponse avec une tolérance de 10% (50µs à 1ms de jitter)une tolérance de 10% (50µs à 1ms de jitter)

Interruption toutes Interruption toutes les 0.5 ms à 10 msles 0.5 ms à 10 ms

50µs à 1 ms

Exigences temps réel typeExigences temps réel type

Page 45: Présentation de Windows CE 6 Olivier Bloch Relations techniques développeurs mobilité et embarqué Microsoft France obloch@microsoft.com

Noyau temps réelNoyau temps réel

• Windows CE est temps-réel de part son Windows CE est temps-réel de part son architecturearchitecture• La majorité du code de Kernel et des drivers est La majorité du code de Kernel et des drivers est

interruptibleinterruptible

• Les parties non-interruptibles sont identifiées, Les parties non-interruptibles sont identifiées, déterministes et de durée très courte bornéedéterministes et de durée très courte bornée

• Les kernel et les drivers Windows CE 6.0 Les kernel et les drivers Windows CE 6.0 respectent ces contraintesrespectent ces contraintes

Page 46: Présentation de Windows CE 6 Olivier Bloch Relations techniques développeurs mobilité et embarqué Microsoft France obloch@microsoft.com

Quelques testsQuelques tests

• Temps de réponse calculéTemps de réponse calculé• Samsung SMDK2410Samsung SMDK2410

• ARM9 à 200 MHz (16x16 de cache)ARM9 à 200 MHz (16x16 de cache)

• Windows CE 5.0 avec shellWindows CE 5.0 avec shell

• Vidéo WMV jouéeVidéo WMV jouée

ISR starts IST starts

minimum      1.2 µs 31.7 µsaverage  3.3 µs 67.2 µsMaximum 13.3 µs 103.0 µs

Page 47: Présentation de Windows CE 6 Olivier Bloch Relations techniques développeurs mobilité et embarqué Microsoft France obloch@microsoft.com

Temps réel avec Windows CE 6.0 BetaTemps réel avec Windows CE 6.0 Beta

• Le nouveau kernel a les mêmes temps de Le nouveau kernel a les mêmes temps de réponse que celui de CE 5.0réponse que celui de CE 5.0

• Réduction de l’overhead des appels systèmeRéduction de l’overhead des appels système• Les performances application/Kernel seront Les performances application/Kernel seront

meilleuresmeilleures

• Les Drivers en user mode et les services Les Drivers en user mode et les services devraient subir de légères dépréciationsdevraient subir de légères dépréciations

Page 48: Présentation de Windows CE 6 Olivier Bloch Relations techniques développeurs mobilité et embarqué Microsoft France obloch@microsoft.com

Shared SourceShared Source

Page 49: Présentation de Windows CE 6 Olivier Bloch Relations techniques développeurs mobilité et embarqué Microsoft France obloch@microsoft.com

Windows CE Source ProgramsWindows CE Source Programs http://msdn.microsoft.com/embedded/usewinemb/ce/sharedsrccode/default.aspxhttp://msdn.microsoft.com/embedded/usewinemb/ce/sharedsrccode/default.aspx

• Programme Shared SourceProgramme Shared Source• Document. Debug. Adapt. Amélioration. Document. Debug. Adapt. Amélioration. ModificationModification. . Partage.Partage.• Librairie Kernel, File Manager, Device Drivers, et plus encore !Librairie Kernel, File Manager, Device Drivers, et plus encore !• Des millions de lignes de codeDes millions de lignes de code• Accessible à tout le mondeAccessible à tout le monde• Version “Academic” pour la création de support de coursVersion “Academic” pour la création de support de cours• Livré avec Platform Builder, EULALivré avec Platform Builder, EULA

• Programme Premium SourceProgramme Premium Source• Document. Debug. Adapt. Amélioration. Modification.Document. Debug. Adapt. Amélioration. Modification.• Stack réseau, GWESStack réseau, GWES• Disponible pour certains clients et partenairesDisponible pour certains clients et partenaires• Accès à un partage sécuriséAccès à un partage sécurisé

• Questions directes, retours, et requètes :Questions directes, retours, et requètes :• Nic Sagez: [email protected] Sagez: [email protected]

• Shared source contest : Shared source contest : http://www.windowsfordevices.com/articles/AT5277795134.htmlhttp://www.windowsfordevices.com/articles/AT5277795134.html

Page 50: Présentation de Windows CE 6 Olivier Bloch Relations techniques développeurs mobilité et embarqué Microsoft France obloch@microsoft.com

http://msdn.microsoft.com/embedded/getstart/basics/tutorialsce/default.aspxhttp://msdn.microsoft.com/embedded/getstart/basics/tutorialsce/default.aspx

http://www.microsoft.com/france/msdn/mobilite/default.mspxhttp://www.microsoft.com/france/msdn/mobilite/default.mspx

http://blogs.msdn.com/mikehall/http://blogs.msdn.com/mikehall/

ResourcesResources

Page 51: Présentation de Windows CE 6 Olivier Bloch Relations techniques développeurs mobilité et embarqué Microsoft France obloch@microsoft.com