2013-08-07 2 views
0


우리는 파이썬 퓨즈 라이브러리를 사용하여 파일 시스템을 구현하고 있습니다. 우리는이 파일 시스템에 대해 "스냅 샷"기능 (api)을 구현했습니다. (ls, mkdir 등) - 스냅 샷과 같은 시스템 호출을 통해이 스냅 샷 API를 호출하려고합니다. 이 새로운 시스템 호출은 어떻게 작성합니까?FUSE 파일 시스템을위한 새로운 파일 시스템 호출 생성

답변

1

불행히도, FUSE는 커널을 사용하여 syscall을 과도하게 수행하기 때문에 FUSE에 시스템 호출을 추가 할 수 없습니다. 커널에 추가해야합니다.

반면에 시스템 콜이 필요하거나 사용자 수준에서 필요한 것을 구현할 수 있습니까? (예, ls를 들어, 즉 readdir()getdents() 같은 다른 시스템 호출을 호출하는 사용자 레벨 라이브러리 루틴이다, 시스템 콜 실제로입니다.)

방금 ​​실행중인 모든 프로그램에 전화를 사용할 수 있도록해야하는 경우 시스템을 표준 라이브러리 중 하나에 추가하거나 LD_PRELOAD을 사용하여 해킹합니다. 시스템을 추가

커널 호출 여기를 참조 : http://www.csee.umbc.edu/courses/undergraduate/CMSC421/fall02/burt/projects/howto_add_systemcall.html

LD_PRELOAD 방법은 여기를 참조하십시오 What is the LD_PRELOAD trick?

+0

"chmod"시스템 호출을 통해 스냅 샷을 구현하여 해킹했습니다. – flowerpot

+0

기존 통화를 무시하고 건너 뛰었으므로 그 경로로 가고 싶지 않은 이유가 있다고 생각했습니다. 다행 이군! – aleatha

1

IOCTL는 대한 파일 시스템이다 사용자 정의 작업을 구현하기위한 것입니다 메커니즘입니다 매달린. Btrfs implements 파일 복제, 스냅 샷 생성 및 IOCTL을 통한 송수신

관련 문제