64bit로드맵과 개발방법

Download Report

Transcript 64bit로드맵과 개발방법

마이크로소프트 64bit 윈도우 컴퓨팅
구조와 로드맵
이건복
64-bit Technical Champ
Microsoft
목차



64-bit 컴퓨팅의 필요성
로드맵
주요 시나리오






워크스테이션/서버
32-bit 응용 프로그램
마이그레이션
개발환경
.NET Framework
기타 정보
왜 64-Bit인가?
64-Bit 컴퓨팅의 필요성?





32bit 시스템의 4GB 메모리
한계 제거
동일하고 친숙한 윈도우 환경

신뢰성가 가용성 증가
성능과 확장성 증가
동일하고 친숙한 윈도우 환경




빠른 시장의 대응
기존 윈도우 개발 기술의 활용
관리할 시스템의 감소
Total Cost of Ownership
(TCO)감소
기존 시스템 관리 기술의 활용
윈도우용 64bit CPU


x64
IPF
(64-bit Extensions)
(Itanium Processor Family)
X86기반에서 64-bit 으로 점진적 진화
현재 사용하는 32-bit 윈도우 프로그램을
64-bit 환경에서 사용
2004년
6월
미정


Explicitly Parallel Instruction Computing
(EPIC) 구조를 기반으로 함
윈도우 기반의 높은 가용성을 제공
플랫폼의 발전 방향
프로그램의 사용영역
32-bit x86
64-bit x64
64-bit IPF
성능 및 확장성
Roadmap
64-bit 윈도우
Windows XP
Windows XP
(Build 2600)
Code Base
Windows XP SP 1
Windows XP SP 2
Windows Server 2003
Windows XP 64- Bit
Edition v2003 (Itanium)
Windows
Server
2003
Code Base
Windows Server 2003 SP
1 (x86 and Itanium)
64-Bit Windows Server
and Windows XP (x64)
Windows x64 제품 로드맵
32-bit
(x86)
64-bit
(x64)
Windows XP Professional
Y
P
Windows XP Media Center Edition
Y
NP
Windows XP Tablet PC Edition
Y
NP
Windows Server 2003 Web Edition
Y
NP
Windows Server 2003 Standard Edition
Y
P
Windows Server 2003 Enterprise Edition
Y
P
Windows Server 2003 Datacenter Edition
Y
P
마이크로소프트 제품
메모리와 CPU
32-bit
64-bit
총 가상 메모리 공간
4 GB
16 TB
32bit 프로세스당 가상 주소 공간
2GB
4GB
64bit 프로세스당 가상 주소 공간
불가
8 TB
Paged Pool
470 MB
128 GB
Non-Paged Pool
256 MB
128 GB
1 GB
1 TB
32-bit
64-bit
Windows XP Professional
4 GB / 1-2 CPUs
32 GB / 1-2 CPUs
Windows Server 2003 Standard Edition
4 GB / 1-4 CPUs
32 GB / 1-4 CPUs
Windows Server 2003 Enterprise Edition
64 GB / 1-8 CPUs
1 TB / 1-8 CPUs
Windows Server 2003 Datacenter Edition
64 GB / 1-32 CPUs
1 TB / 1-64 CPUs
일반적인 메모리 제한
시스템 캐시
물리적 메모리와 CPU 갯수
시나리오
64bit 적용분야
금융서비스
정부
통신
연구분야
은행
보험
증권 및 자산 시뮬레이션
국가 및 연방정부
각 지역자치 단체
인구조사
유무선 통신
호스팅 서비스
케이블
엔지니어링 및 구조 연구
제조
생활과학
건강 의료
에너지
미디어 & 게임
자동차 및 항공 우주 최첨단
기술 분야
방위산업
생명공학
분자생물학
H건강 및 의료정보
서비스 제공
에너지 연구
석유탐사
미디어 방송
온라인 게임
32-Bit 응용 프로그램
16-Bit 에서 32-Bit 그리고 64-Bit로
16-bit에서 32-bit 변화
단계
32-bit에서 64-bit 변화
동일한 메모리 모델
동일한 데이터 형식과
크기
Straightforward

어려운 작업

완전히 다른 메모리 구조
진입점 문제
데이터 크기의 변화
16-bit

포인터 처리에만 주의
32-bit
64-bit
64-Bit에서 Windows 32-Bit 사용

부팅 시에 로드 되는 새로운 하부 시스템


