리눅스 커널 2.6.32 버젼에서 unistd_32.h 파일

koain의 이미지

[root@localhost linux-2.6.32]# find -name unistd_32.h
./arch/sh/include/asm/unistd_32.h
./arch/x86/include/asm/unistd_32.h

커널 최상위 디렉토리에서 검색하니 두개가 나오는데 내용도 비슷한거같아요 무슨 차이인가요?

세이군의 이미지

두 파일은 UNIX시스템(리눅스 포함)에서 사용하는 아주 기본적인 상수값들을 정의한 헤더파일입니다.(매우 중요합니다)
다만 이 값들은 CPU 구조에 따라 달라질 수 있기 때문에 CPU 별로 파일을 나누어 작성한 것입니다.
경로명 두번째를 보면 하나는 sh, 다른 것은 x86이라고 적혀 있는 것이 보일 것입니다.
PC에 데비안, 우분투, CentOS를 설치하고 프로그램을 개발하거나 커널을 컴파일하는 경우에는 두번째 헤더파일을 참조하고
다른 특정 CPU(sh라는 아키텍쳐명은 처음 봅니다만)를 쓰는 경우에는 첫번째 헤더를 참조하게 됩니다.

koain의 이미지

명확한 대답 감사드립니다.

netionics의 이미지

SH는 SuperH를 말하는 것 같습니다.

http://en.wikipedia.org/wiki/SuperH

:)