La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Introduction Windows Academic Program CRKAperçuDémonstrationWRKAperçuDémonstrationProjectOZAperçuDémonstration Quelques sujet de réflexion à des fins.

Présentations similaires


Présentation au sujet: "Introduction Windows Academic Program CRKAperçuDémonstrationWRKAperçuDémonstrationProjectOZAperçuDémonstration Quelques sujet de réflexion à des fins."— Transcription de la présentation:

1

2 Introduction Windows Academic Program CRKAperçuDémonstrationWRKAperçuDémonstrationProjectOZAperçuDémonstration Quelques sujet de réflexion à des fins d’enseignement

3 Nous pensons que les technologies de Microsoft peuvent avoir un rôle à jouer en matière d’enseignement en informatique •Place des solutions de Microsoft sur le marché •Innovation et recherche •Fonctionnalités orientées vers l’utilisateur Nous savons que l’enseignement en informatique est important pour Microsoft •Une source de capital humain et intellectuel dont l’industrie informatique ne peut se passer •La qualité de l’enseignement détermine les compétences techniques et la culture de Nos clients Nos partenaires Nos collaborateurs

4 Partage sélectif Partage Public Partage collaboratif WAP Programme Windows pour l’enseignement et la recherche (Windows Academic Program)

5 CRK WRK ProjectOZ Windows Operating Systems Internals Curriculum Resource Kit : Présentations, expériences, TP, questionnaires et sujets de TD pour introduire l’étude du cas du noyau de Windows dans un cours sur les systèmes d’exploitation ProjectOZ - Le projet d’un environnement de système d’exploitation qui utilise les interfaces système natives de Windows pour fournir des abstractions simples et « propres » en mode user du CPU, de la MMU, des mécanismes de trap et de la mémoire physique qui puisse être utilisé pour réaliser des expériences sur les principes des OS Windows Research Kernel : Les sources du cœur du noyau avec les binaires intégrés au sein d’un environnement permettant de construire et de tester des versions expérimentales du noyau pour les utiliser afin d’enseigner et de rechercher

6

7 Andreas Polze est le professeur en système d’exploitation et en middleware au Hasso-Plattner-Institute for Software Engineering de l’université de Potsdam en Allemagne. Il a reçu son doctorat de l’université libre de Berlin en 1994 ainsi qu’une habilitation de l’université de Humboldt à Berlin en 2001, en computer science. Sa thèse d’habilitation porte sur Predictable Computing in Multicomputer-Systems. Ses sujets actuels de recherche portent sur l’interconnexion du middleware et les systèmes embarqués, la mobilité et la configuration adaptative des systèmes ainsi que la disponibilité des services de bout en bout au sein des plateformes middleware standard. A l’université de Potsdam, il enseigne l’architecture des systèmes d’exploitation, les middlewares basés composants ainsi que sur le calcul distribué prévisible. Le curriculum de formation de l’université inclus des cours sur les systèmes d’exploitation à partir de plateformes standard (Windows 2000/XP, Mac OS X (BSD Unix), et Solaris) ainsi que sur les systèmes embarqués (Windows CE, Linux embarqué). Le professeur Polze a été professeur invité au sein de la Dynamic Systems Unit du Software Engineering Institute, à l’université de Carnegie Mellon (Pittsburgh, USA), où il a travaillé sur les systèmes temps réel dans des environnement middleware standard (CORBA) ainsi qu’avec le Real-Time Systems Laboratory à l’université d’Urbana-Champaign en Illinois. Mark Russinovich est l’architecte en chef et le cofondateur de Winternals Software (www.winternals.com), une société spécialisée dans la réalisation de logiciels avancés pour Windows. Mark est le co-auteur de Inside Windows 2000, 3 ème édition (Microsoft Press) avec David Solomon et de son successeur, Windows Internals, 4 ème édition (Microsoft Press). Mark est un Microsoft Most Valuable Professional (MVP) et un contributeur actif à Windows IT Pro magazine au sein de la chronique Windows Power Tools. C’est aussi un conférencier habituel de Microsoft Tech Ed, IT Forum, Windows IT Pro Magazine's Connections et Redmond Magazine's TechMentor. Mark est diplômé d’un B.S. de Carnegie Mellon University et d’un M.S. du Rensselaer Polytechnic Institute en computer engineering. Il est également titulaire d’un PhD (1994), de Carnegie Mellon University en computer engineering. Winternals Software a été racheté par Microsoft au mois de juillet derniet. Mark est maintenant Technical Fellow de Microsoft David Solomon (www.solsem.com) enseigne le fonctionnement interne de Windows aux développeurs et aux ingénieurs système dans le monde entier, y compris au sein de Microsoft. Il est le co-auteur de Windows Internals, 4 ème édition, le livre « officiel » de Microsoft Press sur les internes du noyau de Windows, ainsi que la précédente édition, Inside Windows David écrivit aussi Inside Windows NT, 2 ème édition et Windows NT for OpenVMS Professionals. Il a aussi co-créé la série de formations vidéo Windows Internals COMPLETE dont Microsoft a acheté les droits d’usage pour former ses collaborateurs. David a été conférencier à de nombreuses conférences TechEd et PDC. Il est récipiendaire du diplôme Microsoft Support Most Valuable Professional (MVP) en 1993 et IndustrieUniversité

