I've heard of lines of code that are distributed with the Linux Kernel that aren't open. Maybe some drivers or something like that.

I'd like to know how much of that is true? Are there lines of code that are distributed with the Kernel (as when you download it from kernel.org) that aren't open at all? And how much that is of the total (if there's a way to know it, number of lines or percentage)?

And where can I find more information about this? Maybe some articles to read...

Thank you very much!

2 Answers 2


The Linux kernel itself is all free software, distributed under the GNU General Public License.

Third parties may distribute closed-source drivers in the form of loadable kernel modules. There's some debate as to whether the GPL allows them; Linus Torvalds has decreed that proprietary modules are allowed.

Many device in today's computer contain a processor and a small amount of volatile memory, and need some code to be loaded into that volatile memory in order to be fully operational. This code is called firmware. Note that the difference between a driver and a firmware is that the firmware is running on a different processor. Firmware makers often only release a binary blob with no code source. Many Linux distributions package non-free firmware separately (or in extreme cases not at all), e.g. Debian.

  • 1
    I had no idea that's how firmware is classified until today. Cheers.
    – boehj
    Commented May 17, 2011 at 7:53

The kernel is open source. Download the source, compile it yourself.

There is the possibility to taint your kernel with CS kernel modules. Those modules should be marked as 'tainted', and afaik you should find them with a short command:

cat /proc/sys/kernel/tainted

and for more details:

grep tainted /var/log/*log 

More information can be found here.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .