A motivated group of Rust developers could build a production ready mostly Linux-compatible kernel from scratch within 5 years without doing any politics on LKML
-
@drewdevault although if you RIIR Linux you could call it Rinux
-
@drewdevault would you have to RIIR glibc as well to keep compatible? that would be awesome
or has someone already RIIR'd glibc
-
@aeva RiiR glibc is a separate concern from implementing the Linux ABI
-
@drewdevault Good point. But those use cases also need a positive reason to pick it.
I work in HPC - a datacenter field - and just the thought of having to deal with kernel level compatibility problems for user code is enough to dismiss it out of hand.
For mobile, perhaps a more permissive license might do it. But then you end up with the drawbacks of permissive licenses too...
-
@drewdevault I feel the driver situation could still kill such an effort, unless you can get a lot of important players on board to develop the Rust drivers too.
I wonder what would happen, if instead Rust In Linux did a harder fork, and stopped playing LKML politics with their tree, and be able to pull drivers from mainline, while they rewrite various subsystems in Rust
-
@Sobex I think this is a fool's errand to be honest. The kernel has too much churn for this to be realistic.
-
@drewdevault Is there a platform where the amount of work to do for drivers is manageable for a from scratch linux replacement ? (And distro could then pick between the rinux or the linux kernel on that platform, and then extend the work to other modern platforms one at a time)
Or are there a lot of drivers that can be used on most platforms, and that would need to get RIIR before such a kernel could replace linux ?
-
@Sobex can we just collectively agree to shut the fuck up about drivers? Linux didn't have a competitive set of drivers for a long time, either, and here we are. I am really not prepared to revisit the bloody driver question
-
Drew DeVaultreplied to Drew DeVault last edited by [email protected]
I'd like everyone to shut the hell up about driver compatibility. Seriously. It was an incredibly fucking annoying argument when Linux didn't have a competitive driver suite, too, and somehow we still managed to get to the point where Linux does have great driver support.
Fuck's sake. You write the drivers you need and then use the hardware that's supported, and if you want to support new hardware you write new drivers, you do not need to implement every driver overnight.
-
@drewdevault Please for the love of all that's holy, AGPL it though
-
Drew DeVaultreplied to Duncan Bayne last edited by [email protected]
@duncan_bayne no, GPL is the right choice. GPL 3 probably, but tbh I get Linus's preference for GPL 2.
-
π§ Jonathan Treffler πΊπ¦π΅πΈreplied to Drew DeVault last edited by
But it's not just hardware drivers.
Plenty of important stuff needs not just a working re-implementation of the linux-userspace ABI, but the linux kernel internal ABI too.
A kernel, where Linux userspace programs run, but I can't compile ZFS into as a kernel module is useless to me on most of my servers βοΈ
Somebody implementing AMD GPU drivers ? Hard but possible.
(1/2)
-
Drew DeVaultreplied to π§ Jonathan Treffler πΊπ¦π΅πΈ last edited by
@JonathanTreffler one important thing to note is that this work is highly parallelizeable; a small group of contributors could champion e.g. io_uring compatibility and start making big wins very fast
-
π§ Jonathan Treffler πΊπ¦π΅πΈreplied to π§ Jonathan Treffler πΊπ¦π΅πΈ last edited by
Somebody re-implementing ZFS in Rust, which works with existing filesystems and can be read from regular ZFS afterwards ?
All the power to the person that tries to create that, but I am not holding my breath for that to every succeed.The compatibility breaking alternative would be to create a new filesystem with ZFS like capabilities and reliability (!!!) and I just don't see that ever happening.
(2/2)
-
Drew DeVaultreplied to π§ Jonathan Treffler πΊπ¦π΅πΈ last edited by
@JonathanTreffler sure, but there are tons of use-cases which don't call for ZFS. Something like ext4 would cover a ton of use-cases and be achievable much more quickly. And with a solid footing it's a great place to start experimenting with more complex or novel filesystems.
-
@martijnbraam @drewdevault Even if 10x or 100x, really irrelevant. The reason to use Rust is memory safety at runtime, not compilation time
-
@raulinbonn @martijnbraam compile time does matter actually
-
:PUA: Shlee fucked around andreplied to Drew DeVault last edited by
@drewdevault You absolutely love to see it.
Rustux is the real tux.
-
@drewdevault especially for something niche starting with basic platform drivers, nvme (or alternative like ahci), and basic framebuffer (uefi based?) support, should be plenty for a lot of interesting projects, and provided it is architectured correctly a pretty good base for further expansion
-
@deetwenty exactly. 100%
If you get a decent filesystem and a few network drivers (even virtio) and good POSIX support you're in the datacenter too