8 Couvre toutes les unités de l’ACM/IEEE OS BOK (Body Of Knowledge) et plus encore (fondé sur Windows XP/Server 2003) Capable de couvrir plusieurs niveaux d’enseignement Modulaire (peut être utilisé dans sa totalité ou seulement en partie) Contient cas d’étude et comparaisons Les modules de base comprennent les éléments nécessaires pour être incorporés au sein d’un cours de base complet d’un semestre sur les systèmes d’exploitation. Les modules couvrent les éléments spécifiques de Windows dans le cours de base et les unités électives telles que définies dans le OS BOK of Computing Curricula 2001 Les modules avancés comprennent les éléments nécessaires pour être incorporés au sein d’un cours avancé d’un semestre sur les systèmes d’exploitation. Les modules couvrent les éléments spécifiques de Windows dans le cours de base et les unités électives telles que définies dans le OS BOK of Computing Curricula 2001 ainsi que 3 unités supplémentaires

9 a. Core topics  OS1. Overview of operating systems  OS2. Operating system principles  OS3. Concurrency  OS4. Scheduling and dispatch  OS5. Memory management b. Elective topics OS6. Device management  OS7. Security and protection OS8. File systems OS9. Real-time and embedded systems OS10. Fault tolerance OS11. System perf evaluation & troubleshooting OS12. Scripting c. Supplementary topics OS-A. Windows networking OS-B. Comparing the Linux and Windows Kernels OS-C. Windows – Unix Interoperability TP et exercices, plus références aux sources du WRK Disponible maintenant en

10

11

12 Permettre aux étudiants d’étudier les sources, de les modifier et de construire des projets Fournir un meilleur support pour la recherche et la production de publications fondées sur les « internes » de Windows Rendre plus facile aux étudiants et aux enseignants la comparaison entre Windows et d’autres systèmes d’exploitation Encourager la création d’ouvrages et de contenus de formation sur le noyau de Windows Simplifier les licences d’accès aux sources

13 Versions : Windows Server 2003 (x86/x64) SP1 et Windows XP x64 Processes, threads, LPC, VM, scheduler, object manager, I/O manager, synchronization, worker threads, kernel memory manager, … A peu près tout ce qui est dans NTOS sauf le plug-and-play, le power-management et du code spécialisé tel que driver verifier, splash screen, branding, timebomb, etc. Le code qui n’appartient pas au noyau (drivers, file systems, networking) provient du DDK et de l’IFSKIT Simplifié à quelques endroits, commentaires nettoyés, amélioration de l’orthographe Ce qui ne fait pas partir des sources est encapsulé dans une librairie binaire Outils de constructions et de paramétrages, utilitaires Outils pour tracer, surveiller les performances, journaliser, déboguer, etc. Packagé avec Packagé avec Un sous-ensemble du DDK et de la documentation pour travailler avec des drivers Les sources du système de fichiers de l’IFSKIT Le produit VirtualPC Les tests de régression du noyau La documentation des API Windows natives A peu près lignes de code source

