"To proprietary - no": driver interlayer untuk akses ke panggilan GPL dari pemblokiran yang disarankan kernel Linux



Perkembangan kepemilikan telah merambah jauh ke dalam kode banyak aplikasi dan layanan. Dalam sistem yang kompleks, menyingkirkannya sangat sulit. Seringkali solusi digunakan untuk ini, yang lebih seperti "kruk". Kernel Linux menggunakan driver interlayer untuk bekerja dengan driver berpemilik, yang dirancang hampir secara eksklusif untuk menerjemahkan panggilan driver ke kernel. Interlayer memiliki kode open source, jadi tidak ada masalah dengan lisensi GPL, formalitas telah diikuti.



Tetapi pendekatan ini memiliki banyak lawan. Salah satunya adalah Christoph Hellwig, seorang pengembang kernel Linux. Dia sebelumnya adalah anggota komite pengarah teknis Yayasan Linux. Dia juga menjabat sebagai penggugat dalam gugatan dengan VMware. Helwig mengusulkan untuk memperketat perlindungan secara signifikan terhadap pengikatan driver berpemilik ke komponen kernel Linux.



Untuk melakukan ini, dia menyarankan menggunakan tambalan yang memungkinkan untuk mewarisi bendera yang terkait dengan ekspor simbol GPL. Dalam hal ini, tanda TAINT_PROPRIETARY_MODULE diwariskan di semua modul yang mengimpor simbol dari modul dengan tanda ini. Inti dari perlindungan ini adalah jika driver lapisan mengimpor sesuatu yang bukan dari modul GPL, maka modul GPL akan mewarisi label TAINT_PROPRIETARY_MODULE dan tidak akan dapat mengakses komponen kernel yang hanya tersedia untuk modul GPL.





Sumber: 3dnews



Dalam diskusi tersebut, diusulkan pula pemblokiran terbalik. Jadi, jika modul mengimpor EXPORT_SYMBOL_GPL, simbol apa pun yang diekspor oleh modul tidak boleh diimpor oleh modul yang tidak mengklaim kompatibilitas GPL. Proposal tersebut tidak dibuat oleh Helwig, melainkan oleh peserta lain dalam diskusi tersebut. Tapi Helwig setuju dengannya. Kemungkinan besar, Linus Torvalds tidak akan melewatkan proposal ini, karena akan memblokir sejumlah subsistem kernel untuk driver berpemilik.



Semua keributan pecah setelah publikasiinsinyur patch dari Facebook dengan penerapan subsistem netgpu. Subsistem ini memungkinkan untuk mengatur pertukaran data langsung antara kartu jaringan dan GPU dengan eksekusi pemrosesan protokol oleh CPU. Berdasarkan proposal tersebut, Anda dapat membuat implementasi umum RDMA untuk pertukaran data antara GPU atau CXD eksternal. Banyak pengembang telah menyatakan ketidakpuasannya dengan inovasi tersebut, karena penerapannya hanya tersedia untuk driver NVIDIA berpemilik melalui lapisan yang disediakan oleh driver ini. Helvig bahkan menyebut pengembang itu troll.



Pada gilirannya, penulis tambalan keberatan bahwa subsistem tidak terikat dengan NVIDIA, sehingga dukungannya dapat disediakan untuk antarmuka perangkat lunak ke GPU AMD dan Intel. Pada akhirnya, dianggap tidak mungkin untuk mempromosikan netgpu di kernel sampai ada dukungan yang berfungsi berdasarkan driver gratis seperti AMDGPU, Intel i915 atau Nouveau.



All Articles