미리보는 windows ce 6.0

35
미미미미 Windows CE 6.0 미미미미 미미미미미미 미미미미미 미미미

Upload: matt

Post on 02-Feb-2016

90 views

Category:

Documents


0 download

DESCRIPTION

미리보는 Windows CE 6.0. 어드밴텍 테크놀로지스 기술지원팀 백승철. Macallan Windows CE 5.0 8/2004. Yamazaki Windows CE 6 H2/2006. Alder Windows CE 1.0 11/1996. Cedar Windows CE 3.0 4/2000. Talisker Windows CE .NET 4.0 1/2002. Birch Windows CE 2.0 11/1997. 현재 까지의 Windows CE 의 로드맵. Tomatin NMD FP. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 미리보는  Windows CE 6.0

미리보는 Windows CE 6.0미리보는 Windows CE 6.0

어드밴텍 테크놀로지스기술지원팀 백승철

어드밴텍 테크놀로지스기술지원팀 백승철

Page 2: 미리보는  Windows CE 6.0

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

현재 까지의 현재 까지의 Windows CEWindows CE 의 로드맵의 로드맵현재 까지의 현재 까지의 Windows CEWindows CE 의 로드맵의 로드맵

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 3: 미리보는  Windows CE 6.0

Windows CE 6 가능 디바이스Windows CE 6 가능 디바이스

디바이스 종류HD-DVD players

Networked Media Devices

IP Set-Top boxes

VoIP phones

Thin clients

Windows Mobile

Windows Automotive

Windows Mobile for Automotive

Portable Media Players

기타

디바이스 종류HD-DVD players

Networked Media Devices

IP Set-Top boxes

VoIP phones

Thin clients

Windows Mobile

Windows Automotive

Windows Mobile for Automotive

Portable Media Players

기타

Page 4: 미리보는  Windows CE 6.0

Family BSP KernelWill be in the beta release

(Yes/No)

ARM

Intel Mainstone III (C-Step)

ARMv4i Yes

Plato VoIP Reference Platform

ARMv4i Yes

Device Emulator ARMv4i Yes

Aruba Board ARMv4i No

TI OMAP 2420 ARMv6 Yes

MIPSNEC Rockhopper SG2 Vr5500

MIPSII & II_PF, MIPSIV & IV_FP

Yes

SH4Hitachi/Renesas Aspen

SH4 Yes

x86 x86 (CEPC) X86 Yes

Windows CE 6 베타 BSPWindows CE 6 베타 BSP

Page 5: 미리보는  Windows CE 6.0

Windows CE 5.0 가상메모리 구조Windows CE 5.0 가상메모리 구조

Page 6: 미리보는  Windows CE 6.0

Windows CE 5.0 가상메모리 구조

Windows CE 5.0 가상메모리 구조가상메모리 구조

2 GB ( 커널 )

2 GB ( 프로세서 )

최대 32 프로세스 각각의 프로세스는 최대 32 MB

32 개의 슬롯구조

메모리 공유유저 공간의 상위 반을 공유 메모리로 쓴다모든 프로세서들에 의해 읽거나 쓰는 공간

가상메모리 구조2 GB ( 커널 )

2 GB ( 프로세서 )

최대 32 프로세스 각각의 프로세스는 최대 32 MB

32 개의 슬롯구조

메모리 공유유저 공간의 상위 반을 공유 메모리로 쓴다모든 프로세서들에 의해 읽거나 쓰는 공간

Page 7: 미리보는  Windows CE 6.0

::::

Windows CE 5.0 가상메모리 구조

Windows CE 5.0 가상메모리 구조

Shared MemoryShared Memory

KernelKernel

32 32 프로세서 프로세서 슬롯슬롯

2 GB 2 GB 프로세서프로세서

실행되는 슬롯실행되는 슬롯Slot 0 – ExecutionSlot 0 – ExecutionSlot 1 – ROM DLLsSlot 1 – ROM DLLs

Slot 2 – NK.exeSlot 2 – NK.exeSlot 3 – Filesys.exeSlot 3 – Filesys.exeSlot 4 – Device.exeSlot 4 – Device.exeSlot 5 – GWES.exeSlot 5 – GWES.exe

Slot 31Slot 31Slot 32Slot 32

Slot 7 – Services.exeSlot 7 – Services.exe

