본문 바로가기
IT Tips

[윈도우] syswow64 폴더의 정체

by 악마근육남 2022. 9. 28.
반응형

안녕하세요. 악마근육남 입니다.

원인

이건 또한 부끄러움의 영역입니다. 윈도우 클라이언트 개발자로 몇년을 일했지만 제가 얼마나 얄팍하게 윈도우와 컴퓨터 시스템을 이해하고 있었고 그게 발각 됐을때의 민망함 그리고 나에대한 스스로의 실망이  포스트를 작성하게 만들었습니다. 

발단은  저희 유닛 공통함수에 IsWow64() 가 있었는데 저는 당연히 is 64 이런 키워드에 꽂혀서 64bit pc 인지 확인해 주는 역할을 하는 함수라고 생각했습니다. 그런데 함수가 자꾸 64bit pc에서 false 를 리턴해서 수석님한테 이거 함수 잘못 된것 같다고 말씀 드렸는데 진짜 너무도 친절히 syswow64 폴더의 정체를 알려주셨습니다. 그런데 제가 여기서 또 충격 받은건 제가 똑같은 질문을 3년전쯤에도 했고 그때도 똑같이 친절하게 설명해 주신 장면이 머릿속에 떠오르면서 이 말도 못할 자괴감이 들었습니다.

이 사건의 문제는 두 가지가 있었는데 제가 너무도 윈도우에 대한 기본기가 부족하다는 것, 그리고 가르쳐준걸 습득하지 못하고 아메바처럼 바로 잊어버리고 마치 처음겪는 상황인거마냥 한치의 발전을 못했다는 것 입니다. 

두 가지다 모두 제 마음을 너무 아프게 했습니다.

일단 서론은 여기까지 하고


32bit vs 64bit

windows 에서 syswow64 폴더의 존재의 이유를 알기 위해서는 컴퓨터에서 32bit와 64bit의 의미를 알아야 합니다.

컴퓨터의 연산은 모든 데이터를  0 과 1 두 가지 신호를 가지고 저장 관리를 합니다.  이 0 과 1 과 같이 정보의 최소 단위를 bit 라고 합니다. 

간단하게 설명하면 32bit pc는 cpu가 연산을 하는 단위가 32bit 이며 

64bit pc는 연산단위가 64bit 인 cpu를 말합니다. 

여기서 두 운영체제의 차이점이 생기게 됩니다.  더 자세한 내용은 따로 포스트를 빼서 작성하도록 하겠습니다. 


윈도우 프로그램의 개발의 관점

윈도우 클라이언트 개발할 경우 이 32, 64의 케이스를 구분해 개발해야하는 케이스가 있습니다. 이 케이스도 포스트를 따로 빼서 작성하겠습니다.


win32 프로그램도 win64에서 돌릴 수 있다

결국 MS에서는 64 비트로 전환하기 전에 이미 기존에 32 환경에 맞추어 개발되어있는 프로그램들을 지원해줄 필요가 있었고 이에따라

syswow64 폴더는 MS가 64비트 pc에서 32bit 전용 프로그램을 실행할 수 있도록 구성해 놓은 windows의 하위 시스템인것입니다.

따라서 선배들이 만들어 놓은

Iswow64 함수의 의미는 우리 클라이언트가 지금 32bit 버전의 모듈이 64비트 pc에서 돌고 있는지

를 확인하는 함수 였던것 입니다. 

이번에는 까먹지 않고 곱씹고 쌓아 나가겠습니다. ㅠㅠ

반응형