14 Objectifs Faciliter l’acceptation des conditions de licence dans un environnement d’enseignement et de recherche Les étudiants et les élèves peuvent l’utiliser dans les classes et les laboratoires Type de licence Usage non commercial, usage pour l’enseignement ou la recherche seulement ; possibilité de créer des travaux dérivés pour des objectifs non commerciaux Critère d’éligibilité Disponible pour les facultés, les écoles et les étudiants et les élèves partout dans le monde Scenarios d’usage Visualiser, copier, reproduire et distribuer au sein de l’institution concernée Possibilité de modifier pour l’enseignement et l’expérimentation Permettre la production d’un contenu destiné à l’enseignement ou aux publications de recherche en autorisant l’inclusion de fragments de code source Peut être utilisé dans des ouvrages ou des publications académiques et au sein de forum communautaires Il faut simplement reprendre les termes du copyright Microsoft Partager les travaux dérivés au sein de la communauté académique

15 2/1989 Début du codage 7/1993 NT 3.1 9/1994 NT 3.5 5/1995 NT /1996 NT /1999 NT 5.0 Windows /2001NT 5.1 Windows XP 3/2003NT 5.2 Server /2004NT 5.2 Windows XP SP2 4/2005 NT 5.2 Windows XP 64 Bit Edition (et WS03SP1) 2006 NT 6.0 Windows Vista (client) WRK

16 User-mode Kernel-mode Trap interface / LPC ntdll/run-time library Win32 GUIProcs and threads Kernel run-time/Hardware Adaptation Layer Virtual memoryI/O ManagerSecurity refmon Cache mgr File filters File systems Volume mgrs Device stacks Scheduler Kernel32User32/GDI DLLs Applications System Services Object Manager/Configuration Management (registry) Filesys run-time Synchronization Subsystem servers Login/GINA Critical services Net devices Net protocols Net Interfaces

17 CacheManager Device drivers VirtualMemoryProcesses & Threads Security PnP/Power Manager I/O Manager Hardware interfaces (read/write port, timers, clocks, DMA, cache control, etc.) Replicator Alerter Service Controller WinLogon RPC Sous-systèmes UserApplication Subsystem DLLs POSIX OS/2 SessionManager Processus système ServicesApplications Filesystems Object management / Executive RTL Kernel Hardware Abstraction Layer (HAL) EventLogger UserMode SystemThreads KernelMode Executive API Win32 NTDLL.DLL

18 Hautement multithread Modèle d’E/S complètement asynchrone Ordonnancement basé sur les threads Gestionnaire d’objets (object-manager) qui founit une gestion unifiée des Structures de données du noyau Les références kernel Les références user (handles) Un espace de nommage La synchronisation des objets L’affectation des ressources La partage inter-processus Un moniteur de référence de sécurité centralisé et basé sur des ACL Une zone de stockage de la configuration découplée sur système de fichiers

19 Un modèle d’E/S extensible et basé sur des filtres, avec des drivers en couche, des modèles de périphériques standard, des notifications, des traces, une journalisation, un espace de nommage, des services et des sous-systèmes Un espace d’adressage virtuel géré séparément des objets mémoire Des fonctionnalités de gestion de mémoire virtuelle avancées (gestion par les applications des adresses virtuelles, mémoire physique, entrées – sorties, dirty bits, grandes pages) Plug-and-play, power-management Librairie système mappée au sein de chaque processus pour fournir des points d’entrée dignes de confiance

