µå¶óÀ̹ö¿¡ °üÇÑ Áú¹®ÀÔ´Ï´Ù. (osx °ü·Ã)

isaiah   
   Á¶È¸ 3792   Ãßõ 0    

 2cpu가 다루는 주제와 좀 어긋난 내용이긴 한데.

 본격적인 개발자 커뮤니티에 올리기에는 너무 기초지식 없는 사람의 질문이라.

 2cpu 사용자 분들께 도움을 청해 봅니다.


 취미로 x86에 osx를 설치해서 쓰고 있는데요.

 intel 랜 카드를 위한 appleIGB.kext 드라이버를 설치하면 커널 패닉이 발생합니다.

 몇차래의 삽질을 한 후 확인한 것은 osx의 기본 드라이버인 appleintelcpupowermanagement.kext를 로드하지 않도록 설정하면

appleIGB.kext가 정상적으로 작동하나. appleintelcpupowermanagement.kext와 appleIGB를 동시에 로드하면

 appleIGB.kext가 존재하지 않는 패이지를 호출했다는 패이징 폴트 메세지를 출력하고 패닉이 발생합니다.


 이 appleIGB.kext는 리눅스용 intel lan 카드를 기반으로 osx용으로 만들어 진 것이고 코드는 공개 되어 있습니다.

 appleintelcpupowermanagement.kext는 알맹이를 알 수 없구요.


  어째서 개별적으로 실행했을때 정상적으로 작동하는 드라이버가 동시에 로드하면 문재를 발생시키는 걸까요?

  검색을 해본 경과 일반적인 프로그램은 패이징 폴트가 발생하면 그냥 해당 패이지를 찾아서 메모리에 로드하지만

  커널에서 돌아가는 커널 익스텐션의 경우 패이징을 허락하지 않는다고 들었습니다. 

 없는 패이지를 찾고 있다는것은  각각의 커널익스텐션이 서로의 매모리 공간을 침범해서 내용을 갈겨버려서 문제가 생기는 건가요?

 만약 그렇다면 일반적으로 이러한 충돌은 어떠한 형태의 코딩 습관이 유발한다거나.

 어딘가를 수정해서 회피할 수 있다던가 하는 고 위험군 코드가 있을까요?

 아니면 다이나믹 디버깅을 하지 않으면 능숙한 사람들도 추측하기 어려운 부분인가요?

ªÀº±Û Àϼö·Ï ½ÅÁßÇÏ°Ô.


QnA
Á¦¸ñPage 2827/5684
2015-12   1494669   ¹é¸Þ°¡
2014-05   4958258   Á¤ÀºÁØ1
2015-03   3793   isaiah
2015-03   5439   ¹Ì´ã
2015-03   6293   ¾Ïºê·Î½Ã¾Æ
2015-03   4768   ±è»ó¹Î
2015-03   4254   À©µµ¿ì10
2015-03   3980   ±è°Ç¿ì
2015-03   6569   Nitro
2015-03   8438   ÅäÂî
2015-03   5885   ³ªÆÄÀÌ°­½ÂÈÆ
2015-03   4379   ¸·ÆÇ´ëÀå
2015-03   4431   isaiah
2015-03   3832   ¹Ì´ã
2015-03   3699   ¹Ì´ã
2015-03   3296   ȲÁø¿ì
2015-03   3088   AKAÁö´Ï
2015-03   8062   ±èÁ¦¿¬
2015-03   4150   ¸®³ª
2015-03   10092   ¸®³ª
2015-03   3562   ¿¡ÀÌÇÎÅ©
2015-03   4678   º´¸ÀÆù