2 GB2 GB커널 공간커널 공간

Slot 7Slot 7

Page 8: 미리보는  Windows CE 6.0

Windows CE 6.0 가상메모리 구조Windows CE 6.0 가상메모리 구조

Page 9: 미리보는  Windows CE 6.0

Windows CE 6.0 의 ” 신규 커널”Windows CE 6.0 의 ” 신규 커널”

프로세서당 2 GB 의 가상메모리 지원최대 32,000 프로세서 지원통합커널

핵심적인 OS 요소들을 커널 공간으로 이동

시스템 성능 향상

프로세서당 2 GB 의 가상메모리 지원최대 32,000 프로세서 지원통합커널

핵심적인 OS 요소들을 커널 공간으로 이동

시스템 성능 향상

Page 10: 미리보는  Windows CE 6.0

32 K프로세서

프로세서당 프로세서당

2 GB2 GB

2 GB커널공간

Windows CE 6.0 메모리 모델Windows CE 6.0 메모리 모델

Process CodeProcess CodeUser VMUser VM

User VMUser VMMemory Mapped Memory Mapped

filesfiles

User DLLsUser DLLs

KernelKernelFilesystemFilesystem

GWESGWESDriversDrivers

. . .

. . .

Page 11: 미리보는  Windows CE 6.0

사용자 공간사용자 공간

Shared User DLLsShared User DLLs512 MB512 MB

RAM Backed RAM Backed MapfilesMapfiles256 MB256 MB

Shared System Shared System HeapHeap

255 MB255 MB

Process spaceProcess space1 GB per 1 GB per processprocess

각각의 2GB 에 대한 상세 구조

0x00000000

0x40000000

0x80000000

Page 12: 미리보는  Windows CE 6.0

0x80000000

커널 공간커널 공간

커널공간 2GB에대한 상세구조

0xFFFFFFFF

CPU 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 13: 미리보는  Windows CE 6.0

메모리 비교 : Windows CE 5.0 대 Windows CE 6메모리 비교 : Windows CE 5.0 대 Windows CE 6

32 개

프로세스

모든 프로세서상 2 GB 가상

메모리

2 GBkernelspace

실행 공간

Sharedmemory

Kernel

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

Slot 5 – Services.exe

Slot 31Slot 32Slot 33

Slot 34

::

Slot 6Process

code

Memory mapped

files

User DLLs

KernelFilesystem

GWESDrivers

. . . . . .

. .

32K프로세서

프로세프로세서당 서당 2 GB2 GB

Page 14: 미리보는  Windows CE 6.0

새로운 OS 구조새로운 OS 구조

커널로 이동 ( 중요 드라이버 , 파일시스템 , graphical window manager) 장점

시스템 오버헤드 감소 유저스페이스와 커널스페이스간의 잦은 이동으로인한 오버헤드 감소

커널로 이동 ( 중요 드라이버 , 파일시스템 , graphical window manager) 장점

시스템 오버헤드 감소 유저스페이스와 커널스페이스간의 잦은 이동으로인한 오버헤드 감소

Page 15: 미리보는  Windows CE 6.0

새로운 OS 구조새로운 OS 구조

OAL.DLLFILESYS NETWORK

DEVICE.DLLKERNEL.DLL

Applications

SHELL

Drivers

Hardware

Boot Loader

COREDLL / WINSOCK / COMMCTRL / WININET / COMMDLG

KernelSpace

UserSpace

KCOREDLL.DLL

ServicesServicesServicesUser Mode

Drivers

GWES

SERVICES.EXE ServicesServicesServicesServices UDEVICE.EXE

Page 16: 미리보는  Windows CE 6.0

성능 및 크기성능 및 크기

프로세스 스위칭 시 성능향상 기대같은 성능

Thread Switching

Memory Allocation

System Calls

성능 감소 ( 내부 프로세스 호출 ) 약 5% 의 크기증가

프로세스 스위칭 시 성능향상 기대같은 성능

Thread Switching

Memory Allocation

System Calls

성능 감소 ( 내부 프로세스 호출 ) 약 5% 의 크기증가

Page 17: 미리보는  Windows CE 6.0

Windows CE 5.0 시스템 호출 구조

Windows CE 5.0 시스템 호출 구조

