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

isaiah   
   Á¶È¸ 3784   Ãßõ 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 4019/5682
2014-05   4951862   Á¤ÀºÁØ1
2015-12   1488456   ¹é¸Þ°¡
2014-10   3786   ºýÁ¾
2020-06   3786   ¸·¿ï¾ú¾î¿ä
2015-08   3786   À©µµ¿ì10
2017-03   3786   annm
2018-07   3785   Çϼ¿È£ÇÁ
2014-05   3785   µÎ¸®¾È
2016-08   3785   Æ÷Ä«
2017-04   3785   ½Öcpu
2014-04   3785   ±èÁ¦¿¬
2021-06   3785   leesh2143
2014-08   3785   ¹æoÈ¿o¹®
2017-07   3785   NGC
2017-11   3785   ±è¹Î¼º
2018-04   3785   ºü½Ã¿Â
2018-06   3785   ±è°Ç¿ì
2019-09   3785   ºí·¢ÆÞ
2015-03   3785   isaiah
2014-02   3785   ½ÂÈÆ
2016-03   3785   2FluF
2018-08   3785   SamP