4g 램을 다 인식을 못한단느게 정말인가요?

제가 이참에 램을 올릴려고 생각하고 있습니다.
그러다 비스타가 4G를 다 인식하지 못한다는 글을 읽고 우분투도 혹시 그런가하고
찾아 보았습니다. 그런데 정말 우분투도 4G를 다 인식을 못한다고 나오내요!
64비트만 4G가를 다 인식하고 32비트는 인식을 못한다고 하는데…
그게 정말인가요?

제 컴사양은 2.5 core2duo, 2G ram, 250G SATA HDD, ATI 128VGA ram입니다.
사양 좋죠?^^
노트북에 우분투와 Vmware로 윈도우비스타르르 사용하고 있습니다. 업무중에
vmware 윈도우비스트를 사용해야 하는데 좀 버벅거려서 램을 업하려고 합니다.
4G를 다 인식을 못한다면 언제쯤 다 인식할 수 있을까요?

사실입니다.
(사실이냐고 묻는게 굉장히 의아하게 느껴질 정도로…)

이는 운영체제의 특성이 아닌 운영체제의 비트 수 문제입니다.(같은 얘긴가…)
32비트의 한계인 것이지요. 하지만 이론상 가능한 것은 4GB 까지이므로 적절한(?) 튜닝을 통해 최대한 인식시킬 수는 있다고 하네요. 전 메모리가 그렇게 많지 않아서 안해봤지만 ;;

그나저나 VMware 속도 업이라면 램을 추가해서는 해결이 안될것 같습니다.

먼지님이 잘 설명해 주셨는데, 설명을 조금 덧붙이면… 32비트 운영체제는 메모리를 참조하는데 사용하는 레지스터가 32비트입니다. 2^2 = 4 이고 2^10=1024이므로 32비트로 표현 가능한 수의 조합은 4* 1024 * 1024 * 1024 (킬로/메가/기가), 즉 4GB 까지입니다. 그러면 4GB까지 인식이 가능해야 할텐데… 그렇지 못한 이유는 무엇일까요?

윈도우나 리눅스는 멀티태스킹 운영체제이면서 CPU가 제공하는 보호모드 기능을 사용하는 보호 모드 운영입니다. 즉, 운영체제의 커널이 사용자 프로세스로와 별도의 공간에서 수행되면서 보호를 받습니다. 그러므로 커널은 자체 메모리 주소 공간을 갖게 되는데, 리눅스의 경우 이 공간이 1GB를 차지합니다. 그리고 사용자 프로세스는 나머지 3GB의 주소 공간을 갖게 됩니다. 그래서 4GB이상의 램을 인식하려면 64비트 운영체제가 필요합니다. (32비트 리눅스에서도 메모리 참조를 확장하는 패치가 있다고 들었습니다만 구체적인 내용은 모르겠네요…)

주워 들은 이야기인데 설명이 잘 되었는지 모르겠습니다. 혹시 틀린 부분이 있다면 꼬~옥 짚어주세요!

아니 어디서 바람같이 나타난 김정규님!
그나저나 리눅서 커널이 꽤 먹는군요. 처음 알았습니다.

글 잘 읽었습니다. 4G를 다 인식을 못한다면…32비트의 한계가 4G라는 이야기군요.

그럼 몇년(빠른 시일)안에 32비트는 없어지겠내요. 음냐…이제 노트북을 샀는데 몇년후
64비트로 바뀐다면 넘 아깝당…
그리고 다르게 말하면 3G까지는 다 인식을 한다는 말이 되겠군요…

어차피 지금 무슨 컴퓨터를 사셔도 "몇년" 이면 슬슬 고물취급 받기 시작할때죠 뭐 ㅋ. 아까워하실건 없을듯.

[quote="jeongkyu":7trj2yqh]윈도우나 리눅스는 멀티태스킹 운영체제이면서 CPU가 제공하는 보호모드 기능을 사용하는 보호 모드 운영입니다. 즉, 운영체제의 커널이 사용자 프로세스로와 별도의 공간에서 수행되면서 보호를 받습니다. 그러므로 커널은 자체 메모리 주소 공간을 갖게 되는데, 리눅스의 경우 이 공간이 1GB를 차지합니다. 그리고 사용자 프로세스는 나머지 3GB의 주소 공간을 갖게 됩니다. 그래서 4GB이상의 램을 인식하려면 64비트 운영체제가 필요합니다. (32비트 리눅스에서도 메모리 참조를 확장하는 패치가 있다고 들었습니다만 구체적인 내용은 모르겠네요…)[/quote:7trj2yqh]

