커널 모드 unlink 구현

0
points

안녕하세요

로더블 모듈을 이용하여 커널 모드에서 파일 IO를 처리하려고 합니다.

유저영역 app --> 문자 장치(ioctl) --> 커널 모듈 --> 파일 io

이런 모양인데요^^;

다른 부분은 klib나 시스템 콜 관련 함수를 따라 들어가면서 만들어 두고 동작을 확인하였습니다.

몇일 다른 작업 하다가 파일 삭제를 추가해야 될 일이 생겨서 만들려고 하는데요

sys_unlink 안쪽 코드들을 이용하다보면, 안쪽의 static 함수들 추가해주면서 작업해도

undefined symbol 관련된 에러가 하염없이 나길래... 이건 좀 방향이 잘못된것 같다라는 생각이 들어서

sys_unlink를 직접 이용해 보려고 하니,

2.6 커널에서는 이 방법은 일단 시스템 콜 테이블이 export되지 않아 사용할 수 없고,

좋은 방법이 아니라는 것을 알게되었습니다.

커널을 재 컴파일 할수는 없는 상황입니다.

그 뒤로는 어떤 방향으로 파일 삭제를 처리해야될 지 몰라, 멍 때리는 중입니다^^;;

어떤 방법을 써야 할지 작은 조언이라도 부탁드립니다.

감사합니다. :)

bushi의 이미지
5923
points

built-in 이 아니라

0
points

built-in 이 아니라 loadable module 로 하고계시나 보네요.

call_usermodehelper() 를 사용해서 단순하게 /bin/rm -f xxx 를 실행시키는 방법도 있습니다.
예제는... lib/kobject_uevent.c 를 보시면 되겠습니다.

OTL

말씀해 주신

0
points

말씀해 주신 방법으로 해결했습니다.

큰 도움이 되었습니다. 감사합니다 :)

댓글 보기 옵션

원하시는 댓글 전시 방법을 선택한 다음 "설정 저장"을 누르셔서 적용하십시오.