어플리케이션에 의한 CallPSL 에 의한 커널간의 의사소통

커널 파라미터 유효성 검사슬롯 0 으로 서비스 매핑하기

캐쉬 플러시 (Cache Flush)

서비스 (Service) 호출서비스

실행커널으로 복귀

커널슬롯 0 으로 서비스 매핑하기

캐쉬 플러시 (cache flush)어플리케이션으로 복귀

어플리케이션에 의한 CallPSL 에 의한 커널간의 의사소통

커널 파라미터 유효성 검사슬롯 0 으로 서비스 매핑하기

캐쉬 플러시 (Cache Flush)

서비스 (Service) 호출서비스

실행커널으로 복귀

커널슬롯 0 으로 서비스 매핑하기

캐쉬 플러시 (cache flush)어플리케이션으로 복귀

App Service

Kernel

Page 18: 미리보는  Windows CE 6.0

Windows CE 6.0 시스템 호출 구조

Windows CE 6.0 시스템 호출 구조

어플리케이션에 의한 CallPSL 에 의한 커널간의 의사소통

커널 파라미터 유효성 검사서비스 호출

서비스 실행어플리케이션으로 바로 복귀

어플리케이션에 의한 CallPSL 에 의한 커널간의 의사소통

커널 파라미터 유효성 검사서비스 호출

서비스 실행어플리케이션으로 바로 복귀

App

ServiceKernel

Page 19: 미리보는  Windows CE 6.0

호환성호환성

Page 20: 미리보는  Windows CE 6.0

CPU 요구사항CPU 요구사항

Windows CE 5.0 와 동일함ARMV4I

MIPSII

x86

SH4

Windows CE 5.0 와 동일함ARMV4I

MIPSII

x86

SH4

Page 21: 미리보는  Windows CE 6.0

호환성호환성

어플리케이션 호환 가능일반적인 OS 구조는 유지

Core DLL 의 호환성유지 공유 DLL

SDK 기반의 어플리케이션 최소한의 작업이 필요하거나 없을수 있음

일반적 이지 않은 기법을 사용한 어플리케이션 변환 작업이 필요예 ) 프로세스 사이에 포인터 또는 핸들로 함수 파라미터 넘기기

어플리케이션 호환 가능일반적인 OS 구조는 유지

Core DLL 의 호환성유지 공유 DLL

SDK 기반의 어플리케이션 최소한의 작업이 필요하거나 없을수 있음

일반적 이지 않은 기법을 사용한 어플리케이션 변환 작업이 필요예 ) 프로세스 사이에 포인터 또는 핸들로 함수 파라미터 넘기기

Page 22: 미리보는  Windows CE 6.0

드라이버드라이버

두가지 타입의 드라이버 지원커널 모드 (Kernel Mode)

사용자 모드 (User Mode)

두가지 타입의 드라이버 지원커널 모드 (Kernel Mode)

사용자 모드 (User Mode)

Page 23: 미리보는  Windows CE 6.0

OAL 에서 바뀐 사항OAL 에서 바뀐 사항

커널과 OAL 의 분리NKLoader 에 의해 합체독립적으로 업데이트 가능

전체적인 OAL 구조는 같다OEM 함수커널 접근은 커널 인터페이스를 통해서 가능

주요 바뀐점 OAL새로운 메모리 모델 적용

커널과 OAL 의 분리NKLoader 에 의해 합체독립적으로 업데이트 가능

전체적인 OAL 구조는 같다OEM 함수커널 접근은 커널 인터페이스를 통해서 가능

주요 바뀐점 OAL새로운 메모리 모델 적용

Page 24: 미리보는  Windows CE 6.0

Windows CE 5.0Windows CE 5.0 Windows CE 6.0Windows CE 6.0

kernel.dllkernel.dll

KernelKernel

oal.exeoal.exe

OALOAL

kern.exekern.exe

KernelKernel

OALOAL

커널과 OAL 의 분리커널과 OAL 의 분리

Page 25: 미리보는  Windows CE 6.0

Windows CE 6.0 BSP Windows CE 6.0 BSP

새로운 커널 지원새로운 커널 지원쉬운 쉬운 BSP BSP 개발 및 포팅 개발 및 포팅 PQOAL PQOAL 지원지원OAL, Kernel OAL, Kernel 그리고 그리고 KITL KITL 독립성 지원독립성 지원

