nomicon
Theseus
Our great sponsors
nomicon | Theseus | |
---|---|---|
87 | 32 | |
1,685 | 2,734 | |
3.4% | 1.7% | |
5.5 | 8.8 | |
18 days ago | 3 months ago | |
CSS | Rust | |
Apache License 2.0 | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
nomicon
-
[Media] I'm comparing writing a double-linked list in C++ vs with Rust. The Rust implementation looks substantially more complex. Is this a bad example? (URL in the caption)
itโs even written by the same person that wrote the Nomicon (the guide to the dark arts of unsafe)
-
Rust books to read
If you want to dive deeper you can always have other options but now there are concrete cases, if you want to do low level thing https://doc.rust-lang.org/nomicon/ while if you want multi thread/concurrency stuff https://marabos.nl/atomics/ . There are many many books so you will have to point yourself to what you want
-
Thread-shared boolean flag
Nonononono. SeqCst is the most error prone memory order: https://github.com/rust-lang/nomicon/issues/166
-
[Media] Hashmap behaviour inside a loop due to lifetime issue
Hope this helps. For more details, see the Rustonomicon. I referenced the subtyping chapter here extensively.
-
Unsafe Rust
Nice video! Glad I could help out. This stuff is hard, and I'm still learning a lot about it myself even years later. The Rustonomicon is a great read if you haven't already.
-
Stepping up the YAML engineer game
Have you got a moment to read through the good book , after reading through this perhaps try the Rustonomicon.
- Questions about ownership rule
-
CppCon 2022 Best Practices Every C++ Programmer Needs to Follow โ Oz Syed
That is not what UB means. Undefined Behaviour is behaviour that the compiler is allowed to assume will never happen, and which can consequently cause miscompilations due to optimisation passes gone wrong if it does in fact occur in the source code.
It's true that Rust does not have a written specification that clearly delineates what is and isn't UB in a single place. But:
1. UB is impossible in safe code (modulo bugs in unsafe code)
2. There are resources such as the Rustinomicon (https://doc.rust-lang.org/nomicon/) that provide a detailed guide on what is and isn't allowed in unsafe code.
In practice, it's much easier to avoid UB in Rust than it is in C++.
-
How to write deserializer for custom binary protocol?
However, this is a wide topic out of scope for a Reddit comment, so maybe just read the Rustonomicon. It explains everything about data handling in Rust.
-
Performance critical ML: How viable is Rust as an alternative to C++
The ownership model & borrow checker makes rust a bit of an awkward language in which to write complex data structures like trees and graphs. It can be done - since you can always use raw pointers & unsafe code when you absolutely need to to treat rust like C. But the language fights you, and the community can get a bit moralistic about this sort of thing. The rust nomicon is a fantastic resource for learning the limits of the borrow checker, and where and how to use unsafe code correctly. You will need unsafe less than you think you will, but sometimes you will have no choice.
Theseus
- Theseus OS
-
Fomos: Experimental OS, Built with Rust
Theseus OS (https://www.theseus-os.com/) is also an OS written in Rust. It's a safe-language OS and I believe it's the future of the OSes due to its unique features.
-
Asynchronous Rust on Cortex-M Microcontrollers
I believe that Tock (tockos.org) and Theseus (https://github.com/theseus-os/Theseus) are in this area a bit as well, just from an actual OS perspective.
I don't know much about this area, but it would be wonderful if these could work with the Libre compute boards, like the AM Logic S905X (Lepotato) or the Rock chip, since they're so much cheaper than a Pi.
-
I am looking for a troubled/bad open source codebase
We could use some help here: https://github.com/theseus-os/Theseus
-
Making a RISC-V Operating System Using Rust
Relevant, also an OS written in and made possible by Rust: https://www.theseus-os.com/
I think Theseus is to conventional OSes what Rust is to JavaScript.
- Linux kernel use-after-free in Netfilter, local privilege escalation
-
Microsoft is busy rewriting core Windows library code in memory-safe Rust
I wonder if somehow someday Microsoft Windows can be rerooted as something like wine running in user space of a rust os like https://github.com/theseus-os/Theseus
-
Need help for porting my kernel to different architectures.
We've been working on porting Theseus OS to aarch64 over the past few months, feel free to browse our code if you need help understanding anything. Theseus is written from scratch entirely in Rust, so it's likely quite relevant to your work. You can probably find all of the aarch64-related commits and issues just by searching "aarch64" on the repo.
-
Exploiting null-dereferences in the Linux kernel
I mean, there are several rust kernel/os projects in progress.
One project that's pushing on the boundary of safety and composability is Thesus, which takes language safety to new ground by shifting traditionally OS-level responsibilities like resource management all the way down to typechecks in the language, and also explores a way of updating any core OS component on a live running system. https://github.com/theseus-os/Theseus
There's also KataOS which google just recently announced: https://opensource.googleblog.com/2022/10/announcing-kataos-...
As you note, these things take time, I agree with sibling that none of them are likely to be "enterprise-grade" or "production ready" this decade.
-
[concept] Modular kernel
Not to rain on your parade, but you've essentially just described Theseus OS.
What are some alternatives?
book - The Rust Programming Language
rust-raspberrypi-OS-tutorials - :books: Learn to write an embedded OS in Rust :crab:
mdBook - Create book from markdown files. Like Gitbook but implemented in Rust
tock - A secure embedded operating system for microcontrollers
rust-ffmpeg - Safe FFmpeg wrapper.
svix-webhooks - The enterprise-ready webhooks service ๐ฆ
Exercism - website - The codebase for Exercism's website.
win32metadata - Tooling to generate metadata for Win32 APIs in the Windows SDK.
miri - An interpreter for Rust's mid-level intermediate representation
interface-types
seL4 - The seL4 microkernel
nebulet - (Going to be) A microkernel that implements a WebAssembly "usermode" that runs in Ring 0.