Upload
norbert-leclercq
View
113
Download
6
Embed Size (px)
Citation preview
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
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
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 ?
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
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
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
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
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
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
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
L’évolution des outilsL’évolution des outils
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
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
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
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
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)
DEMO : L’évolution des outilsDEMO : L’évolution des outils
Le nouveau noyauLe nouveau noyau
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
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
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
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
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
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
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%
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
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
DEMO : Le nouveau noyauDEMO : Le nouveau noyau
Les autres nouveautés en revueLes autres nouveautés en revue
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
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
Compatibilité ascendanteCompatibilité ascendante
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
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
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
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
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
Les BSPs et driversLes BSPs et drivers
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
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)
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
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
Le temps réelLe temps réel
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
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
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
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
Shared SourceShared Source
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
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