Blogs

64비트.. 멀지 않은 미래..

  • Comments 6
  • Likes

64비트라고 하는 이야기는 서버 시장에서는 이미 오래전부터 언급되오던 부분이었습니다.

2007년 7월에 제가 포스팅했던 End of 32-bit Windows Servers에서 언급드린 데로, Windows Server 시장에서는 이미 2008을 마지막으로 x86에 대한 출시를 하지 않고 있으며, Windows Server 2008 R2도 이에 근간하여 x64, IA64만 출시할 예정입니다.

image

이제는 클라이언트 레벨에서도 조금씩 64비트에 대한 이야기 및 필요성을 언급하시는 곳을 찾을 수가 있습니다. Windows 7의 경우에는 클라이언트의 범용성적인 측면.. 그리고 아직까지 4G라는 메모리 제한 이상을 필요로 하는 분들에 대한 비율, 여러 요소가 맞불려, x86, 다시 말해 32비트 버전이 출시되지만, 다음 번 클라이언트 버전에선 어떤 결정이 내려질지는 아직 미정인 상태입니다.

4G 이상의 메모리를 효율적으로 사용하시기 위해, 64비트 Windows 클라이언트를 설치해서 사용하시는 분들을 사내에선 어렵지 않게 찾아볼 수 있습니다. 대표적인 경우가 데스크톱 가상화, Virtual PC를 이용하셔서 외부의 데모를 많이 하시는 분들께서는 32비트 Windows에서 4G 메모리를 다 사용할 수 없는 x86 자체의 아키텍쳐적 제한으로 더 많은 데모를 하시기 어렵다는 것이 일관된 의견입니다.

왜 32비트 Windows에서 4G의 메모리를 다 사용할 수 없는지에 대해서도 2008년 2월에 내 Windows에서 메모리 4기가가 왜 다 나오지 않지? 라는 제목으로 포스팅한 적이 있으니, 참조하시면 좋을 것 같습니다. 그렇다고 한다면.. 64비트로 넘어가면 어떠한 메리트가 있을까요? 속도? 사실 꼬알라의 생각에선 속도는 잘 모르겠습니다. x64 아키텍쳐상, 32비트 Instruction Set과 64비트 Instruction Set을 프로세서가 같은 맥락에서 처리할 수 있기에.. 64비트라고 비트의 2배수 차이가 2배수의 속도를 보장하는 것은 아닙니다. 그렇다면? 64비트에서 가질 수 있는 메리트는 무엇일까요?

네 바로 메모리입니다. 4G에 한계를 가진 32비트의 한계를 64비트에서는 엄청나게 넘어서.. 풍부한 메모리에서 유발되는 여러 성능 향상.. 현재같은 경우엔 메모리를 상당히 많이 사용하는 그래픽, 가상화 분야에서는 분명히 64비트로 넘어가는 것이 필요합니다.

image

특히 클라이언트에서 64비트로 시장이 이동하기 위해서는 해결되어야 할 숙제들이 생각보다 많습니다. 그리고 사용자분들의 편견(?) 일부를 정확한 시각으로 바라볼 수 있게 하는 것이 매우 중요합니다. 64비트..뿐만 아니라 새로운 버전이 나올 때마다, 사용자들이 걱정하는 측면은 매우 유사하다고 볼 수 있죠.

  • 현재 내가 쓰고 있는 응용 프로그램(32비트)가 64비트에서도 잘 돌아갈까?
  • 현재 내가 쓰고 있는 하드웨어가 64비트에서도 잘 돌아갈까?

결국, 현재 환경이 그대로 64비트로 이전할 수 있을 것이냐? 에 대한 걱정이십니다. 여기엔 몇가지 확인 사항이 필요하고, 이러한 확인 사항이 잘 해결된다면, 어렵지 않게 64비트로의 이전이 가능해질 것입니다.

