반독점 소프트웨어는 어떻게 Linux 커널을 기반으로 할 수 있습니까?


9

내가 올바르게 이해하면 Linux Kernel은 GPL에 따라 라이센스가 부여됩니다. 즉, 누군가가 GPL에 기반을 둔 경우 GPL에 따라 전체 파생물에 대한 라이센스도 부여해야합니다.

예를 들어 모든 Android 릴리스는 LK를 기반으로합니다. 그렇다고해서 전체 릴리스와 모든 구성 요소가 GPL로 릴리스되어야한다는 의미는 아닙니까?

예를 들어 대부분의 Android 릴리스에는 독점 구성 요소가 제공됩니다. 이것이 GPL을 위반하지 않습니까? 파생 상품 전체를 GPL에 따라 공개 할 필요는 없습니까?

예를 들어 Ubuntu를 사용하면 설치 후 MPEG 코덱을 다운로드해야합니다. MPEG이 독점적이므로 MPEG 라이센스가 GPL과 호환되지 않기 때문에 동일한 릴리스에 포함될 수 없다고 생각합니다.

Android 릴리스는 어떻게이 문제를 해결합니까?


2
짧은 버전은 GPL의 '바이러스 성'품질이 라이센스 하에서 코드의 파생 작업에만 작용할 수 있으며 커널을 호출하는 사용자 영역이 커널의 파생 작업으로 만들지 않는다는 것입니다.
Tom Hunt

커널과 그 밖의 다른 소프트웨어에는 별도의 라이센스가 있으며 GPL이이를 허용합니다.
Revetahw는 Reinstate Monica가

또한 이해를 돕기 위해 GPL v2와 GPL v3 사이에는 큰 차이가 있으며 Linus는 GPL v2를 계속 사용한다는 점을 덧붙이고 싶습니다. 여기 에 약간의 정보가 있습니다. 상위 2 개의 답변이 꽤 좋은 것 같습니다.
KGIII

답변:


9

먼저 Google의 Android 코드와 Linux 커널 코드가 분리되어 있어야합니다. Android 자체는 Apache License 2.0에 따라 라이센스가 부여되며 Wikipedia 의 말에 따라 허용됩니다.

Apache 라이센스는 동일한 라이센스를 사용하여 소프트웨어를 파생하거나 원본을 수정하지 않아도된다는 점에서 허용됩니다.

따라서 공급 업체의 Android 수정은 일반적으로 제공되지 않습니다.

둘째, Linux 커널의 경우 GPLv2에 따라 라이센스가 부여 된 경우 코드가 공개적으로 공개되어 장치 내 어딘가에 묻히거나 (아마도) 공개 소스 코드 전용 공급 업체 웹 사이트의 모호한 페이지에서 다운로드 할 수 있습니다. 그들의 제품.

그러나 공개적으로 사용 가능한 Linux 커널 코드 (유일한 드라이버 및 유사한 기능의 커널 모듈)에 대한 주요 경고 사항이 있습니다. Linux 커널은 독점 라이센스로 배포 된 이진 Blob을로드 할 수 있으며 장치를 실행하는 데 필요한 이러한 Blob의 소스 코드는 자연스럽게 배포되지 않습니다. 결론은 장치에 맞는 커널 소스를 사용하더라도 자신의 기능을 갖춘 Linux 기반 OS를 컴파일하는 데 반드시 사용할 수있는 것은 아닙니다.


문맥 상 허용

허가 라이센스 란 정확히 무엇을 의미 합니까? 귀하의 의견에 따르면, 귀하는 다른 허가 된 또는 독점적으로 라이센스가 부여 된 다른 소프트웨어를 실행할 수있는 능력을 의미한다고 생각합니다. 그러나 그것은 잘못이다.

이 맥락에서 허용한다는 것은 소스 코드로 원하는대로 할 수 있다는 것을 의미합니다.

GPL 라이센스 코드에 대한 수정 사항을 공개 할 법적 의무 가 있다는 의미에서 GPL은 허용되지 않습니다 . 그것은 당신이 모든 사람의 공헌을 받아들이고, 그것을 더 좋든 나쁘게 만들 든 변경하고, 숨길 수 없습니다. 바이너리를 배포하려는 경우 소스 코드도 배포해야합니다. 그것은 않기 때문에 하지 개인 변경을 할 수 있도록 허용 그것은 그러므로 허용하지 .

Apache 라이센스 및 BSD 라이센스는 허용 라이센스의 예입니다. 엄격히 허용되지 않는 GPL과는 반대로 라이센스가 부여 된 코드를 수정하여 자신에게 유지할 수 있습니다. 즉, 허용 됩니다. 다시 말해, 안드로이드 코드를 인식 할 수 없을 정도로 변경하더라도 자신을 자유롭게 유지할 수 있습니다. 바로 이것이 Android 기기 공급 업체가하는 일입니다.


1
아니. 커널에서 실행되고 커널의 syscall을 사용하는 프로그램은 커널의 파생물이 아니기 때문입니다. Android 사용자 코드는 Linux 커널에서만 실행됩니다.
cas

1
@Fiksdal Linux 커널은 GPL에 따라 라이센스가 아닌 라이센스입니다. 일반 PC에서 Nvidia의 독점 드라이버를 사용하는 것과 동일한 방법으로 Linux에서 Android 및 기타 허용 소프트웨어를 실행할 수 있습니다.
Oxwivi

1
@Fiksdal 또는 더 좋은 예는 안드로이드가 스팀과 구글 크롬을 실행할 수있는 것과 같은 방식으로 Linux에서 독점 바이너리와 허용 바이너리를 실행하는 것입니다.
Oxwivi

1
@Fiksdal, 예, 말 그대로 분리되어 있습니다. 이것을 고려하십시오 : 동일한 커널이 Ubuntu 또는 다른 일반 Linux 배포판을 실행할 수 있습니다. 리눅스 커널은 바로 그 커널입니다. 그것은 그 위에 모든 종류의 프로그램을 실행할 수 있도록 만들어졌습니다.
Oxwivi

1
@Fiksdal 답변을 편집했습니다. 확인하십시오.
Oxwivi
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.