대부분의 32-bit 응용 프로그램 수행




Windows 32 on Windows 64 (WOW64)
16-bit 응용 프로그램은 불가
커널모드 드라이버는 반드시 64-bit
비정상적 동작 가능성 존재
사용자들에게 접근 용이


32-bit 또는 64-bit
dumpbin.exe 으로 결정
WOW64
x64에서 32-bit 프로그램 직접 실행
64-bit 응용
프로그램
32-bit 응용
프로그램
IPF의 실행계층에서
32-bit에서 64-bit으로 전환
Windows
32-bit
Windows 64-bit
64-bit 응용
프로그램
32-bit 응용
프로그램
Windows
32-bit
Exec. Layer
Windows 64-bit
응용 프로그램과 드라이버
32-bit
응용 프로그램
32-bit
응용 프로그램
64-bit
응용 프로그램1
32-bit
Windows
64-bit
Windows1
64-bit
Windows1
32-bit
Drivers
Devices
x64
64-bit Drivers1
32-bit
Drivers
Devices
64-bit Drivers1
32-bit
Drivers
Devices
x64 와 Itanium
Migration
마이그레션의 결정

응용 프로그램 분석


단일 계층 응용 프로그램 또는 멀티 계층
사용된 기술 또는 필요로 하는 기술


COM, COM+, ISAPI, .NET
어떤 구성요소가 가능한지 점검

3rd 파티 구성요소 지원여부
예: 32-Bit 환경
클라이언트
브라우저
ISAPI
업무 로직
COM/COM+
COM/COM+
HTTP
DB구성요소
IIS
32-bit
DB구성요소
ADO
ODBC
SQL 서버
64-Bit 환경으로 변화
64-bit
32-bit
클라이언트
브라우저
ISAPI
업무로직
COM/COM+
DB구성요소
HTTP
COM/COM+
DB구성요소
ODBC
64-bit
IIS
ADO.NET
SQL 서버
COM과 64-Bit

In-process 구성요소



32-bit와 64-bit 구성요소는 하나의 프로세스 공간에
존재할 수 없음
IPC를 이용한 구성요소간의 통신
Out-of-process 구성요소


참조 및 호출 가능
in-process 호출보다 성능감소
COM+와 64-Bit




COM+ 구성요소는 64bit시스템에 설치 및 사용이
가능
구성요소 서비스 지원
어떠한 프로그램 언어로 COM+ 작성 가능
응용 프로그램에 동일한 인터페이스 제공
C++ 형식 크기

대부분의 크기는 동일


포인터와 파생형식은 64-bit long


int, long, DWORD, ULONG, UINT, …
size_t, handles, WPARAM, LPARAM, LRESULT, …
몇몇 윈도우 함수 변경


GetClassLong/SetClassLong
GetWindowLong/SetWindowLong

Polymorphic (_ptr) 버전으로 변경
개발 환경
현재 개발환경

2가지 사항

32-bit에서 코드 개발




VS6, Visual Studio .NET 또는 텍스트 편집기
C++ 컴파일러에서 타깃을 x64 또는 IPF
Windows Server 2003 SP1 SDK
64-bit 에서 배포 및 개발
현재 개발 방법

Windows XP 64-bit 에서의 방법

VS6


Visual Studio 2003 에서 64-bit로 컴파일



WOW64모드 실행
SP3
윈도우 SDK를 이용한 x64와 IPF 코드 생성
Visual Studio .NET 2003 SP3을 이용

x64 시스템 기반의 x64코드 개발
향 후 개발 방법

Visual Studio .NET 2005




“Whidbey”
차세대 개발도구
64-bit와 다른 다양한 플랫폼
개발 지원
구성관리자에서 타깃을 설정
64-Bit 기반의 관리형 코드

검증된 코드





재컴파일 필요 없음
32-bit .NET 실행 (WOW64)
64-bit .NET 실행
‘bitness‘로 설정된 어셈블리
(32-bit, 64-bit, neutral)
검증되지 않은 코드


COM Interop, P/Invoke
Native코드를 포함하는 어셈블리

Managed C++)
기타 정보

64-bit 마이그레이션

Microsoft Software Porting Labs in Redmond, WA


세미나 정보


http://www.route64.net
64-bit 윈도우 개발정보



[email protected]
Platform SDK와 Driver 개발도구
http://msdn.microsoft.com
Windows Server 2003 SP1와 Windows for x64
Technical Beta Program