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
-
@feld not really. I re-iterate my request for everyone to shut up about drivers already
-
@tragicomedy @martijnbraam @drewdevault
Which small program are we talking about?
I found plenty of projects being quicker to build (and rebuild) in rust compared to equivalents.
But the mileage obviously does vary a lot
-
@lu_zero @martijnbraam @drewdevault "like yazi"
-
@tragicomedy @martijnbraam @drewdevault
I looked at the current yazi main branch.
27288 loc in 463 files isn't exactly small.
Yet it builds here in 2 minutes:
Finished `release` profile [optimized] target(s) in 2m 13s
Most of it spent on link time at the very end.
-
@lu_zero @tragicomedy @martijnbraam on what hardware?
-
@lu_zero @martijnbraam @drewdevault 2 minutes? Do you have supercomputer?
-
@tragicomedy @martijnbraam @drewdevault
a last-year laptop.
-
@lu_zero @tragicomedy @martijnbraam one of the most powerful laptops released last year*
-
Boyd Stephen Smith Jr.replied to Drew DeVault last edited by
@drewdevault I hope this is true. I feel like being compatible with userland is "easy" (tho, sysfs and iocntl and fnctl are never truly easy) but actually porting / wrapping all the hacky kernel driver modules could easily swallow person-years of time.
I hope this is true because eventually Linus and/or the Linux foundation is going to fail in some way, so we need to be able to transition to new leadership or consensus building.
-
Drew DeVaultreplied to Boyd Stephen Smith Jr. last edited by
@BoydStephenSmithJr I don't think compatibility with out of tree Linux kernel modules (or even in-tree) is a reasonable goal.
-
Case-study: Tilck
GitHub - vvaltchev/tilck: A Tiny Linux-Compatible Kernel
A Tiny Linux-Compatible Kernel. Contribute to vvaltchev/tilck development by creating an account on GitHub.
GitHub (github.com)
Written by one person mostly over the course of about three years in their spare time and it's ABI compatible enough with Linux to run busybox, vim, tcc, lua, micropython, fbdoom -- from unmodified Linux binaries, not source ports
-
Drew DeVaultreplied to Drew DeVault last edited by [email protected]
Another one: Managarm
GitHub - managarm/managarm: Pragmatic microkernel-based OS with fully asynchronous I/O
Pragmatic microkernel-based OS with fully asynchronous I/O - managarm/managarm
GitHub (github.com)
Does not aim for ABI compatibility with Linux but has implemented a lot of Linux-specific APIs to great success, including DRM (Direct Rendering Manager), epoll, signalfd, etc, and is capable of running software like Sway
Small group of 4-5 principal contributors working slowly but surely since 2016
-
@drewdevault A rewrite from scratch is a great place to rethink all the little details of every interface to make use of all those "zero cost abstractions". It sounds like a great way to make the most out of all of Rust strengths.
-
@drewdevault isnt fuchsia more than 5 years old?
-
@PuercoPop fuchsia is not really trying to do what I propose here
-
@[email protected] why not rally behind redox?
-
@m I'm enthusiastic about Redox but it's a huge gamble and it will require a lot of highly specialized work and frequent revisions of fundamental design assumptions before it starts getting anywhere useful -- and once it gets there, it's not necessarily certain that anyone will use it for anything. It's a novel OS research project. Whereas using the Linux kernel design from the outset gives you a fixed scope and saves you all of the research work and we know it works when it's done.