Why some projects are a 'repacked-rebranded' FreeBSD and call themselves a 'different' OS?

Ok, maybe this is not the right thread, if so, please point me to the right one.
Some background:
I've seen other Open Source projects derived from FreeBSD (FreeNAS, PFSense, etc) that called themselves "an OS".
They do give (marginal) credit to FreeBSD, but apparently they have little or no modification to the OS itself, and instead they appear to be just a "FreeBSD base OS" plus a collection of other open source packages, custom configurations, a suite of middleware scripts and a web frontend.
Because of that, I would say they are not an actual "OS" but more like a 'suite of apps' built on top of FreeBSD.
A good example would be FreeNAS, which rely heavily on Python and Angular to provide a user friendly way to do the same things FreeBSD alone can do from the shell.
They do present themselves as an "OS" (their website states "FreeNAS is an operating system that can......")

Now, my question: To which extend someone can use a FreeBSD base OS, modify a couple of things here and there, add some apps to it and legally call it a "BlahBlah OS" (with a different name, branding etc).?
This is a technical question and a legal one as well, Im not well versed on the practical applications of the FreeBSD license, but Im sure some of you are and can put it in plain language.
 
If FreeNAS equals FreeBSD plus additional applications, and FreeBSD is an operating system, then it follows that FreeNAS also is an operating system. True, it's an OS based on top of FreeBSD and not a complete stand-alone OS.

Take a look at Linux, what do you call the OS there? The Linux kernel? The kernel plus a bunch of packages, called a distribution? Would Debian be called an OS but Ubuntu - which is based on Debian - be a distribution? Can you call both an OS or not?
 
Now, my question: To which extend someone can use a FreeBSD base OS, modify a couple of things here and there, add some apps to it and legally call it a "BlahBlah OS" (with a different name, branding etc).?
In any extent. The BSD license allows you to do that as long as you retain the original copyright. It basically boils down to: here's the code, do whatever you want with it. Just keep the original copyrights.

 
If FreeNAS equals FreeBSD plus additional applications, and FreeBSD is an operating system, then it follows that FreeNAS also is an operating system. True, it's an OS based on top of FreeBSD and not a complete stand-alone OS.

Take a look at Linux, what do you call the OS there? The Linux kernel? The kernel plus a bunch of packages, called a distribution? Would Debian be called an OS but Ubuntu - which is based on Debian - be a distribution? Can you call both an OS or not?
Great Job Tommie! They are all variants of the OS.
 
In any extent. The BSD license allows you to do that as long as you retain the original copyright. It basically boils down to: here's the code, do whatever you want with it. Just keep the original copyrights.

In practical terms, what does it mean "retain the original copyright"?
For example, if someone takes the code, modify just a couple of lines, compile it and distribute just the binaries rebranding the whole thing as a different OS, how do they actually keep the copyright?
Would just a line in the documentation saying "copyright FreeBSD" or "Derived from FreeBSD" suffice?
 
For example, if someone takes the code, modify just a couple of lines, compile it and distribute just the binaries rebranding the whole thing as a different OS, how do they actually keep the copyright?
The source code itself has a header with the copyrights too. Those are a little difficult to check if all you have is a binary but you're supposed to leave those in too.

Would just a line in the documentation saying "copyright FreeBSD" or "Derived from FreeBSD" suffice?
I am not a lawyer, but yes, that's how I always understood the license. Although you would need to add the whole copyright, not just a line that says "Copyright FreeBSD".

Line 1 of the license makes this clear with regards to the source code.
Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

Line 2 deals with binaries derived from that code:
Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

But if you leave all that in and provide the whole copyright notice you're pretty much free to do whatever you want with it.

Keep in mind though that this only applies to FreeBSD itself. Third party applications (ports/packages) can have totally different licenses (GPL for example). Also keep in mind that not everything in the base OS is BSD licensed. There are some parts that have a slightly different license (ZFS for example has a CDDL license).
 
Now, my question: To which extend someone can use a FreeBSD base OS, modify a couple of things here and there, add some apps to it and legally call it a "BlahBlah OS" (with a different name, branding etc).?
This is a technical question and a legal one as well, Im not well versed on the practical applications of the FreeBSD license, but Im sure some of you are and can put it in plain language.

As SirDice said, you need to retain the copyright. From a technical point of view, I don't think you'd need to do anything...When DragonflyBSD forked FreeBSD the initial fork would have been identical but called DragonflyBSD - I guess they pretty rapidly changed parts after the initial fork, that's generally why one forks stuff.
 
