시스템콜 등록 후 실행을 했는데요
글쓴이: morethanair / 작성시간: 일, 2006/09/17 - 1:12오후
매번 질문에 답해주셔서 감사합니다^^
311번으로 시스템 콜 번호를 할당하고
테이블에 등록까지 하고 실행을 했습니다.
사용자 프로그램에서는
int i;
i=mysyscall();
return i;
이 부분으로 시스템콜을 한번 호출 하는거 밖에 없고
커널에 시스템콜 프로그램에는
{
printk("Hello\n");
}
이렇게 printk를 한 번 호출하는 부분밖에 없습니다.
그런데 사용자 프로그램을 한 번 실행하고 나면
콘솔에 메시지가 출력이 되는 것까지는 정상인데
그 후에 ls를 칠때마다 메시지가 화면에 출력됩니다.
ls를 칠때나 커널 재컴파일 할때 심지어 재부팅 중간에도
메시지 중간 중간에 'Hello'가 찍힙니다...
mysyscall()을 호출하는 부분도 없을텐데
왜 자꾸 다른 상황에서 내가 만든 시스템콜이 작동하는걸까요?
이런 경험 있으신 분 도움 좀 주세요
Forums:
Re: 311번? ;;
sys_call_table 에 원래 존재하는 엔트리는 274 개일텐데....
311 번까지 중간에 비는 대략 30여개의 엔트리를 sys_call_table 에 다 만들어 준 건가요?
2.6.16.28
이 버전에서는 310번까지 기존의 시스템 콜이 잡혀있더군요...;
Toward him...
More Than Air
댓글 달기