일단 각각의 프로세스가 사용하는 가상 메모리 공간이 4G라는 점과 인식하는 램의 크기는 상관이 없는 이야기입니다. 윈도우즈의 경우 유저 영역이 2G이고 커널 영역이 2G인데 램을 2G만 인식하는 것은 아니죠. (이것은 부트 옵션을 바꿔서 3/1G로 바꿀 수 있습니다.)

32비트 비스타가 4G를 다 인식 못하는 것은 비스타 자체의 버그스러운 feature라고 할 수 있죠. 그냥 인식을 못하는 문제입니다.

각각의 프로세스는 유저영역 2G와 커널영역 2G가 매핑되서 총 4G의 가상 주소 공간을 사용할 수 있습니다. (또는 3/1G이지만 설명은 2/2로 하겠습니다) 여기서 커널 2G는 모든 유저에게 다 똑같이 보여지게 되고, 유저 2G는 현재 실행되는 프로세스가 바뀌면 이 2G 영역이 바뀝니다. 그래서 컨텍스트 전환(context switch)는 시스템 입장에서 비싼 연산입니다.

그럼 커널 2G는 모든 유저에게 똑같이 보여주니까 상관 없지만 유저 2G는 유저마다 바뀌게 되는데 어떻게 처리하느냐? 이건 커널이 메모리 관리를 통해서 하게 됩니다. 유저가 2G의 영역을 가지고 있다고 하지만 이 2G를 전부 다 쓰는 것은 아닙니다. 그리고 이 2G에서 공유 라이브러리(shared library) 같은 것은 서로 다른 프로세스가 같은 라이브러리 바이너라를 공유하죠. 이런 것을 쓰는 것만 잘 매핑하고, 혹시 메모리가 부족하면 다른 프로세스가 사용하던 메모리는 하드 디스크로 잠깐 내려서 유저는 2G를 full로 다 쓸 수 있는 것처럼 보입니다.

32비트라서 그런게 아니라… os를 그렇게 만들어놔서 그런거 아닌가 싶어요. 다른 방식으로 메모리를 컨트럴 했다면 HDD처럼 확장이 됐을텐데…

윗분들이 자세히 설명해 주셨지만, 그냥 제 생각이에요.

저도 4G를 쓰는데 PAE 옵션도 잘 안통하고해서 (되도 3.5G까지만 쓴다고 하더라구요)

64비트 ubuntu, 64비트 vista씁니다. xp32비트는 버박으로 돌리구요…

자신의 CPU가 64인지 32인지 알 수 있나요?
처음에 살때 선택해서 사야되는거 아닌가요?

[quote="uriel":6v7wyj8x]일단 각각의 프로세스가 사용하는 가상 메모리 공간이 4G라는 점과 인식하는 램의 크기는 상관이 없는 이야기입니다. 윈도우즈의 경우 유저 영역이 2G이고 커널 영역이 2G인데 램을 2G만 인식하는 것은 아니죠. (이것은 부트 옵션을 바꿔서 3/1G로 바꿀 수 있습니다.) [/quote:6v7wyj8x]
아… 그렇군요. 역시 주워들은 이야기를 다시 푸는 것은 문제가 있습니다. :-)

[quote="asakkum":1sq5n97q]자신의 CPU가 64인지 32인지 알 수 있나요?
처음에 살때 선택해서 사야되는거 아닌가요?[/quote:1sq5n97q]

Core2 Duo 시리즈는 EM64T를 모두 지원합니다.
x86_64 커널 모두 사용할 수 있죠.ㅎㅎ
제가 알기로는 현재 판매중인 IBM계열 CPU중에 64비트를 지원하지 않는 CPU는 없는걸로 알고 있습니다.

[quote="kyu419":3r6cmnl8][quote="asakkum":3r6cmnl8]자신의 CPU가 64인지 32인지 알 수 있나요?
처음에 살때 선택해서 사야되는거 아닌가요?[/quote:3r6cmnl8]

Core2 Duo 시리즈는 EM64T를 모두 지원합니다.
x86_64 커널 모두 사용할 수 있죠.ㅎㅎ
제가 알기로는 현재 판매중인 IBM계열 CPU중에 64비트를 지원하지 않는 CPU는 없는걸로 알고 있습니다.[/quote:3r6cmnl8]

우와…오늘 처음 알았습니다. 전 따로 cpu가 구분되는지 알았는데 그게 아니였군요.
용산같은데 가면 64비트 cpu 이런 말들이 있어서 cpu도 32비트, 64비트 따로 생산하는줄 알았습니다.
그럼 제 아수스 M51SR 노트북도 64비트 우분투를 설치해도 되는군요…
64비트 우분투 설치하면 바로 4G램모두 인식하겠내요!!!야호~~~

몇몇 사람들은 인식 못하는 부분을 램드라이브로 잡아서 페이지 파일을 거기에 둔다고 하던데요.

이러면 엑세스 속도가 훨씬 빨라진다고 합니다.

64비트 운영체제를 쓰면 해결되는 문제이지만, 인터넷 및 프로그램 호환성 문제 때문에 어쩔 수 없이 32비트 운영체제를 많죠.

[quote="hitechitec":32b7lxcm]몇몇 사람들은 인식 못하는 부분을 램드라이브로 잡아서 페이지 파일을 거기에 둔다고 하던데요.

이러면 엑세스 속도가 훨씬 빨라진다고 합니다.

64비트 운영체제를 쓰면 해결되는 문제이지만, 인터넷 및 프로그램 호환성 문제 때문에 어쩔 수 없이 32비트 운영체제를 많죠.[/quote:32b7lxcm]

저도 그렇게 해서 32비트로 1G를 램드라이브 잡고 ReadyBoost 사용할 심산으로 해봤으나, 램드라이브도 3G 안에 포함되더군요. ㅠㅠ

결국은 64비트 설치하게 됐습니다.

[quote="asakkum":q795un7r]우와…오늘 처음 알았습니다. 전 따로 cpu가 구분되는지 알았는데 그게 아니였군요.
용산같은데 가면 64비트 cpu 이런 말들이 있어서 cpu도 32비트, 64비트 따로 생산하는줄 알았습니다.[/quote:q795un7r]
CPU 에 대해 전문적인 얘기를 해드릴 순 없지만, 흔히 32비트, 64비트라고 하는 것은 CPU 내외의 버스폭을 얘기하는 것입니다. 쉽게 말해 도로폭이죠. 4차선이냐 8차선이냐… 이건 물리적인 것입니다. 따라서 최초 생산시에 결정됩니다.
당연히 32비트 CPU, 64비트 CPU 따로 있습니다. 다만 kyu419 님의 말씀은 최근의 CPU 는 64비트를 지원하는 것이 대부분이고, 이는 32비트 운영체제도 사용할 수 있기 때문에 큰 의미가 없다라는 말씀입니다. 하지만 아직도 32비트 CPU 는 절찬리에(?) 판매중입니다. 국내는 아닐지 몰라도… 최소한 현재 가정집에 있는 컴퓨터의 상당수는 32비트가 아닐까 싶네요.

우분투가 아니라 데비안의 이야기이지만, 커널 컴파일을 할 때 메모리 64기가까지 인식하게하는 옵션을 켜고 해도 4기가가 다 안잡히더군요.

아, 그리고 데스크톱으로 쓰실 거면 64비트 운영체제는 잘 고려를 해봐야할 겁니다. 자신이 주로 쓰는 애플리케이션이 안돌아갈 수도 있으니까요.

[quote="pcandme":d9tblu8j]우분투가 아니라 데비안의 이야기이지만, 커널 컴파일을 할 때 메모리 64기가까지 인식하게하는 옵션을 켜고 해도 4기가가 다 안잡히더군요.

아, 그리고 데스크톱으로 쓰실 거면 64비트 운영체제는 잘 고려를 해봐야할 겁니다. 자신이 주로 쓰는 애플리케이션이 안돌아갈 수도 있으니까요.[/quote:d9tblu8j]

우분투도 64비트 어플리케이션이 별로 없군요…그렇다면 굳이 64비트 os를 사용할 의미가 정말 없군요.
아쉽내요…64비트 os로 4기가 사용하려고 했는데…
그럼 3기가는 모두 인식하겠죠? 그럼 3기가로 업해야 겠습니다. 제가 컴을 무겁게 사용해야 하거든요.
86, 86-64, 64이런식으로 가끔 패키지들이 있는데 중간의 86-64는 32비트, 64비트 모두 지원하는 어플리케이션이란 말인가요?

혹시 우분투 64비트 os를 사용하고 계신분이 있다면 사용기 올려주시면 감사하겠습니다.

인텔 CPU별 제품 사양표가 있내요. 참고 하세요

