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