응용 프로그램적인 측면에서는 32비트 응용 프로그램은 대부분(거의) 64비트 환경에서 동작합니다. 이러한 동작을 가능하게 하는 구성 요소가 바로 WOW(Windows on Windows) 64인데요. 64비트 Windows에서 32비트 환경을 구성하여 응용 프로그램에서 바라보았을 땐, 32비트라고 생각하게 해주는 구성 요소입니다. 중요한 요소는 WOW64는 운영 체제의 커널 레벨이 아닌 사용자 레벨에서 동작하는 요소이므로, 커널 레벨을 핸들링하는 응용 프로그램, 특히 드라이버의 경우에는 32비트를 사용할 수 없습니다. 어려우시다고요? 결론은 간단합니다. 사용하는 프로그램은 대부분 호환이 된다. 그렇지만 드라이버는 안된다.. 입니다. 현재 사용중이신 하드웨어가 64비트 드라이버를 제공하지 않는다면.. 이는 64비트 Windows 환경에서 사용할 수 없다고 생각하시면 됩니다. (현재 꼬알라가 사용하는 Wibro 모뎀 드라이버가 64비트 드라이버가 없습니다. ㅠㅠ)

환영할 만한 시장의 방향성은 많은 하드웨어 벤더, 그리고 데스크톱, 노트북 출시 메이커에서 64비트 드라이버를 적극적으로 제공하려는 음직임이 보인다는 것입니다. 유명 노트북 브랜드의 경우, 대부분 Windows Vista x64 드라이버를 같이 제공하고 있으며, 이는 Windows Vista x64 뿐만 아니라, Windows 7 x64에서도 대부분 혼용이 되는 실정입니다.

image

드라이버와 더불어 확인이 필요한 부분이 바로 보안 프로그램들입니다. 안티 바이러스, 방화벽, 키보드 보안 프로그램 등 운영 체제의 커널과 함께 동작해야 할 필요성이 있는 응용 프로그램들도 64비트로 다시 개발되어야 합니다. 이제 정리가 좀 되셨나요? 64비트 Windows에서 커널은 반드시 모든 구성 요소가 64비트가 되어야 하며, 사용자 모드는 64비트가 가장 이상적이지만, WOW64라는 것을 통해 32비트 응용 프로그램도 사용이 가능하다. 라는 것이죠. 일반 사용자가 가장 많이 하시는 게임의 경우에도 x64 기반, WOW64 레벨에서 훌륭히 동작하는 것을 꼬알라는 많이 보아왔습니다.

4G 메모리에 대한 구매 비용, 그리고 이에 대한 사용자층의 확산, 하드웨어 벤더의 64비트 드라이버 개발 의지, 그리고 이에 대한 응용 프로그램의 지원등, 소프트웨어 생태계 전반에 대한 64비트의 이전 방향 의지가 64비트 클라이언트 컴퓨팅 환경이 가까워져 오고 있구나? 라는 생각을 느끼게 하는 하루입니다.

