ΠΡΠΈΡΡΠΎΡ Π₯Π΅Π»Π²ΠΈΠ³ (Christoph Hellwig), ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΡΠ΄ΡΠ° Linux, Π² ΡΠ²ΠΎΡ Π²ΡΠ΅ΠΌΡ Π²Ρ
ΠΎΠ΄ΠΈΠ²ΡΠΈΠΉ Π² ΡΠΏΡΠ°Π²Π»ΡΡΡΠΈΠΉ ΡΠ΅Ρ
Π½ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΊΠΎΠΌΠΈΡΠ΅Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ Linux Foundation ΠΈ Π²ΡΡΡΡΠΏΠ°Π²ΡΠΈΠΉ ΠΈΡΡΡΠΎΠΌ Π² ΡΠ²ΡΠ·Π°Π½Π½ΠΎΠΌ Ρ GPL ΡΡΠ΄Π΅Π±Π½ΠΎΠΌ ΡΠ°Π·Π±ΠΈΡΠ°ΡΠ΅Π»ΡΡΡΠ²Π΅ Ρ VMware, ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈΠ» ΡΠΆΠ΅ΡΡΠΎΡΠΈΡΡ Π·Π°ΡΠΈΡΡ ΠΎΡ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΠΏΡΠΈΠ΅ΡΠ°ΡΠ½ΡΡ
Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠ² Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ ΡΠ΄ΡΠ° Linux, ΡΠΊΡΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌΡΠΌΠΈ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π·ΠΈΠ΅ΠΉ GPL. ΠΠ»Ρ ΠΎΠ±Ρ
ΠΎΠ΄Π° ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π½Π° ΡΠΊΡΠΏΠΎΡΡ GPL-ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΠΈ ΠΏΡΠΎΠΏΡΠΈΠ΅ΡΠ°ΡΠ½ΡΡ
Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ-ΠΏΡΠΎΡΠ»ΠΎΠΉΠΊΡ, ΠΊΠΎΠ΄ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΎΡΠΊΡΡΡ ΠΈ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ΅ΡΡΡ ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π·ΠΈΠ΅ΠΉ GPLv2, Π½ΠΎ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ²ΠΎΠ΄ΡΡΡΡ ΠΊ ΡΡΠ°Π½ΡΠ»ΡΡΠΈΠΈ Π΄ΠΎΡΡΡΠΏΠ° ΠΏΡΠΎΠΏΡΠΈΠ΅ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° ΠΊ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΠΌ API ΡΠ΄ΡΠ°, Π·Π°ΠΏΡΠ΅ΡΡΠ½Π½ΡΠΌ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ· ΠΏΡΠΎΠΏΡΠΈΠ΅ΡΠ°ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π½Π°ΠΏΡΡΠΌΡΡ.
ΠΠ»Ρ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ ΠΌΠ°Π½ΡΠ²ΡΠ° ΠΡΠΈΡΡΠΎΡ Π₯Π΅Π»Π²ΠΈΠ³ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΈΠ» Π΄Π»Ρ ΡΠ΄ΡΠ° Linux ΠΏΠ°ΡΡΠΈ, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡΠΈΠ΅ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ»Π°Π³ΠΎΠ², ΡΠ²ΡΠ·Π°Π½Π½ΡΡ
Ρ ΡΠΊΡΠΏΠΎΡΡΠΎΠΌ GPL-ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ². ΠΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΊ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ ΡΠ»Π°Π³Π° TAINT_PROPRIETARY_MODULE Π²ΠΎ Π²ΡΠ΅Ρ
ΠΌΠΎΠ΄ΡΠ»ΡΡ
, ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΡΡΠΈΡ
ΡΠΈΠΌΠ²ΠΎΠ»Ρ ΠΈΠ· ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ Ρ Π΄Π°Π½Π½ΡΠΌ ΡΠ»Π°Π³ΠΎΠΌ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π΅ΡΠ»ΠΈ GPL ΠΌΠΎΠ΄ΡΠ»Ρ-ΠΏΡΠΎΡΠ»ΠΎΠΉΠΊΠ° ΠΏΠΎΠΏΡΡΠ°Π΅ΡΡΡ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»Ρ ΠΈΠ· Π½Π΅-GPL ΠΌΠΎΠ΄ΡΠ»Ρ, ΡΠΎ GPL-ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠ½Π°ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΌΠ΅ΡΠΊΡ TAINT_PROPRIETARY_MODULE ΠΈ Π½Π΅ ΡΠΌΠΎΠΆΠ΅Ρ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌ ΡΠ΄ΡΠ°, Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π·ΠΈΠ΅ΠΉ GPL, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠ°Π½Π΅Π΅ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π» ΡΠΈΠΌΠ²ΠΎΠ»Ρ ΠΈΠ· ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ «gplonly».
ΠΡΠΈ ΠΎΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΠΈ ΡΠ°ΠΊΠΆΠ΅ Π±ΡΠ»ΠΎ Π²ΡΡΠΊΠ°Π·Π°Π½ΠΎ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ΅ — Π΅ΡΠ»ΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅Ρ ΡΠΈΠΌΠ²ΠΎΠ»Ρ EXPORT_SYMBOL_GPL, Π»ΡΠ±ΡΠ΅ ΡΠΊΡΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌΡΠ΅ Π΄Π°Π½Π½ΡΠΌ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΌ ΡΠΈΠΌΠ²ΠΎΠ»Ρ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡΡΡ ΠΌΠΎΠ΄ΡΠ»ΡΠΌΠΈ, ΡΠ²Π½ΠΎ Π½Π΅ Π·Π°ΡΠ²Π»ΡΡΡΠΈΠΌΠΈ ΠΎ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ Ρ GPL. Π’.Π΅. Π΅ΡΠ»ΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅Ρ ΡΠΈΠΌΠ²ΠΎΠ»Ρ EXPORT_SYMBOL_GPL, ΡΠΎ Π²ΡΠ΅ Π΅Π³ΠΎ ΡΠΊΡΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ ΠΊΠ°ΠΊ EXPORT_SYMBOL_GPL. ΠΡΠΈΡΡΠΎΡ Π₯Π΅Π»Π²ΠΈΠ³ Π½Π°ΠΏΠΈΡΠ°Π», ΡΡΠΎ Π½Π° 100% ΡΠΎΠ³Π»Π°ΡΠ΅Π½ Ρ Π΄Π°Π½Π½ΡΠΌ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, Π½ΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π½Π΅ ΠΏΡΠΎΠΏΡΡΡΠΈΡ ΠΠΈΠ½ΡΡ Π’ΠΎΡΠ²Π°Π»ΡΠ΄Ρ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΎ ΠΏΡΠΈΠ²Π΅Π΄ΡΡ ΠΊ Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΠΈ Π΄Π»Ρ ΠΏΡΠΎΠΏΡΠΈΠ΅ΡΠ°ΡΠ½ΡΡ
Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠ² Π±ΠΎΠ»ΡΡΠ΅ΠΉ ΡΠ°ΡΡΠΈ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌ ΡΠ΄ΡΠ°, ΠΈΠ·-Π·Π° ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΏΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠ² ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡΡΡ Π±Π°Π·ΠΎΠ²ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ, ΡΠΊΡΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌΡΠ΅ ΠΏΠΎΠ΄ GPL.
ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΎ Π² ΠΎΡΠ²Π΅Ρ Π½Π° ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠΎΠΌ ΠΈΠ· Facebook ΡΠ΅ΡΠΈΠΈ ΠΏΠ°ΡΡΠ΅ΠΉ Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ Π½ΠΎΠ²ΠΎΠΉ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΡ netgpu, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ΅ΠΉ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΡΠΌΠΎΠΉ ΠΎΠ±ΠΌΠ΅Π½ Π΄Π°Π½Π½ΡΠΌΠΈ (DMA
zero-copy) ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ΅ΡΠ΅Π²ΠΎΠΉ ΠΊΠ°ΡΡΠΎΠΉ ΠΈ GPU, ΠΏΡΠΈ ΡΡΠΎΠΌ Π²ΡΠΏΠΎΠ»Π½ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° ΡΠΈΠ»Π°ΠΌΠΈ CPU. ΠΠ΅Π΄ΠΎΠ²ΠΎΠ»ΡΡΡΠ²ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² Π²ΡΠ·Π²Π°Π»Π° Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΠΏΡΠΎΠΏΡΠΈΠ΅ΡΠ°ΡΠ½ΡΡ
Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠ² NVIDIA ΡΠ΅ΡΠ΅Π· ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΡΡ Π΄Π°Π½Π½ΡΠΌΠΈ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ°ΠΌΠΈ GPL-ΠΏΡΠΎΡΠ»ΠΎΠΉΠΊΡ. Π ΠΎΡΠ²Π΅Ρ Π½Π° ΠΊΡΠΈΡΠΈΠΊΡ Π°Π²ΡΠΎΡ ΠΏΠ°ΡΡΠ΅ΠΉ ΡΠΊΠ°Π·Π°Π», ΡΡΠΎ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ° Π½Π΅ ΠΏΡΠΈΠ²ΡΠ·Π°Π½Π° ΠΊ NVIDIA ΠΈ Π΅Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½Π° Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΡ
ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² ΠΊ GPU AMD ΠΈ Intel. Π ΠΈΡΠΎΠ³Π΅ ΠΏΡΠΎΠ΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ netgpu Π² ΡΠ΄ΡΠΎ Π±ΡΠ»ΠΎ ΠΏΡΠΈΠ·Π½Π°Π½ΠΎ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΌ Π΄ΠΎ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΠ΅ΠΉ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΡΡ
Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠ², ΡΠ°ΠΊΠΈΡ
ΠΊΠ°ΠΊ AMDGPU, Intel i915 ΠΈΠ»ΠΈ Nouveau.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru