티스토리 뷰
728x90
dnotify, inotify, fanotify 비교
리눅스 커널에서 파일 시스템 이벤트를 모니터링하는 데 사용되는 dnotify, inotify, fanotify 세 가지 메커니즘의 비교와 각 메커니즘이 지원되는 커널 버전에 대해 설명드리겠습니다.
dnotify
- 지원되는 커널 버전: 리눅스 커널 2.4에서 도입됨.
- 특징:
- 디렉토리 전용: 디렉토리에서 발생하는 이벤트만 모니터링할 수 있습니다.
- fcntl 기반: 파일 디스크립터와 fcntl 시스템 호출을 사용합니다.
- 비효율성: 각 디렉토리에 대해 파일 디스크립터를 유지해야 하므로 많은 디렉토리를 모니터링하는 데 비효율적입니다.
- 프로세스 전용 알림: 알림은 설정된 프로세스에만 전달됩니다.
- 주요 이벤트:
- DN_ACCESS: 파일에 접근했을 때.
- DN_MODIFY: 파일이 수정되었을 때.
- DN_CREATE: 파일이 생성되었을 때.
- DN_DELETE: 파일이 삭제되었을 때.
inotify
- 지원되는 커널 버전: 리눅스 커널 2.6.13에서 도입됨.
- 특징:
- 파일 및 디렉토리 모니터링: 파일과 디렉토리 모두에 대해 이벤트를 모니터링할 수 있습니다.
- 효율성: 더 높은 성능과 적은 리소스로 이벤트 모니터링이 가능합니다.
- 사용자 공간 인터페이스: inotify 파일 디스크립터를 통해 이벤트를 처리합니다.
- 주요 이벤트:
- IN_ACCESS: 파일이 접근되었을 때.
- IN_MODIFY: 파일이 수정되었을 때.
- IN_ATTRIB: 파일의 메타데이터가 변경되었을 때.
- IN_CLOSE_WRITE: 파일이 쓰기 모드로 닫혔을 때.
- IN_CLOSE_NOWRITE: 파일이 읽기 모드로 닫혔을 때.
- IN_OPEN: 파일이 열렸을 때.
- IN_MOVED_FROM, IN_MOVED_TO: 파일이 이동되었을 때.
- IN_CREATE: 파일이나 디렉토리가 생성되었을 때.
- IN_DELETE: 파일이나 디렉토리가 삭제되었을 때.
fanotify
- 지원되는 커널 버전: 리눅스 커널 2.6.37에서 도입됨.
- 특징:
- 파일 시스템 전체 모니터링: 전체 파일 시스템에 대해 이벤트를 모니터링할 수 있습니다.
- 보안 및 접근 제어: 파일 액세스를 모니터링하고 차단할 수 있는 기능이 포함되어 있습니다.
- 더 높은 유연성: 세밀한 제어와 다양한 설정이 가능합니다.
- 사용자 공간 인터페이스: fanotify 파일 디스크립터를 통해 이벤트를 처리합니다.
- 주요 이벤트:
- FAN_ACCESS: 파일이 접근되었을 때.
- FAN_MODIFY: 파일이 수정되었을 때.
- FAN_CLOSE_WRITE: 파일이 쓰기 모드로 닫혔을 때.
- FAN_CLOSE_NOWRITE: 파일이 읽기 모드로 닫혔을 때.
- FAN_OPEN: 파일이 열렸을 때.
- FAN_OPEN_PERM: 파일 열기 전에 권한을 확인할 때.
- FAN_ACCESS_PERM: 파일 접근 전에 권한을 확인할 때.
- FAN_ONDIR: 디렉토리에 대한 이벤트일 때.
- FAN_EVENT_ON_CHILD: 자식 디렉토리에서 발생한 이벤트를 포함할 때.
비교 요약
특징 | dnotify | inotify | fanotify |
도입된 버전 | 리눅스 커널 2.4 | 리눅스 커널 2.6.13 | 리눅스 커널 2.6.37 |
대상 | 디렉토리 전용 | 파일 및 디렉토리 | 전체 파일 시스템 |
이벤트 모니터링 | 기본적인 디렉토리 이벤트 | 다양한 파일 및 디렉토리 이벤트 | 파일 시스템 전반의 세밀한 이벤트 |
성능 및 효율성 | 낮음 | 높음 | 높음 |
보안 기능 | 없음 | 없음 | 접근 제어 및 보안 기능 포함 |
알림 방식 | 설정된 프로세스에만 전달 | 사용자 공간 인터페이스를 통해 전달 | 사용자 공간 인터페이스를 통해 전달 |
복잡도 | 낮음 | 중간 | 높음 |
이 표는 각 메커니즘의 주요 특징과 차이점을 요약하여 보여줍니다. dnotify는 기본적이고 단순한 파일 시스템 모니터링을 제공하지만, 성능과 효율성 측면에서 한계가 있습니다. inotify는 보다 강력하고 효율적인 파일 및 디렉토리 모니터링을 제공하며, fanotify는 보안 및 접근 제어 기능을 포함한 파일 시스템 전반에 걸친 세밀한 모니터링을 제공합니다.
반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 블루버블다이브팀
- C# 고급 기술
- 성산블루버블
- 블루버블다이빙팀
- 패턴
- Windows
- 스쿠버다이빙
- 서귀포
- C#.NET
- PowerShell
- 스쿠버 다이빙
- 울릉도
- Linux
- C
- effective
- Effective c++
- 블루버블
- OpenSource
- 외돌개
- script
- 네트워크 정보
- DLL
- Build
- 제주도
- C++
- 서귀포블루버블
- C#
- 암호화
- CMake
- 현포다이브
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
글 보관함
250x250