Slashdot Mirror


Rust-Based Redox OS Devs Slam Linux, Unix, GPL

Freshly Exhumed writes: Redox OS, a project on GitHub aimed at creating an alternative OS able to run almost all Linux executables with only minimal modifications, is to feature a pure Rust ecosystem, which they hope will improve correctness and security over other OSes. In their own words, 'Redox isn't afraid of dropping the bad parts of POSIX, while preserving modest Linux API compatibility.' They also level harsh criticisms at other OSes, saying "...we will not replicate the mistakes made by others. This is probably the most important tenet of Redox. In the past, bad design choices were made by Linux, Unix, BSD, HURD, and so on. We all make mistakes, that's no secret, but there is no reason to repeat others' mistakes." Not stopping there, Redox documentation contains blunt critiques of Plan 9, the GPL, and other mainstays.

40 of 354 comments (clear)

  1. Code first, talk after by Anonymous Coward · · Score: 5, Insightful

    Show me the code first, then start shittalking everybody.

    1. Re:Code first, talk after by Anonymous Coward · · Score: 3, Informative

      Show me the code first, then start shittalking everybody.

      https://github.com/redox-os/redox

      Did you miss this part or something?

    2. Re:Code first, talk after by gweihir · · Score: 5, Insightful

      Show me the code first, then start shittalking everybody.

      That is not the Rust Way. The Rust Way means that you feel vastly superior to everybody else and let them know, no actual facts required. This must be the most arrogant and at the same time one of the most clueless tech-communities ever.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    3. Re:Code first, talk after by ttucker · · Score: 4, Funny

      Like the crossfit of programming?

  2. So what? by Desler · · Score: 5, Insightful

    Who cares? It's a toy OS written in a toy language. It'll join the thousands of other pet project OSes that no more than a handful of people will ever use.

    1. Re:So what? by Anonymous Coward · · Score: 5, Funny

      Who cares? It's a toy OS written in a toy language. It'll join the thousands of other pet project OSes that no more than a handful of people will ever use.

      You're right, operating systems are a solved problem. Things are fine right now.

    2. Re:So what? by Desler · · Score: 5, Insightful

      These people fail to realize that 99% of users care about applications not the OS nor the purity level of its code or APIs. A handful of Rust hipsters will jump ship and the rest of the world will go "What's RedoxOS and why should I care?"

    3. Re:So what? by Desler · · Score: 4, Funny

      But this OS runs on 200% more smug than other OSes. Clearly that makes it superior.

    4. Re:So what? by BarbaraHudson · · Score: 3, Funny

      But this OS runs on 200% more smug than other OSes. Clearly that makes it superior.

      Considering that at this point it's one big circle jerk, I think you misspelled smeg.

      --
      "Transparent" is a shit show that trades on every stereotype going. A man in drag is NOT a transsexual.
    5. Re:So what? by mwvdlee · · Score: 3, Insightful

      I think 99% is an underestimation.
      Unless they can make it trivially easy to migrate, they're dead in the water.
      And even then, they need to offer significant and measurable advantages to justify end-user migration.
      Wake me up when it runs Apache, MySQL and PHP or some other complete web stack.

      --
      Slashdot social media options: AIM, ICQ, Yahoo, Jabber and Mobile Text. Why no MySpace?
    6. Re:So what? by jiriw · · Score: 4, Interesting

      I'm not saying Python is just right... but its development was started because the, then current, mature programming languages (C and shellscript) didn't support the mix of features Guido van Rossum needed... and a language that had many features he did like (ABC), he 'had a number of gripes about' (mainly it was a PITA to extend) so he started making Python.
      It was a typical case of 'developer not happy with current tools, starts making his own almost from scratch'. I see a lot of parallels with this Redux case, and yes I know Python had 27 years to come where it is today. It's already been very usable for most of that time... version 1.0 was released in 'just' 5 years. Same with Linux, by the way, that was made by Torvalds because he wanted a quick and dirty Unix like OS on his 386 and the Hurd didn't cut it. Neither did Minix, which was 16 bit. It took 4 years there to get to 1.0.

      So... let's see in 5 years, shall we? Maybe Redux will be something interesting. But, as I said, they need to do a lot of work first, and then, maybe, there will be others willing to help out. Making a lot of noise first is probably not going to help them get more 'eyeballs'.

    7. Re:So what? by allquixotic · · Score: 3, Insightful

      Of course, but that's only 10% of the job. The real hard parts include things like:

      1. "Scripting the scripts": learning how and when to use each script and in what context. Often it is difficult to express exactly what conditions may prompt a given script to be run, especially if those conditions involve human factors (soandso forgets their password; the company gets sued and needs to put a legal hold on email deletion; etc.) If people could write scripts to automate the triggering of lower level scripts under the right conditions, they'd already have done that (for example, scripts that merely need to be run periodically get set up as a cron job) because we all know that most sysadmins are lazy and will seek to automate things to make life easier for them -- unless those things turn out to be difficult-to-impossible to automate.

      2. Change: except for a few niche areas like Certificate Authorities, IRC servers, mail servers, and OS package repositories, the software configuration of many environments necessarily needs to change over time. Not only to keep ahead of obsolescence curves (end of security updates / support from vendors, etc.) but to actually provide new functionality and features requested by the customers (external or internal). There are very few server services that can just remain static for decades. The more change and upheaval you have in your environment, the less valuable it is to "button everything up" into a nice, well-oiled, automated machine. And the process of that automation requires significant manpower and extremely good documentation of exactly what everything does. Even in the best case, though, you'll probably end up re-doing large parts of it every six to seven years, since that's the support period (security updates lifecycle) for RHEL, Ubuntu LTS, etc.

      3. Cost-benefit: Higher-level server automation can't write itself, because you have to tell the computer when to do what, under what conditions. Writing management engines that intelligently keep track of this stuff requires significant development time, and if the conditions are complex, you'd better write it in a robust language like C/C++/Java/C#/Rust/.... instead of Bash (shell scripts are not especially good at error handling and are not especially well optimized for large bodies of code). So after you have invested all that time in whiz-banging the whole thing into a web app with a few buttons, is it really worth the savings vs. waiting for a sysadmin to type a few commands manually into the console?

      4. Frequency: Many (most?) system administration tasks are not done with terrible frequency. If something's only done once or twice a year, it's almost guaranteed not to be worth automating, even if the process takes a full day or two for the admin. So we typically only focus on automating tasks that need to be done multiple times per week. The more frequent, the more automated it probably is.

      5. External environment: This mostly falls under "Change" above, but major vulnerabilities like the SHA1 weakness, Heartbleed, etc. occur once in a while and they can require an arbitrary amount of major change and upheaval on the server side, sometimes with very high priority (timetable doesn't allow for figuring out how to automate it). These things can happen at any time and they require someone to always be standing-by, at the ready, possessing the general knowledge of the system architecture as well as detailed knowledge of the commands to make changes on the system, so that they can implement the solution to the problem (which can't possibly be known in advance because the problem comes from an external source, so you can't automate it in advance).

      Until/unless we get True AI (which I don't believe will ever happen), the world will need sysadmins. While the general trend towards higher level automation continues, it's not such a severe problem that admins will just get laid off if they don't know how to code. I don't buy that for a second, even though I strongly believe that it's beneficial for admins

  3. Purity is easy by The-Ixian · · Score: 5, Insightful

    When you are just starting out or if the project is relatively small.

    The more adoption you gain, the more the purity is corrupted.

    Enjoy the view from your high horse while it lasts I guess.

    --
    My eyes reflect the stars and a smile lights up my face.
    1. Re:Purity is easy by Anonymous Coward · · Score: 3, Interesting

      This. I still remember how Java was advertised as a "simple" language when it first came out. And it was, but as time passed they decided they'd better keep up with the features and language fashions that the competition were rolling out.

    2. Re:Purity is easy by Anonymous Coward · · Score: 4, Funny

      The more adoption you gain, the more the purity is corrupted.

      Enjoy the view from your high horse while it lasts I guess.

      This deserves to transcend the limits of Slashdot and get (Score:6, Insightful).

    3. Re:Purity is easy by Art+Challenor · · Score: 3, Interesting

      Eternal moral vigilance, such as that provided by the Vigil language, is the only way to keep it that way.

  4. Re:I'm getting a feeling by Anonymous Coward · · Score: 4, Interesting

    Jeez, doesn't anybody know how to make a link any more? Standards.

  5. In other words ... by gstoddart · · Score: 3, Insightful

    Redox isn't afraid of dropping the bad parts of POSIX, while preserving modest Linux API compatibility.' They also level harsh criticisms at other OSes, saying "...we will not replicate the mistakes made by others.

    This basically means their special little pony of an OS will be kinda sorta compatible, they will take some "principled" stand and break whatever they choose, and will screech and whine about how the rest of the world is doing it wrong.

    Go ahead, be a bunch of yowling zealots, write an OS nobody will care about ... and sit around being all smug about how awesome the thing you've written is while wondering why nobody is using it.

    If you want to have a manifesto of childishness and stern disapproval, don't expect to get taken seriously.

    I worked with a guy who wouldn't bend on his perceived form of "correctness" ... he usually failed to deliver what was required of him and was an ass to work with, because he couldn't get past being a smug prick to get the job done. Delivering nothing is worse than griping it isn't aesthetically and ideologically perfect.

    So, whatever. Throw your tantrum.

    --
    Lost at C:>. Found at C.
  6. Re:They are right, but will they get it right? by Desler · · Score: 3, Insightful

    Microsoft can barely get people to use WinRT and yet this group of nobodies expect to displace POSIX? Sure, brahs.

  7. Re:They are right, but will they get it right? by RabidReindeer · · Score: 5, Funny

    They are going to base it on systemd, aren't they? Since throwing away past mistakes is a central criteria?

  8. As Jeff Goldblum said... by hughbar · · Score: 3, Insightful

    In one of the Jurassic Parks. 'No, you're making a whole load of brand new mistakes'. Sorry to be so down on this, but operating systems are quite complex and the open source ones need a decent community as well.

    --
    On y va, qui mal y pense!
  9. Microaggressive by 110010001000 · · Score: 5, Funny

    This type of microaggressive behavior SHOULD NOT be tolerated in the Rust community. We should all have safe spaces available to create our own OS, no matter what your views are on POSIX. Who is to say what is "correct" or not?

  10. Both funny and impressive by Bruce+Perens · · Score: 4, Insightful

    It's impressive that they are out to make both their own kernel and their own runtime. At first glance it looks like a monolithic kernel, someone should page Andy Tannenbaum to harass them, and if it's really monolithic that takes a point from the "not making other people's mistakes" column.

    It takes a lot of computer science smarts to even understand what the mistakes in other operating systems were and how to avoid them. And as others have commented, it's easy to point at other's mistakes when your project is in its infancy, much harder when your project is grown up.

    I'll really be impressed if they don't map graphics cards into user space. Nothing's ever stable once you do that. That's the biggest mistake in the whole industry. But I bet they don't take fixing that one on.

    1. Re:Both funny and impressive by Bruce+Perens · · Score: 3, Informative

      Well, I read the code. Which isn't a microkernel yet, as far as I can tell. To back that up, note their comment on wishing to move more of the kernel into user space.

  11. Re:I'm getting a feeling by Big+Hairy+Ian · · Score: 5, Funny

    I believe he was enabling you to pick your own linking standard :)

    --

    Build a Man a Fire, and He'll Be Warm for a Day. Set a Man on Fire, and He'll Be Warm for the Rest of His Life.

  12. Talking easy. Doing hard. by Qbertino · · Score: 4, Insightful

    Old Kung Fu proverb.

    --
    We suffer more in our imagination than in reality. - Seneca
  13. GPL was a good choice for Linux by caseih · · Score: 5, Insightful

    The GPL may not be appropriate for many projects, and Redux' choice not to use it is understandable (they chose MIT), but for Linux, being a very large, multi-corporation affair, the GPL is not only appropriate, it's made Linux what it is today. The so-called viral nature of the GPL is what protects it from corporate interest, keeps it open, and keeps the playing field level for the various contributors and interested companies while being steadily improved by all interested parties.

    It's true that the modified GPLv2 that the Linux kernel uses has loopholes in it, and has been taken advantage of by some (Tivo!), but overall it's been a good choice.

    Had Linux been BSD, or MIT, I just don't think it would be as big or successful as it has been, and so widely contributed to by many competing companies. The BSD and MIT licenses lend themselves to widespread adoption and use without fear of any copyright repercussion. However nothing in them prevents companies from taking the code they want for their own proprietary purposes, never to release it back to the community for mutual benefit.

    I am not saying Redux should not be MIT -licensed. I'm just saying their criticism of Linux using the GPL is debatable.

    1. Re:GPL was a good choice for Linux by Bruce+Perens · · Score: 3, Insightful

      Say share-and-share-alike. "viral" is pejorative and it's not in our interest to continue its usage.

  14. What could possibly go wrong? by TheDarkMaster · · Score: 3, Insightful

    Hum... Writing an entire operating system in an immature language made by people who apparently only understand javascript and the "web way" of developing things... What can go wrong?

    --
    Religion: The greatest weapon of mass destruction of all time
  15. Re:They are right, but will they get it right? by Anonymous Coward · · Score: 3, Insightful

    systemd is all about reinventing past mistakes and bringing them into the present in an entirely new way.

  16. Oh please..... by mlwmohawk · · Score: 4, Insightful

    Unics, Unix, UNIX, unix, posix, bsd, linux, minix, plan9, etc. They all come from the same basic design philosophy, and it is a very good starting point, simple, clean, wonderful.

    Then you want applications to run on it. Then you get performance issues. Then you get security issues. Then you get new types of peripherals. Then you get new types of processors and memory architectures. Then it shrinks to be a raspberry PI, then it grows to be massively parallel and fill a room.

    After all that, tell me again about what mistakes you are not going to make.

  17. Heartbleed by david_thornley · · Score: 3, Insightful

    Heartbleed is a really bad example of what's wrong with C as a development language. If the developers had used C's safety features, Heartbleed, while still a bug, would not have been a problem. Substitute "calloc" calls for "malloc" calls and there's no problem.

    Heartbleed is an excellent example of what can go wrong when the developers abandon all thought of safety measures, preferring to make everything run as fast as possible at the expense of safety in security-related software. While there are things wrong with C, Heartbleed wasn't one of them.

    --
    "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
  18. Mistakes by wonkey_monkey · · Score: 4, Insightful

    we will not replicate the mistakes made by others

    Nope, you'll just brand new mistakes of your own!

    --
    systemd is Roko's Basilisk.
    1. Re:Mistakes by wonkey_monkey · · Score: 3, Funny

      Like me, when I accidentally a word. Fuckit.

      (I nearly accidentally a word just then, too)

      --
      systemd is Roko's Basilisk.
  19. Strange flamebait article by Rutulian · · Score: 5, Interesting

    While I generally like the idea of new people coming up with new projects and hacking away, the linked documentation reads like flamebait and doesn't have much in the way of substance. Some of their contentions are rather strange. For example,

    There are numerous other OS's, kernels, whatever that lack for contributors, and are in desperate need of more coders. Many times, this is for a good reason. Failures in management, a lack of money, inspiration, or innovation, or a limited set of applications have all caused projects to dwindle and eventually fail. ...
    Take Linux for example:

    Ok, let me stop you there. Linux is not a perfect project by any means, but you can hardly say that it is mismanaged, uninspired, or lacking in innovation or money. It had 4000 contributors over about a 1 year period, and 12,000 over a 10 year period. It runs on everything from embedded systems to big iron mainframes and balances the often conflicting needs pretty well, in my opinion. Of all the things you can say about Linux, it does not lack in number of contributors or vitality of the project.

    Legacy until infinity: Old syscalls stay around forever, drivers for long-unbuyable hardware stay in the kernel as a mandatory part.

    Uh, yes. Because, shocking I know, quite a bit of hardware out there still depends on that code. And anyway, as long as somebody is there to maintain it, who cares if it is old. Admittedly, there is some cruft in the kernel. It's an old project, so I think it is natural to expect that. But at the same time there are people working on it and trying to keep the codebase modern.

    While they can be disabled, running them in kernel space is essentially unnecessary, and is, by far, the biggest source of system crashes, security issues, and unexpected bugs.

    I'll need a citation for that one. I won't dispute that old code has occasionally caused bugs and crashes, but the statement is hyperbole. The majority of crashes on Linux distributions have nothing to do with the kernel at all. Of the ones that do, it usually has something to do with the binary blobs used to run graphical hardware, which is certainly not old code.

    Huge codebase: To contribute, you must find a place to fit in to nearly 25 million lines of code, in just the kernel. This is due to Linux's monolithic architecture.

    Hurray, this useless debate continues. I'll tell you what. Show me a working performant microkernel (no, XNU is not a microkernel) and I'll concede you have a point. Until then, it is just useless chatter. As to their point, just because the kernel architecture is monolithic doesn't mean the codebase isn't organized. One can in fact easily work on something like a filesystem without touching the network code, for example. Linux has had separate subsystems maintainers since at least 2003.

    Restrictive license: Linux is licensed under GPL2. More on this in Why MIT?.

    Non-sequitur to say the least. While commonly debated on Slashdot, really doesn't contribute anything useful to the discussion.

    Lack of memory safety: Linux has had numerous issues with memory safety throughout time. C is a fine language, but for such a security critical system, C doesn't fit.

    This is really the only interesting thing they have said, but not a lot of detail on what they mean other than that they think the whole kernel should be reimplemented in Rust. Well, let's see how that goes. Check back in what, 5 years?

    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

    1. Re:Strange flamebait article by naasking · · Score: 3, Informative

      Show me a working performant microkernel (no, XNU is not a microkernel) and I'll concede you have a point. Until then, it is just useless chatter.

      L4 and QNX are working, performant microkernels that have seen plenty of deployment in the real world. Not on the desktop granted, but performant microkernels aren't some mythical unicorn, they're everywhere and have been for over a decade.

  20. Where have I heard this attitude before...? by plsuh · · Score: 3, Funny

    Theo de Raadt, is that you?

  21. Re:Yes Mr Ritchie ! by gstoddart · · Score: 3, Informative

    We should just "get shit done" and make the cyber war domain based on your craptastic inventions a bit larger. Make a shitload of sense.

    You know, there comes a time when you develop software for a living that "do your fucking job" becomes a real thing.

    If you have the luxury of pursuing ideological purity in software, congratulations, either your mom is really understanding, or you have a tenured position and nobody is relying on you for anything real. But in the real world, that level of bullshit onanism and self congratulatory crap is something nobody has time for.

    That guy who refuses to write the stuff he's being paid to write because it lacks sufficient ideological purity, and instead endless refactors stuff which already works? That guy is asking to get canned because he thinks his job is an outlet for his political agenda. That guy sitting in his basement doing the same thing? Well, he's entitled to do whatever the hell he wants, no matter how detached from reality he is.

    Unix and C are attempts to dumb down and cheap down computer science.

    Oh, now that's some fucking rewriting of history. Someone didn't take some pure fucking temple of computer science and "dumb down/cheap down" by using UNIX and C ... someone solved actual real damned problems decades before whiny punks like you come along and whine about your elegance and theoretical perfection.

    Go ahead, pursue ideological perfection as a goal. But do it on your own time, and don't expect the rest of the world to do anything but roll their eyes at you -- because you're so far detached from actual reality as to be laughable and irrelevant.

    Sitting around saying how the rest of the world has done it wrong and your toy nobody will ever use will be so much more better and perfect? Well, put up or shut up, but don't expect applause or interest based on your own level of smug -- that's your damned problem.

    Because the smugness does nothing at all to make anybody think you're anything but a whiny little prat who hasn't actually been exposed to reality.

    But in my direct experience, the people who go on the loudest about the theoretical and ideological purity of software are the ones who have delivered the least working software in the room -- right up to several people who couldn't deliver the stuff they were being paid to because they were so focused on trivia they failed to do their jobs.

    And those people usually delivered badly written, brittle code which was so 'elegant' as to be a useless pile of shit.

    --
    Lost at C:>. Found at C.
  22. Why not use the GPL? by duckintheface · · Score: 5, Insightful

    The "freedom" of the MIT license is the freedom to deny others access to source code. ReDox claims that they aren't worried about someone adding proprietary code because it would, by definition, have to be an improvement in order to be successful. Yes, except Windows is successful without being an improvement on Linux. How did that happen? It happens because people become dependent on a particular feature, a particular standard Over time that may become inferior but because it's now proprietary, it can't be improved without violating copyright.

    So why not use GPL? ReDox never really answers that obvious question. If the ReDox folks have a great idea, just implement it in the GPL and then everyone can enjoy that great idea. But what they really want is for many people to donate their code so they can then make a profit off it. And that's why the GPL wins over time.

    Also, note that the attack on the GPL specifically focuses on libraries. But in general Linux libraries are covered under the LGPL and not the GPL. So ReDox is setting up a straw man argument. If libraries are a problem, then compare your license to the LGPL.

    --
    "He took a duck in the face at 250 knots." -- William Gibson, Pattern Recognition
    1. Re:Why not use the GPL? by duckintheface · · Score: 3, Insightful

      Copyright reassignment is necessary to enforce the provisions of the GPL. If the holder of the copyright is not aware that his code has been stolen, or if he has died or can't afford to pay a lawyer, then the GPL is worthless because it can't be enforced. If the copyright is reassigned to the FSF, for example, they will pay the lawyer to sue on behalf of the GPL. The GPL is silent of reassignment. If a project leader is requiring it, the contributor is free to take all the existing project code and fork the whole thing. That's how the GPL prevents any one person from having leverage over the code.

      --
      "He took a duck in the face at 250 knots." -- William Gibson, Pattern Recognition