새로운 커널 지원새로운 커널 지원쉬운 쉬운 BSP BSP 개발 및 포팅 개발 및 포팅 PQOAL PQOAL 지원지원OAL, Kernel OAL, Kernel 그리고 그리고 KITL KITL 독립성 지원독립성 지원

Page 26: 미리보는  Windows CE 6.0

PQOALPQOAL

PQOALPQOALWindows CE 5.0Windows CE 5.0 부터 지원부터 지원Windows CE 6.0Windows CE 6.0 에서도 필수 사항은 아님에서도 필수 사항은 아님PQOALPQOAL 을 사용하면 쉽게 업그레이드 가능 을 사용하면 쉽게 업그레이드 가능

권장사항 권장사항 (PQOAL)(PQOAL)

PQOALPQOALWindows CE 5.0Windows CE 5.0 부터 지원부터 지원Windows CE 6.0Windows CE 6.0 에서도 필수 사항은 아님에서도 필수 사항은 아님PQOALPQOAL 을 사용하면 쉽게 업그레이드 가능 을 사용하면 쉽게 업그레이드 가능

권장사항 권장사항 (PQOAL)(PQOAL)

Page 27: 미리보는  Windows CE 6.0

platform\common\srcplatform\common\src

incinc

ARMARM

commoncommon

cachecache

memorymemory

ARM720TARM720T

ARM920TARM920T

IntelIntel

SamsungSamsung S3C2410S3C2410

incinc

interruptinterrupt

powerpower

RTCRTC

startupstartup

timertimer

MIPS, SHx, x86MIPS, SHx, x86

commoncommon

platform\<BSP_name>platform\<BSP_name>

cesysgencesysgen

filesfiles

intltrnsintltrns

04090409

… …

srcsrc

bootloaderbootloader

kernelkernel

OALOAL

kernkern

kernkitlkernkitl

kernkitlprkernkitlprofof

incinc

commoncommon

startupstartup

debugdebug

driversdrivers pcmciapcmcia

WindowsWindows CECE 5.0 PQOAL 5.0 PQOAL 구조구조WindowsWindows CECE 5.0 PQOAL 5.0 PQOAL 구조구조Common code directoryCommon code directory BSP code directoryBSP code directory

Page 28: 미리보는  Windows CE 6.0

Common code Common code 폴더폴더 : : 변경 없음변경 없음 BSP code BSP code 폴더폴더 : : 추천 변경추천 변경

platform\common\srcplatform\common\src

incinc

ARMARM

commoncommon cachecache

memorymemory

ARM720TARM720T

ARM920TARM920T

IntelIntel

SamsungSamsungS3C2410S3C2410

incinc

interruptinterrupt

powerpower

RTCRTC

startupstartup

timertimer

MIPS, SHx, x86MIPS, SHx, x86

commoncommon

platform\<BSP_name>platform\<BSP_name>

cesysgencesysgen

filesfiles

intltrnsintltrns

04090409

… …

srcsrc

bootloaderbootloader

oaloal

oalliboallib

oalexeoalexe

kitlkitl

incinc

commoncommon

startupstartup

debugdebug

driversdrivers pcmciapcmcia

WindowsWindows CECE 6.0 PQOAL 6.0 PQOAL 구조구조WindowsWindows CECE 6.0 PQOAL 6.0 PQOAL 구조구조

Page 29: 미리보는  Windows CE 6.0

Windows CE 5.0 BSP 디렉토리구조Windows CE 5.0 BSP 디렉토리구조

CesysgenCesysgen

\Common\Common

\Drivers\Drivers

\Inc\Inc

\Kernel\oal\Kernel\oal

\Kernel\kern\Kernel\kern

\Kernel\kernkitl\Kernel\kernkitl

\Kernel\kernkitlprof\Kernel\kernkitlprof

SrcSrc

FilesFiles

\Platform\<\Platform\<Platform NamePlatform Name> subdirectory> subdirectory

\Bootloader\Bootloader

Page 30: 미리보는  Windows CE 6.0

CesysgenCesysgen

\Common\Common

\Drivers\Drivers

\Inc\Inc

\OAL\OALlib\OAL\OALlib

\OAL\OALexe\OAL\OALexe

\KITL\KITL

