Làm thế nào phần mềm bán độc quyền có thể dựa trên Linux Kernel?


9

Nếu tôi hiểu chính xác, Linux Kernel được cấp phép theo GPL, điều đó có nghĩa là nếu bất kỳ ai dựa vào nó, họ cũng phải cấp phép cho toàn bộ công việc phái sinh theo GPL, khiến mọi người có thể tự do sửa đổi và / hoặc phân phối lại công việc phái sinh của họ.

Ví dụ: tất cả các bản phát hành Android đều dựa trên LK. Điều đó không có nghĩa là toàn bộ bản phát hành và tất cả các thành phần của nó cũng phải được phát hành theo GPL?

Ví dụ, hầu hết các phiên bản Android phát hành với các thành phần độc quyền. Điều đó không vi phạm GPL? Không phải toàn bộ tác phẩm phái sinh cần phải được phát hành theo GPL?

Ví dụ, với Ubuntu, bạn phải tải xuống bộ cài đặt codec MPEG. Tôi cho rằng điều này là do MPEG là độc quyền và do đó giấy phép của MPEG không tương thích với GPL, vì vậy chúng không thể được bao gồm trong cùng một bản phát hành?

Làm thế nào để phát hành Android có được xung quanh này?


2
Phiên bản ngắn là chất lượng 'virus' của GPL chỉ có thể hoạt động đối với các tác phẩm phái sinh của mã theo giấy phép và một vùng người dùng gọi kernel không biến nó thành tác phẩm phái sinh của kernel.
Tom Hunt

Tôi thấy, kernel và phần mềm khác ở trên nó có giấy phép riêng và GPL cho phép điều này.
Revetahw nói Phục hồi lại

Tôi cũng muốn nói thêm, theo hiểu biết của tôi, có một sự khác biệt khá lớn giữa GPL v2 và GPL v3 và Linus đã tiếp tục sử dụng GPL v2 dễ dàng hơn so với cái sau. Đây là một chút thông tin về điều này. Hai câu trả lời hàng đầu dường như là khá tốt.
KGIII

Câu trả lời:


9

Trước tiên, bạn phải rõ ràng rằng mã Android của Google và mã hạt nhân Linux là riêng biệt. Bản thân Android được cấp phép theo Giấy phép Apache 2.0, được cho phép và theo cách nói của Wikipedia :

Giấy phép Apache được cho phép ở chỗ nó không yêu cầu công việc phái sinh của phần mềm hoặc sửa đổi bản gốc, được phân phối bằng cùng một giấy phép.

Như vậy, không có sửa đổi Android nào của các nhà cung cấp thường được cung cấp.

Thứ hai, trong trường hợp nhân Linux, được cấp phép theo GPLv2, mã được phát hành ra công chúng, được chôn ở đâu đó trong thiết bị (ít có khả năng) hoặc có sẵn để tải xuống trên một số trang tối nghĩa trong trang web của nhà cung cấp dành riêng cho mã nguồn mở trong những sản phẩm của họ.

Tuy nhiên, có một sự cảnh báo lớn đối với mã hạt nhân Linux được tạo ra công khai các trình điều khiển độc quyền và các mô-đun hạt nhân có chức năng tương tự. Nhân Linux có thể tải các đốm nhị phân được phân phối theo giấy phép độc quyền và mã nguồn của các đốm như vậy cần thiết để chạy thiết bị của bạn tự nhiên không được phân phối. Điểm mấu chốt là, ngay cả khi bạn quản lý để có được nguồn nhân cụ thể cho thiết bị của mình, bạn sẽ không nhất thiết có thể sử dụng nó để biên dịch HĐH dựa trên Linux hoạt động của chính bạn.


Cho phép, trong bối cảnh

Chính xác thì chúng ta có ý nghĩa gì bởi một giấy phép cho phép ? Từ ý kiến ​​của bạn, tôi nghĩ bạn đã hiểu nó có nghĩa là khả năng chạy các phần mềm được cấp phép hoặc cho phép khác. Nhưng đó là sai.

Cho phép trong ngữ cảnh này có nghĩa là, cho phép bạn làm như bạn muốn với mã nguồn như thế nào.

GPL không được cho phép theo nghĩa là bạn bị ràng buộc về mặt pháp lý để công khai bất kỳ sửa đổi nào bạn thực hiện đối với mã được cấp phép GPL. Nó không cho phép bạn lấy sự đóng góp của mọi người, thay đổi nó (bất kể làm cho nó tốt hơn hay tồi tệ hơn) và che giấu nó đi. Nếu bạn định phân phối nhị phân, bạn cũng sẽ phân phối mã nguồn. Vì nó không cho phép bạn thực hiện các thay đổi riêng tư, do đó không được phép .

Giấy phép Apache và giấy phép BSD là ví dụ về giấy phép cho phép. Đối diện với GPL hoàn toàn không cho phép, nó cho phép bạn thực hiện bất kỳ sửa đổi nào đối với các mã được cấp phép theo chúng và giữ cho chính bạn, nói cách khác, nó được cho phép . Điều đó có nghĩa là, bạn có thể lấy mã Android, ngay cả khi bạn thay đổi nó đủ để khiến nó không thể nhận ra, bạn vẫn có thể tự mình giữ nó. Và đó chính xác là những gì các nhà cung cấp thiết bị Android làm.


1
Không. đó là vì các chương trình chỉ chạy trên kernel (và sử dụng các tòa nhà của kernel) không phải là dẫn xuất của kernel. Mã vùng người dùng Android chỉ chạy trên nhân Linux.
cas

1
Hạt nhân @Fiksdal Linux được cấp phép theo GPL, không phải là giấy phép cho phép. Bạn có thể chạy Android và phần mềm cho phép khác, trên Linux giống như cách bạn có thể sử dụng trình điều khiển độc quyền của Nvidia trên PC thông thường.
Oxwivi

1
@Fiksdal Hoặc một ví dụ tốt hơn là, Android chạy các nhị phân độc quyền và cho phép trên Linux giống như cách nó có thể chạy Steam và Google Chrome.
Oxwivi

1
@Fiksdal, vâng, nó theo nghĩa đen là riêng biệt. Hãy xem xét điều này: cùng một hạt nhân có thể chạy Ubuntu hoặc các bản phân phối Linux thông thường khác trên đầu trang của nó. Nhân Linux chỉ là vậy, một hạt nhân. Nó có nghĩa là có thể chạy tất cả các loại chương trình trên đầu trang của nó.
Oxwivi

1
@Fiksdal Tôi đã chỉnh sửa câu trả lời, hãy kiểm tra nó.
Oxwivi
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.