Regardless of licensing, there is also the - perhaps philosophical - question of what exactly is an operating system. Which is required to be called an OS? Only the kernel? Or the kernel plus some basic tools? An entire distribution including graphical desktop and software packages (e.g. GIMP, LibreOffice...)?
 
Actually, there is a relatively clear definition of what an operating system is, which is generally accepted in the OS research community. I know there is one good OS textbook (probably Silberschatz' dinosaur book, but perhaps Tanenbaum) that explains it very clearly, but those books are in cardboard boxes somewhere in my basement.

The way to understand it is to come at it from history. In the early days of computing, computers only ran one program at a time. Which was pretty easy for the computation part (all one needs to do is to transform the algorithm and design into source code, transform the source code into binary, and load the binary onto the CPU and run it). The obvious restriction here is that the whole computer gets "booted" into the problem program, and one can only run one program at a time. I've actually worked with machines like this (a Philips P7000) where performing backup requires taking the normal software down, going to the front panel with the toggle switches, and booting it into special backup software.

Where it gets harder is IO. And most programs require some input, and all programs generate some output, otherwise they are pointless (I think that observation goes back to Dijkstra). So in the early days, people had pre-made source code of "libraries" for doing IO, and they would include that in the complete source deck, compile it, and boot it. Clearly this is inconvenient. For example, if one wants to change where the IO goes (for example, write output to a printer instead of tape, for debugging), one has to change the source code to include different libraries, and recompile and rerun. Big hassle.

So what is an operating system? A piece of software that runs on the computer, and allows to virtualize and allocate the resources of the machine (which are things like CPU, memory, IO). The "virtualization" makes it so the same compiled program can for example take its IO from different sources and destinations, and one day read from tape and put results onto disk, and the same program can the next day read from disk and put results on the printer. Without rewriting the source code. The "allocate" makes it so you can run more than one program at a time, and they don't get in each other's hair. For example, you can take the physical memory of the machine, partition it into two pieces, and give each of the two programs you want to run a certain part. And to make sure one program can not become a resource hog and starve the other one, you control that neither program gets more than their fair share.

From this view point, the simplest part of the kernel is what defines an OS: as soon as it can do resource virtualization and control, it is an OS. It doesn't even need to have the ability to run multiple programs, there are perfectly respectable operating systems (like the original DOS/360 for the IBM 360, has nothing to do with the Microsoft product that runs on Intel, or cp/m) which can only run one program at a time (but virtualize and manage IO and resources).

Where this is even more important is with storage. In the very early days, each application program would use a whole volume, like a whole tape, or a whole deck of cards (input or output). With disks that gets to be impractical, since they are too big to not be shared, and they are not easily disconnected and moved (the initial disks tended to weigh roughly a ton, look at the RAMAC for fun). So the obvious idea is to share it: write down somewhere that program A gets to use the disk starting at track 50 for 20 tracks (namely 50...69), and program B from 70 for 10 tracks (70...79), and so on. In the early days, you really wrote down physical device addresses and track/cylinder numbers when specifying IO (and I've done that in the JCL decks for IBM mainframes). Since remembering these numbers is hard, we added another layer of virtualization to it, and gave these location ranges symbolic names: that's a file system!

And this is exactly where the confusion about the meaning of "OS" comes in. Today, we demand a very high level of "comfort", and we have lots of resources that need to be virtualized/allocated, in dynamic and easy ways. File systems for example today are expected to also handle multiple physical disks, handle replication for redundancy and safety, backup, compression, and all that jazz. Is that really necessary, or is it a "nice to have"? Does the definition of "operating system" include the ability to virtualize human interaction by having multiple virtual displays as multiple windows on a single physical screen (or on multiple physical screens? Do you really need X and Gnome to be an OS?
 
Thats exactly part of what I was trying to figure out, because I heard from someone else: "It is ok to create some scripts, put them on top of freeBSD" and call the whole thing "whatever OS", because FreeBSD call itself an OS and it is made of multiple pieces, not just the Kernel"

Like ralphbsz said on his previous post, there seem to be a more precise definition of what an OS is, but there is also what a lot of people believe it is.
Sometimes we call "the whole thing" an OS not only because is convenient, but also for historical reasons.

In the context of my question, and to satisfy both schools of though, lets simplify saying that there are two possibilities:
1- We define the OS as just the kernel, and any 'auxiliary' program on top of it are just 'apps' not the OS itself (those apps could be also protected by licenses etc)
2- We defined the OS as the whole thing, as packaged by the original source, including auxiliary programs etc (which might or might not be protected by licenses)

Now, lets focus on case #1, lets say I modify 6 lines in the kernel code (or even none), do I get to change the OS name and put my own?
How legal is that? how honest is that? (Im not accusing anybody, Im just asking)

On case #2 same thing, I modify 6 lines on the kernel (or none), do I get to call it "Neon OS"?
Imagine if I dont modify the kernel at all!, just some scripts on top of it, lets say, scripts that create logs files and load them to a remote server.
Then I come and call it "Neon OS", as long as Im an unknown guy it might not matter, but if I start getting traction, people might notice and the issue might come up.
Besides, looks deceiving to me.
As a customer, I wouldn't want to be charged money or even be technically/legally limited to display a brand from someone that didnt actually make enough modifications on the OS itself.

It is like music, songs are protected by copyright, and I can write lyrics with a lot of the same letters or words without being accuse of plagiarism, but if a song has 12 verses, each with 20 words, then I come and make a new song where I change only 10% of those, Im pretty sure the original songwriter will not be happy, even if the song was released with no copyrights.
Even more, if I try to sell the song I wrote, I would be doing the wrong thing, regardless if is legal or not, and there is a big chance the original songwriter will come after me.

Again, Im sorry if offend anyone (user, developer, forker, etc), it is not my intention.
 
Thats exactly part of what I was trying to figure out, because I heard from someone else: "It is ok to create some scripts, put them on top of freeBSD" and call the whole thing "whatever OS",
The FreeBSD license tells you exactly what you can and can't do. That applies to any piece of software (whether source or executable) that has that license. In the case of FreeBSD, the license was quoted above. All you need to do is to not remove (i.e., retain) the existing copyright notice on the source, and you must have the binary result display it. There is no restriction on what you can call any derived product. If you want, you can call it Elephant ... but when it boots, it will have to display the existing license, and it has to be in the source code.

because FreeBSD call itself an OS and it is made of multiple pieces, not just the Kernel
Has nothing to do with whether it is an OS or not. You can use FreeBSD inside a dishwasher, and sell it as the "Elephant Dishwasher", and clearly it is not an OS but a dishwasher. But it will have the license on the source code, and it will display it on whatever user interface a dishwasher has (which might very well be none).

Now, lets focus on case #1, lets say I modify 6 lines in the kernel code (or even none), do I get to change the OS name and put my own?
You have now created a derived work. The (Free-) BSD license allows you to do it. You can put any name on it you want. But you must not remove the original license from the source, and you have to display the original license when distributing in binary form.

None of the rest of your post matters. You can modify 10,000 lines of kernel source, or add one 3-line script to the top. You might get traction or not. The license doesn't care.

Now, whether any of this is ethical, or technically a good idea is a different question. From an ethics point of view, the BSD license very much allows, and even encourages making derived works. So I don't think it would be unethical to use BSD code in interesting places. Where it gets (in my not at all humble) opinion dicey is when it starts fracturing the ecosystem, or creating unnecessary competition. There is only a limited number of volunteers around, and *BSD is mostly a volunteer effort. If we fracture FreeBSD into dozens of different "products", which all take a snapshot of the system and then modify it for different use cases (one for NAS, another for desktop, a third for dishwashers, ...), they will all require volunteer maintenance, enhancement, testing, organizing distribution, and so on. That will lead to duplication of effort: when a new FreeBSD version comes out, all the dozens of projects will all have to do the same thing, and I find that wasteful. It would be more sensible if those "projects with additional capabilities or specialization" started with an *unmodified* FreeBSD, and then shipped things that get installed on top. But that's not always possible.
 
All you need to do is to not remove (i.e., retain) the existing copyright notice on the source, and you must have the binary result display it.
As far as I understood it the binary doesn't need to show the copyright. The copyright only needs to be included in the documentation (paper, PDF, website, whatever) of the product and be kept in the source code itself.
 
the BSD license very much allows, and even encourages making derived works. So I don't think it would be unethical to use BSD code in interesting places.
This is a great point regarding wether or not is OK to fork FreeBSD into new projects with little or not modification.

it starts fracturing the ecosystem, or creating unnecessary competition
Thats right! And I do believe the system self-regulates, and it looks that at the end the original source is the one that gets the most attention, as intended.

As far as I understood it the binary doesn't need to show the copyright. The copyright only needs to be included in the documentation (paper, PDF, website, whatever) of the product and be kept in the source code itself.
Thats what I read as well.

I think all of you are providing great explanation and supporting facts regarding my opening questions.
I really appreciate your effort helping me out to understand all this.
 
As far as I understood it the binary doesn't need to show the copyright. The copyright only needs to be included in the documentation (paper, PDF, website, whatever) of the product and be kept in the source code itself.
You are probably right. When above I said "display", I simply quoted the language from the license itself; I don't actually know what "display" really means. For a normal computer operating system without GUI, there is a simple and logical way of "displaying" the copyright: print it to the console when booting, but I have no idea what the legal requirement is. For a dishwasher, which has no place to produce text output, that doesn't work, and I really don't know how to display it. Printing it in the documentation seems like a logical way to do it, but I don't want to make a statement whether that is legally speaking sufficient, or the only possible way.
 
Well, "display" has a wider meaning in general language than it has once you're thinking in computer terms. Putting a sign in front of your house also displays something. So I'm pretty sure putting the copyright notice in bundled documentation fullfills the license requirements :)
 
Now, my question: To which extend someone can use a FreeBSD base OS, modify a couple of things here and there, add some apps to it and legally call it a "BlahBlah OS" (with a different name, branding etc).?
This is a technical question and a legal one as well, Im not well versed on the practical applications of the FreeBSD license, but Im sure some of you are and can put it in plain language.

The technical and legal answer is simple: anyone can take the FreeBSD sources, package it up however they want, and release it to the world as "OS Whatever Name You Want". That's kind of the whole point of the BSD license. Do whatever you want with the source, just make sure to leave credit to the original authors somewhere visible to users (documentation, website, help output, source files etc).

It can be as simple as a 1 character change. It can be as deep as the changes from FreeBSD 4.x to DragonflyBSD 1.0. Or anywhere in between.

There's nothing to debate about, really. It's part of the BSD license. Do what you will, but credit the authors. IOW, build what you want while standing on the shoulders of giants; just be sure to acknowledge the giants.

You don't even have to release anything in source form. Just a documentation snippet with all the copyright notices. There are many commercial businesses out there running custom versions of FreeBSD, and users don't even know it. And that's OK. The point is for the code to get used, not for everyone to have the OS name shouted from the rooftops, with giant neon signs, and forced viral license changes on your projects. Just use the source and carry on, Luke!
 
Possibly veering off into philosophy...
Can information be "owned"? I'm inclined to be a bit skeptical about the idea of ownership of information.
There's a book by a Catholic Saint called Therese of Lisieux, where she says that her thoughts and feelings about God don't belong to her; they are common property and she claims no right to be outraged if another Sister steals her spiritual ideas.
The ironic thing is that the Catholic Church defends the copyright of liturgies and Bibles and such - completely at odds with St. Therese's philosophy.
I don't think the Church is deliberately doing anything wrong - it's a cultural thing. As programmers we've been massively exposed to the idea that information should be free; the Church, not so much! People, even people who should be above such things, tend to view laws (such as intellectual property laws) as if they had some basis in objective fact.
Someone (I think it was the OP) mentioned people stealing music. I saw an interesting documentary once where someone from the UK band "Space" said that "There's only really one great Song and we're all just discovering bits of it!" Now, disregarding the fact he'd probably been using to much LSD/cannabis, I think he had a very good point. I believe songs are "discovered" rather than invented. Just like mathematics or Unix. Yes I would say Unix was discovered! As its focus on I/O and "everything is a file" philosophy is something fundamental to the field of computing, and I think computation is a fundamental property of the universe. So much so that if there were aliens, they'd probably discover computers just like we have, and probably come up with something surprisingly Unix-like to run on them.
Copyright and IP are useful to reimburse people for their hard work but there should definitely be timescales put on them to prevent abuse and to align the law with the reality that no-one really owns these things.
 
vzug.jpg
 
Can information be "owned"?
In today's worldwide legal system, one can have an ownership right in something that is purely information, and has no physical embodiment. I define "ownership right" as a legal right that allows the owner to control the fate of something, and to exclude others from controlling. The thing discussed in this thread (copyright on OS source code) is one example. Other examples include trade secrets, patents, and (recently in the news) campaign information that comes from foreign countries.

You may not like it, but this is the situation.

I'm inclined to be a bit skeptical about the idea of ownership of information.
I can read your statement on two levels.

The first level is: No, not all information can in general be owned. I can't claim a patent on the number pi. Even less so on the fact that 2x2=4. I can't get a copyright on "twinkle twinkle little star" (both Mozart and Dohnanyi would get very mad if I did). On the other hand, I can invent and build a novel type of machine that solves an important problem. If I do that, I can get a patent on that invention, which prevents others from claiming that it was their idea and building these machines to compete with me. And I can do that on something physical (like a new type of chainsaw that cuts down trees even faster, without ever having to sharpen the chain), or on something logical (like a new algorithm and computer program that finds trees in the forest very accurately, given a satellite image). In the latter case, I'm patenting software, which ultimately is just information. This is legal and common, worldwide (matter-of-fact, I have a handful of these patents, except they are not about trees and chainsaws).

The other level is: Can something that is pure knowledge even be owned? If I make an important discovery (for example, I figure out that P=NP), can I claim to own that? If I am a great actor, and can say "to be or not to be" better than anyone else, do I own Hamlet? Horowitz owned Rach 3 (Rachmaninoff's 3rd piano concerto), he played it so well that after Rachmaninoff heard Horowitz play it, he rarely performed it himself, finding himself inadequate. From a purely philosophical viewpoint, this example is particularly troubling, since two people now own the same thing. In practice, these philosophical debates don't get us anywhere; the important part is that we have a legal system that allows good people to make some money (sometimes), and prevents bad people from stealing from the good people (sometimes). And the legal system sometimes gets the wrong answer, but that's the price we pay for it usually giving the right answer.
 
As a professional musician I can vouch for the the fact that copyright based on notes is BS - at least for most popular music. The performance is, however, totally individual and deserves recognition. When it comes to going into a studio and being told to do a solo for a "new" song, you do not need to tell me what key, or chords, the song is based on. Often there are only two chords, or it is based on the usual 6-2-4-1 pattern that arises out of the harmonic series - which is pure physics. Some people are surprised at this, but any professional studio musician takes it for granted - which is why they're hired.

When computers first started to influence consumer electronics, I was quite taken aback by the insistence of producers that their "brilliant idea", often consisting of simply running some series of commands that could have been done by the user had they been given front panel switches. Should a patent be awarded for something like that? I say emphatically, NO. That is simply something that arises out of having stored instructions. For sure, people should be rewarded for their work, but claiming it is unique is neither logical nor right.
 
Hullo Ralph/OJ, I read your messages with interest. I deliberately phrased my feelings as a question and said I was sceptical because I've mixed feelings about ownership of information. I completely agree that you've the exclusive right to profit from your magic chainsaw (at least for a limited time,). On the other hand I'm not too fussed if the Chinese have somehow obtained the recipe for Coca Cola. I hope they enjoy it. ?
Maybe it depends on the relevance of the information. A private citizen's medical records are secret but also irrelevant. Tony Blair's reasoning leading up to the second gulf war is secret but arguably much more relevant. Also, hiding information isn't quite the same as owning it.
On a purely practical level I was really annoyed recently when my friend was suffering from anxiety and I was unable to send her an excerpt from a Kindle book that would have helped her. ? Kindle is an example of the law sometimes getting it wrong.
I agree about IP WRT simple melodies. Especially since melodies can be "stolen" accidentally.
 
How could one tell if the source code contained the copyright if compiled as binary? Dis-assemble the binary?
For instance to check PS4 code.
Who polices this on FreeBSD?
 
How could one tell if the source code contained the copyright if compiled as binary? Dis-assemble the binary?
In general, you can't. The copyright notice is usually a comment, and comments are not included in the binary, not even in the disassembly.

But the derived work has to display the copyright. In some fashion, as we discussed above. So you have to diligently search for whether it is being displayed. For something that is a program which has a good place for text output (like an OS when booting), looking at the screen is probably a good idea. For something that ships with documentation, looking at the documentation would probably work. I don't know of a fool-proof way that is always reliable.

Who polices this on FreeBSD?
AFAIK, nobody does it consistently. It is actually very hard to do. If someone downloads the kernel source code, and uses it to build an appliance (like a dishwasher), and forgets to display the copyright, that will be very hard to detect. Matter-of-fact, one of the questions inventors of patents and such are always asked: How hard would it be to detect if someone violates the patent? If violation of a patent is incredibly hard to detect, then it is often not worth actually getting a patent, because the cost-benefit tradeoff goes away.

And honestly: the BSD copyright is intentionally designed to make the code useful. Being too harsh about enforcement causes anxiety in potential users, making it less useful. So I'm quite glad that there isn't a lot of enforcement. This goes along with the mindset of the BSD crowd, who in general are not assholes: they like writing interesting and useful code, and seem to enjoy it when people use it. While a lot of Linux people (starting with Linus himself) are pretty much assholes, with a very high opinion of their skills, an unrealistic view of the value of the source code they wrote, an inability to have rational discussions about better and worse ways of solving problems, and a desire to use their code to aggrandize themselves. All I need to say is "Lennart". In an environment where traditions are dominated by such people, enforcement is relevant.
 
Back
Top