I'm thinking of buying a Raspberry Pi and putting some open source OS/kernel on it so I can modify it into my own OS with my own apps. The device would be a simple PC that I can pull out of my pocket and use for music composing, programming and pixel art drawing.

I've been programming for 5 years, learned C and C++ from ground up with malloc, structs and classes and worked on a software based debugger for AVR microcontrollers that have no MMU or enough space for malloc.
Therefore, the software challenges don't matter if I can quickly learn about the OS to modify it into my own work in a deadline of 3 months.

What matters most is that I must be able to sell parts of the software, the device and license them in such a license that doesn't forbid other people from using their own licenses which aren't viral for their own projects. GPL is a very big forbidder in this case. The two OS's I know for ARM are Linux and Android. Linux is GPL so I don't like it. I'd like to tweak around the kernel, but that means my stuff must be GPL-ized. I don't like Android either because it shuts down apps by its own decision (sidejoke: maybe it's a robot(android) thinking for itself and going against humanity). I've had Android phones and they're a pain to use. More faulty in multitasking than a regular feature phone with lots of features and J2ME functions like Sony Ericsson C510 which I'm trying to make an alternative for.

Which OS should I use?

  • Currently the Pi can run many Linux based OSes. From what you wrote here i understand you think that Pi is a microcontroller. Pi is a device that can't be compared with AVR's controllers. If you are thinking about having a personal device, you may try to look at Pi comaptible touchscreens and powerbanks (any good 5V powerbank will do). raspberrypi.org/help/noobs-setup is the most commonly used setup. If you are on linux check out using dd to flash OS onto SD. May 1 '15 at 9:40
  • Note that Android also uses the linux kernel. I think you are confused about some details here.
    – goldilocks
    May 1 '15 at 12:34

The options for an OS that somebody else wrote will be subject to the licensing they released it under. I am not aware of any license-free or non-GPL open licensed OS for the RPi at this time. You could write your own, I suppose.


First a quick answer. FreeBSD apparently runs on the pi; there are a few Q&As involving it here if you search. It uses a more permissive open source license which would allow you to link even closed source proprietary binaries to open source library binaries, which I think is the crux of your issue.

Now a bit of discussion about whether or not you can make linux fit your needs. What's colloquially "linux" is really the linux kernel with a GNU userland (hence more properly, "GNU/Linux"). Android also uses the linux kernel but with a differenent, non GPL'd userland, as do a tish load of proprietary routers, set-top boxes etc. -- pretty much everyone probably has an embedded linux based device at home, and not all those things are 100% open source or 100% GPL'd. The kernel uses GPL v.2 as opposed to the most of the GNU userland, which is GPL v.3.; this is what makes it possible to use proprietary drivers with the kernel and a proprietary userland if you want. Note the Pi's processor requires proprietary Broadcom firmware, and that ships with Raspbian and all the other GNU/Linux pi distros.

As bobstro points out, you either go with something open source, or you go with something proprietary in which case you likely have to pay for using it. As an example of the later, you could use the new Windows IoT, which you can get for free right now as a developer -- but if you intend to sell product based on it, you will almost certainly have a different kind of "viral" licencing issue to contend with, namely you will have to give a chunk of the money to MS or require your clients do so.

Getting to the crux of the issue mentioned earlier, if your concern here is that you cannot write closed source product to run on GNU/Linux systems and distribute them together, you're wrong -- of course you can do that. There are lots of closed source apps used on linux generally and the pi in particular; I believe the Foundation's own "pi store" for software has no licence restrictions and it is all destined for Raspbian. The OS remains open source, of course, but your software can be licensed however you like. The major complication is you can't dynamically link to any GPL'd stuff, so likely what you really need is a permissively licensed C/C++ library you can statically link.

  • So if I used FreeBSD, I wouldn't have those problems? Are there any non-GPL drivers for those displays and for SD cards and whatever is needed for basic communication between my programs and hardware?
    – Foxcat385
    May 1 '15 at 15:15
  • 1
    I imagine FreeBSD is not as well stocked but if it runs on the pi they must have a video driver. But I still think you are confused about some things. FreeBSD and Linux are both POSIX (as is IOS, Solaris, etc). What you are doing seems like pure userland stuff. There's no point trying to write something like that for one specific kernel. So I do not understand your concerns here...but anyway, all this is not hard to research, you might start with en.wikipedia.org/wiki/…
    – goldilocks
    May 1 '15 at 17:29
  • I'd like to have all drivers and programs not "infecting" my programs with their viral licenses.
    – Foxcat385
    May 2 '15 at 0:41
  • 2
    Evidently you've been "infected" alright...to re-emphasize: you are very confused (evidently, to the point of delusion or derangement) about some things. If you are serious about what you are doing, hopefully you will work these confusing issues out for yourself. I think I have given you a decent starting point to do that. Good luck.
    – goldilocks
    May 2 '15 at 2:17

The family of BSD OSes had adopted a vision on the topic of licensing counter to that of a GPL's "viral" one. In particular, the NetBSD Project explains the basics behind the adoption of a "more liberal" BSD licensing, which applies to other BSDs as well (check out notes on OpenBSD below for a more specific reference).

The NetBSD does support Raspberry Pi systems up to and including version 3. I do have an RPi 3 box running NetBSD, and could confirm that its setup was essentially seamless (caveat: I was installing the system manually, from command line). It also appears to support Raspberry Pi 4 systems at this point.

Furthermore, consider the fact that Raspberry Pi 4 is now supported by Xen. This would enable you not only to run NetBSD in DomU mode, but also to run unikernels from the MirageOS project, which do allow the use of liberal licensing in their payload code.

It also appears that another member of BSD family, OpenBSD could be run on RPi 4. My experience with OpenBSD on small PC hardware and development boards suggests that you would expect a very smooth ride with that OS, as long as it boots and supports the underlying CPU and chipset (which it evidently does).

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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