20 Documentation de la conception de NT OS/2 : Core OS FichierTitreAuteur (s) dwintroNT OS/2 Design Workbook IntroductionLou Perazzoli keNT OS/2 Kernel Specification David N. Cutler, Bryan M. Willman alertsNT OS/2 Alerts Design NoteDavid N. Cutler apcNT OS/2 APC Design NoteDavid N. Cutler obNT OS/2 Object Management SpecificationSteven R. Wood procNT OS/2 Process StructureMark Lucovsky suspendNT OS/2 Suspend/Resume Design NoteDavid N. Cutler attprocNT OS/2 Attach Process Design NoteDavid N. Cutler vmNT OS/2 Virtual Memory SpecificationLou Perazzoli vmdesignNT OS/2 Memory Management Design NoteLou Perazzoli ioNT OS/2 I/O System SpecificationDarryl E. Havens irpNT OS/2 IRP Language DefinitionGary D. Kimura namepipeNT OS/2 Named Pipe SpecificationDavid Cutler & Gary Kimura mailslotNT OS/2 Mailslot SpecificationManny Weiser rsmWindows NT Session Management and ControlMark Lucovsky fsdesignNT OS/2 File System Design NoteGary D. Kimura fsrtlNT OS/2 File System Support Routines SpecificationGary D. Kimura

21 Documentation de la conception de NT OS/2 : Core OS FichierTitreAuteur(s) semNT OS/2 Event – Semaphore SpecificationLou Perazzoli argumentNT OS/2 Argument Validation SpecificationDavid N. Cutler timerNT OS/2 Timer SpecificationDavid N. Cutler codingNT OS/2 Coding Conventions Mark Lucovsky, Helen Custer ulibcodeNT Utilities Coding ConventionsDavid J. Gilman exceptnNT OS/2 Exception Handling SpecificationDavid N. Cutler os2OS/2 Emulation Subsystem SpecificationSteven R. Wood statusNT OS/2 Status Code SpecificationDarryl E. Havens ntdesrtlNT OS/2 Subsystem Design RationalMark H. Lucovsky resourceNT OS/2 Shared Resource SpecificationGary D. Kimura execsuppNT OS/2 Executive Support Routines SpecificationDavid Treadwell supportNT OS/2 Interlocked Support Routines SpecificationDavid N. Cutler ddWindows NT Driver Model SpecificationDarryl E. Havens oplockNT OS/2 Opportunistic Locking Design NoteDarryl Havens, et al memioNT OS/2 Memory Management Guide for I/OLou Perazzoli timeNT OS/2 Time Conversion SpecificationGary D. Kimura mutantNT OS/2 Mutant SpecificationDavid N. Cutler

22 Documentation de la conception de NT OS/2 : Core OS FichiersTitreAuteur(s) prefixNT OS/2 Prefix Table SpecificationGary D. Kimura startupNT OS/2 System Startup Design NoteMark Lucovsky dbgNT OS/2 Debug ArchitectureMark Lucovsky coffNT OS/2 Linker/Librarian/Image Format SpecMichael J. O'Leary cacheNT OS/2 Caching Design NoteTom Miller ntutilNT OS/2 Utility Design SpecificationSteven D. Rowe implanNT OS/2 Product Description and Implementation PlanDavid N. Cutler basecontNT OS Base Product ContentsLou Perazzoli

23

24 arbPlug-and-play arbiterlpcLocal inter-process calls cacheCache ManagermmMemory Manager configRegistrynlsInternationalization code dbgkUser-mode debuggingobObject Manager exExecutive functionsperfPerformance Tracing fsrtlFile system run-timepoPower Management fstubFile sys boot interfacepsProcess/thread incKernel-specific includesrawRaw volume driver initBoot codertlKernel run-time library io\iomgrI/O managerseSecurity Ref Monitor io\pnpmgrPlug-and-play managervdmVirtual Dos Machine kd64Kernel debug interfaceverifierDriver Verifier keKernel (scheduler, etc)wmiWindows Mgmt Interface

