Linked by subterrific on Mon 9th Jan 2017 22:25 UTC
OSNews, Generic OSes

Rux's goal is to become a safe general-purpose microkernel. It tries to take advantage of Rust's memory model - ownership and lifetime. While the kernel will be small, unsafe code should be kept minimal. This makes updating functionalities of the kernel hassle-free.

Rux uses a design that is similar to seL4. While there won't be formal verification in the short term, it tries to address some design issues of seL4, for example, capability allocation.

The code is very approachable for anyone interested in capability-based microkernel design.

Thread beginning with comment 639507
To view parent comment, click here.
To read all comments associated with this story, please click here.
kwan_e
Member since:
2007-02-18

today's developers have the benefit of hindsight and can consciously fix many of the issues where C/C++ are criticized over cruft and lack of safety. So we shouldn't be making the same mistakes that have been made in the past.


It's the way they go about fixing the issues - "oh, we'll just create yet another language" - that is the problem. All languages will develop cruft, and all languages will paint themselves into a corner. The most ideological ones tend to do that the most frequently.

Only a handful of languages are left where the base is committed to using it cruft and all and not just abandon it for the latest fad in language design.

Reply Parent Score: 2

Alfman Member since:
2011-01-28

kwan_e,

It's the way they go about fixing the issues - "oh, we'll just create yet another language" - that is the problem. All languages will develop cruft, and all languages will paint themselves into a corner. The most ideological ones tend to do that the most frequently.

Only a handful of languages are left where the base is committed to using it cruft and all and not just abandon it for the latest fad in language design.



I realize you are a C/C++ fan, and there was a time I was too. However many problems with C/C++ are very widely recognized and understood, consequently some people look to new languages to solve them. The big players are motivated to work on new languages like D, swift, rust, go, etc, not because of fads, but because of systemic recurring problems they have experienced with their existing codebases.

This video on the topic of new and old systems programming languages is very informative, partly because Bjarne Stroustrup (the creator of C++) is there along with others, and he personally acknowledges the criticism against C++ being made by the employees of google and facebook in their build processes. I personally admire the way they are so friendly with each other with no animosity at all. Stroustrup even humorously takes it in stride "the reason I take this mic back is to say that I don't disagree with that." to everyone's laughter.

LangNext 2014 C++, Rust, D, Go 1HR discussion
https://www.youtube.com/watch?v=BBbv1ej0fFo


You like C/C++, then great. Maybe D-lang would be up your alley too then? Maybe we can discuss that? I enjoy taking about all languages, however in past discussions you seemed to take serious offense to any possibility that another language could have a single benefit over C++.

http://www.osnews.com/comments/29463

My goal is to foster a friendly discussion here, but to be honest, I don't know how to deal with you, haha. So I ask you thusly: what can I do so that we can have a friendly discussion even when rust comes up and we disagree? ;)

Edited 2017-01-10 18:24 UTC

Reply Parent Score: 3

kwan_e Member since:
2007-02-18

I realize you are a C/C++ fan, and there was a time I was too.


I have spoken highly of Ada too. It is another language with roughly the same design goals as C++. Static, compile time typing. Zero cost abstractions. Backwards compatibility.

* I'm NOT a fan of the "old C" part of C++ (or modern C, for that matter), but I accept it and don't run off for greener pastures because it doesn't fit in with some ideology of extreme pureness.

However many problems with C/C++ are very widely recognized and understood, consequently some people look to new languages to solve them. The big players are motivated to work on new languages like D, swift, rust, go, etc, not because of fads, but because of systemic recurring problems they have experienced with their existing codebases.


You miss my point. At some point in the future, languages like D, Swift, Rust and Go will have systemic recurring problems with their existing codebases. At which point, it's obvious they'll leave for greener pastures.

We have already experienced this with the transition to Python 3 and Perl 6. Scheme 7.

Swift has already gone through its first round of complete breaking changes. And what does Swift even fix? Unlike Rust, it doesn't even have a reason to exist other than fancy syntax. And that is my point - it's the attitude of starting over again rather than do the real engineering work of designing past those features.

Stroustrup even humorously takes it in stride "the reason I take this mic back is to say that I don't disagree with that." to everyone's laughter.


You think I don't know Stroustrup's views on the matter. He's one of the biggest pushers, still, of modernizing C++ with better features and leaving old ones behind.

Unlike people who go around inventing Rust and Go, he stuck with C++, cruft and all.

And the people working with Ada are also committed to sticking with the whole language.

I enjoy taking about all languages, however in past discussions you seemed to take serious offense to any possibility that another language could have a single benefit over C++.

http://www.osnews.com/comments/29463


Don't mischaracterize it.

I simply was not convinced by your arguments and counter-examples in that discussion. You tried to make it sound like Rust does theorem proving for thread correctness, when in fact all it does is formalize and lock down ownership semantics. That's not taking offence.

what can I do so that we can have a friendly discussion even when rust comes up and we disagree? ;)


My point in this discussion is not about Rust vs C++. It's about what it takes for a language to become widespread enough to become as embedded as C and C++.

Languages will get big, bloated, and accrue cruft. No language is exempt. Until a language designer and community grows up and accepts this, and is willing to support the language with all its warts like Stroustrup does with C++ and the Ada guys with Ada (you could even say the same about HTML and Javascript, in a perverse way ;) ), their language is a fad language.

Maybe, and let's hope, Rust's designers and its community are mature enough to stick with Rust regardless of how much garbage it accrues over the years. If not, it will not get the hypercritical user mass to prevent the next GoSwiftRust from taking over and for the whole "we just need to get critical mass" game to start again, as it steals users from RustGoSwift and they lose their momentum. At least Rust does have a benefit in that it seems to be serious with zero cost abstractions. So at least it has a better chance of not having to pay for design mistakes. But Rust won't magically avoid paying for syntactical and semantical cruft.

Reply Parent Score: 2

RobG Member since:
2012-10-17

To be fair, I've used C++ about 1990, and its just getting too long in the tooth. Not enough deprecation in there - largely, I guess, due to the way its module system is based on textual inclusion - so it is hard to change things without breaking compatibility.

Templates are lovely, but end up with almost everything being in a header, so compile times just get worse. Without Concepts, error messages keep getting more complex, frequently surfacing in library code the developer should have no reason to know exist.

I know there are proposals for both modules and concepts, but they seem to be permanently kicked to the next version.

I've been experimenting with Rust, and must admit that even in its current state it is just a nicer experience, to me, than C++ development. I wish them every success.

Reply Parent Score: 2

kwan_e Member since:
2007-02-18

I know there are proposals for both modules and concepts, but they seem to be permanently kicked to the next version.

I've been experimenting with Rust, and must admit that even in its current state it is just a nicer experience, to me, than C++ development. I wish them every success.


Yes, but at least we know they're serious about getting it right because we know they're serious about having to support a language feature once it gets in, even if it turns out to be bad (like std::async or std::bind). But even then, we know whatever their state is at their inclusion, we know it will not cost anyone if they don't want to use it.

Yes, Rust is a nicer experience. Because it isn't old enough to develop all those cruft issues. All languages are nicer experiences when they haven't developed. They will once its user base expands, and either people will stick with it, or more likely, abandon it for another language because that's the reason they came to Rust in the first place.

Not even God manage to fix anything just by drowning the fuck out of everyone and starting over again. And it's a good metaphor because language (and OS community) design is pretty much like playing God for that universe. If you're constantly going to drown everyone and start fresh, nothing will actually grow, and the seeds of cruft will still be there.

Let's hope Rust doesn't succumb to that Godly urge.

Reply Parent Score: 2