시스템 콜을 공부하는데 도저히 이해가 되지 않는 부분이 있습니다.
int 0X80 으로 인터럽트가 걸리면 바로 인터럽트가 발생하는 건가요??
아니면 저 명령어가 발생하면 인터럽트 핸들러가 어떠한 처리에 의해서
인터럽트가 발생하는 건가요??
그리고 idt와 트랩 게이트 그리고 stub이 어떻게 연관이 되서
시스템 콜을 처리하는 것 같은데.. 도저히 이해가 되질 않습니다.
조금만 도와주세요
인터럽트는 IDT(interrupt descriptor table) 에 등록하여 사용한다고 생각하시면 됩니다.
IDT에는 몇번 인터럽트 발생히 어떠한 핸들러를 호출할것인지에 대한것이 정의되어있구요.
int 명령어는 소프트 인터럽트를 거는 역할을 합니다.
즉, int 0x80 이라는것은...
소프트 인터럽트 0x80을 걸어라! 이말입니다. 그렇게되면 정의되어있는 핸들러를 타고 동작하겠죠. ^^
딱딱한 글씨보다는 아기자기(?)한 그림과 함께 설명이있는 곳이 있더군요. ^^
참조하세요 ^^
http://micingamja.egloos.com/3422712
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
음~
인터럽트는 IDT(interrupt descriptor table) 에 등록하여 사용한다고 생각하시면 됩니다.
IDT에는 몇번 인터럽트 발생히 어떠한 핸들러를 호출할것인지에 대한것이 정의되어있구요.
int 명령어는 소프트 인터럽트를 거는 역할을 합니다.
즉, int 0x80 이라는것은...
소프트 인터럽트 0x80을 걸어라! 이말입니다. 그렇게되면 정의되어있는 핸들러를 타고 동작하겠죠. ^^
딱딱한 글씨보다는 아기자기(?)한 그림과 함께 설명이있는 곳이 있더군요. ^^
참조하세요 ^^
http://micingamja.egloos.com/3422712
댓글 달기