Hacker News new | ask | show | jobs
by phendrenad2 958 days ago
ReactOS is an interesting project, but I think they've become mired in complexity.

> UEFI support in ReactOS is experimental and under heavy development. It is not yet ready for general use and is not currently present in our main repository. We currently cannot give an estimate as to when it will be done, so please stay tuned!

Implementing UEFI boot is not like switching a car from gasoline to electric. It's like using an adapter to switch between China electrical plugs and UK electrical plugs. It's not really a huge undertaking. Normally! I suspect that ReactOS has become so complex that simple things take a long time. Probably a lot of waves of developers have worked on this project. Probably it has seen better days.

It's probably a good space for someone to start from scratch and make a competing NT implementation.

2 comments

I think the problem here is that ReactOS wants to keep Windows compatibility. Don't forget ReactOS started out as an NT5 clone; I doubt porting Windows XP's NTLDR to UEFI would be as trivial as you may think it is.

The source code for the bootloader doesn't seem all that complicated: https://github.com/reactos/reactos/tree/master/boot/freeldr Basic support seems to be finished, but there are still a few open tasks regarding EFI support: https://jira.reactos.org/browse/CORE-9841?jql=labels%20%3D%2....

Based on https://jira.reactos.org/browse/CORE-16175, I think the project is using Microsoft's bootloader to load the ReactOS kernel during the testing phase. If that's the level of compatibility they're going for, I can imagine implementing full UEFI support will take ages.

Some people have supposedly made Windows XP boot under UEFI by using some stuff from Windows Longhorn/Vista/7: https://www.betaarchive.com/forum/viewtopic.php?p=456492#p45...
As soon as I read UEFI in the news letter I knew this forum post would end up in the comments :). The newsletter is about UEFI class 3, I.e. no CSM, where that is not. There are some later posts in that thread about using UefiSeven which is a project which hacks minimal int10h support but at that point you might as well just have modified freeloader for proper support instead.
> It's probably a good space for someone to start from scratch and make a competing NT implementation.

It's certainly not competing but SerenityOS probably has more mind share and development than ReactOS. However I do not know how well Serenity runs on real hardware or if that's even the focus. Overall Serenity has a similar aesthetic without the backwards win32 compatibility. Maybe someone will port wine to SerenityOS...

I believe WINE already builds for Serenity, but that's just the start of it.

If ReactOS ever manages to make its goals a reality, not only can you run basic Windows applications on it, your Windows XP drivers will also work. In a perfect world, ReactOS will provide "Windows XP, but open source and with the security holes patched".

That's completely different from SerenityOS's "let's make a modern operating system using modern tooling with a modern API that happens to look like a late 90s OS". If all you care about is running programs in Wine with a Win9x aesthetic, you'll have a much easier time theming LXDE or KDE instead.

this is a tangent, but it also kind of seems like a lot of the development behind Serenity is being sucked away by the Ladybird browser now. Especially with it now having funding I fear that Serenity will wither further and further as the focus shifts.
I'm not 100% sure. A lot of work is being done on Ladybird, but a lot of money is coming from sponsorships specifically for Ladybird as well.

When it comes to direct contributions to the project, I'm pretty sure only Andreas is working fulltime on generic SerenityOS+ projects. He recently made a series of videos about adding a JIT to Javascript which I found to be quite a typical SerenityOS style diversion, like Jakt had been for a while before that.

However, that's just the stuff you find on Youtube. The project itself is receiving commits all over the place: https://github.com/SerenityOS/serenity/commits/master

Most of the OS advancements have stopped coming from Andreas for a while now, and that's not necessarily a bad thing. There's a very active community working on SerenityOS and the various applications and subsystems within it. The steady stream of commits just isn't as visible and doesn't provide as much progress as three full-time programmers working on the browser does.

Unfortunately, a lot of the work that gets committed to SerenityOS seems to be the result of whatever video Andreas published last. I do hope Andreas switches back to SerenityOS work soon, but I imagine it'll be hard for him to drop such a cool and interesting project.

It's definitely not dead yet, nor is its fate sealed, but I am somewhat pessimistic about it long term. I would love to be wrong, though, and realistically it's a bit early to make any definitive statements about long term shifting priorities vs a temporary shift in focus. And obviously one developer will never make or break a project like this, but I think an important role that Andreas has/had is to be an advocate, recruiter, as well as just leadership to steer the ship a bit. Serenity needs to grow and gain new developers, and I fear that it might not be able to do that without a figurehead.
I think you are right but I also think that's a good thing. The web is a spec so every new implementation improves it. Serenity is apparently writing it's browser to more closley follow the spec (as opposed to just producing the right outputs) which is also good. So I think Ladybird provides more improvements to the web as a whole compared to the improvments serenity brings to operating systems as a whole. That's probably why it has more sponsors.
I like ladybird, and I think it's a cool project. It's probably more short term useful, but I think serenity is the more interesting project of the two, precisely because browsers are a spec. No one likes the absolute chromium dominance and more browser engines are a good thing, but they also all do exactly the same thing. Building an operating system is a much more open ended task that has more room for innovation.