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

isaiah   
   Á¶È¸ 3819   Ãßõ 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 2891/5688
2014-05   5004250   Á¤ÀºÁØ1
2015-12   1540032   ¹é¸Þ°¡
01-12   1481   Fentanest
2011-03   6935   ºí·¯µð
2022-05   1787   ±îÄ¡»ê°³²ÜÅÊ
2019-09   4298   ¿ö´Ï¼±ºñ
2016-05   3928   jang
2011-03   9413   µ¥À̺ñµå
2015-03   5733   ¾ß³ª±â
2016-05   4574   ºê·¡µé
2019-09   2466   ºÎ»ç³Ý
2022-06   2175   ciscocom
2018-07   11156   ´ÃÆĶõ
2013-11   9863   ŸÀÌÈ£
2013-11   6634   Çà¾Æ¹ü
2019-09   2879   ¿©ÁÖ³ó¹Î76
2020-12   3780   ³ª½ºÃʺ¸¿¡¿ä
2017-04   3466   ÄĹÚ
2015-03   3898   ±è¿ë³²
2016-05   4900   Á¤ÀºÁØ1
2018-07   4156   L5640
2019-09   2605   Àü»êÁ÷µù