Sunday, 20. June 2021

Advance!BSD - thoughts on a not-for-profit project to support *BSD (1/2)

[This article has been bi-posted to Gemini and the Web]

There are multiple reasons why I am a BSD user and enthusiast. For one thing I enjoy using systems where the design benefits from the holistic approach (whole OS vs. "kernel + some packages"). I've come to appreciate things like good documentation, preference of simplicity over unnecessary complexity and permissive licensing. There's a different spirit to the community that makes me feel more at home. Well, and truth be told: I do have a heart for "outsiders" who are doing well but get far less attention due to the towering popularity of a certain other system. In addition to that I'm very much concerned about the new de-facto monopoly in open source.

While the broader BSD community is _far_ less fragmented than what you know from the Linux ecosystem, it's also much smaller. Considering the little manpower that the BSD projects have, they are doing an outstanding job. But a lot of people seem to agree on the fact that due to the small amount of resources available, the BSDs are pretty far away from maximizing their full potential.

There are in fact a lot of people out there who'd like to help improve the situation. But coordination of volunteer effort is hard. Linux is what Linux is for a substantial part due to corporate funding. And while there are also companies that support BSD, the question is: Could we probably do better?

A (nonprofit) BSD-first service provider?

After thinking about this for quite a while, I finally just asked on Reddit what other people think about such a project - and I've been blown away by the response!

Thread on Reddit

While I had hoped that most people would agree that this could be an interesting thing or even consider supporting it, I had _not_ anticipated that the most popular option on the poll would be the one where people express their interest in the project with the prospect of perhaps _participating actively_ in getting it started!

20 votes (after only one day) for maybe participating in the project! (PNG)

A lot of projects struggle _for years_ to find people who might be willing to join. With projects that weren't even started yet, and thus have nothing to show off, it's even harder to get some attention. Getting 20 people to support the cause in just one day was quite a surprise for me. Sure, that's only a poll vote on Reddit and thus completely without any obligation. But let's assume that 1/4 would actually join such a project and contribute - 5 people is not bad at all. Depending on what skills they bring in, even 2 or 3 might suffice to get something started, further increasing the odds that more people join in. The hardest part in getting a project on they way is finding people who are willing to pioneer it and make something that _sounds interesting_ actually _work well_.

Why "Advance!BSD"?

The name is just a working title, BTW. I won't insist on it and am in fact pretty sure that something better could easily be found.

Recently there have been two longer discussions (also on Reddit) about what the BSDs lack to be more competitive. There were a lot of great ideas and I'm one of the people who'd like to see at least some of them being implemented eventually. But let's be realistic: This is not very likely to happen. There's enough work going on regarding the must-haves, and when developers decide to work on a nice-to-have, it'll be something that _they_ want. If we really want to see some things not of very high priority to the various projects eventually land, we need to take care of that ourselves. If you're a developer with the required skills _and_ enough free time: Great! Nobody can really stop you. If you aren't: Too bad.

I've thought about the possibilities of crowd-funding that we have today. In theory we could try to find a enough people who'd like to see a feature and are willing to spend some money so that the group could contract a developer. Even though I believe that there are enough developers out there who'd love to do some paid work on *BSD and would probably even prefer such a task over one that pays better, I'm not very optimistic about it. There's not such a high chance of finding people who want the same feature implemented and would be willing to pay for it. Certainly not over a longer time which would be required to collect enough money. Also I don't really like that _begging for people's money_ approach, either. So I came up with a different idea:

If you like *BSD you're almost certainly an IT person. IT people all have a couple of things in common: We love tech. We use email. Almost everybody has his or her own homepage. Which means: We need domains. We need DNS. We need Webspace, etc. And we get that from service providers. Some of which are somewhat BSD-friendly, many of which are not. And even cloud providers for example that offer BSD as an option usually don't do that because they love it (and regularly that shows...).

So what about _providing services_ instead of just asking for money? Imagine starting a "hosting club" where like-minded people get something rolling that works for them and that could at some point be turned into a not-for-profit hosting provider that lives and breathes BSD! The latter would use the money acquired to pay the running costs and spend the rest on improving the BSDs. What could that look like?

Well, for example like this: Members could vote for a general topic for each year (like e.g. "desktop", "drivers", "de-GPLing", "porting efforts", ...) and propose (as well as discuss) concrete project ideas over the year then voting again at the end of the year when the available money is to be spent. Any project that is beneficial for more than one specific BSD gets bonus points.

Which BSD operating system(s)?

In a follow-up poll I asked people interested in the project about which BSDs they are proficient with. Considering the general market share within *BSD it came to no surprise:

Second thread on Reddit

The largest group of votes were for _FreeBSD_ somewhat closely followed by _OpenBSD_. People voting _NetBSD_, _DragonFly BSD_ or _multiple_ followed only after a huge gap.

Most people favor FreeBSD and OpenBSD (PNG)

Pretty early on one person commented that even though NetBSD was his favorite OS, it might make most sense to go with FreeBSD for such a project for example due to jails being a very useful feature for that. I can imagine that there might be more people who decided to put their personal preferences aside and vote for what they think makes most sense for this use case.

To be honest, I'd like to see all of the BSDs being part of this in some way or another. But to be realistic, I think we need to start with something. This should be one or two BSD systems that project members are familiar with. Right now FreeBSD and OpenBSD seem to be the reasonable choices here. Of course we need to take into account what those systems excel in and which one to use for what.

Problems with the not-for-profit status

Like with everything, there's pros and cons regarding the aim for this to be a not-for-profit eventually.

Pro:

It ensures that nobody involved in it could ever become greedy and try to sabotage the original idea of providing money to support *BSD. It would also protect such an organization from becoming attractive for buyout by a for-profit competitor should it go well. There would be benefits regarding taxes. And I'd imagine that it gives a good feeling to the customers which could be turned into a competitive advantage.

Contra:

The price to pay is inflexibility. A not-for-profit can donate money only to another not-for-profit organizations - and that very likely only in the country that it was formed in. With e.g. the FreeBSD foundation and the OpenBSD foundation we have to potential organizations that we might want to donate to; however one is US-based while the other one is Canadian. A for-profit company is free to spend money however it wishes. There might be other limitations that I'm not aware off. Going with not-for-profit would require consulting lawyers upfront.

A federated model?

One interesting idea that came up on Reddit was that of possibly going with a federated model. In this case project members / supporters who own a server but don't need all of its resources would dedicate some percentage of CPU, memory and disk space for a VM that could be used for the project. The user who suggested this envisions that there could be some sort of _market place_ where people can offer those resources to people who want a VM. The person who donates the resources gets to decide what field the biggest part of the money made from this would be spent on. The customer on the other hand can also influence the the direction by picking e.g. VM a) where the money goes to desktop improvements over option b) were he'd support permissively licensed alternatives.

I like this idea and think that we should discuss it. It has the obvious benefit of being able to start without somewhat high upfront costs for hardware. Also more people might be ok with a "donate some spare resources" approach for machines that are running anyway. The downside certainly is: Reliability. Donated resources might basically be withdrawn anytime. What could / should we do about that?

What's next?

While this part 1 mostly covered the "why", part two of the article is more about the "what" and the "how".

Advance!BSD - thoughts on a not-for-profit project to support *BSD (2/2)

BACK TO NEUNIX INDEX