5

I understand that if we link closed source code with GPL library then closed source will be considered as a derived work of GPL and it needs to be distributed.

"Linking is the technical process of connecting code in a library to the using code, to produce a single executable file. It is performed either at compile time or run-time in order to produce functional machine-readable code."

There are licenses which provides exception for linking like LGPL (e.g: glibc library)

Closed source code is linked to the virtual library of Linux kernel linux-vdso.so.1 during runtime. Since Linux kernel is GPLv2 License, so will it make the closed source running on Linux to be considered as a derived work of GPLv2 (Linux Kernel) ? Is there any exception ?

2
  • 3
    Have you read the linux kernel's syscall exception?
    – MadHatter
    Commented Jul 22, 2022 at 16:17
  • If you modify the Linux source code to depend on your code, then yes. Commented Jul 22, 2022 at 17:09

1 Answer 1

7

The linux-vdso-so.1 library is provided by the Linux Kernel for making system calls more efficiently. See also: Where is linux-vdso.so.1 present on the file system

The Linux Kernel is licensed as GPLv2 with an explicit system call exception mentioned in the file COPYING:

[The Linux Kernel] [b]eing under the terms of the GNU General Public License version 2 only, according with:

LICENSES/preferred/GPL-2.0

With an explicit syscall exception, as stated at:

LICENSES/exceptions/Linux-syscall-note

The relevant statement in the Linux-syscall-note exception is this:

NOTE! This copyright does *not* cover user programs that use kernel services by normal system calls - this is merely considered normal use of the kernel, and does *not* fall under the heading of "derived work".

Without that exception, one could interpret the GPL to mean that a program which links with that library in order to make system calls might be considered by the GPL to be a "work based on the Program" (i.e., a work based on Linux), which would effectively disallow all closed source programs on Linux.

Notice that the exception only mentions user programs. In discussions of operating systems, user programs or user mode refers to an operating system's non-privileged mode of operation which does not have direct access to the hardware. Drivers and low-level components of an operating system such as the process scheduler are typically not user mode programs, so the exception would not apply to that sort of program.

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.