25 Organisation des sources Le répertoire public\ contient des fichiers include partagés par l’ensemble du système base\ntos\ contient les sources du noyau de Windows

26 cache\ cache manager config\ registry implementation dbgk\ user-mode debugger support ex\ executive functions (kernel heap, synchronization, time) fsrtl\ file system run-time support io\ I/O manager ke\ scheduler, CPU management, low-level synchronization lpc\ local procedure call implementation mm\ virtual memory manager ob\ kernel object manager ps\ process/thread support se\ security functions wmi\ Windows Management Instrumentation inc\ NTOS-only include files rtl\ kernel run-time support init\ kernel startup

27 1.Copy the WRK into a directory, say %wrk%. 2.set arch=x86 [or amd64] 3.path %wrk%\tools\%arch%;%path% 4.cd %wrk%\base\ntos 5.nmake -nologo %arch%= will produce kernel files in BUILD\EXE\%arch% [wrkx86.* or wrkx64.*] 6.copy the kernel to %SystemRoot%\system32\ 7.if x86, find the Multi-processor version of hal.dll [see below] 8.add a line to C:\boot.ini of the target system to boot this kernel and the MP hal [see below] 9.reboot and select the boot option for the new kernel 10.you will boot up on a kernel you built/linked yourself! [always keep the original boot.ini line and kernel/hal available so you can still boot your system if something fails with your WRK kernel modifications] 11.set up a debugger [see below]

28 Multi-processor hal (x86 only, amd64 hals are all MP) All hals are renamed hal.dll, so you have to use the link command to see what type of hal hal.dll really is: link -dump -all hal.dll | findstr pdb The MP hals have an 'm' in the native name of the hal, e.g. halmacpi.dll You may already have an MP hal installed on UP systems, due to hyperthreading. If the hal isn't MP, you need to find the MP hal that corresponds to the current hal the target system does have, i.e. halacpi.dll -> halacpim.dll ; ACPI PIC-based PC [used by VirtualPC] halaacpi.dll -> halmacpi.dll ; ACPI APIC-based PC halapic.dll -> halmps.dll ; MPS Look in the WRK WS03SP1HALS\x86 directory for the MP hal you need.

29 Edit boot.ini (you may have to use attrib -h -s -r first) Copy the line for the first operating system listed to the end of the file and edit it. [boot loader] timeout=30 default=multi(0)disk(0)rdisk(0)partition(2)\WINDOWS [operating systems] multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Windows Server 2003, Standard" multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="test" /kernel=wrkx86.exe /hal=halmacpi.dll Note that the filenames must be short (8.3) names. You can add additional options for debugging (as specified in the WinDbg/KD help).

30 Les débogueurs WinDBG/KD fonctionnent avec le WRK La documentation est assez complète et comprend les informations nécessaires pour savoir comment déboguer à travers un port série, localement (en examinant les données du noyau depuis le mode user) ainsi que pour déboguer des noyaux à travers Virtual PC Les versions des débogueurs WinDBG/KD sont disponibles avec les Curriculum Resource Kit Tools Répertoire "CurriculumResourceKit-CRK\CRKTools\Debugging Tools“ La dernière version des Windows Debugging Tools peut être téléchargée depuis

31

32

33 Un environnement pour les projets OS utilisant NTAPI Fournit des abstractions simples en mode user CPU, MMU, mécanisme de trap et mémoire physique Supporte les expérimentations des principes des OS Utilise les vraies fonctionnalités de l’OS plutôt qu’un « jouet » de simulation Réduit la complexité nécessaire pour apprendre/construire des expériences Un environnement de développement simple, utilisant des outils standards pour construire, déboguer et instrumenter Encourage la réflexion active des étudiants Basé sur le projet SPACE UCSB (Probert et Bruno)

