Linux is not public domain software. It is licensed according to the GNU General Public
License, which has a strict set of rules for use.
Linux is licensed under the terms of the GNU General Public License (GPL). Source code
for any software under the GPL is free. Any modifications to software under a GPL license automatically
come under the GPL as well, if the modifications to the GPL code are redistributed. You can't sell source
code for GPL code for more than the cost of the distribution media and cost of distribution. If run-times
are distributed, the source code must be made public and readily available upon request.
So, what does GPL mean to the embedded Linux
developer? If you take the Linux kernel or any Linux utility and modify it, port it, or add features to
it, must make the source available to anyone who asks for it. If you are not careful you may give up the
rights to your proprietary software unintentionally. It is best to consult your attorney on all open-source
copyright issues.
It is OK to ship Linux in a hardware device being sold. If any modifications to the Linux
kernel, libraries, or utilities were required, the sources for the modified version must be made available.
Application programs that run under Linux may remain proprietary. Just be sure no part of the application
is GPL (or other open source license) code. Device drivers
can also be kept proprietary. They must be shown to be separate and distinct from the Linux kernel. This
is most easily done if the device driver is written as a loadable kernel module. If it is linked as part
of the base kernel it is in the gray area of whether it becomes GPL
or not. If in doubt consult your intellectual property attorney.
Get me a shorter answer