이 누리집은 대한민국 공식 전자정부 누리집입니다.

리눅스 파일시스템 GPL 라이선스 문의

2019.09.25

안녕하세요?

저희는 파일시스템을 자체적으로 개발하여 공급하는 회사입니다.

기존에는 상용 RTOS에 이식된 상태로 저희 파일시스템을 공급해 왔으며

GPL 이슈가 없기에 소스를 공개할 필요도 없었습니다.

그런데 이번에 리눅스 시스템에 저희 파일시스템을 이식해야 하는 상황이 생겨

GPL 이슈와 관련된 몇가지를 여쭙고 싶습니다.

1. 저희 파일시스템을 커널 빌트인 형태가 아니라 커널 모듈 형태로 공급하면

GPL에 묶이지 않도록 할 수 있는지요?

2. 만약 커널 모듈로는 불가하다면, 파일시스템을 유저 스페이스에 구현하고

(FUSE; File system in USEr space), 시스템콜을 통해 커널과 연동되도록

구현하면 GPL을 피해갈 수 있는지요?

3. 사실 저희도 오프 소스 커뮤니티와 GPL의 공익성에는 의견을 같이 합니다만,

저희 파일시스템이 다른 상용 OS 플랫폼에 공급되고 있는 상황이라

리눅스 GPL에 따른 소스 전체 공개는 피하고 싶은 입장입니다.

혹시 2번 FUSE 방식으로도 GPL을 피해갈 수 없다면,

모든 기능이 포함된 full 버전은 소스 비공개로 하고

대신 기본적인 동작에는 아무런 문제가 없지만 일부 advanced 기능이 제외된

버전을 따로 준비하여 이 버전만 소스를 공개하는 것은 허용되는지요?

저희가 보기에는 GPL 관련 이슈가 너무나 복잡하여 이렇게 도움을 요청 드립니다.

미리 감사드립니다.

------ 댓글 -------

OSS관리자

안녕하세요

OSS관리자 입니다.

문의주신 내용 답변드립니다.

Linux Kernel의 라이선스인 GPL-2.0only의 경우 예외 조항으로 Linux Kernel 부분에만 라이선스가 적용됩니다. 빌트인 형태가 아니라 모듈 형태로 붙는다면 Linux Kernel의 라이선스의 적용 예외 대상으로 판단 됩니다. 이와 같은 경우에 Linux Kernel 수정 사용 시 Linux Kernel에 대한 GPL의 소스코드 공개의무는 준수되어야 할 것입니다.

또한, Linux Kernel의 모듈이라면 다음을 검토해봐야 합니다.

1. Linux-Only Driver가 아니어야 합니다. Linux 외 다른 OS상에서 동작 가능해야 합니다.

2. Linux Kernel의 소스코드가 사용되지 않아야 합니다. 소스코드가 사용되었다면 Linux Kernel의 파생저작물로 판단할 수 있습니다.

고맙습니다.

※ 법적 분쟁 발생시 본 답변은 법률적 해석 혹은 논리로 활용할 수 없습니다.

------ 댓글 -------

안녕하십니까?

신속한 답변 대단히 감사합니다.

번거롭게 해드려 죄송합니다만, 추가적으로 몇가지만 더 여쭙겠습니다.

1. 리눅스 커널의 소스 코드가 사용되어서는 안된다고 하셨는데요,

이 문장의 의미가 리눅스 커널이 제공하는 함수를 호출하면 안된다는 말씀이 맞는지요?

그렇다면, 아래와 경우는 어떻게 되는지 조언을 부탁드립니다.

저희 파일시스템은 A, B 이렇게 2개의 소프트웨어 모듈로 구성되는데

모듈 A에서는 리눅스 커널 함수를 직접적으로 호출하는 부분이 많습니다.

반면 모듈 B에서는 리눅스 커널 함수를 직접 호출하는 부분이 전혀 없습니다만,

모듈 A 안에 있는 저희 자체 함수들을 호출합니다.

그리고 호출된 모듈 A 안의 저희 자체 함수들에서는 커널 함수 호출이 있습니다.

즉, 모듈 B ---(호출)---> 모듈 A ---(호출)---> 리눅스 커널 함수

이와 같은 함수 호출 관계가 존재할 때,

모듈 A에 대한 소스만 공개하고

리눅스 커널 함수를 직접적으로 호출하지 않는 모듈 B는 소스 비공개로 해도 되는지요?

2. FUSE 방식에 대해서 재차 질문을 드리고 싶은데요,

파일시스템을 유저 스페이스에 구현, 즉 유저 응용 프로그램처럼 구현하고

커널과의 연동을 위해 시스템 콜을 호출하는 방식으로 구성할 경우,

시스템 콜이라는 커널 서비스를 이용했기 때문에

유저 스페이스에 구현된 파일시스템 역시 GPL에 묶이게 되는지요?

미리 감사드립니다.

------ 댓글 -------

OSS관리자

안녕하세요

OSS관리자 입니다.

문의주신 내용 답변 드립니다.

GPL에는 GPL 적용 예외의 경우가 있습니다.

파이프(Pipe), 소켓(Socket), 명령행 인자(Command Argument)로 통신하거나, 플러그인(Plug-in)을 실행하기 위해 Fork와 Exec를 사용하는 경우에는 GPL이 적용되지 않습니다.

1. A 모듈의 경우 상기와 같은 내용이 아니라면 소스코드 공개의무가 발생할 수 있습니다.

B 모듈의 경우 A 모듈을 호출하는 함수가 Linux Kernel의 함수가 아니라 직접 작성하신 함수라면 적용되지 않아 소스코드 공개의무가 발생하지 않을 수 있습니다.

2. 시스템 콜의 방식이 상기 GPL 예외 대상일 경우에는 GPL에 해당하지 않을 수 있습니다.

고맙습니다.

※ 법적 분쟁 발생시 본 답변은 법률적 해석 혹은 논리로 활용할 수 없습니다.

댓글 0

첫 댓글을 작성해보세요!

댓글 작성

댓글을 작성하려면 게시글 작성 시 입력한 이메일과 패스워드를 입력해주세요.