테스트 결과 재배치 섹션(Relocation Section)이 역시 존재하며, 재배치를 수행해야 정상적으로 실행가능하다는 겁니다. 커널 코드를 4M 와 2M Base로 설정하여 빌드한 후 바이너리를 비교해 봤는데, 함수를 호출하는 부분의 코드는 변함이 없으나 데이터에 접근하는 부분 같은 경우는 역시나 Base Address에 영향을 받는 부분이 있더군요. Diff 프로그램으로 검사해본 결과 바이너리가 달랐습니다.
이렇게 되면 결국 elf64 파일 포맷으로 어플리케이션을 빌드하고 OS에서 재배치해서 로딩하는 수 밖에 없겠군요. ㅎㅎ 약간 안습인 상황이... ㅠㅠ 아흑... 어찌해도 일거리가 줄어들지 않는군요.
시간나면 elf 파일 포맷이나 봐야겠습니다. elf64 파일 포맷은 www.openwatcom.org/ftp/devel/docs/elf-64-gen.pdf 에서 보실 수 있습니다. ㅎㅎ
오늘은 좀 일찍 컴퓨터를 꺼야겠습니다. 몸이 점점 축나서 회사 생활이 안된다는... ㅎㅎ
그럼 다들 좋은 밤 되세요 ;)
'OS Kernel(Intel, ARM)' 카테고리의 다른 글
| elf64에 대한 스펙과 재배치(Relocation) (0) | 2008/07/23 |
|---|---|
| 소스 코드 정리가 쉽지 않네요 ^^;;;; (0) | 2008/07/23 |
| 드디어 Interrupt 처리 부분과 IOAPIC, 그리고 APIC 설정 기능을 추가했습니다. ㅠㅠ (6) | 2008/07/21 |
| 취미를 넘어서 일거리(??)가 되어버린 64Bit OS 입니다. ^^;;;; (14) | 2008/07/14 |
| Cygwin에서 x86_64용 크로스 컴파일러 만들기 (6) | 2008/07/10 |
| 드디어 cygwin에서 64bit 크로스 컴파일러(cross compiler)를 만드는데 성공했습니다. ㅜ_ㅜ (2) | 2008/07/09 |
이올린에 북마크하기
이올린에 추천하기
댓글을 달아 주세요