34 Collaboration entre différents groupes au sein de Microsoft : MSR University Relations, Windows Kernel & Architecture Team et le Source Asset Team Le but est de fournir un meilleur support pour l’enseignement et la recherche en utilisant Windows Fournit une alternative à Nachos (Not Another Completely Heuristic Operating System - pour les TP et les projets de programmation de système d’exploitation Nachos est essentiellement un simulateur (comme XINU) Aujourd’hui, on ne dispose que de simulateurs ou de système d’exploitations Unix réduits comme Minix

35 Noyau Windows API NT native SPACE.exe BasicOZ ProjectOZ Workloads Abstraction par SPACE de CPU, MMU, Traps Implémentation initiale de l’OS 1.Petite quantité de code 2.Les étudiants peuvent s’en inspirer pour faire mieux Workloads, tests, instrumentation Projets étudiants et expériences Windows ProjectOZ s’exécute en mode user sur un système Windows standard

36 Une implémentation très simple d’OS Une implémentation très simple d’OS Fonctionnalités familières (processus, threads, user/kernel, mémoire virtuelle, périphériques, espaces de nommage) Implémentation minimale en utilisant des algorithmes très simples et fournissant des fonctionnalités minimales Un petit nombre de lignes de code (~2-3 k) Fondé sur les primitives de SPACE construites sur NTAPI Objectifs Objectifs Les étudiants ont une quantité limitée de code à lire et à modifier Les abstractions sous-jacentes sont propres et simples BasicOZ peut sembler trop rudimentaire ; cela permet aux étudiants de donner libre court à leur inspiration

37

38

39 UNIX (Années 70) NT (Années 80/90) ?? Années (2000/2010) Espace d’adressage 16 bits, swapping32 bits, mémoire virtuelle linéaire 64-bit, ?? Perf. CPU KIPSMIPSGIPS Synchronisation IRQLTest&Set, Cmpr&Swap Transactional memory ? Taille mémoire KBytesMBytesGBytes Parallélisme hardware Aucun SMPNombreux coeurs Stockage de masse KO, Déplacements lents MO, Déplacements lents GO, pas de déplacements, TO Inf. Distribuée BandeClient/serveurPair à Pair Les anciennes conceptions d’OS peuvent (bien sûr) être portés, mais  Comment concevriez-vous un OS à partir d’une feuille blanche ? Comme l’architecture des CPU doit-elle évoluer?

40 Le thread est l’unité de parallélisme Mécanismes unifiés de synchronisation et de nommage Espace de nommage non enraciné dans le système de fichiers Gestion séparée des adresses virtuelles et des objets en mémoire Modèle d’E/S asynchrone et extensible (filtrage) Sécurité basée ACL, identité basée jetons Mécanisme de stockage de configuration intégré Librairie système mappée au sein de chaque processus

41 Architecture de sécurité, mécanismes et outils Modèles pour les applications afin de gérer les états et extensibilité du système Analyse de code en utilisant des outils comme le compilateur Phoenix Intégration des technologies managées et non managées Implémentation d’abstractions plus simple du noyau Services du noyau basés objet Services du noyau en mode kernel (drivers, extensions) Gestion des versions et des mises à jour pour la plateforme et les applications Gestion de la complexité Fédération du traitement distribué et des périphériques de stockage

42 CRK Disponible en téléchargement ProjectOZ et WRK Disponibles en téléchargement Feedback Contactez-nous en Plus d’information sur WAP et outils associés Site Web Shared Source sAcademic.mspx sAcademic.mspx sAcademic.mspx Forums pour discussion Curriculum sur MSDNAA

43 © 2007 Microsoft France Votre potentiel, notre passion TM


Télécharger ppt "Introduction Windows Academic Program CRKAperçuDémonstrationWRKAperçuDémonstrationProjectOZAperçuDémonstration Quelques sujet de réflexion à des fins."

Présentations similaires


Annonces Google