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 639526
To view parent comment, click here.
To read all comments associated with this story, please click here.
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

Alfman Member since:
2011-01-28

kwan_e,

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.


I don't understand why it means we should stick with C++, which has even more crust, indefinitely? That's not a good plan for many of us.

If today's languages are looking long in the tooth (to borrow from RobG) in the decades to follow, then by all means I hope they do build something even greater yet. This shouldn't hurt our pride, on the contrary the goals they set for themselves in the future will largely depend on the goals we set for ourselves today, which depend on what we've already achieved with C++ and Ada and Pascal all those years ago and even further back to Babbage and Pascal. The evolution of human ingenuity is a beautiful thing.

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.


That's what D-lang did for the most part. C++ itself faces a major conundrum, it's huge base of legacy code that keeps it popular is also responsible for holding it back. Sometimes to make progress past the local maxima, you have to fundamentally break some of the scaffolding that keeps you stuck there.

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.


I gave examples where rust provided better safety semantics than C++. Anyways I'm not going to revisit that fruitless thread, if you believe that C++ is just as safe as rust, then in the interests of a keeping things lighthearted, then I'll just accept it and move on and I ask that you do the same ;)


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.


But that line of reasoning just seems arbitrary and relative. Obviously C++ had a beginning too. Calling something a "fad" now just because it's new doesn't convey anything meaningful at all about merit and just sounds condescending towards a group of professional developers who are genuinely working hard to advance the state of software engineering.



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.


But why? Tech gets ditched all the time once it's outlived it's usefulness, and not just software.

In the video Stroustroup says "C++ is obviously too large."

The facebook engineer says of C++'s compilation efficiency problems "I think it's a problem intrinsic to c++. C lang was designed with batch multi-stage processing in mind, and it shows. All these companies share the same problems and that have a huge c++ code base. Have a huge army to babysit the build system, at the end of the day it was an unsolvable problem. No amount of money can make c++ compile fast."

The google engineer says "we measured data went to the compiler. 4.2million factor blow up when using class per header file."

C++ will remain useful to many people for a long time, that's fine. But there are many companies and individuals who are frustrated with it and I find it very hard to make a case that they should not embracing new languages. For many of us, languages that carry the burden of legacy cruft is not a good option. There's no reason different people with different programming language opinions can't co-exist, just look at mainframers. Diversity is the spice of life ;)

Reply Parent Score: 2

kwan_e Member since:
2007-02-18

I don't understand why it means we should stick with C++,


I didn't say that. As I said before, the point I'm making for this discussion is about the willingness to stick with a language when it does develop cruft. Rust is no exception to cruft.

which has even more crust, indefinitely? That's not a good plan for many of us.


If you're starting new projects in C++, why would you use the crufty features especially if it costs nothing to exclude them?

If today's languages are looking long in the tooth (to borrow from RobG) in the decades to follow, then by all means I hope they do build something even greater yet.


You were talking about developing a rustlang economy that could potentially take over the current ones (namely C and C++). That won't happen if people keep abandoning a language every time it gets difficult.

"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.


But that line of reasoning just seems arbitrary and relative. Obviously C++ had a beginning too. Calling something a "fad" now just because it's new doesn't convey anything meaningful at all about merit and just sounds condescending towards a group of professional developers who are genuinely working hard to advance the state of software engineering.
"

I'm not saying they're definite fads. But I think they're more likely going to gain fad status in a few years time. The difference with languages like Ada (I'm going to stop using C++ as an example since you seem to focus too much on it and not the general point I'm making) is that, yes, it was once a new language. But the community around it continued with it through its own missteps or unwieldiness.

I also don't agree that all language designers are advancing the state of software engineering. Most languages are just to fix the syntax peeves of some developers and contribute nothing.

"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.


But why? Tech gets ditched all the time once it's outlived it's usefulness, and not just software.
"

Because you can't build a rustlang economy if there is no momentum behind rustlang.

For many of us, languages that carry the burden of legacy cruft is not a good option. There's no reason different people with different programming language opinions can't co-exist, just look at mainframers. Diversity is the spice of life ;)


Then by that reasoning, there is no such thing as a good option. All languages will develop legacy cruft, and new languages will reinvent old cruft. I have no problems with diversity in programming languages. And while you seemed to want to continue with discussing C++, I'll have you note my first few comments did not mention C++ at all.

Reply Parent Score: 2

Rugxulo Member since:
2007-10-09


C++ will remain useful to many people for a long time, that's fine. But there are many companies and individuals who are frustrated with it and I find it very hard to make a case that they should not embracing new languages. For many of us, languages that carry the burden of legacy cruft is not a good option. There's no reason different people with different programming language opinions can't co-exist, just look at mainframers. Diversity is the spice of life ;)


You briefly mentioned Pascal earlier.

Would you consider Wirth languages as carrying much cruft? Or didn't he throw out enough stuff upon each revision? Were the ISO standards helpful or not for potential users? Would you consider them (or derivatives) worth using today? Or should someone make (yet another) derivative from his work (roughly speaking, the Algol line)?

Reply Parent Score: 1