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