In a recent internship, I worked on a project involving traffic detection using radar. The company developed their own unique hardware and ran Windows Compact Embedded on an ARM processor. I thought this was a bit odd (I mean Linux is always better, right? :P)
Turns out the root of the concern for the company was, because they developed their own hardware, it seemed too likely they would run into a situation where they would need to modify the kernel in some way to run on their hardware. The licensing of Linux would require them to release those changes. This would provide unique insights into the hardware details to the competitors they keep ahead of.
This kind of reinvigorated my childhood dream of making an operating system. I'm starting by thinking about how I would license it in a way that would give it an advantage in the market rather than being "just another operating system" that gives programmers more compatibility/cross-platform nightmares; and hopefully one that would actually unify all (or close to it) aspects of computing (that's the dream anyways).
Some Side Comments:
- Rest easy, I don't have a timeline for this or anything, I've taken some college courses and realize I still have a LOT to learn before anything I make is worthwhile in this regard, and I would definitely seek collaboration from the open source community; assuming they accept the idea which I'm honestly just playing with at this point
- I'm aware this may be an XY kind of problem. The licensing question may hold merit in other applications, though. Another alternative to this kind of licensing I've thought of: In practice there may not be a need for a company to modify an operating system if it's designed in a slightly more modular way. For instance, in WinCE, the operating system depends on a "Board Support Package" which basically defines how the OS interacts with the most critical kind of hardware. This is developed by the businesses in question, though there are companies that offer consulting in this regard
- I'm posing this question in the context of an operating system but I'd like to focus on the licensing for this question. I'll happily take comments on other suggestions of questions to ask about developing an operating system, and I have a few in mind.
Here is my current line of thinking
- I would want businesses to be able to modify the operating system in any way they see fit for their reasonable needs (see next bullets) without worrying about needing to reveal trade secrets.
- To be granted this privilege, a business should be required to give back to the community that made the operating system in a monetary manner, if not in a code support manner as is more traditional.
- A "non-profit" could perhaps be the "owner" of the commercial licenses and the funds used to support the highest contributing members to the project from the open source community.
- I would want to prevent businesses, however, from reselling a derivative operating system to compete with the one developed by the community. That's basically stealing. However, I would think it's fine to sell a "device" that runs a derivative of the operating system. This would admittedly be perhaps the most difficult issue to address. What's a "device"? Does it make sense if the main selling point of a company that sells customized laptops is that "our operating system is better?" Perhaps there could be a requirement about the hardware being sold is not something readily attainable in other parts of the market, or for which a reasonable solution already exists in said operating system.
In the probably much more common case, I would want this kind of pretty basic licensing
- Any user could download the operating system and run it on their personal computer free of charge.
- Nerdy folks would be free to make any changes they see fit to the operating system.
- If such changes are to be redistributed, it would have to follow the idea of reciprocity: the changes must be made available via open source (preferably with a merge request made at which point the leaders of the project would decide whether or not it merits inclusion).
I'm not very familiar with the nuances between BSD/MIT, but it seems like they're closer to the "commercial license" I'm thinking of where perhaps a modified GPL is closer to the common case I'm thinking of.
- Which existing licences most closely match what I'm looking at?
- How do they differ?
- What are some limitations I should be aware of with these criteria?
- And, if it doesn't make this question too broad, what are some other issues I should consider that I haven't thought of with this kind of license?