My company develop a VPN for Linux.

I had to develop a driver using kernel space for a Proprietary VPN software. I would like to know if it technically possible to develop it using Proprietary licence, with the GPL restrictions in Linux kernel module.

Thanks for ur help :)

  • 1
    This is not a technical question, but a legal one. You need to contact a lawyer to check about GPLv2 compatibility. Why don't you use kernel modules? kernelnewbies.org is a better place to ask. Commented Aug 20, 2020 at 13:39
  • 1
    BTW, since you are French, april.org is relevant for such questions. And yes, the Linux kernel has so called tainted modules Commented Aug 20, 2020 at 13:42
  • 2
    Your kernel module will declare a MODULE_LICENSE. If you set the license to Proprietary rather than to a GPL variant, the kernel will be marked as tainted and you will only get access to a small subset of APIs. It might be better to investigate whether your proprietary functionality can be provided in userspace.
    – amon
    Commented Aug 20, 2020 at 15:39
  • 1
    From a technical standpoint, a proprietary driver is not a good idea: the kernel does not have a stable driver API, so every time a new kernel version comes out, you'll need to check to see if it's broken your driver. If you write a GPL'd driver and get it accepted into the kernel, the kernel developers will take care of continued compatibility for you.
    – Mark
    Commented Aug 29, 2020 at 1:16

2 Answers 2


The GPL license requires that for the entire project (the Linux kernel in this case) the source code must be available and users must have the right to make changes and redistribute the work with or without changes.

If the license on your VPN driver does not give those freedoms, then it might be technically possible to create the driver, but the combination of Linux kernel + driver cannot legally be distributed and it might be that the driver by itself is already seen as a derived work of the Linux kernel and thus let it have incompatible license terms that make legal distribution impossible.

If your company really want to use a proprietary license, make sure that your legal department knows enough about the GPLv2 and the proposed license to make an informed decision if this is a good idea. If you don't have a legal department, hire a lawyer to give you an informed legal opinion.

  • 2
    Don't just "GPL aware", the Linux kernel copyright holders have stated where they draw the line between "derived work, must be GPLv2" and "go ahead". That is not the same opinion as the author of the GPL holds, that's in part why the Linux kernel is GPLv2 (plus exceptions) while the FSF moved to GPLv3.
    – vonbrand
    Commented Aug 21, 2020 at 23:58

Several VPN implementations are purely (or almost) userland code. What makes your take different?

As long as it uses the public interface to loadable kernel modules, you can go ahead. Part of the kernel's internal interfaces are off-limit, and a kernel using your non-GPLed module will be considered "tainted", and might have issues when running on current PCs (which insist on cryptographically signed kernels).

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.