←back to thread

144 points ksec | 1 comments | | HN request time: 0.202s | source
Show context
charcircuit ◴[] No.44466214[source]
If Linux would add a stable kernel module API this wouldn't be a huge a problem and it would be easy for bcachefs to ship as a kernel module with his own independent release schedule.
replies(4): >>44466240 #>>44466273 #>>44467337 #>>44469160 #
josephcsible ◴[] No.44466240[source]
The slight benefit for out-of-tree module authors wouldn't be worth the negative effects on the rest of the kernel to everyone else.
replies(1): >>44466309 #
charcircuit ◴[] No.44466309[source]
"slight benefit"? Having a working system after upgrading your kernel is not just a slight benefit. It's table stakes. Especially for something critical like a filesystem it should never break.

>negative effects on the rest of the kernel

Needing to design and support an API is not purely negative for kernel developers. It also gives a change to have a proper interface for drivers to use and follow. Take a look at the Rust for Linux which keeps running into undocumented APIs that make little sense and are just whatever <insert most popular driver> does.

replies(2): >>44466347 #>>44466623 #
josephcsible ◴[] No.44466347[source]
> Having a working system after upgrading your kernel is not just a slight benefit. It's table stakes.

We already have that, with the "don't break userspace" policy combined with all of the modules being in-tree.

> Needing to design and support an API is not purely negative for kernel developers.

Sure, it's not purely negative, but it's overall a big net negative.

> Take a look at the Rust for Linux which keeps running into undocumented APIs that make little sense and are just whatever <insert most popular driver> does.

That's an argument against a stable module API! Those things are getting fixed as they get found, but if we had a stable module API, we'd be stuck with them forever.

I recommend reading https://docs.kernel.org/process/stable-api-nonsense.html

replies(1): >>44466373 #
charcircuit ◴[] No.44466373[source]
>We already have that, with the "don't break userspace"

Bcachefs is not user space.

>with all of the modules being in-tree.

That is not true. There are out of tree modules such as ZFS.

>That's an argument against a stable module API!

My point was that there was 0 thought put into creating a good API. Additionally API could be evolved over time and have a support period if you care about being able to evolve it and deprecate the old one. And likely even with a better interface there is probably a way to make the old API still function.

replies(1): >>44466427 #
josephcsible ◴[] No.44466427[source]
> Bcachefs is not user space.

bcachefs is still in-tree.

> That is not true. There are out of tree modules such as ZFS.

ZFS could be in-tree in no time at all if Oracle would fix its license. And until they do that, it's not safe to use ZFS-on-Linux anyway, since Oracle could sue you for it.

> My point was that there was 0 thought put into creating a good API.

There is thought put into it: it's exactly what we need right now, because if what we need ever changes, we'll change the API too, thus avoiding YAGNI and similar problems.

> Additionally API could be evolved over time and have a support period if you care about being able to evolve it.

If a temporary "support period" is what you want, then just use the LTS kernels. That's already exactly what they give you.

> And likely even with a better interface there is probably a way to make the old API still function.

That's the big net negative I was mentioning and that https://docs.kernel.org/process/stable-api-nonsense.html talks about too. Sometimes there isn't a feasible way to support part of an old API anymore, and it's not worth holding the whole kernel back just for the out-of-tree modules.

replies(4): >>44466531 #>>44466933 #>>44468003 #>>44469403 #
yjftsjthsd-h ◴[] No.44466933[source]
> ZFS could be in-tree in no time at all if Oracle would fix its license. And until they do that, it's not safe to use ZFS-on-Linux anyway, since Oracle could sue you for it.

IANAL, but I don't believe either of these things are true.

OpenZFS contains enough code not authored by Sun/Oracle that relicensing it now is effectively impossible.

OTOH, it is under the CDDL, which is a perfectly good open source license; AFAICT the problem, if one exists at all[0], only manifests when distributing the combination of CDDL (OpenZFS) and GPL (Linux) software. If you download CDDL software and compile it into GPL software yourself (say, with DKMS) then it should be fine because you aren't distributing it.

[0] This is a case where I'm going to really emphasize that I'm really not a lawyer and merely point out that ex. Canonical's lawyers do seem to think CDDL+GPL is okay.

replies(2): >>44467103 #>>44469823 #
timschmidt ◴[] No.44467103[source]
> it should be fine because you aren't distributing it.

Which excludes a vast amount of activity one might want to use Linux for which is otherwise allowed. Like selling a device with a Linux installation, distributing VM or system restore images, etc.

replies(1): >>44468080 #
1. yjftsjthsd-h ◴[] No.44468080[source]
Sure, I happily grant that the licensing situation is really annoying and restricts the set of safe actions. I only object to claims that all use of ZFS is legally risky.