# Does FreeBSD read code of the compeition?



## azathoth (Jul 6, 2017)

Just curious, does FreeBSD read Linux code and OpenBSD code or even OpenSolaris and MeneutOS code? For inspiration? Ideas?  

Or are all the ideas like 5 years out and just no time to code them with part time free software hobby status?

www.cat-v.org for example recommends OpenBSD because its simpler, they go on about simplicity is the most important aspect.

I just seem to achieve better performance on FreeBSD even when surfing the net and I like that so even tho I switched briefly to OpenBSD 6.1, I switched back, and all my external USB storage is ZFS.

I have been on FreeBSD for a few years now with IceWM full-time at home and have urge sometimes to try ArchLinux again or Alpine Linux, or NixOS, but am like naaaa

The xorg config and isntalled are pain in tukus for me.... I like also how audio just works on bsds..

systemd also seems annoying......meh

FreeBSD is really nice but I have managed to lock it up with chrome on icewm...

In general I read FreeBSD will run faultless for years on servers, is this just chrome/xorg lockup buggery?


----------



## drhowarddrfine (Jul 6, 2017)

I've never had problems with either of those locking up my system. 

Of course they read other people's code. And other operating system people read FreeBSD code. That's how one discovers new and interesting things. You might say it's a requirement of a good programmer.


----------



## ralphbsz (Jul 6, 2017)

azathoth said:


> Just curious, does FreeBSD read Linux code and OpenBSD code or even OpenSolaris and MeneutOS code? For inspiration? Ideas?


One has to be very careful with that, for reasons of intellectual property law.  All code has some form of copyright.  Most "open" software copyright clauses are complex.

If I were to (hypothetically) read code from operating system X, and then use it when implementing operating system Y, and the code I wrote for Y were very very similar to what I saw in X, then it would be pretty easy for people to claim that I de-facto copied code from X into Y.  At that point, things can easily get very ugly.  If system X has an "infectious" copyright (like the (L-) GPL, which is used for much of Linux), then people might be able to claim that Y has suddenly become a system derived from X and its source code needs to be published.  Or the copyright owner of X might order me (or the people who own or maintain Y) to remove my changes.  Or they might sue me for damages; and given that there are lots of companies that make lots of money with computers, the damage claims could easily be hundreds of millions of $.  Just hiring my own attorney to defend myself against such claims would cost anywhere between $5K and $5M.

If you think this is a joke, look back at the history of operating system copyright lawsuits, including the BSD lawsuits, the USL system V lawsuits, the Linux and IBM lawsuits, and all that.  I have been peripherally involved in some of these, and it is very expensive, very tedious, and disrupts progress.  It gets particularly complex if some of the copyright involved is on closed source systems (like the original AT&T Unix, all commercial derivatives like HP-UX, AIX, Solaris, plus closed-source systems like VMWare, VxWorks, and Windows).  All my employers (big computer companies) have had very clear and very strict policies about what needs to be done before inspecting source code.

For this reason, most professionals in this field are very careful about *not* reading the source code of competing products, except under very controlled circumstances.  Typically, licenses and lawyers are involved in those cases.  Now, obviously there is a lot of complexity in copyright law.  For example, if I were to read the Linux source code *only* to find out which problem they are trying to solve (for example: draw a pixel on the screen without locking up the computer), without looking at *how* they solve that problem, and then I use that as inspiration for solving the same problem *in a different way of my own invention*, then I clearly have not broken copyright (or patent) law.

Just to give you a scale for why this matters: RedHat, whose only product is "Linux" and related services, is worth about $16B (that's billion), and has annual revenue of $2.5B.  If they feel threatened by a few FreeBSD hobbyists reading their source code and copying it, they can easily invest a few million into a lawsuit.



> www.cat-v.org for example recommends OpenBSD because its simpler, they go on about simplicity is the most important aspect.


Having been an OpenBSD user, I agree with them: OpenBSD is indeed simpler, cleaner, and better organized.  But it also does a lot fewer things; one might argue that it does those things better.  It can be a good choice for something where its capabilities match the requirements, and where its simplicity is a benefit.  For example, if I had to set up a dedicated firewall/router machine, I would probably use OpenBSD.  The moment I need interestingly complex storage service (with a modern file system with integrated RAID), OpenBSD no longer matches the requirements.



> I just seem to achieve better performance on FreeBSD even when surfing the net ...


I find it unlikely that the performance of normal web surfing is determined by which OS you run.  Normal web surfing gets its data at anywhere between 1 and 100 Mbit/second, and any operating system (even Windows) can render at that speed.



> In general I read FreeBSD will run faultless for years on servers, is this just chrome/xorg lockup buggery?


Does FreeBSD have occasional bugs?  Absolutely.  Did you find one of them?  Possible.  It is also possible that your particular hardware (which in the case of display devices involves a lot of firmware) is broken.  What is more likely is that the hardware is kind of working, kind of broken, that FreeBSD and its Xwindows component are kind of working, kind of broken, that IceWM stresses all these partially broken components in a particular way, and you found a corner case that people didn't anticipate.


----------



## fnoyanisi (Jul 8, 2017)

FreeBSD and NetBSD share a good deal of common networking code. Also, it is not uncommon for a device driver developer to refer a code from another open-source project (could be from a BSD variant or even from gnu/Linux) to reverse engineer internals of a device.

This, however, does not mean copy/paste code, but more like "hacking the code" and eventually come up with his own way of doing things. This is the good thing about and of course the power of open-source.


----------



## ralphbsz (Jul 8, 2017)

From Berkeley copyright to Berkeley copyright: no problem.

Reading code (very intensely, tracing out everything it can do) to learn about how the underlying hardware works: no problem.  Using that newfound knowledge of how the underlying hardware works to implement one's own code: no problem.  It's like reading a math book (which is definitely copyrighted) to learn how to calculate what size steel girders are required to built a bridge: the math professor who wrote the textbook can not claim copyright in the bridge, even though the knowledge from his book was used to implement the bridge.

On the other hand, taking 100 lines from Linux and cutting and pasting them into a closed-source commercial product: immediate lawsuit.  Or building a bridge by using photocopies of the blueprints from the Golden Gate Bridge: intellectual property problem (although I think the GG is so old, it no longer matters).

By the way, I have never in my life looked at the ZFS source code, and I plan to keep it that way, even though I use ZFS at home.  I work in file and storage systems, and becoming "polluted" by source code might be a career-limiting move.


----------



## drhowarddrfine (Jul 9, 2017)

The reason I used to look at other people's code was to learn techniques and methods or organization styles. I picked up some great ideas, years ago, when I happened to open up sqlite's code and saw how clean and well organized it was. One can learn a lot from doing that.

I wound up using some coding styles and techniques in C that I learned from that and others. Most of us aren't concerned with building same products and, if we were, should have been duly warned by our companies not to venture into those areas. I know that, nearly 40 years of electronic design and, now, software programming, I've never had to worry about that.


----------



## fnoyanisi (Jul 10, 2017)

drhowarddrfine said:


> I picked up some great ideas, years ago, when I happened to open up sqlite's code and saw how clean and well organized it was.


Yes, SQLite has a very clear and well organized code indeed.

azathoth, if you join one of the FreeBSD mailing lists, you will see that people are talking about how things are done in other operating systems.


----------