http://www.intel.com/products/services/ ... o_spec.htm

이참에 64비트 우분투를 설치하려고 합니다. KAIST에서 64비트용(인텔)을 받았는데
ubuntu-8.04.1-desktop-amd64.iso이처럼 파일명이 amd64로 되어 있내요?
이게 맞나요?

64비트용 어플리케이션은 보통 x64 내지는 amd64 로 표시됩니다.
amd64 인 까닭은 amd 에서 64비트용 cpu 를 먼저 출시했기 때문에, 그것이 대명사로 굳어진 것이다라는 유언비어(?)가 있습니다. 그런 관계로 amd64 라고 해서 amd cpu 에서만 동작하는 것은 아니므로 안심하고 설치하셔도 됩니다.(cpu 별로 컴파일하는 swiftweasel 의 경우 athlon64-amd64 라는 식으로 표기합니다. 근데 athlon64-32bit_ubuntu_7.10-8.04_AMD64.deb 는 도대체… 32비트인거야? 64비트인거야? ;;:wink:

요즘에는 특수한 프로그램이나 전문적인 프로그램, 혹은 마이너 프로그램 등을 제외하고는 64비트용으로 많이 나오고 있습니다만, 그래도 역시나 32비트보다는 부족한 것이 사실입니다. 제가 6.10 인가부터 64비트를 써왔는데, 많이 좋아졌습니다만, 역시 32비트보다는 컴파일해야하는 횟수가 많았습니다. 그런 반면 성능 차이는… 글쎄요. 요즘 32비트를 쓰고 있는데, 느린 것에서 빠른 것으로 가면 그 차이를 잘 못느끼지만, 빠른 것에서 느린 것으로 오면 답답해 미치는 것이 일반적인 반응이라는 것을 생각하면… 실제 성능에도 큰 차이가 없는 것 같습니다. 제가 라이트하게 써서 그런지는 몰라도…

결론은 아직은 32비트! 하지만 64비트도 충분히 사용가능.

더스트님에 추가해서 전반적인 이야기를 하면, 처음에 32비트에서 64비트로 갈 때에 인텔이랑 HP랑 합쳐서 IA64라는 녀석을 만들었습니다. 이 CPU는 기존 32비트 인텔 칩과의 호환은 무시하고 전체 설계를 새로 했습니다. 대신에 64비트 명령어로 32비트 모드를 구동시키는 모드를 추가했는데, 이건 에뮬레이션이여서 32비트 성능이 64비트에 비해 50% 정도밖에 안나왔다더군요. 그래도 나름대로 서버 쪽에서는 많이 쓰입니다.

AMD에서 저런게 문제라고 인식해서 AMD64라는 제품을 만들었습니다. AMD64의 경우는 기존 32비트 CPU에 64비트 모드를 "추가"하는 개념입니다. 그래서 32비트와 64비트 OS가 모드 동작할 수 있고 32비트 성능도 떨어지지 않습니다. 이게 시장에서 인기를 끄니까 인텔에서도 라이센스를 해가서 EMT64라는 이름을 붙였습니다. 실제로 구현이 좀 다를지는 모르겠지만 유저 입장에서는 똑같은 물건이죠.

성능의 경우 AMD64는 32비트에 비해 64비트가 잘하면 50%까지 빠른 경우도 있는데, EMT64는 10% 정도의 성능 향상이 있다고 벤치마크 등에서 이야기 합니다. 물론 인코딩이나 컴파일 같은 작업은 64비트가 전반적으로 성능이 많이 좋지만 이 성능 비교는 평균적인 이야기입니다.

64비트 에서 이름이 약간 헷갈려 하는데 기존의 x86이라고 얘기하는 것은 정식 이름은 x86-32입니다. x86 아키텍처의 32비트 머신이죠. 위에서 인텔과 HP가 같이 만들었다고 하는 IA64의 정식 이름은 IA-64입니다. IA 아키텍처의 64비트죠. 실제로 내부적인 아키텍쳐가 완전히 다릅니다.

AMD에서 만든건 IA-64와는 달리 x86 아키텍처를 확장했기 때문에 이름이 x86-64입니다. AMD에서 붙인 이름은 AMD64이고 인텔의 이름은 EMT64(나중에 이름을 Intel 64로 바꾸었다고 합니다)인데, CPU 회사랑 좀 상관 없는 중립적인 이름으로는 x86-64입니다. 이걸 MS에서는 x64라고 부릅니다 --;