Redox is a general purpose operating system and surrounding ecosystem written in pure Rust. Our aim is to provide a fully functioning Linux replacement, without the bad parts.
We have modest compatibility with Linux syscalls, allowing Redox to run many Linux programs without virtualization.
We take inspiration from Plan9, Minix, and BSD. We are trying to generalize various concepts from other systems, to get one unified design. We will speak about this some more in the Design chapter.
Redox runs on real hardware today.
“Compared to BSD, Linux is completely frontal-lobe-missing, in every imaginable way. The code base is one big, ugly hack, and the design is bad in so many ways”
Attitude… Early mud slinging is a warning sign
I was going to say. What are the “bad parts� I thought blanket claims like this were only for Creationists.
Where did you find this declaration ?
Really, not a good start to a project aiming to carve a space inside the already crowded OS arena. It is the kind of attitude I have seen on many “shoot for the stars” projects that just ended fizzling or imploding without leaving a single enduring contribution to the OSS software stack.
I really wish them success, though.
It is in their README/FAQ document: http://www.redox-os.org/book/book/introduction/why_redox.html
I agree, I don’t understand why they have to get into some religious war out of the gate (or at any point for that matter).
Well, they’re not entirely wrong.
All popular modern operating systems are an endless mess of failures built atop failures built atop legacy bullshit we should’ve gotten rid of three decades ago. Anything UNIX-based, anything NT-based – it’s all a clusterfuck of outdated design and layer upon layer upon layer upon layer to hide the crap that hid the crap that hid the crap.
I don’t like software.
Still, no need to be a dick about it in your FAQ. Gives an unwelcoming / amateurish vibe to the whole thing
Agreed.
The documentation is hilariously bad. And the so-called book seems to be an ode to circular reasoning: we use rust because rust is better that’s why we use rust. Linux sucks because it sucks that’s why it sucks. Etc, etc.
It’s basically yet another project that provides a solution in search for a problem. Not that there is anything wrong with that. It’s interesting to see people develop systems on things other than C/C++.
tylerdurden,
I disagree here. The lack of robustness is a problem shared by all C/C++ developers and it’s been responsible for countless problems over the years. I would not believe there’s a single experienced C/C++ developer who can honestly claim otherwise. Many classes of bugs and vulnerabilities we regularly face today would be extinct if we switched to safer languages. Rust, as a language that can prove correctness for many cases that are unsafe in other static languages, is extremely compelling for both OS and software development.
Edited 2016-03-19 21:38 UTC
Thom Holwerda,
Yea, the way they said it wasn’t politically correct, but I generally agree with their premise, linux does tend to be hacked together.
30 years ago rust could have been a huge success for systems development, enough even to put C based operating systems to an early grave. But today in a mature market it’s very hard to see any challengers making a significant dent. It’s the good enough principal, where popularity and critical mass overtake merit as the strongest market driver. Even the redox devs admitted this when saying “It is no secret that we’re more in favor of BSD, than Linux (although most of us are still Linux users, for various reasons).”
I feel their frustration with C based code bases, and I was strongly tempted to use rust in my latest project, but I caved and went with C because it was the path of least resistance. When all the code I’d be relying on is in C, I’d spend all my time building wrappers for rust without getting it’s primary benefits. I sincerely hope they can find a way to make rust platforms competitive, but I feel that’s a very long way off.
As an aside, the rust devs need to improve native support for asynchronous primitives. I was disappointed they dropped it from the core before the 1.0 release.
Edited 2016-03-19 20:44 UTC
Interestingly, this is exactly what God said and then decided “fuck it, I’m going to drown all you arseholes and start over”.
And every time this plan has happened in history, everyone learned their lesson and did things properly and LIVED HAPPILY EVER AFTER.
————-
Or maybe people should learn why irreducible complexity happens and why it’s almost never feasible to reduce irreducible complexity: http://www.talkorigins.org/faqs/comdesc/ICsilly.html
Who introduced the concept ‘cancer’ on IT?
Read this:
http://www.joelonsoftware.com/articles/fog0000000069.html
That endless mess of failures and patches built atop failures are what lets the software running today. There are few examples of “written from scratch” replacements that worked flawlessly with their elegant designs.
This OS, if succeeds, will not be the exception. Its pristine design will be polluted with a lot of patches, bug fixes, ifs and switches to deal with cases that were not taken into account by the original designers and are, as I already said, what let the software run on top of several extreme and different scenarios.
Yeah, that’s not really true though. Especially in linux land, just look at the havoc systemd is doing and touching.
It is inspired by upstart, that was inspired by mac’s launchd. While sharing none of the code.
It uses the second design cgroups, after developers went back and redesign it.
It makes heavy use of kdbus, which is a redesign of systmed-dbus, which is a redesign of dbus, which is a redesign of dcop, which was basically an implementation of X11 Inter-Client Exchange.
Then there is the carnage to old ways of doing things as any fan or critic will tell you, it continues to replace the old way of doing things with new utils that share no code or principles with what they replace.
Linux has some old hacks in it, but its moving forward at a good clip and replacing a lot of the cruft with better design.
http://www.joelonsoftware.com/articles/fog0000000069.html
Yeah…but that doesn’t mean they’re wrong.
https://github.com/redox-os/book/pull/30
Is moving very very slowly, in a single direction.
I’ve tried the hard disk image for VirtualBox. It doesn’t boot. Just displays a few loading lines and then hangs. The qemu image does load, but is slow. When starting the GUI it’s even unusable slow.
That is interesting, when I run Redox in VirtualBox it works (VB 4.3 in my case). I set it us as “Other/Unkown 32-bit OS” with 1024MB of RAM.
Great, another slightly different Unix clone. We don’t have enough of those …
That is the phenomenon. Whenever somebody sets out to write the Grand New Operating System, it goes without saying that it should be some sort of UNIX variant.
Computer users today are left with two choices: Windows and UNIX of some sort. Both come with a lot of baggage you would not want to carry if you were to start over. The first because they have to keep compatibility all the way back to the old days of Windows on DOS and segmented memory. The second was conceived some 40 years ago and naturally you would want to do a lot of things differently if you start over with someting looking back on 40 years of experience.
In truth, IT people rarely manage to think outside of their box, least of all a UNIX box, it seems.
Only sometimes does somebody like Steve Jobs come along to kick them in shape and to abandon traded paradigms.
ThomasFuhringer,
Ah yes. It was Steve Jobs who went outside of the box when they built nextstep, and he totally did it again with osx. Then with IOS, he proved to the world once and for all that devices don’t need unix at their core to succeed.
If you would try to think in a broader context you would not narrow the example of Jobs down to his choice of an OS. With Darwin he just made a decision among the available options. Had he started out building a new OS, I doubt it would have been just another Unix clone.
NextStep – and with it Objective C – was a more inspired choice than just go with some C++ library.
And when it comes to a lot of other design decisions, expecially UX wise, he definitely managed to break with quite a few traditional approaches. Otherwise he would not have managed to unseat Nokia.
But the fact is he chose not to build a new OS and instead chose something already there.
There’s a reason why UNIX is cloned – it is the tetrapod (or maybe arthropod) of the OS world. It’s not perfect, but it is the most readily available and highly customizable “body plan” to build anything on top of.
No single tetrapod or arthropod species has the ultimate design, and arguably some things that evolved to get around the limitations of those body plans are a mess, but it is evidently highly adaptable and reconfigurable to get the job done.
ThomasFuhringer,
You gotta admit it was ironic though: To be critical of people who go with unix and don’t think outside the box, and then directly underneath list Jobs as the man who kicks them into shape and abandons traded paradigms, even though he actually went along with unix cores like everyone else.
That’s not a criticism, he may deserve credit for other things, but getting rid of unix tech? Not so much. If unix made business sense for apple, then that’s fine with me. It seems evident to me that over the years Jobs was much more concerned with surface appearances than what it runs on underneath, probably because he was not a technical guy. Saying that out loud might be controversial, even though I don’t think it should be.
Edited 2016-03-21 18:53 UTC
Other than being completely wrong, you’re correct.
ok, show me nouveau, current branch working on your OS, show me megaraid SAS ported to your OS, show me all the crap I rely on daily ported to your OS and then we can talk about design. I agree that the Linux kernel is a horrible mess. Just looking at PCI driver sizes on Linux vs OSX/BSD it’s pretty clear that driver interrupts and PCI handling is a joke on Linux. Having said that, until I can run all my kit on your small team OS I don’t really care. I’d love it if Linux was better written so I could easily make new drivers for it. But it already works today so without a strong incentive I won’t be moving to another platform. HURD seems to be the only team serious about making a drop-in Linux replacement at the moment. Sorry Rust OS but You need to prove yourself to me. Big words won’t cut it.
Darkmage,
Wasn’t linux the drop in replacement for hurd?
The point is, that those drivers are open source, they don’t need industry backing, they should be supported by an open source OS. BTW I give props to AROS for this. They have made a really strong attempt at becoming a well supported OS. If you want to make an open source drop in for Linux fine, but you have to offer actual advantages over Linux. Being written in flavour of the month language is not an advantage. Being better optimised for high performance computing, or mobile computing, or desktop computing is. Saying, we ported these major drivers, and our development time was hours/minutes is a huge selling point. But just saying it’s better because its RUST is kind of stupid and one of the problems with these projects.
Darkmage,
Well, I do understand it’s tiring to be bombarded by new languages that are just rehashes of old languages, but Rust’s code analysis really does set it apart from other static languages. If you are willing to learn about it, try to build a small project in rust. There’s a learning curve and I concede the lack of native libraries is a negative for now, but the language really starts to pay off when implementing complex code. It’s like having a second programmer going through every possible case and checking all our assumptions. It saves us time that would be lost to debugging latent bugs caused by the wrong assumptions humans make especially when dealing with nuanced complexities in code.
Edited 2016-03-20 22:20 UTC
There is a lot more to it than that. First of all when Linux came around hardware was a lot less sophisticated and there were an order of magnitude less options and even then getting enough driver support to make the system usable for enough people to make it relevant was difficult and took a very long time. Linux had the added benefit as being a vehicle for GNU software and also a highly sought after thing in itself, a free UNIX. Redox has none of this. I think the only shot Redox or other alt systems have is because of the rise and ease of use of VMs.
abraxas,
Ah, that was in the context of criticizing the project for lack of support.
Yes I realize what they’re up against, I don’t give any independent OS good odds. To my disappointment we’re seeing more consolidation than growth. If they could get a big player like MS, Apple, Google to pick it up…then that could turn some heads and spike a lot more interest.
That is one giant “if”. In other words it is highly unlikely.
abraxas,
Not only that, but given what technology business is these days there’s a risk they’d buy the rights and convert it into something proprietary/restricted.
Think about it, a platform built on rust would be far more effective in enforcing DRM and killing off the local user privilege escalation vulnerabilities that currently allow owners to jailbreak their devices. Robust code, in the wrong hands, has a negative.
Edited 2016-03-22 19:05 UTC
…exactly what people said about Linux not so long ago.
Regardless of attitude and lack of drivers, I’m guessing an OS built on Rust could find some use in certain mission-critical systems (if not immediately). As alternative OS news goes, I’d call this fairly big.
On the other hand, I’m a big believer in incremental improvment of systems using different language + same semantics. Java -> Scala, C -> ATS, Perl -> ???. So, this is probably not a viable way to replace Linux in most of our lifetimes.
I’m a little weary of up-starts claiming “everything-sucks” (wrt software), then only delivering something interesting, but ends up amounting to a toy/hobby project.
On one hand 20+ years old monolithic software written in C, may end up being a complicated ball of mud… I get it… On the other hand, the Linux system’s I use aren’t giving me stability issues and run very smoothly.
So – great to see a new and interesting language being leveraged, but I don’t find the initial mud-slinging such a good sign they they’re the right people to be responsible for such an important project.
ideasman42,
Sure, I agree with you, it’s good for project leaders to be professional. On the other hand Linus is no stranger to flaming, even from the very beginning if you recall. When linux was literally a toy/hobby project, it started out with a nasty flame war between Andrew Tanenbaum and Linus.
It obviously didn’t preclude greater success for linux. Linux had the benefit of strong demand though, especially since BSD was having legal issues, linux became the dominant free unix clone. Redox is entering a very crowded market, so it will be interesting to follow where it goes.
Edited 2016-03-20 13:11 UTC
In 1992 Tanenbaum started a debate (not a flame war) with Linus and some other Linux devs in a Usenet discussion group see https://en.wikipedia.org/wiki/Tanenbaum–Torvalds_debate for more info. While in this case someone involved with the Redox operating system just wrote something nasty about Linux in a FAQ for the Redox operating system. There’s a huge difference between debating the technical advantages and disadvantages of operating system kernels and just insulting people especially when there is no real explanation given for why the insult was given in the first place and it’s done in away that makes it harder for anyone who the insult was directed at.
metalf8801,
You don’t need to cite that for me, I’m the one who brought it up
Also, I’m not sure if you are aware but the wiki link you cited yourself acknowledged that some people do consider it an early flamewar between the two. Heck, Linus himself even signs off “Linus ‘my first, and hopefully last flamefest’ Torvalds”. So it’s not completely without merit.
http://thread.gmane.org/gmane.comp.version-control.git/57643/focus=…
http://article.gmane.org/gmane.comp.version-control.git/57961
http://www.networkworld.com/article/2223196/software/torvalds-calls…
If you don’t like the way the Redox devs talk down about Linux, I understand. I just found it ironic how much the OP’s criticisms apply to Linus himself. Sometimes I agree with him, sometimes not, but the mudslinging by him can be unprofessional for my tastes. To the OP’s point, I still use Linux anyways.
If you read it, it was Tanenbaum on the minix user group who took a pop at Linus’s Linux, criticising lack of micro-kernel architecture, patronising Linus rather severely. At this point Linux, had to have been making enough waves to get noticed.
Linus was quite reasonable, he had wanted a better i/o system, a system that was less of a toy and break out of the Minix limitations, and that was Free Software. Furthermore if you look at the argument, basically with hindsightthe Linux people in that debate appear to have the argument won the criticism seems not to agree with reality, Linux has been widely ported to many architectures (for instance).
What Redox ppl have published in many areas is a calumny, perhaps deliberate misinformation. Seriously, how does an old driver we never compile or load hurt us?
Edited 2016-03-21 19:15 UTC
rod11311,
I had to look up that word
I agree the docs are poor, it looks like someone’s meeting notes were taken and put online without much editing. Looking past the state of documentation, I think there’s merit in what redox is trying to accomplish and I feel it’s a shame for us to dismiss it on the basis of the obviously early state of documentation. I think they are genuinely trying to improve on linux. What specifically do you and others feel is deliberate misinformation (quotes & links) and how specifically would you correct it?
Edited 2016-03-21 19:50 UTC
If they’re already using L4 as an inspiration, and doing all this for security, I’d think they’d want to look into applying Rust to writing a clone of Genode.
World, we bring you the wheel: newly improved and re-imagined. Not just any wheel, but rounder and more wheel-ish. Our wheel is better than the old wheel.
Get rid of your bicycles, your crud-filled cars, your inefficient public transportation systems, and build it–all of it–anew on a our new wheels.
“We didn’t reinvent the wheel, we improved it.” (TM)
🙂
Just trying to catch some new riders. Future talks of small, rugged and specialized.
Nah man, the future in wheels is non-round objects of constant width. Get with the future!
https://en.wikipedia.org/wiki/Reuleaux_triangle
Can you imagine pulling up your escalade with dubs reuleaux? That’d draw some heads.
I recall similar attempt. It was named AuroraUX.
Shouldn’t be done? Just to point everybody the [/CelestialMusic] Right Path? [/OptionalOneKneeBending].
Security sensitive components are their aims, at the flag Ship. Oxidation Project shows that this is seen internally as a serious endeavor.
Mozilla is structured in such and open way that couldn’t believe this would go on, without the help of their Communality.
The PR of the campaign, agreeing with majority, is misled in the apparent combative spirit toward Linux.
Linux kernel is the more gigantic monolithic pandora box. And works, thanks Gods and every individual, institutional and corporative contributor.
Gecko/Mozilla Effort stands the best chance of great benefit if at this time Redox keeps it small, rugged and resilient. [Think of a select panorama of specialized hardware, with written guaranty of long term support (IT has to start a little love with the planet)].
As for this single individual, happily would buy a gadget which does FireFox and NOTHING else.
And no one of the Status Quo could compete with you, Mozilla, without incurring in Cartel practices.
Apache is Status Quo. They could start a similar effort on Web Server appliances.
Is of the greatest risk. Internet exposure function should be distributed and technologically diversified at brevity.
And once endorsed and polished by their Community, slowly migrated down to RedoxOS. Empowering, in the end, the individual.
This goes in direct frontal collision course with SUN philosophy.
https://en.wikipedia.org/wiki/Russell_L._Ackoff