반응형
컴파일.링킹을 통해 만들어진 exe 파일은
하드디스크에 파일형태로 저장된다.
이 exe 파일이 실제로 cpu에 의해 실행이 되려면 파일의 내용이 메모리에 적재되야한다.
디스크에 저장된 exe 파일을 유저가 실행했을 때 파일의 내용을 메모리에 옮겨담는 역할을 하는 것이 로더이다.
이러한 로더가 윈도우와 같은 운영체제에 구현되어 동작되고 있는 것이다. 한편, 로더가 sw를 메모리에 적재하는 기법은 다양한 기법이 존재한다.
이때 가장 핵심이 되는 내용은
sw 내에서 (프로세스에서) 정의되어 있는 메모리주소를 어떻게 실제 컴퓨터의 HW 메모리주소에 매핑할 것인가? 이다.
다른 글에서 말했듯이 sw는 sw 별로 각자 독립적인 4Gbyte의 주소공간을 갖고 있고 그 주소를 바탕으로 기계어가 코딩되어있다.
그러나 로더가 sw를 실제 메모리에 적재할 때는 sw에 쓰여있는 주소와 실제 적재된 메모리 주소가 달라지게 된다.
예를 들어 test1.exe 파일에서
void main(void)
fun1
void fun1()
abcd
반응형
'자동차 임베디드 SW > 잡' 카테고리의 다른 글
이슈- Aurix 트레소스 Can Clock Enable하기 (0) | 2022.10.04 |
---|---|
인증서 확장자.포맷 관련 (0) | 2022.05.17 |
가상 주소공간(virtual address space) (0) | 2021.11.14 |
dll (다이나믹 링킹 라이브러리) 개념 (0) | 2021.11.14 |
컴퓨터 프로그램의 개념(컴파일.링크.빌드) 이해 (0) | 2021.11.14 |