From Convergence to Universal
Total Page:16
File Type:pdf, Size:1020Kb
Agenda . Convergence . One . Universal . Summary Convergence WHY . Mobile . OS: WinCE . Developer platform: .NetCF, Win32CE, OpenGL . PC . OS: Windows NT . Developer platform: Win32, .NET, Silverlight, XNA, DX . TV . OS (Media Center): Windows NT . OS (Xbox): NT-mutant . Developer platform Xbox: .NetCF/XNA on Win2K fork . Server and cloud . OS: Windows NT and Azure Convergence BENEFITS . Consistent developer story (internal/external) . No porting costs . Allow product groups to focus on customer value . Increased Agility . Innovation and bug fixes flow more rapidly . Engineering efficiency . Opportunity for improvements/cleanup Convergence OS Products Windows Windows Windows Mobile Servers Clients (Home, DNS (Enterprise, File Ultimate etc) / WinPE & Data Center Serv EV etc) DHC Friends er P Converged OS Mobile Client Server Core Core Core Presentation (DxCore, MFCore, etc) MinServer Core System Mincore Mincore PSPs Minwin Minwin PSPs One WHAT . Refactored a common subset of the OS . Build all of our products with that common subset on Win10 . Properties of this subset: Common API Surface . Common codebase Universal App Platform (UAP) . Mostly the same binaries (e.g. same kernel) . Exposes a subset of the Win32 API surface . Kernel mode DDIs are the same as Desktop OneCore Common Driver Surface Universal Driver One WHAT Supports Universal Drivers & Universal Apps Xbox SystemOS Desktop Windows & Server Mobile Required packages OneCoreUAP T Test packages; ex. VM drivers, tools Optional packages Product specific packages 0 Edition (WIM, VHD, FFU, etc.) OneCoreUAPTest IoT Athens Sakura UAP = Universal App Platform One WHAT Product Specific UI (Shell) Out of box experience (OOBE) OneCore-AppRuntime – Required by all MSFT OS-es that support universal apps and universal drivers Cortana Compositor OneCore – Optional Packages OneCore-DeviceRuntime Networking XAML Voice Cellular Dev. Tools & Extended Hyper-V Bluetooth USB Stack Transports Mobile IE Core CoreCLR IIS Cmd.exe WLAN Sensors Broadband Minuser WWA Connection & win32k Low Power NUI Drivers NFC Sharing Buses Input mgmt. DX Network & routing Management PowerShell Data Usage Required packages Microsoft-OneCore-AppRuntime package OneCore - Required T Test packages; ex. VM drivers, tools ETW & File System Servicing Usermode Storage Auth COM Telemetry Support Stack Power Infra Optional packages C/C++ Resource Core Product specific packages Usermode PnP Crypto Kernel HAL Manager Networking Runtime 0 Edition (WIM, VHD, FFU, etc.) One WHAT Win32 APIs WinRT APIs Universal app developers windowsapp.lib WinRT Classes 1. Universal driver developers onecoreuap.lib 2. System code devs (GPU perf tool) Full Win32 kernel32.lib & advapi32.lib devs Overlappin g API surface Universal WHAT . Based on OneCore . Kernel/User mode driver . Installed as part of a Universal Driver Package. Universal WHAT . Runs on all Windows editions that includes the Windows Universal Platform (WUP) . Desktop, mobile, IoT . All converged device driver stacks are included . Value Proposition: . Write 1 driver binary per architecture works on desktop, mobile, IoT . Single API surface from drivers and apps using WUP . Any Windows edition can be used as a driver test platform . Sell components to desktop as well as mobile OEMs/ODMS without needing a different driver Universal DO 1. Install Visual Studio 2. Install WDK . Includes all headers and libs needed for driver development 3. Select Universal Driver as Target 4. Select architecture (ARM, x86, x64) 5. Add your code, headers, libs, etc 6. Compile / debug / etc. Loop until done 7. Deploy to target machine (dev board) 8. Run available tests Universal VALIDATION TOOL . Included in the WDK . "C:\Program Files (x86)\Windows Kits\8.2\bin\x86\apivalidator.exe“ . Runs as a post build process for Universal Drivers . Also can be run on command line . Flags APIs used in the driver project that aren’t part of the Windows Universal Platform Universal IMPACT . Kernel mode drivers . Mostly backwards compatible . Minimal changes needed . User mode drivers and services . Not all Win32 APIs are available as part of Windows Universal Platform . A binary (DLL, EXE) linked with missing APIs will not load . Replacement APIs may be available in some cases . Re-design/re-implementation will be required if APIs are not available Universal PORTING . The developer: . Developer launches VS and opens existing driver project written for win8 . The project get upgraded as part of WDK by default . Changes TargetPlatform settings from “Desktop” to “Universal” . Builds the driver . May get build errors because the driver is making calls to APIs not available for universal drivers . Remove/replace API calls . Builds driver clean, and deploys Summary PC U N MOBILE I V TV ONE E R SERVER/CLOUD S A L (c) 2015 Microsoft Corporation. All rights reserved. This document is provided "as-is." Information and views expressed in this document, including URL and other Internet Web site references, may change without notice. You bear the risk of using it. This document does not provide you with any legal rights to any intellectual property in any Microsoft product. You may copy and use this document for your internal, reference purposes. Some information relates to pre-released product which may be substantially modified before it’s commercially released. Microsoft makes no warranties, express or implied, with respect to the information provided here..