Take the 2-minute tour ×
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems.. It's 100% free, no registration required.

In the future I may be building a system with an embedded operating system. Given the commercial properties of this system, it will make sense to have all of the internals as closed source as possible.

I have seen in the past many router manufacturers being forced to release source code due to them using a system under an open license.

Is there a variation of Linux/Unix that does not have this requirement (e.g. no GNU or similar licensing)?

From my limited understanding of Red Hat, don't they have a "commercial only" distro these days? I'd assume based on this that the source is not available then?

share|improve this question

3 Answers 3

up vote 4 down vote accepted

A Linux distribution consists of many pieces. All the pieces that are based on software licensed under the GNU GPL and other copyleft licenses must have the code source released. For example, if you ship something built on a Linux kernel, you must provide the Linux kernel source as well as any patch that you have made to the kernel source (however, for the Linux kernel, Linus Torvalds interprets the GPL as not requiring to provide source code for code that is only loaded as a module). You can ship the source code on a CD, or offer that people download it from your website, or any other reasonable method.

You do not have to provide source code for non-GPL programs that are included in the same system. Most distributions (Red Hat, SuSE, Ubuntu, even Debian¹) provide some non-free software in binary form only.

There are other Unix variants that not only do not require open licensing of any core component, but even forbid it. Of course, the flip side is that you'll have to pay to license them. They tend to be operating in the big server realm, not in the embedded realm: Solaris, AIX, HP-UX, SCO... Apple's iOS runs on what is sometimes termed high-end embedded system (MP3 players, mobile phones), but they are exclusively Apple's hardware, you won't be able to license the OS.

There are also unix variants licensed under a BSD license. A BSD license allows you to do pretty much what you want with them, with only a provision that you acknowledge that there is some BSD-licensed software inside (the details of the acknowledgement requirement depend on the version of the license). There are several unix distributions where the whole core system is provided under a BSD license: FreeBSD, OpenBSD, NetBSD are the main ones. Note that some components have different licenses; in particular, the C compiler is GCC, which is under the GNU GPL (you would probably not be shipping the compiler however).

For an embedded system, MINIX is more likely to be appropriate. It is published under a BSD license and designed for both teaching and embedded systems.

A major advantage of Linux is that it has drivers for just about any system you can find. This is not the case with other unices. Even for MINIX, you're likely to have to write a bunch of drivers.

In a commercial embedded system, the value is not in the operating system itself. The value is in integrating all the hardware and software component and making a usable and reliable product out of these disparate pieces. To insist on a free-software-free embedded system, in many cases, is not just reinventing the wheel but reinventing every single part of the vehicle. Concentrate on the part where you're adding value, and reuse what's tried and tested for the rest. Providing source code for GPLv2 components has negligible cost (the situation is a bit more complex for GPLv3, but we're getting widely off-topic).

¹ There is some dispute as to whether the non-free software that the Debian project provides for installation on Debian system are part of the Debian distribution or software that happens to be distributed by the Debian project and packaged for installation on Debian systems. It quacks like a duck, it walks like a duck, and I don't want to get dragged into the dispute as to whether it is a duck.

share|improve this answer

BSD-licensed systems (e.g. FreeBSD) do not require you to disclose source code, thus they might be a feasible choice. Also, there are comercial UNIXes like QNX, but they probably will be quite expensive.

As for Red Hat, you are not paying for the distro per se, you are paying for support and consulting. The source code of all the packages is available for anybody interested; e.g. CentOS and Scientific Linux are built upon them.

share|improve this answer

All BSD variants would fit your bill. The BSD license is much more permissive than the GNU license. See also.

If it is good enough for Apple, it should be fine for you. OSX (and NeXTSTEP before it) are a very pretty wrapping around a core of NetBSD. They do use a heavily modified Mach Kernel instead of the standard BSD Kernel. While they had less concerns with the GPL2, since the shift to GPL3, Apple has pushed more BSD (or similar) licensed code hence their favoring of Clang over GCC as an example.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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