Convergence · Developer platform Xbox: .NetCF/XNA on Win2K fork Server and cloud OS: Windows NT...

18

Transcript of Convergence · Developer platform Xbox: .NetCF/XNA on Win2K fork Server and cloud OS: Windows NT...

Page 1: Convergence · Developer platform Xbox: .NetCF/XNA on Win2K fork Server and cloud OS: Windows NT and Azure WHY Convergence Consistent developer story (internal/external) ... Presentation
Page 2: Convergence · Developer platform Xbox: .NetCF/XNA on Win2K fork Server and cloud OS: Windows NT and Azure WHY Convergence Consistent developer story (internal/external) ... Presentation
Page 3: Convergence · Developer platform Xbox: .NetCF/XNA on Win2K fork Server and cloud OS: Windows NT and Azure WHY Convergence Consistent developer story (internal/external) ... Presentation

Convergence

One

Universal

Summary

Agenda

Page 4: Convergence · Developer platform Xbox: .NetCF/XNA on Win2K fork Server and cloud OS: Windows NT and Azure WHY Convergence Consistent developer story (internal/external) ... Presentation

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

WHY

Convergence

Page 5: Convergence · Developer platform Xbox: .NetCF/XNA on Win2K fork Server and cloud OS: Windows NT and Azure WHY Convergence Consistent developer story (internal/external) ... Presentation

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

BENEFITS

Convergence

Page 6: Convergence · Developer platform Xbox: .NetCF/XNA on Win2K fork Server and cloud OS: Windows NT and Azure WHY Convergence Consistent developer story (internal/external) ... Presentation

OS

Convergence

Windows Servers (Enterprise, Data Center etc)

Products

MinServer

WinPE &

FriendsEV

DNS

/

DHC

P

File

Serv

er

Presentation (DxCore, MFCore, etc)

Windows Mobile

Mobile

Core

Server

Core

Client

Core

Windows Clients (Home, Ultimate etc)

Core System

Minwin

MincoreMincore

PSPs

Minwin

PSPs

Converged OS

Page 7: Convergence · Developer platform Xbox: .NetCF/XNA on Win2K fork Server and cloud OS: Windows NT and Azure WHY Convergence Consistent developer story (internal/external) ... Presentation

WHAT

One

Refactored a common subset of the OS

Build all of our products with that common subset on Win10

Properties of this subset:

Common codebase

Mostly the same binaries (e.g. same kernel)

Exposes a subset of the Win32 API surface

Kernel mode DDIs are the same as Desktop

Common API Surface

Universal App Platform (UAP)

Common Driver Surface

Universal Driver

OneCore

Page 8: Convergence · Developer platform Xbox: .NetCF/XNA on Win2K fork Server and cloud OS: Windows NT and Azure WHY Convergence Consistent developer story (internal/external) ... Presentation

WHAT

One

Xbox

SystemOS

OneCoreUAP

Desktop

& ServerWindows

Mobile

IoT Athens

Supports

Universal Drivers

& Universal Apps

Sakura

Edition (WIM, VHD, FFU, etc.)

Optional packages

0

T Test packages; ex. VM drivers, tools

Product specific packages

Required packages

UAP = Universal App Platform

OneCoreUAPTest

Page 9: Convergence · Developer platform Xbox: .NetCF/XNA on Win2K fork Server and cloud OS: Windows NT and Azure WHY Convergence Consistent developer story (internal/external) ... Presentation

WHAT

One

Kernel HALCore

Networking

File System

Support

C/C++

Runtime

ETW &

Telemetry

CryptoUsermode PnP

Usermode

Power Infra

Servicing

StackAuthStorage

Resource

Manager

OneCore - Required

Hyper-V

COM

Mobile

Broadband

Voice Cellular

Stack

PowerShell

Dev. Tools &

Transports

IIS

DX

Minuser

& win32k

Input mgmt.

& routing

Compositor

XAML

IE Core

WWA

OneCore-AppRuntime – Required by all MSFT OS-es that support

universal apps and

universal driversCortana

CoreCLR

Networking

Extended

NUI

OneCore – Optional Packages

Management

Cmd.exe

Product Specific Out of box experience (OOBE)UI (Shell)

Edition (WIM, VHD, FFU, etc.)

Optional packages

0

T Test packages; ex. VM drivers, tools

Product specific packages

Required packages

Microsoft-OneCore-AppRuntime package

DriversConnection

Sharing

Network

Data Usage

Low Power

Buses

WLAN

NFC

USBBluetooth

Sensors

OneCore-DeviceRuntime

Page 10: Convergence · Developer platform Xbox: .NetCF/XNA on Win2K fork Server and cloud OS: Windows NT and Azure WHY Convergence Consistent developer story (internal/external) ... Presentation

WHAT

One

1. Universal driver developers

2. System code devs (GPU perf tool)

WinRT APIsWin32 APIs

onecoreuap.lib

Overlappin

g API

surface

WinRT

Classes

Universal app developers

kernel32.lib & advapi32.libFull Win32

devs

windowsapp.lib

Page 11: Convergence · Developer platform Xbox: .NetCF/XNA on Win2K fork Server and cloud OS: Windows NT and Azure WHY Convergence Consistent developer story (internal/external) ... Presentation

Based on OneCore

Kernel/User mode driver

Installed as part of a Universal Driver Package.

WHAT

Universal

Page 12: Convergence · Developer platform Xbox: .NetCF/XNA on Win2K fork Server and cloud OS: Windows NT and Azure WHY Convergence Consistent developer story (internal/external) ... Presentation

WHAT

Universal

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

Page 13: Convergence · Developer platform Xbox: .NetCF/XNA on Win2K fork Server and cloud OS: Windows NT and Azure WHY Convergence Consistent developer story (internal/external) ... Presentation

DO

Universal

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

Page 14: Convergence · Developer platform Xbox: .NetCF/XNA on Win2K fork Server and cloud OS: Windows NT and Azure WHY Convergence Consistent developer story (internal/external) ... Presentation

VALIDATION TOOL

Universal

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

Page 15: Convergence · Developer platform Xbox: .NetCF/XNA on Win2K fork Server and cloud OS: Windows NT and Azure WHY Convergence Consistent developer story (internal/external) ... Presentation

IMPACT

Universal

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

Page 16: Convergence · Developer platform Xbox: .NetCF/XNA on Win2K fork Server and cloud OS: Windows NT and Azure WHY Convergence Consistent developer story (internal/external) ... Presentation

PORTING

Universal

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

Page 17: Convergence · Developer platform Xbox: .NetCF/XNA on Win2K fork Server and cloud OS: Windows NT and Azure WHY Convergence Consistent developer story (internal/external) ... Presentation

Summary

ON

E

PC

TV

MOBILE

SERVER/CLOUD

UNIVERSAL

Page 18: Convergence · Developer platform Xbox: .NetCF/XNA on Win2K fork Server and cloud OS: Windows NT and Azure WHY Convergence Consistent developer story (internal/external) ... Presentation

(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.