![Linux에서의 주소 지정](https://linux55.com/image/207859/Linux%EC%97%90%EC%84%9C%EC%9D%98%20%EC%A3%BC%EC%86%8C%20%EC%A7%80%EC%A0%95.png)
주소 지정과 메모리를 이해하려고 노력 중입니다. "임베디드 리눅스 입문"이라는 책에서는 이렇게 말합니다.
hello라는 프로세스는 256MB 경계(0x10000418)보다 높은 RAM 어딘가에서 실행되고 있다고 생각합니다. 또한 스택 주소는 32비트 주소 공간의 대략 절반이며, 256MB RAM(0x7ff8ebb0)을 훨씬 초과합니다. 어떻게 그래? 이러한 시스템에서 DRAM은 일반적으로 연속되어 있습니다. 일반 관찰자에게는 거의 2GB의 DRAM을 사용할 수 있는 것으로 보입니다. 이러한 가상 주소는 커널에 의해 할당되며 Yosemite 마더보드의 사용 가능한 메모리 256MB 내에서 물리적 RAM에 의해 지원됩니다.
위의 진술과 관련된 코드와 출력을 첨부했습니다.
32비트 주소 지정이 어떻게 2GB 메모리로 변환되는지 알고 싶습니다. 각 주소가 4비트 메모리로 구성된 경우 0~0xFFFFFFFF는 2GB 메모리로 변환됩니다.
계산: 0XFFFFFFFF는 10진수로 4294967295입니다. 주소당 4비트. 즉, (4294967295*4)/8 = 2147483647.5바이트 = 2.1GB입니다.
- 각 주소는 4비트의 메모리를 보유할 수 있습니다. 맞나요?
- 주소당 비트 수는 어떻게 결정됩니까?
감사해요