filesystem, userspace .vs. kernelspace

sjpark의 이미지

user space 에서 구현되는 파일 시스템과
kernel space 에서 구현되는 파일 시스템.

이 두가지 경우에 대해 어떤 장단점이 있다고 생각하시나요?

user space 에서 구현되는 파일 시스템이 가질 수 있는 장점이나..
kernel space 에서 구현되는 파일 시스템의 장점.

딱히 구분짓기 애매하더라구요.

물론 일반적으로 user space 파일시스템을 제공하기 위해서는 FUSE 라든지, 주변 도구들을 이용해, 다른 응용프로그램들이 사용할 수 있도록 표준 인터페이스를 제공해 주어야 하는 단점들도 있고, 성능을 보장할 수 없다라든지..

어떻게 생각하시나요?

감사합니다.

ganadist의 이미지

리눅스에 한정해서는 다음과 같이 생각해볼 수 있습니다.

1. 라이센스 충돌을 피할 수 있다.
단순히 인터페이스만 사용하는 것이므로, GPL이 아니여도 되고, libfuse는 LGPL입니다.
2. 풍부한 user level 라이브러리를 사용할 수 있다.
3. 개발하기 편하다.
요새같이 vm을 쓸 수 있는 시대는 약간 의미가 퇴색되긴 합니다만 여전히 커널레벨 프로그래밍보다는 유저레벨 프로그래밍이 개발자입장에서는 편할겁니다.

----
Do not feed troll!

----
데스크탑 프로그래머를 꿈꾸는 임베디드 삽질러