Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

No. There's only one language you can write a patch for the Linux network stack in — C.

"Move to Rust!" is not a productive or helpful suggestion, unless you have an massive army of programmers ready to port Linux to Rust.



You can write a patch for the Linux network stack in any language you want. Whether Linus will merge it is a different matter. :P

EDIT: Downvotes eh? Then I suppose I'll state outright what I left implicit: Linux is not inextricably tied to any single language, and it's a strawman to suppose that any attempt to integrate Rust with Linux would first have to reinvent the universe from scratch. Rust has excellent interoperability with C (though, notably, unions are iffy), and it's common to write Rust code that gets called from C with C being none the wiser.


For the record, I don't have enough karma to downvote.

>Linux is not inextricably tied to any single language

It is pretty tightly coupled to GCC, which, as you know, is a C compiler. Some people are working on supporting Clang, but last I heard they haven't succeeded.

It would certainly be interesting to see someone link Linux to Rust code though.


Linux has been built with small modifications under tcc, icc and llvm. Linus doesn't want it to be tightly coupled to GCC.

The LLVM build patchset is being actively maintained, here hare slides from February: https://events.linuxfoundation.org/sites/events/files/slides...


Yeah, I get the impression Linus fucking hates GCC :P

That's good though. Compiler freedom is better for everyone.


The C ABI is de facto standardized, the compiler in use doesn't matter. Rust code can expose a C ABI and be compiled into a linkable artifact, and that means that C code can use it as though it were an artifact compiled by any C compiler.


It's not quite plug-and-play, but it does seem like there's been some progress.

https://lwn.net/Articles/644681/




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: