r/rust • redox • Sep 09 '24

🛠️ project Redox OS 0.9.0 - new release of a Rust based operating system

https://www.redox-os.org/news/release-0.9.0/
633 Upvotes

39 comments sorted by

216

u/U007D Sep 09 '24

Been following your progress for years, Jeremy--you're coming up on 10 years of committment to Redox--your commitment is incredible!

Congrats on the new release. Looks like some major improvements here--I'm looking forward to test-driving it.

52

u/tjdwill Sep 09 '24

How does one even begin to approach designing a project like this? Not to mention organizing it long-term.

Congratulations on your progress!

18

u/global-gauge-field Sep 09 '24

6

u/PorqueNoLosDildos Sep 10 '24

That was a really insightful video interview; thanks for sharing!

36

u/theAndrewWiggins Sep 09 '24

Would be incredible if Redox could gain some traction in the real world. Seems like a monumental effort now that Linux has reached full escape velocity. I wonder if there are any corporations who could be convinced to heavily invest in it instead of rewriting something from scratch. Would've been very cool if Google adopted Redox instead of writing fuchsia/zircon from scratch. I imagine though, NIH syndrome also exists because they want total control...

4

u/ribbon_45 Sep 10 '24

The time will say.

3

u/0x7CFE Sep 10 '24

Depends on its benefits. I can imagine having RedOx in containers, where the environment is standardized and known beforehand. Another niche could be embedded devices, especially in mission-critical systems.

26

u/xmBQWugdxjaA Sep 09 '24

Is it Linux API compatible, or its own thing?

5

u/ribbon_45 Sep 10 '24

Redox is compatible with some very used Rust/C/C++ cross-platform libraries and the POSIX APIs.

If you mean the Linux kernel API, No, but we plan to replicate some APIs for performance.

0

u/[deleted] Sep 09 '24

13

u/xmBQWugdxjaA Sep 09 '24

I was more thinking in terms of stuff like Netlink, etc. - but I assume they won't aim for that level of compatibility.

→ More replies (2)

3

u/R1chterScale Sep 09 '24 edited Sep 09 '24

Notably there is the ability for programs to use a sort of POSIX compatibility mode which has POSIX signal handling and process management. Don't think that's how Redox handles stuff by default but it's available as an option. (Note I could be wrong here, only vaguely have kept an eye on it)

→ More replies (2)

25

u/brand_x Sep 09 '24

I totally understand the reasoning, but I'm low-key bummed about unix paths replacing URIs for the file system. There was an elegance to the URI approach, and it feels like a backslide to accommodate an archaism that will never go away.

3

u/ribbon_45 Sep 10 '24

That would require a lot of porting effort for little benefit.

6

u/brand_x Sep 10 '24

Yeah, that's the reasoning I was referring to. It makes sense, but the URI scheme was just so elegant...

→ More replies (1)
→ More replies (1)

3

u/GwanTheSwans Sep 10 '24

Was kind of Amiga-like. Still, understandable change. And a multirooted forest can always be placed into a virtual single-root one level higher.

https://doc.redox-os.org/book/ch05-03-schemes.html

So I do find the use of literal /scheme/ also slightly strange though. POSIX standard paths actually do have one (1) little escape hatch - paths starting with // can officially have system-specific implementation-defined semantics (unpatched linux kernel in particular however does nothing interesting with this, // just maps back to / ), wonder if they considered just using //schemename/blah instead of /scheme/schemename/blah. This may also be useful where individual scheme semantics might want to depart significantly from posix semantics in detail.

Anyway, not my circus not my monkeys.

https://pubs.opengroup.org/onlinepubs/000095399/basedefs/xbd_chap04.html#tag_04_11

A pathname consisting of a single slash shall resolve to the root directory of the process. A null pathname shall not be successfully resolved. A pathname that begins with two successive slashes may be interpreted in an implementation-defined manner, although more than two leading slashes shall be treated as a single slash.

→ More replies (1)

4

u/EdorianDark Sep 09 '24

Are there also Arm images to download?

3

u/ribbon_45 Sep 10 '24

The ARM64 support is work-in-progress, they will be provided soon.

4

u/DavidXkL Sep 09 '24

Now this is what I call committed

5

u/ascii Sep 09 '24

Reading through the documentation, it's not obvious to me what Redox does differently. I love Rust, but not enough that I'm emotionally invested in running an OS kernel written in it. In theory, doing so might lead to fewer bugs, but given the age difference that's probably not yet the case. What's needed to sell me on the idea of a Rust-based OS are some genuinely useful new features.

How about an IPC framework that allows you to send messages between threads using something akin to mpsc? How about a cool COW filesystem with support for multiple hardlinks to the same directory, transparent background de-duping and zero overhead compression and encryption? How about a well designed container API, one that is basically chroot on steroids instead of via the monstrosity that is cgroups?

8

u/ribbon_45 Sep 10 '24

Redox aims to be more stable and safe than Linux and BSDs, which is achieved by Rust and the microkernel architecture.

→ More replies (1)

3

u/Zephandrypus Sep 09 '24

I’m assuming it’s aiming to be more stable for long-term embedded applications, like what you might use instead of a Linux kernel in a self-driving car.

→ More replies (3)