SrcSrc

FilesFiles

\Platform\<\Platform\<Platform NamePlatform Name> subdirectory> subdirectory

\Bootloader\Bootloader

Windows CE 6.0 BSP 디렉토리구조Windows CE 6.0 BSP 디렉토리구조

Page 31: 미리보는  Windows CE 6.0

KernelKernel

Windows CE 5.0Windows CE 5.0OAL + Kernel = kern.exeOAL + Kernel = kern.exe

OAL + Kernel + KITL = kernkitl.exeOAL + Kernel + KITL = kernkitl.exe

OAL + Kernel + KITL + Profiler = kernkitlprof.exeOAL + Kernel + KITL + Profiler = kernkitlprof.exe

Windows CE 6.0Windows CE 6.0OAL = oal.exeOAL = oal.exe

Kernel = kernel.dllKernel = kernel.dll

KITL = kitl.dllKITL = kitl.dll

Windows CE 5.0Windows CE 5.0OAL + Kernel = kern.exeOAL + Kernel = kern.exe

OAL + Kernel + KITL = kernkitl.exeOAL + Kernel + KITL = kernkitl.exe

OAL + Kernel + KITL + Profiler = kernkitlprof.exeOAL + Kernel + KITL + Profiler = kernkitlprof.exe

Windows CE 6.0Windows CE 6.0OAL = oal.exeOAL = oal.exe

Kernel = kernel.dllKernel = kernel.dll

KITL = kitl.dllKITL = kitl.dll

Page 32: 미리보는  Windows CE 6.0

kernel.dllkernel.dll

oal.exeoal.exe

RTCRTCC

ach

e

Cach

e

libra

rylib

rary

Inte

rrup

t In

terru

pt

libra

rylib

rary

IOC

TL

IOC

TL

libra

rylib

rary

Sta

rtup

S

tartu

p

libra

rylib

rary

RTC

RTC

libra

rylib

rary

kitl.dllkitl.dllOS

Tim

er

OS

Tim

er

libra

rylib

rary

TimersTimers CachesCaches SerialSerialportport

EthernetEthernetportport

USBUSBportportHardwareHardware

OEMGLOBALOEMGLOBAL

NKGLOBALNKGLOBAL

KITL IOCTLKITL IOCTL

Windows CE 6.0 PQOAL Windows CE 6.0 PQOAL 디자인디자인Windows CE 6.0 PQOAL Windows CE 6.0 PQOAL 디자인디자인

Page 33: 미리보는  Windows CE 6.0

Bootloader/Bootloader/startupstartup

kernel.dllkernel.dll

oal.exeoal.exe Sta

rtup

S

tartu

p

libra

rylib

rary

kitl.dllkitl.dll

OEMGLOBALOEMGLOBAL

NKGLOBALNKGLOBAL

KITL IOCTLKITL IOCTLOEMInitOEMInitGlobals()Globals()

Startup 실행 순서Startup 실행 순서

Page 34: 미리보는  Windows CE 6.0

Windows CE 6.0 새로운 프로세스 및 메모리 보기

Windows CE 6.0 새로운 프로세스 및 메모리 보기

Page 35: 미리보는  Windows CE 6.0

Windows CE 6.0 은 새로운 통합 커널로 변경 된다 .Windows CE 6.0 은 32 개 프로세서 및 메모리 제한이 제거된다 .Windows CE 6.0 의 OAL 은 커널과 OAL 이 분리된다 .새로운 Windows CE 6.0 디바이스 드라이버는 사용자 모드 및 커널 모드로 나누어진다 .Windows CE 5.0 BSP 에서 Windows CE 6.0 로 포팅하는 데 시간이 오래 걸리지 않고 쉽게 개발할 수 있다 .

Windows CE 6.0 은 새로운 통합 커널로 변경 된다 .Windows CE 6.0 은 32 개 프로세서 및 메모리 제한이 제거된다 .Windows CE 6.0 의 OAL 은 커널과 OAL 이 분리된다 .새로운 Windows CE 6.0 디바이스 드라이버는 사용자 모드 및 커널 모드로 나누어진다 .Windows CE 5.0 BSP 에서 Windows CE 6.0 로 포팅하는 데 시간이 오래 걸리지 않고 쉽게 개발할 수 있다 .

세션 요약세션 요약