Merging bcachefs
The bcachefs filesystem, and the process for getting it upstream, were the topics of a session led remotely by Kent Overstreet, creator of bcachefs, at the 2023 Linux Storage, Filesystem, Memory-Management and BPF Summit. He has also discussed bcachefs in previous editions of the summit, first in 2018 and at last year's event; in both of those cases, the question of getting bcachefs merged into the mainline kernel came up, but that merge has not happened yet. This time around, though, Overstreet seemed closer than ever to being ready to actually start that process.
He began his talk by noting that he had been saying bcachefs is almost ready for merging for some time now; "now I'm saying, let's finally do it". He wanted to report on the status of the filesystem and on why it is ready now for upstreaming, but he wanted to use the bulk of the session to discuss the process of doing so. "It's a massive, 90,000-lines-of-code beast" that needs to get reviewed, so there is a need to figure out the process to do that review.
His goal with bcachefs is to have the "performance, reliability, scalability, and robustness of XFS with modern features". That's a high bar, and one that bcachefs has not yet reached, but "I think we're pretty far along". People are running bcachefs on 100TB filesystems "without any issues or complaints"; he is waiting for the first 1PB filesystem. "Snapshots scale beautifully", which is not true for Btrfs, based on user complaints, he said.
Status
In the last year, there has been a lot of scalability work done, much of which required deep rewrites, including for the allocator, which dates back to bcache. There is a new "no copy-on-write" (nocow) mode and snapshots have been implemented. People are using the snapshots to do backups of MySQL databases, he said, which is a test of the robustness of the feature.
![Kent Overstreet [Kent Overstreet]](https://static.lwn.net/images/2023/lsfmb-overstreet-sm.png)
Erasure coding is the last really big feature that he would like to get into bcachefs before upstreaming it. But he thinks "it's time to draw a line in the sand", so that can wait for a bit. There is still a lot of work to do, but "the big feature work is lessening"; he will be able to work on being a maintainer without having to disappear for a month to work on something, as he did for snapshots, for example.
The bcachefs team is growing; Brian Foster at Red Hat has been doing a lot of great work on bug fixes, Overstreet said. Eric Sandeen has helped in attracting interest in bcachefs at Red Hat as well. There is a bi-weekly call on bcachefs development. There is automated testing infrastructure that has been added and it is "making my life much easier", Overstreet said. The test system runs in about half an hour and includes multiple runs of fstests as well as the "huge test suite" for bcachefs.
Rust is something that he has been evangelizing about to "anyone who will listen"; he thinks "writing code in C, when we finally have a better option available, is madness". He loves to write code, but not to debug it; writing in Rust "just means a lot less time debugging". He intends to slowly rewrite bcachefs in Rust, which will be a ten-plus-year project, but the use of Rust in bcachefs has already started. Some of the user-space tools have been rewritten in Rust and someone is looking at moving some of that work into the kernel.
Upstreaming
That morning he had posted 32 preliminary patches adding infrastructure that bcachefs will need; those patches were already being reviewed, he said. The rest is 90,000 lines of code in 2,500 patches that he did not post; he did include a link to his Git repository, where those patches live in a bcachefs-for-upstream branch. He then opened up the floor to discuss how those patches would be reviewed and, eventually, merged.
Josef Bacik said that he thinks the response will be much the same as last year; filesystem developers are "really excited" to see bcachefs get merged. He does not plan to review the implementation of the filesystem itself and suspects that is generally true. The people who are working on it will review it; "trust yourselves for that part". The "generic stuff is what we need to review", once that is done, the rest of the filesystem code can be merged as far as he is concerned. That is, of course, up to Linus Torvalds.
Overstreet said that one of his questions is: "what do we take to Linus?" He has spent the last year on process and infrastructure, getting a team together, working with Red Hat, putting together an automated test suite, and so on. Mike Snitzer remotely pointed out that a patch set that had recently been rejected contained two enormous patches that were essentially impossible to review; he contrasted that with the 2,500 fine-grained patches that make up bcachefs, which is much easier to digest.
While Snitzer is not sure that having everyone go through them one-by-one in review is the right approach, the obvious effort that went into that patch series makes it easier to trust the code and the process that went into developing it. "You've done the heavy lifting by doing all of that work to split up patches." Overstreet said that it was a lot of work to rebase nearly the entire history, but that it came in handy around six months ago when Red Hat noticed some big performance regressions. He was able to use that history to do automated bisection and got almost all of the performance back.
Bacik said that Torvalds is the "maintainer" responsible for merging a new filesystem, so it will be up to him to decide if he is willing to pull the full history into the mainline. It would be Bacik's preference to do so, because the history is "super useful", but that is not something that the people in the room can decide. He suggested that the pull request be more of a question about whether the full history was acceptable and, if not, what would be.
One concern is that once bcachefs gets merged, it will be difficult for anyone besides Overstreet to deal with the bug reports, Amir Goldstein said. It is important that it be explained in the pull request; "I want to merge this and I have a team that can support this". Getting more help was one of the criteria before upstreaming, Overstreet said. He knew that if it was a one-man show and he got deluged with bug reports, he would "go insane and run away to South America"; Foster has been "a huge help", which is one of the things that makes him feel comfortable about merging at this point.
Paradoxically, the recent push to remove some filesystems (e.g. ReiserFS) from the kernel is actually going to make it easier to add new ones, Ted Ts'o said. He can remember Hans Reiser being enthusiastic about his new filesystem, with a team to support it, but that all fell into disrepair over the years. The kernel project now has a path for removing filesystems after a deprecation cycle. The idea that "accepting a filesystem isn't forever, makes it a whole lot easier" to merge new ones.
He also suggested breaking up the patch series into smaller, more reviewable chunks that collect up a small number of related patches. That would make it easier for people to review, say, all of the lockdep patches in one chunk. It would mean relaxing the general guideline about not merging infrastructure until its first caller is merged, which he is in favor of; he would amend that guideline to allow merging when it includes a pointer to the Git tree of the first caller.
Overstreet thinks that the preliminaries that he posted earlier that day will not be too controversial and other than perhaps one or two "will just sail through". He noted that Christoph Hellwig had objected to the vmalloc_exec() patch, though that functionality is needed for bcachefs, Overstreet said. Since the talk, Mike Rapoport has proposed the JIT allocator, which would solve the underlying problem.
A remote participant said that Foster's experience had shown that the code base is approachable; once bcachefs is available, interested developers will be able to come up to speed and start working on it with few difficulties. Christian Brauner asked that there be a clear delineation for who else could step in and merge patches if Overstreet is unavailable. Brauner noted that the NTFS/NTFS3 maintainer disappeared and, even though there were people who were contributing to the filesystem, it was not clear "who could route patches upstream". Overstreet said that he would trust Foster in that role if "he is willing to step up to that".
Brauner said that he thinks bcachefs is in "excellent shape to be upstreamed", but he is concerned with the number of filesystems in the kernel; he is glad to see that there are efforts to remove some of them. Changes that impact all of the filesystems in the tree "get painful very very fast" and, in some cases, there is no one available to review the changes. He would like the acceptance process to be more conservative; accepting NTFS/NTFS3 was "a huge mistake", for example. Brauner said that none of that was directed at bcachefs, but was a more general concern; filesystem acceptance and deprecation was taken up in a lightning talk (YouTube video) later that day.
Darrick Wong said that he had already started doing what Ts'o suggested in his patches for XFS online repair. He has a collection of infrastructure patches that refer to callers that are coming soon; he has convinced Dave Chinner that there is value in reviewing the infrastructure pieces while also looking at the bigger picture of where it is all leading. That helps him because he can stop "rebasing things repeatedly and having to play code golf, like moving small helper functions up and down in the patch set". Putting all of that stuff in a separate set of infrastructure patches helped him, though it did cause some complaints from reviewers, but there is now some precedent for that approach, he said.
Overstreet said that he is not particularly concerned about the 30 or so "relatively uncomplicated" infrastructure patches that he needs to land. He is going to wait for the Acked-by and Reviewed-by tags to come in, but if they do not, then he will use the suggested approach "as a Plan B". With that, the session came to a close.
Index entries for this article | |
---|---|
Kernel | Filesystems/bcachefs |
Conference | Storage, Filesystem, Memory-Management and BPF Summit/2023 |
Posted Jun 16, 2023 21:23 UTC (Fri)
by zdzichu (subscriber, #17118)
[Link] (2 responses)
Posted Jun 17, 2023 0:41 UTC (Sat)
by flussence (guest, #85566)
[Link]
Posted Jun 17, 2023 7:03 UTC (Sat)
by Kangie (guest, #161139)
[Link]
Any use case between 'wanting a decent CoW file system on a single disk / partition' to 'combining two disks in a desktop better than btrfs in a way that will be mainlined' and frankly anything short of true multi-tiered mass storage is where this is going to be most useful.
It's incredibly promising - better than btrfs with no CoW write hole and actually able to be mainlined unlike zfs. It's also possible to easily resize, unlike a running zfs system.
Seriously, exciting stuff all around.
Posted Jun 17, 2023 9:45 UTC (Sat)
by jengelh (guest, #33263)
[Link] (7 responses)
I'd wish developers would spend less on (fanatically) evangelizing the toolchains used, and rather push a project on own merit (e.g. features).
Just because you made a painting with a $10k horsehair brush and golden paint does not necessarily make it great art.
Posted Jun 17, 2023 11:15 UTC (Sat)
by tux3 (subscriber, #101245)
[Link]
If the brush does not matter, and the art is not to your liking, then criticize the art. If the brush doesn't make it good, then the brush also doesn't make it bad.
No one's saying it's good because of the new lang. Symmetrically, new lang evangelism oughtn't be a reason to dismiss it.
Posted Jun 17, 2023 14:20 UTC (Sat)
by koverstreet (✭ supporter ✭, #4296)
[Link] (4 responses)
A good craftsman cares about his tools. Listen to woodworkers who get together, they'll be talking about their tools just as much as the actual work. We're interacting with these tools every day, and the quality of the tool very much affects the quality of the work.
Posted Jun 17, 2023 14:25 UTC (Sat)
by jengelh (guest, #33263)
[Link] (3 responses)
Posted Jun 17, 2023 14:44 UTC (Sat)
by koverstreet (✭ supporter ✭, #4296)
[Link]
Posted Jun 17, 2023 20:48 UTC (Sat)
by flussence (guest, #85566)
[Link]
A crayon scribble may satisfy a lot of people, but the rest of us don't really accept that VFAT and NTFS written in a pre-C99 toolchain are the limit of what's possible.
Posted Jun 18, 2023 1:42 UTC (Sun)
by dvdeug (guest, #10998)
[Link]
And Linux is more like engineering than art. The Hyatt Regency Hotel in Kansas City had the most elegant walkways, until they collapsed and killed 114. Sometimes it matters how you do things, and handwaves at artistry isn't going to recover the lost data.
Posted Jun 18, 2023 3:48 UTC (Sun)
by rsidd (subscriber, #2582)
[Link]
Posted Jun 18, 2023 1:43 UTC (Sun)
by developer122 (guest, #152928)
[Link] (38 responses)
Posted Jun 18, 2023 17:10 UTC (Sun)
by ballombe (subscriber, #9523)
[Link] (33 responses)
Posted Jun 18, 2023 20:36 UTC (Sun)
by developer122 (guest, #152928)
[Link] (32 responses)
If you want to be rude like that.
Posted Jun 18, 2023 20:43 UTC (Sun)
by developer122 (guest, #152928)
[Link] (29 responses)
You could always say "just use linux" but it's a pretty useful feature for a filesystem to be portable across OSs. There are even experimental windows and macOS drivers, if you really, really need to access the data there for some reason.
Posted Jun 18, 2023 22:18 UTC (Sun)
by ballombe (subscriber, #9523)
[Link]
Posted Jun 18, 2023 23:35 UTC (Sun)
by khim (subscriber, #9252)
[Link] (27 responses)
Yet ZFS was made non-portable on-purpose. It's an open question whether ZFS license actually makes it's impossible to merge it into Linux, but it was designed to make that impossible and Linux developers and users generally respect wishes of ZFS principal authors. FreeBSD/OpenBSD couldn't even claim that license stops bcachefs from being merged, because it's well-known fact that GPL is fully compatible with BSD license. And they couldn't claim that they only accept filesystems with non-copyleft licenses, because AFAIK none of ZFS versions are released under non-copyleft licenses.
It's really their own decision whether they want to use it or not.
Posted Jun 19, 2023 1:22 UTC (Mon)
by developer122 (guest, #152928)
[Link] (2 responses)
>And they couldn't claim that they only accept filesystems with non-copyleft licenses, because AFAIK none of ZFS versions are released under non-copyleft licenses.
>It's really their own decision whether they want to use it or not.
This again? You realise this decision was made something like 20 years ago, right?
You might was well get a shovel, because Sun Microsystems has been dead for over a decade. If you have beef with the specific format in which Sun's legal department gave away their entire operating system Free to the world, you better start digging.
The modern steward of OpenZFS isn't Sun and it isn't Oracle. They're an independent project that forked the codebase.
ZFS is in fact very portable, currently actively supported by it's principal authors on three (3) OSs, with two (2) more on the way. All facilitated by the CDDL.
The CDDL is a weak per-file Free Software Copyleft licence, as recognized by the FSF.*
It fits just fine with BSD etc because the CDDL doesn't impose any restrictions on the other files in a codebase, and neither does the BSD licence. Furthermore, the CDDL doesn't impose restrictions on the licence of the resulting binary that gets distributed. Thus, so long as you aren't trying to merge ZFS into the FreeBSD codebase there's no issue, and TBH that would kinda defeat the spirit of sharing the OpenZFS codebase and it's ongoing new feature development across 4 different operating systems. (OpenSolaris (now illumos) doesn't have any problems because of course it's CDDL too.)
Unfortunately, while the CDDL doesn't have *any* problems with the GPL (and both licences carry the same spirit), various analysts believe the reverse isn't true due to subtle incompatibilities between the terms. So ZFS is stuck as a non-GPL kernel module. Sorry.
*https://www.gnu.org/licenses/license-list.en.html#CDDL
Posted Jun 19, 2023 8:07 UTC (Mon)
by ballombe (subscriber, #9523)
[Link] (1 responses)
The BSD has used gcc for compiling for 20 years. They are not as hostile to the GPL as you imply.
Posted Jun 19, 2023 10:44 UTC (Mon)
by khim (subscriber, #9252)
[Link]
The BSD folks hate GPL with passion. They used GCC because it was “the only game in town” and switched to Clang when it became usable. Same thing as Apple or Google. For some reason BSD folks like when their code is used by SONY or other companies who contribute nothing back, but hate it when their code is used in GPLed projects and demand that GPLed projects would allow them to get stuff and give it to other proprietary companies on a silver plate. But it's unclear why bcachefs developers have to facilitate that. And as much as I don't like “freedom fighters” who try to kill proprietary software and hurt end user instead I have even less sympathy for people who try to take free software and turn it proprietary. Proprietary companies have lots of money and lots of developers. Let them write what they want or need themselves if they don't want to play by rules.
Posted Jun 19, 2023 9:41 UTC (Mon)
by paulj (subscriber, #341)
[Link] (23 responses)
1. Sun management wanted GPL. Schwarz was a big fan of the GPL.
2. A *lot* of the influential Sun engineering were _BSD_ people. They hated the GPL. They wanted OpenSolaris to be _BSD_ licensed.
3. BSD was never going to work for the business/management/legal side.
4. So engineering (as represented by a cade of the most senior/influential Solaris engineers) rejected what management wanted (with threats of leaving Sun if Solaris were GPLed); and management rejected what engineering wanted.
My view, based on the above - which is the closest to the facts of the matter available to me - is that management then chose the CDDL as a sort of compromise. A copyleft licence (as management wanted), but which was "It's definitely not the GPL!" so as to get it past the BSD-influenced GPL-hatred in engineering.
Additional factors (which I don't have specific evidence for, and I could not say are facts) may be that legal corporate people tend to view the GPL as problematically worded (IMLE). And also that Sun engineering people perhaps could see the writing on the wall for Sun, and they wanted to 'extract' the Solaris code (which they truly _loved_ and believed was the best Unix) out from Sun and have it available in "open source" form post-Sun, for them to continue to work and build on - and they really wanted it BSD. Given Schwartz and others in management also wanted (at last) to open-source Solaris...
I can't say it for sure, but my own sense is that it was a faction of Sun *engineering* that basically ensured Solaris ended up with this not-GPL-compatible copyleft licence, thwarting Suns' management, for largely irrational reasons related to long-standing BSD-v-GPL tribalism and dislike of GPL. I think they shot themselves in the foot by doing so. I think OpenSolaris would have been a lot more relevant if engineering had gone "Well, we can't get management to agree to BSD; if it has to be copyleft, GPL compatible is best".
But hey.
Posted Jun 19, 2023 9:49 UTC (Mon)
by paulj (subscriber, #341)
[Link]
Posted Jun 19, 2023 10:56 UTC (Mon)
by khim (subscriber, #9252)
[Link] (21 responses)
That matches what I know about BSD people. I just wanted to point out that what we are discussing here is nothing more than that same long-standing BSD-v-GPL tribalism and dislike of GPL. Probably wasn't explicit enough. Licensing doesn't prevent adoption of bcachefs by BSDs. And if OpenSolaris guys wanted it they could have asked for a special exception (easy to grant given how few people contributed to bcachefs so far). Instead they demand that bcachefs developers should drop GPL and make it easily available for Apple, SONY, Microsoft or any other proprietary OS to “embrace and extinguish”. Why should they do so?
Posted Jun 19, 2023 13:46 UTC (Mon)
by Wol (subscriber, #4433)
[Link] (20 responses)
Because they want to make money off other peoples' work?
I don't take sides in the GPL/BSD wars (my favourite system, Scarlet, the *practical* difference is bugger-all ...), but it is, as always, down to your definition of "freedom".
The BSD licence protects the SOFTWARE ENGINEER guys, the GPL protects the END USER guys.
Cheers,
Posted Jun 19, 2023 14:55 UTC (Mon)
by paulj (subscriber, #341)
[Link] (13 responses)
I could never get a cogent argument as to how the BSD licence protected software freedom better than the GPL. So ultimately, the only cogent argument that *I* can construct (as said GPL guy), in the context of the engineers I knew, is that they want the code they write for an employer to be BSDed so that - if they ever leave, or the company goes under or gets bought - these engineers have the 'freedom' to continue to use the code they are familiar with at their next employer, regardless of their next employers' attitude to open-sourcing their software.
My main evidence for this is that the push to open-source Solaris (which needed a) engineering approval, and b) significant engineering led due diligence, and a little bit of code cleanup) only really came about when Sun had sunk into deep trouble, and the future didn't look great.
As you say, to protect the engineers. Specifically, ability to keep using code they've written for one employer at the next.
Posted Jun 19, 2023 16:44 UTC (Mon)
by rahulsundaram (subscriber, #21946)
[Link] (12 responses)
Worth noting other projects like Samba have managed to solve this problem by having contributors negotiate an agreement to retain the copyrights as described in
https://www.samba.org/samba/devel/copyright-policy.html
Distributing the copyright like this prevents a single entity from unilaterally changing the license and contributors can carry on their work regardless of their commercial employment.
Posted Jun 19, 2023 17:20 UTC (Mon)
by khim (subscriber, #9252)
[Link] (11 responses)
This haven't solved the problem at all. Samba is not in the Android phones because of GPLv3 and it's very inconvenient to transfer files from/to Android phone because of that. BSD license would have solved that problem. And yes, it explains why people who work for some company which is just about ready to “go under” may prefer BSD. But it doesn't explain why they would go as far as to demand that someone else have to go from GPL to BSD for their sake. It's not their code, what right have they to demand that someone else have to provide it for them even if they want to go work for someone who would close it up and do that classic “embrace, extends, extinguish” trick? It's one thing to fight for your own code, it's entirely other to demand that someone else have to give their code for your to misappropriate.
Posted Jun 19, 2023 19:32 UTC (Mon)
by rahulsundaram (subscriber, #21946)
[Link] (10 responses)
This is a different issue. The problem I was responding to, was specifically about engineers ability to continue working on the code regardless of their employer. Samba developers demonstrably have that in practice.
Posted Jun 19, 2023 20:46 UTC (Mon)
by khim (subscriber, #9252)
[Link] (8 responses)
How can they do that? Obviously they want to use it for their work, not just as a hobby. For hobby you don't need much thought about licensing. But for work… you need to clear licensing issues. And GPL, very often, is rejected by employers thus engineers lose the ability to use their own code if it's released under GPL. You may argue it's not rational and they should have thought about that when they wrote code for their current employer… but I can understand their reasoning: they have already sunk tons of effort into that code, they want to continue to use it with a new employer when they change workplace… GPL doesn't give that to them. But that's for their own code. Which they wrote. And want to use in a new place. GPL gives you the different way of using your own code: not for the new employer, but for yourself, personally — when someone else improves it. That's also valuable ability and one which some people prefer. That's why I say that I can understand people who release code under BSD or Apache license (heck, I did that for that exact same reason). But demanding that someone else have to give up their own wishes and put their desires ahed of their own… sorry, guys, that goes beyond what I'm ready to accept.
Posted Jun 19, 2023 21:18 UTC (Mon)
by rahulsundaram (subscriber, #21946)
[Link] (7 responses)
I already explained this. They do that by retaining copyrights. Affiliations are listed in https://www.samba.org/samba/team/. All these organizations are fine with GPLv3 obviously.
Posted Jun 20, 2023 10:01 UTC (Tue)
by paulj (subscriber, #341)
[Link]
Posted Jun 20, 2023 13:38 UTC (Tue)
by khim (subscriber, #9252)
[Link] (5 responses)
Let me see. Facebook. No. Apple. Never. Amazon. Not there. Netflix. Of course not. Google. Obviously no. Sorry, but that's failure in my book. It puts you into a stark bind: either you avoid most desirable (and most lucrative!) employers or you can use the code you wrote. Otherwise someone else would be able to use and not you. I can see why these people would hate GPL: it's, quite literally, forces them to choose between their own code and “dream job”. Not good, not good at all. Now, for other people who already made that decision and are not interested in joining FAANG-style companies… for these GPL is desirable and trade-offs are fine.
Posted Jun 20, 2023 14:17 UTC (Tue)
by rahulsundaram (subscriber, #21946)
[Link] (2 responses)
That's fine, do you have any evidence that it is failure in the book of Samba developers? Because that's the only part that matters to this discussion.
Posted Jun 20, 2023 18:38 UTC (Tue)
by Cyberax (✭ supporter ✭, #52523)
[Link]
There's a presentation from one of the Samba developers about how GPLv3 failed to bring better compliance and is not helping at all.
Posted Jun 20, 2023 20:50 UTC (Tue)
by khim (subscriber, #9252)
[Link]
Wow. Just… wow. have you already forgotten that it was you who joined discussion about Sun engineers and promised some mythical solution to their worries. And now you turn around and say that what they think is irrelevant and only ones who support FSFs jihad matter? I'm starting to understand why people may dislike GPL. Once upon time FSF did a lot help people dealing with their practical issues: GNU software for Solaris and, later, Linux, then CygWin and many such things helped to solve many practical problems. But with friends like these… who proclaim opinions of other people just don't matter if they refuse to join their holy jihad… who needs enemies? And not everyone is wise enough, like Linus, and can separate GPLv2 (really superb hack on top of copyright system) from people who invented that hack (and then eventually ruined GPL with introduction of GPLv3) and who are, today, more of bane then an asset.
Posted Jun 22, 2023 8:04 UTC (Thu)
by nim-nim (subscriber, #34454)
[Link] (1 responses)
Once upon a time listing all the companies that made and sold BSD-based appliances was a who’s who of the industry.
Once upon a time Java was the future and the whole big data stack was built on Open Source (*not* Free Software) Java bits (Hadoop, etc). Now Python (definitely not Free-Software hostile) stole the big data show.
All those ecosystems have dramatically shrunk, the companies that remain mostly release Linux and Free-Software based products.
Open Source (as opposed to Free software) is a dead end that gets repeatedly estinguished by the greed of companies that insist on it. So maybe it pays more short term. Long term it condemns its participants to the anguish of being replaced by something else whose proponents share more with one another.
The corporations themselves do not care overmuch one way or another. Change of tech, change of techies. The only ones fooling themselves OSS vs Free Software matters for business are those techies. In the end money talks (Google’s awowed distaste for the GPL won’t make it dump Linux in GCP or Android as long as it makes them money; Microsoft has seen the *lucrative* side of cancerous GPLed Linux a long time ago).
Posted Jun 22, 2023 20:05 UTC (Thu)
by Cyberax (✭ supporter ✭, #52523)
[Link]
Uh... Whut? Python is quite explicitly OpenSource, not Free Software. It has a permissive license, and there's nary a GPL-ed package in sight. All the recent AI work is built on permissively licensed packages.
> Open Source (as opposed to Free software) is a dead end that gets repeatedly estinguished by the greed of companies that insist on it. So maybe it pays more short term.
What you're saying is completely false. It's Open Source that wins long-term because it's a superior development model. Proprietary forks (and models like "open core") can exist for a while, but they eventually either become obsolete and die off, or get integrated into the open code.
This is doubly so when the software gets complicated. You can't really develop a meaningful proprietary fork of Kubernetes, simply because your "secret sauce" changes will likely be insignificant compared to the overall functionality. And if they are significant, you'll have to keep up with the firehose of new functionality that is released for each new official version.
And finally, Open Source allows companies to collaborate on non-core functionality. My previous company worked in the solar industry, and we as hell wouldn't release our proprietary simulation algorithms, but we contributed quite a few patches to miscellaneous projects (because why not?).
To paraphrase an old Soviet joke, the goal of FSF is to make sure that there's no proprietary software, the goal of Open Source is to make all software open sourced.
Posted Jun 20, 2023 9:56 UTC (Tue)
by paulj (subscriber, #341)
[Link]
Posted Jun 19, 2023 17:10 UTC (Mon)
by khim (subscriber, #9252)
[Link] (5 responses)
Isn't it the other way around? GPL ensures that software engineer may tinker with the code, BSD doesn't have such guarantees. GPL ensures that if someone would use your code they couldn't take it and kick out the actual author using patents, BSD doesn't have such guarantees. On the other hand GPL makes it inconvenient to use your code which means it may not be available as widely which makes it less convenient for non-developers… and non-developers wouldn't care about source code availability since end users wouldn't know what to do with it, anyway. I can easily understand people who are using BSD or Apache license to ensure that more people would benefit from their code even if they may lose the ability to use it freely… but to demand that someone else have to do that… that goes beyond hubris.
Posted Jun 19, 2023 17:18 UTC (Mon)
by Wol (subscriber, #4433)
[Link] (4 responses)
It is possible to be in breach of the licence, but it's rather hard ... although AT&T did manage it.
The GPL on the other hand - if I as an end user decide to use a GPL program, I am entitled to the source code and have the right to maintain it myself. I may not be able to, for all sorts of reasons, but nobody can come up to me and say "you can't do that".
So software engineers are free to do what matters to them with BSD code (modify it, sell product), end users are free to do what matters to them with GPL code (run it, fix problems).
(And if, as an END USER, you only use Open Source code, then you don't notice any practical difference between the two.)
Cheers,
Posted Jun 19, 2023 17:31 UTC (Mon)
by khim (subscriber, #9252)
[Link] (3 responses)
I think we have wildly different ideas about who “end users” are. In today's world if you can fix your program you are an engineer, not end user. The majority of end users don't have skills needed to fix anything. So you are talking about engineers in both cases. Just BSD protects engineer from their own management and GPL protects engineer from management of other companies. Frankly, I'm not sure I like BSD at all after that explanation. Sometimes engineers are forced to work for companies known by their toxic culture, but the proper solution in that case is to leave them when possible, not trick them into adopting BSD to salvage that piece of code you worked on. And while the desire to use BSD to salvage your own code may be justified, but to demand that others would give up their code for you to misappropriate just because you dislike that GPL puts you in the conflict with managers just makes no sense at all. It's their code, what right do you have to demand that they would surrender it to your managers (and unreasonable, FOSS-hostile managers at that) just to make your life a tiny bit easier?
Posted Jun 19, 2023 22:08 UTC (Mon)
by Wol (subscriber, #4433)
[Link] (2 responses)
They're not exclusive. True, PEOPLE end users are rarely engineers, but company end users can employ engineers. And it's difficult to be an engineer without being an end user too. You personally, do you work on all the software you use? I doubt it. For MOST of the software you use, you are an END USER. How many people USE gcc? How many people HACK on gcc? If you use but don't hack, you are an END USER.
> The majority of end users don't have skills needed to fix anything.
But that's not what the GPL is about. They have the RIGHT to fix it, they have the SOURCE to fix it, and they have the TOOLS to fix it. The fact that they don't personally have a clue HOW to fix it is their problem, and it is IN THEIR POWER to solve.
Whereas the thing with BSD is that, if you spot a nifty hack in someone else's code, you can just lift and use it without worrying. Both licences have their place. They target different problems, and provide different solutions. BSD is especially good for sample code or code in standards documents.
The problem with the FSF and the GPL is that some software costs a lot of money to maintain, with legal issues etc etc. If you insist on GPL, this sort of software will never get written. That's why I have a problem with the FSF - they think I should not have the freedom to buy a commercial product!
Personally, I'd like to see a license that's a sort of half-way house along the lines of "if you use my code in your product, you have to provide your customer with your source and build system". Give customers the GPL freedoms to study the source and fix their own problems, but still protect the supplier's source code as trade secret or whatever. The freedom to share may be nice, but freedoms often conflict. And if you IMPOSE YOUR CHOICE of freedoms on me, you are making me your slave! Americans seem to have difficulty grasping the fact that other people value different freedoms than they do. Even Sun engineers prefering BSD! and refusing to allow other people to choose GPL!
Cheers,
Posted Jun 20, 2023 22:34 UTC (Tue)
by khim (subscriber, #9252)
[Link] (1 responses)
Yes, and I'm acting like end user, too. No, but all the software that I'm just using is a black box to me. Modern software is just too complex to try to change it. In theory I can get source for gcc or rust compiler or rust analyzer and change something there. In practice it's just too time consuming to contemplate. In an era where most software was simple and had lots of bugs changing something into it made sense. But then… “Worse Is Better” won. As Tony Hoare once wrote: There are two ways to write code: write code so simple there are obviously no bugs in it, or write code so complex that there are no obvious bugs in it. And today's software have no obvious bugs in it and as a result it's so incredibly complex that fixing remaining non-obvious bugs quickly becomes full-time job. And all that doesn't matter because they don't want to fix it. Including me, for aforementioned reasons. That's why GPL is much less valuable for me today… even if I can understand people who are using it. Yup. That's the country where congressman say, literally, the following: If China behaves as aggressively as Russia, then we will deprive them of their main trading partner in the face of the EU. Europe will impose crushing sanctions. Note that no one plans to deprive US of anything and they plan to make someone else to do the work for them. How is that any different from Sun engineer's position?
Posted Jun 28, 2023 6:16 UTC (Wed)
by timofonic (guest, #165836)
[Link]
Posted Jun 19, 2023 12:37 UTC (Mon)
by rahulsundaram (subscriber, #21946)
[Link] (1 responses)
Let's stick to facts even if one wants to be rude. Nothing has been "stolen" by anyone because no free and open source license requires anyone to contribute anything back, especially permissive BSD licenses. The strong copyleft licenses can only mandate the changes be made public under the same license.
Posted Jun 20, 2023 14:00 UTC (Tue)
by Baughn (subscriber, #124425)
[Link]
I simply don't understand people who license their work BSD, and then go "No, we meant for you to act as though it's GPL!"
Posted Jun 19, 2023 1:30 UTC (Mon)
by developer122 (guest, #152928)
[Link] (3 responses)
Yes, saying "welp, sucks to be them" is an option, but I like to believe we're adults here and can at least discuss the possibility. The GPL-supremacy and Sun/Oracle-Hate fuelled comments above are very disappointing.
Posted Jun 19, 2023 2:22 UTC (Mon)
by mjg59 (subscriber, #23239)
[Link]
Posted Jun 19, 2023 13:01 UTC (Mon)
by rahulsundaram (subscriber, #21946)
[Link]
GPL license doesn't prevent portability and nothing is stopping any BSD based system from making it available for their OS. Many of them ship with Linux compatibility layers to aid with this.
> The GPL-supremacy and Sun/Oracle-Hate fuelled comments above are very disappointing.
Many BSD proponents won't even accept that GPL and AGPL are free and open source licenses and insist that only permissive licenses are truly free, so this goes both ways. Sun and Oracle aren't the same thing in this context. The licensing decisions for OpenSolaris were exclusively done by Sun (and several Sun people readily acknowledge that the engineers there were GPL hostile). However independent of all of this, Oracle's history towards other open source projects (Java lawsuit, silently canceling OpenSolaris, Hudson governance etc) has enough there to explain the hostility.
Posted Jun 20, 2023 9:23 UTC (Tue)
by paulj (subscriber, #341)
[Link]
Posted Jun 18, 2023 1:45 UTC (Sun)
by developer122 (guest, #152928)
[Link] (4 responses)
Posted Jun 18, 2023 16:09 UTC (Sun)
by koverstreet (✭ supporter ✭, #4296)
[Link] (3 responses)
Posted Jun 18, 2023 20:37 UTC (Sun)
by developer122 (guest, #152928)
[Link] (1 responses)
Posted Jun 18, 2023 20:39 UTC (Sun)
by developer122 (guest, #152928)
[Link]
Posted Jun 28, 2023 0:31 UTC (Wed)
by timofonic (guest, #165836)
[Link]
Posted Jun 18, 2023 9:24 UTC (Sun)
by GhePeU (subscriber, #56133)
[Link] (2 responses)
From a rapid check it also seems that the design and implementation of encryption predates the introduction of snapshots and subvolumes, is there any plan to add subvolume-level encryption? That would be an useful feature.
Posted Jun 18, 2023 16:08 UTC (Sun)
by koverstreet (✭ supporter ✭, #4296)
[Link] (1 responses)
Posted Jun 28, 2023 0:31 UTC (Wed)
by timofonic (guest, #165836)
[Link]
Maybe you need a documentation maintainer too. You must be quite busy with coding and management already.
Just my humble opinion.
Posted Jun 29, 2023 10:15 UTC (Thu)
by dxin (guest, #136611)
[Link]
Posted Jul 1, 2023 11:38 UTC (Sat)
by georgh-cat (guest, #158897)
[Link]
But it will take a while until the userspace is as friendly as ZFS's, and also getting feature parity.
I've been using ZFS at home since 2008, and it's saved me from silent corruption when I had a problem in one of the disks' connector. The system never crashed or panicked, it's been extremely stable.
There's a fantastic project, znapzend, which provides an easy way to automate snapshot creation and deletion as well as sending to a backup system. And all the configuration lives directly within the ZFS pool. Would something like that be possible with bcachefs?
Merging bcachefs
Merging bcachefs
Merging bcachefs
Merging bcachefs
Merging bcachefs
There's an entire new filesystem's worth of artwork to critize on its own merit here, if you please
Merging bcachefs
Merging bcachefs
Merging bcachefs
Merging bcachefs
Merging bcachefs
Merging bcachefs
Merging bcachefs
Merging bcachefs
Merging bcachefs
Merging bcachefs
Merging bcachefs
You could always say "just use linux" but it's a pretty useful feature for a filesystem to be portable across OSs.
Merging bcachefs
Merging bcachefs
Merging bcachefs
Merging bcachefs
Merging bcachefs
Merging bcachefs
> I can't say it for sure, but my own sense is that it was a faction of Sun *engineering* that basically ensured Solaris ended up with this not-GPL-compatible copyleft licence, thwarting Suns' management, for largely irrational reasons related to long-standing BSD-v-GPL tribalism and dislike of GPL.
Merging bcachefs
Merging bcachefs
Wol
Merging bcachefs
Merging bcachefs
> Worth noting other projects like Samba have managed to solve this problem by having contributors negotiate an agreement to retain the copyrights
Merging bcachefs
Merging bcachefs
> Samba developers demonstrably have that in practice.
Merging bcachefs
Merging bcachefs
Merging bcachefs
> All these organizations are fine with GPLv3 obviously.
Merging bcachefs
Merging bcachefs
Merging bcachefs
> Because that's the only part that matters to this discussion.
Merging bcachefs
Merging bcachefs
Merging bcachefs
Merging bcachefs
> The BSD licence protects the SOFTWARE ENGINEER guys, the GPL protects the END USER guys.
Merging bcachefs
Merging bcachefs
Wol
Merging bcachefs
Merging bcachefs
Wol
> If you use but don't hack, you are an END USER.
Merging bcachefs
Merging bcachefs
Merging bcachefs
> If you want to be rude like that.
Merging bcachefs
Merging bcachefs
Merging bcachefs
Merging bcachefs
Merging bcachefs
Merging bcachefs
Merging bcachefs
Merging bcachefs
Merging bcachefs
Merging bcachefs
Encryption
Encryption
Encryption
Merging bcachefs
Merging bcachefs