미리보는 windows ce 6.0
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 PresentationTRANSCRIPT
미리보는 Windows CE 6.0미리보는 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
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
기타
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
Windows CE 5.0 가상메모리 구조Windows CE 5.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 개의 슬롯구조
메모리 공유유저 공간의 상위 반을 공유 메모리로 쓴다모든 프로세서들에 의해 읽거나 쓰는 공간
::::
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
Windows CE 6.0 가상메모리 구조Windows CE 6.0 가상메모리 구조
Windows CE 6.0 의 ” 신규 커널”Windows CE 6.0 의 ” 신규 커널”
프로세서당 2 GB 의 가상메모리 지원최대 32,000 프로세서 지원통합커널
핵심적인 OS 요소들을 커널 공간으로 이동
시스템 성능 향상
프로세서당 2 GB 의 가상메모리 지원최대 32,000 프로세서 지원통합커널
핵심적인 OS 요소들을 커널 공간으로 이동
시스템 성능 향상
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
. . .
. . .
사용자 공간사용자 공간
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
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
메모리 비교 : 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
새로운 OS 구조새로운 OS 구조
커널로 이동 ( 중요 드라이버 , 파일시스템 , graphical window manager) 장점
시스템 오버헤드 감소 유저스페이스와 커널스페이스간의 잦은 이동으로인한 오버헤드 감소
커널로 이동 ( 중요 드라이버 , 파일시스템 , graphical window manager) 장점
시스템 오버헤드 감소 유저스페이스와 커널스페이스간의 잦은 이동으로인한 오버헤드 감소
새로운 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
성능 및 크기성능 및 크기
프로세스 스위칭 시 성능향상 기대같은 성능
Thread Switching
Memory Allocation
System Calls
성능 감소 ( 내부 프로세스 호출 ) 약 5% 의 크기증가
프로세스 스위칭 시 성능향상 기대같은 성능
Thread Switching
Memory Allocation
System Calls
성능 감소 ( 내부 프로세스 호출 ) 약 5% 의 크기증가
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
Windows CE 6.0 시스템 호출 구조
Windows CE 6.0 시스템 호출 구조
어플리케이션에 의한 CallPSL 에 의한 커널간의 의사소통
커널 파라미터 유효성 검사서비스 호출
서비스 실행어플리케이션으로 바로 복귀
어플리케이션에 의한 CallPSL 에 의한 커널간의 의사소통
커널 파라미터 유효성 검사서비스 호출
서비스 실행어플리케이션으로 바로 복귀
App
ServiceKernel
호환성호환성
CPU 요구사항CPU 요구사항
Windows CE 5.0 와 동일함ARMV4I
MIPSII
x86
SH4
Windows CE 5.0 와 동일함ARMV4I
MIPSII
x86
SH4
호환성호환성
어플리케이션 호환 가능일반적인 OS 구조는 유지
Core DLL 의 호환성유지 공유 DLL
SDK 기반의 어플리케이션 최소한의 작업이 필요하거나 없을수 있음
일반적 이지 않은 기법을 사용한 어플리케이션 변환 작업이 필요예 ) 프로세스 사이에 포인터 또는 핸들로 함수 파라미터 넘기기
어플리케이션 호환 가능일반적인 OS 구조는 유지
Core DLL 의 호환성유지 공유 DLL
SDK 기반의 어플리케이션 최소한의 작업이 필요하거나 없을수 있음
일반적 이지 않은 기법을 사용한 어플리케이션 변환 작업이 필요예 ) 프로세스 사이에 포인터 또는 핸들로 함수 파라미터 넘기기
드라이버드라이버
두가지 타입의 드라이버 지원커널 모드 (Kernel Mode)
사용자 모드 (User Mode)
두가지 타입의 드라이버 지원커널 모드 (Kernel Mode)
사용자 모드 (User Mode)
OAL 에서 바뀐 사항OAL 에서 바뀐 사항
커널과 OAL 의 분리NKLoader 에 의해 합체독립적으로 업데이트 가능
전체적인 OAL 구조는 같다OEM 함수커널 접근은 커널 인터페이스를 통해서 가능
주요 바뀐점 OAL새로운 메모리 모델 적용
커널과 OAL 의 분리NKLoader 에 의해 합체독립적으로 업데이트 가능
전체적인 OAL 구조는 같다OEM 함수커널 접근은 커널 인터페이스를 통해서 가능
주요 바뀐점 OAL새로운 메모리 모델 적용
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 의 분리
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 독립성 지원독립성 지원
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)
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
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 구조구조
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
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 디렉토리구조
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
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 디자인디자인
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 실행 순서
Windows CE 6.0 새로운 프로세스 및 메모리 보기
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 로 포팅하는 데 시간이 오래 걸리지 않고 쉽게 개발할 수 있다 .
세션 요약세션 요약