Comments
  • 오랜만(아니 처음 인가요??)에 댓글 달아 봅니다.

    x64환경으로 가는길.. 가깝고도 먼 길입니다.

    특히나 엔드유저 입장에서는요..

    꽤 오래전부터 x64 O/S를 설치 하여 사용 하고 있고, 특별히 불편한것 없이 사용 하고 있습니다만.. 말씀 하신것 처럼 몇몇 프로그램은 x86밖에 지원하지 않고 있습니다.

    대부분 wow64를 통하여 x64에서 사용이 가능 하지만, 몇몇 프로그램은 wow64도 지원 하지 않네요. 대표적인 것이 인터넷 뱅킹시 설치 되는 보안 프로그램들입니다. 아마 커널레벨 제어를 사용하기 때문인듯 한데.. 심한 경우 '지원하지 않는 프로세서 입니다'라는 메시지만 뿌려주고 브라우저 자체를 닫아 버리기도 하더군요.

    현재는 가상머신(VM)에 올려서 사용중 입니다만, 역시나 불편함은 어쩔수 없는 부분인듯 합니다. 또, 저처럼 구성할 수 없는 사용자도 많고요.

    x64로 가기위해 운영체제나 하드웨어적인 측면에서의 지원도 물론이지만, 사용되는 어플리케이션의 지원 또한 중요하다고 생각됩니다.

    개발자분들 Cheer-up!(이건 아닌가? ^^;;;)

  • 글림 // :) 네 맞습니다. 다 커널 레벨 응용 프로그램이기 때문입니다. ^^;; 비슷한 생각이시군요.

  • 한 가지 오류를 짚고 넘어가자면, x86 아키텍처가 4GB의 Memory 제한을 가지고 있는 것이 아닙니다.

    많이 사용하고 있는 Windows가 그런 제한이 있닥 봐야죠. 물론, Windows도 옵션을 조절하면 4GB이상 Access 가능합니다.

    x86은 Memory Addressing이 32bit아니고 36bit까지 확장 지원합니다. PAE라고 하죠. (Maximum 64GB까지 가능합니다.)

    x86을 사용하는 과거의 Windows Server들이 4GB 이상의 Memory를 지원했던 것은 바로 이 PAE 때문입니다.

  • GMA님 안녕하세요~

    좋은 의견 감사드립니다.

    다만 전 생각이 조금 틀린데요.. PAE라는 자체가..모든 하드웨어에서 범용적으로 사용할 수 있는 기술이 아니기에 x86에 대한 제한을 다 풀었다라고는 생각하지 않습니다. Windows만 해당되는 것이 아니라, 타 플랫폼도 마찬가지이며.. 범용적인 측면에서는 x86 아키텍쳐가 제한이 있다고 하는 것이 전 맞다고 생각합니다.

    http://technet.microsoft.com/ko-kr/library/cc775523.aspx에 말씀하신 내용이 있습니다. 4GB 이상을 PAE나 AWE를 통해서 지원하고 있고.. 이를 이용할 수 있는 분야는 모든 응용 프로그램에서 이를 쓸 수 있는 것이 아니기에.. 완벽한 4G 이상의 제한을 풀었다..라는 것에는 모호한 면이 있다고 봅니다.

    방문해주셔서 감사합니다. ^^

  • 꼬알라님 말씀에 조금 첨언하자면 x86 아키텍쳐가 2^32=4GB로써 4GB의 제한을 가진다가 맞습니다, PAE는 4GB 메모리를 확장하기 위해서 일종의 추가기술(편법?)을 사용하는 것이며 Windows는 Processor에서 지원하는 이 PAE를 이용(!)해 Windows의 메모리 영역을 확장하는 것입니다. PAE는 Windows 뿐만 아니라 타OS에서도 이용 가능합니다.

    Paging Extension for the pentium pro processor

    http://www.rcollins.org/articles/2mpages/2MPages.html

  • 추가 설명드리면__

    Windows의 64비트 메모리 확장이란 Processor가 제공하는 PAE 기능가 있다면 Windows 커널의 Memory manager가 three-level page table을 이용해 Access 할 수 있는 Physical Memory영역을 64비트로 확장하는 것입니다.

    Windows에서 x86은 Two-level page table이라고 하고 PAE를 이용할 경우 Virtaul address에 Page directory pointer를 추가해 three-level page table이라고 부릅니다.

    Windows를 시작할때 Ntldr은 Boot.ini의 파라메타를 읽고 부팅시 운영체제의 어떤 옵션을 사용할지를 결정합니다. 기본적으로 Ntkrnlpa.exe와 같은 Windows Excutive(Memory manager기능기 포함된)를 로드하는데 만약 /PAE와 같은 옵션을 주면 three-level page table이 가능한 Ntkrnlpa.exe를 로드하게 됩니다.

    기본적으로 Uni-processor은 Ntoskrnl.exe 또는 Multiprocessor에서는 Ntkrnlmp.exe를 로드하고 PAE를 Enable할 경우 Uni-processor또는 Multiprocessor에서는  Ntkrnlpa.exe혹은 Ntkrpamp.exe를 로드합니다.

Your comment has been posted.   Close
Thank you, your comment requires moderation so it may take a while to appear.   Close
Leave a Comment