Bagaimana perangkat lunak semi-proprietary dapat didasarkan pada Kernel Linux?

9

Jika saya mengerti dengan benar, Kernel Linux dilisensikan di bawah GPL, yang berarti bahwa jika ada orang yang mendasarkannya, mereka juga harus melisensikan seluruh karya turunan di bawah GPL, membuat siapa pun bebas untuk memodifikasi dan / atau mendistribusikan kembali karya turunan mereka.

Sebagai contoh, semua rilis Android didasarkan pada LK. Apakah itu tidak berarti bahwa seluruh rilis dan semua komponennya juga harus dirilis di bawah GPL?

Sebagai contoh, sebagian besar Android rilis dikirimkan dengan komponen berpemilik. Apakah itu tidak melanggar GPL? Bukankah seluruh pekerjaan turunan perlu dirilis di bawah GPL?

Dengan Ubuntu, misalnya, Anda harus mengunduh pasca-instalasi codec MPEG. Saya berasumsi bahwa ini karena MPEG adalah hak milik, dan karena itu lisensi MPEG tidak sesuai dengan GPL, sehingga mereka tidak dapat dimasukkan dalam rilis yang sama?

Bagaimana rilis Android mengatasi ini?

Revetahw berkata Reinstate Monica
sumber
2
Versi singkatnya adalah bahwa kualitas 'viral' GPL hanya dapat bertindak berdasarkan karya turunan dari kode di bawah lisensi, dan sebuah pengguna yang memanggil kernel tidak menjadikannya turunan dari kernel.
Tom Hunt
Saya melihat, kernel dan perangkat lunak lain di atasnya memiliki lisensi terpisah, dan GPL memungkinkan ini.
Revetahw mengatakan Reinstate Monica
Saya juga ingin menambahkan, bahwa menurut pemahaman saya, ada perbedaan yang cukup besar antara GPL v2 dan GPL v3 dan Linus terus menggunakan GPL v2 yang lebih permisif daripada yang terakhir. Ini sedikit informasi tentang ini. Dua jawaban teratas tampaknya cukup bagus.
KGIII

Jawaban:

9

Pertama, Anda harus jelas bahwa kode Android Google dan kode kernel Linux terpisah. Android sendiri dilisensikan di bawah Apache License 2.0, yang permisif, dan dengan kata-kata Wikipedia :

Lisensi Apache bersifat permisif karena tidak memerlukan karya turunan dari perangkat lunak, atau modifikasi yang asli, untuk didistribusikan menggunakan lisensi yang sama.

Dengan demikian, tidak ada modifikasi Android oleh vendor yang biasanya tersedia.

Kedua, dalam kasus kernel Linux, dilisensikan di bawah GPLv2, kode dirilis ke publik, entah dimakamkan di suatu tempat di dalam perangkat (kurang mungkin) atau tersedia untuk diunduh pada beberapa halaman tidak jelas di situs web vendor yang didedikasikan untuk kode sumber terbuka di produk mereka.

Namun, ada peringatan utama terhadap kode kernel Linux yang tersedia untuk umum — driver berpemilik dan modul kernel dengan fungsi yang sama. Kernel Linux dapat memuat gumpalan biner yang didistribusikan di bawah lisensi eksklusif, dan kode sumber gumpalan semacam itu yang diperlukan untuk menjalankan perangkat Anda secara alami tidak didistribusikan. Intinya adalah, bahkan jika Anda berhasil mendapatkan sumber kernel khusus untuk perangkat Anda, Anda tidak akan dapat menggunakannya untuk mengkompilasi OS berbasis Linux yang berfungsi sendiri.


Permisif, dalam konteks

Apa sebenarnya yang kita maksudkan dengan lisensi permisif ? Dari komentar Anda, saya pikir Anda menganggapnya sebagai kemampuan untuk menjalankan perangkat lunak berlisensi atau kepemilikan lainnya. Tapi itu salah.

Permisif dalam konteks ini berarti, seberapa diizinkan untuk membiarkan Anda melakukan seperti yang Anda inginkan dengan kode sumber.

GPL tidak permisif dalam arti bahwa Anda secara hukum terikat untuk mempublikasikan setiap modifikasi yang Anda buat ke kode berlisensi GPL. Itu tidak mengizinkan Anda mengambil kontribusi semua orang, membuat perubahan padanya (terlepas dari membuatnya lebih baik atau lebih buruk) dan menyembunyikannya. Jika Anda akan mendistribusikan biner, Anda juga harus mendistribusikan kode sumbernya. Karena itu tidak mengizinkan Anda untuk melakukan perubahan pribadi, oleh karena itu tidak diizinkan .

Lisensi Apache dan lisensi BSD adalah contoh dari lisensi permisif. Berlawanan dengan GPL yang sangat tidak permisif, memungkinkan Anda membuat modifikasi pada kode yang dilisensikan di bawahnya dan menyimpannya untuk diri Anda sendiri, dengan kata lain, itu permisif . Dengan kata lain, Anda dapat mengambil kode Android, bahkan jika Anda mengubahnya cukup untuk membuatnya tidak dapat dikenali, Anda bebas untuk menyimpannya sendiri. Dan itulah yang dilakukan oleh vendor perangkat Android.

Oxwivi
sumber
1
tidak. itu karena program hanya berjalan di kernel (dan memanfaatkan syscalls kernel) bukan turunan dari kernel. Kode userland Android hanya berjalan di kernel Linux.
cas
1
Kernel Linux @Fiksdal dilisensikan di bawah GPL, bukan lisensi permisif. Anda dapat menjalankan Android, dan perangkat lunak permisif lainnya, di Linux dengan cara yang sama Anda dapat menggunakan driver milik Nvidia pada PC biasa Anda.
Oxwivi
1
@Fiksdal Atau contoh yang lebih baik adalah, Android menjalankan binari berpemilik dan permisif di Linux dengan cara yang sama seperti menjalankan Steam dan Google Chrome.
Oxwivi
1
@ Fiksdal, ya, itu benar-benar terpisah. Pertimbangkan ini: kernel yang sama dapat menjalankan Ubuntu atau distribusi Linux biasa lainnya di atasnya. Kernel Linux hanya itu, sebuah kernel. Ini dimaksudkan untuk dapat menjalankan semua jenis program di atasnya.
Oxwivi
1
@ Fiksdal Saya sudah mengedit jawabannya, coba lihat.
Oxwivi