커널버전과 커널헤더관련 궁금증
글쓴이: classique / 작성시간: 일, 2005/02/06 - 1:33오전
리눅스 배포판을 보면 보통 Linux-headers라는 패키지가 있는 걸로 알고 있습니다.
그런데 이 패키지는 커널소스에서 헤더파일을 모아놓은 것으로 알고 있습니다. 커널모듈 컴파일이라
던지 여러 프로그램 컴파일시 필요하여 존재하는 것으로 알고 있습니다. 그런데 궁금한 것은 보통의
배포판에서 보면 커널버전과 Linux-headers 버전이 일치하지 않는다는 것입니다. 보면 커널버전 따로 나
가고 Linux-headers버전 따로 나갑니다. 커널소스에서 헤더가 변경되지 않아서 버전이 올라갈 필요가 없
다면 이해가 되는데 시스템이 커널을 2.6을 사용해도 Linux-headers는 여전히 2.4 버전을 사용한다는
것은 좀 이해가 잘 안됩니다. 젠투의 경우는 2.4 헤더 패키지, 2.6 헤더 패키지 두 개 모두 공존하는군요.
왜 이런것인지... 가르쳐 주세요.
이렇게 헤더 버전이 따로 존재하게 되면 사용하는 커널은 2.6 커널인데 glibc는 2.4헤더를 기반으로 컴파일
했다고 가정하면 2.6에서 추가된 기능은 glibc를 2.6헤더 기반으로 다시 컴파일 해야하지 않나요.
이런 경우를 고려하면 오히려 컴파일시 문제점을 발생할 소지가 클 것으로 생각하는데요.
Forums:
....
커널 헤더는 여러가지 버전을 깔아도 지장 없습니다.
예를 들어 커널 2.4.23과 2.6.8 을 깔아서 필요에 따라 다른 버전의 커널로 부트한다고 합시다.
새로운 하드웨어가 생겨서 모듈 컴파일을 한다면 커널 2.4.23으로 부트한 상태에서는 기본적으로 2.4.23에 해당하는 헤더를 참조하여 컴파일 하고 , 2.6.8로 부트한 상태에서는 기본적으로 2.6.8에 해당하는 헤더를 참조합니다.
커널 2.6.8로 부트한 후 헤더는 2.4.23버전만 깔려있는 상황이라면, 외장 모듈을 컴파일할 때 "알수 없는 심벌" 에러를 낼 것입니다.
No Pain, No Gain.
NPTL를 사용하기 위해서는 2.6커널과 해더파일을 써야한다네요;;그
NPTL를 사용하기 위해서는 2.6커널과 해더파일을 써야한다네요;;
그래서 전 header 2.4버전을 삭제하고 씁니다.
해더파일은 상황에 따라 다르게 불러오는 것으로 알고 있습니다.
lib들도 그렇지 않나요? 잘못 알고 있나;;
USE="multilib"
이번 젠투를 2005.0으로 업그레이드하면서 알게된건데요.[cod
이번 젠투를 2005.0으로 업그레이드하면서 알게된건데요.
USE="multislot"
multislot은 gcc-3.3.x버전과 gcc-3.4.x버전을 같이 사용하는 거네요;
그나저나 2005.0으로 업그레이드 하면서 linux-headers를 다시 깔았는데요.. ( 매뉴얼에 나온데로..;; )
그게 원인인지 multilib를 설정할 수 없게 되어있네요..
왜 이럴까요;;
댓글 달기