컴퓨터 구조라는 수업을 들어보면, 현재 x86 아키텍쳐에서 주변장치들은 메모리처럼 특정 주소에 매핑된다는 것을 알 수 있다.
물론 이 부분은 사용자는 건들 수 없고, 커널 수준에서 관리를 하게 된다. 드라이버는 커널에서 주소를 받아다가 하드웨어하고 통신하는거고.
근데 안타까운 것은, 32bit OS에서 메모리 4GB를 설치하는 경우, 이 공간이 불가피하게 메모리와 겹치면서, 일부 메모리를 사용할 수 없다는 것이다.
이게 용량이 작으면 그냥 넘어가겠는데, 그래픽카드 및 기타 주변장치에 따라서 적게는 200MB에서 크게는 1GB가 넘는 공간을 뺏긴다.
나도 4GB를 물렸지만, 실사용 공간은 3.25GB밖에 안 된다.
물론 64bit OS를 설치하면 이 문제는 말끔하게 해결된다. 헌데 PAE를 활성화하고 상용 툴을 이용하면, 32bit OS에서도 이렇게 묻힌 부분을 램디스크로 재활용할 수 있다는 글이 꽤 전부터 심심치 않게 올라오고 있다. 그리고 실제로 해보면 되는 것 같다. 사용가능한 공간은 2GB로 유지되면서, 2GB짜리 램디스크가 잡힌다.
근데, 이게 과연 안정적일까…?
우선 2GB인 경우부터 살펴보자.

2GB 메모리인 경우.
대충 개념도이다. 가로 전체는 8GB 공간을 나타내는데, XP/Vista/Win7 32bit는 메모리 주소공간 4GB 이상을 관리할 수 없다.
어쨌든, 물리적 메모리와 커널 예약공간은 서로 멀찍이 떨어져 있다. 연속적으로 존재할 수도 있겠으나, 개념적으로는 차이가 없다.
어쨌든 메모리가 2GB인 경우, 커널 예약공간이 2GB를 넘나드는 미친 경우[footnote]그래픽카드 메모리가 1.5GB 정도면 가능할 수도 있다… 오 쉣.[/footnote]가 아닌 이상 물리적 메모리와 커널 예약공간이 겹쳐서 손해볼 일은 발생하지 않는다.
자 이제, 4GB인 경우를 살펴보자. 단, PAE를 켜지는 않은 경우이다.

4GB, noPAE인 경우.
안타깝지만, 이 경우 커널 예약공간때문에 일부 물리적 메모리가 가려지는 것을 볼 수 있다. 안타깝지만, 저 공간은 못 쓴다.
그런데 PAE를 켜면 문제가 좀 복잡해진다.

4GB, PAE인 경우
일단 PAE를 켜면 BIOS나 OS에서 4GB 경계는 없어진다. 색이 옅게 표시되었음을 잘 보도록.
그런데, 이렇게 4GB 경계가 없어졌을 때 커널 예약공간은 어떻게 되는가? 라는 의문이 생긴다.
1과 같은 경우라면 물리적 메모리와 겹치는 부분이 없으니 4GB를 온전히 쓸 수 있을 것이고, 그 중 일부를 램디스크로 잡아도 문제가 없을 것이다.
2와 같다면? 단지 주소공간의 4GB 경계만 없어졌을 뿐, 실질적으로 PAE를 껐을 때와 차이는 없다. 다만 저 상태로 그냥 램디스크를 쓴다면 시스템 불안정을 초래할 수 있다. 윈도우로 말하자면 BSOD, 리눅스라면 커널 패닉.
불행하게도 XP 32bit는 2처럼 작동하는 것 같다. 하여 램디스크로 커널 예약공간을 당겨다 쓰는 것을 추천할 수 없다. 뭐 쓰겠다면 말리지는 않겠지만, 뒷감당은 스스로 하면 된다.
신뢰할 수 있는 정보는 아니지만, 서버 2008 32bit는 PAE를 켰을 때 64GB까지 지원하며, 4GB 장착상태에서 1처럼 작동한다고 한다. 64bit로 넘어가기는 꺼려지는데 메모리가 아까운 사람이라면 서버 2008을 써 보는것도 나쁘지는 않을 듯 하다. 물론 라이센스 구하기가 힘들다.
여기서 한 발짝 더 나가서, 8GB라면 어떻게 될까? 물론 PAE를 켠 상황이 되겠다. PAE를 끄면 4GB 이상은 접근조차 못한다.

8GB 메모리인 경우.
램디스크 부분을 제외하면, XP 32bit에서 메모리는 저런 식으로 할당되게 된다. 실제 사용가능한 부분은 짙은 파란색으로 표시된 부분이며, 그 중 일부가 커널 예약공간으로 할당된다. 옅은 파란색으로 표시된 부분은 비관리 공간(Unmanaged area)이라고 하며, BIOS에서는 인식되지만 OS 수준에서 관리하지 않으므로 사용할 수 없다[footnote]물론 특수한 API를 사용하면 사용가능할 수 있다고는 하지만, 일반적으로 사용하는 WIN32 API에서는 안 된다.[/footnote].
그렇다면, 그림에 긁어둔 것처럼 저 부분을 램디스크로 사용할 수 있지 않을까? 글쎄 아직 테스트를 안 해봐서 모르겠다. 내 컴퓨터는 4GB 밖에 안 물려둬서… 혹시 누가 테스트 가능하다면 결과를 보고해주기 바란다. 또, 위에서 언급했다시피 서버 2008은 8GB 전부를 관리한다. 64GB까지 지원하므로 메모리가 아까우면 그 쪽으로 넘어가면 되겠다. 아니면 64bit OS를 사용하던지.