So, if you’ve never heard of ReactOS, it’s an alternative to Windows, except it’s open source, and reverse engineered.
The end result is, if it works on Windows, it works on ReactOS natively.
Now, as you might imagine, there are some issues with this. The most glaring one being that they’re currently in the year 2003. That’s the level they’re at with software. It’s not even emulation. It’s running the software natively, and it’s written from scratch.
But my takeaway is that Linux running windows apps natively would improve people’s hesitation to running linux.
Now since ReactOS is FOSS, any improvements made upon it could then be forked over to Linux. And if someone made a ReactOS fork, that isn’t linux, that’s good too (as long as it stays open source). Any advancements made by this new theoretical fork of ReactOS could ALSO be forked into linux.
Right now, development is slow, because it’s a community driven effort without much of a community. If it had a large and engaged community, all legally reverse engeneering the ways of windows? That would allow basically EVERY OS to have FOSS unofficial native windows support.
So I guess my question is, for an OS that’s been in development since 1998, why doesn’t the linux community embrace ReactOS?
You ever heard of Wine? The majority of work to make Windows apps work on Linux is not with ReactOS. Last time I tried ReactOS it was more like a nostalgic OS for people to remember the good ole days of minesweeper. It wasn’t a serious project to actually become compatible with modern Windows. Even if it was, I wouldn’t trust the authors to do so. Wine however has made serious progress and there are multiple Windows apps that now run on Linux as a result. The Linux community should not embrace Windows. Microsoft needs to embrace the Linux community & make their source code open enough and documentation good enough to run Windows software on Linux natively. Otherwise you’re doing free work for a company that will be acting hostile towards you, and it just isn’t worth it. You’d be better off at that point at convincing software makers to make their apps compatible with Linux or using a hypervisor.
reactos is a serious project tho. in fact they were collaborating with and at about the same progress as wine until an incident in 2006; not sure what the status of such collaboration is now
What incident?
Ok so almost 20 years ago, great. What about now?
deleted by creator
- Microsoft hasnt sued ReactOS only because its not significant enough for them to care about (a few Windows devs have confirmed that some ReactOS code looks stolen)
- Companies have no reason to fund it, wine does everything they need plus enterprise software is being produced for Linux
- Regardless of how “clean” ReactOS is they cannot legally reverse engineer Win10 or Win11 due to the EULA (which Microsoft would enforce in court)
- Even if ReactOS has 100% compatibility (highly unlikley) it doesn’t means Linux will as well. In addition companies would add checks to drm to ensure a legitimate Windows kernel is used so we would just end up where we started.
- The only thing we would gain is an open source nt-based system, this would be immediately rejected by the POSIX purists if anyone tried to add it to Linux. Linux isn’t Unix based because NT is proprietary, people like the Unix standard.
- Not only is the means flawed the ends are arguably worse. Linux does not need to be like Windows/MacOS, Linux does not need complete compatibility Windows/MacOS software, and tbh Linux doesn’t need more Windows/MacOS users because objectively Linux is not Windows/MacOS. We arent helping older users bg watering down Linux, we arent helping new users by tricking them, and we arent helping future users by convincing them on lies.
Regardless of how “clean” ReactOS is they cannot legally reverse engineer Win10 or Win11 due to the EULA (which Microsoft would enforce in court)
How would they prove the developer signed an EULA? I know I haven’t been made to use Windows since the Vista era. And even then, that was a work computer so I never agreed to anything.
The rest I agree with. Windows is trash, why bother cloning it? Wine exists to run applications that are desired but don’t have Linux equivalents.
The problem wouldn’t be the developers but the reverse engineers.
Though there are of course ways to RE without looking at what the original system does.
If any of the developers have a Microsoft account with their legal name and have used that to set up a Windows 10 computer (highly likley) they can be sued. Also my point is not only is Windows trash the fundamental technologies its based on are trash too, Unix Based systems will always be superior to NT/DOS based systems.
Regardless of how “clean” ReactOS is they cannot legally reverse engineer Win10 or Win11 due to the EULA (which Microsoft would enforce in court)
Its possible for them to clean room reverse engineer Windows 10 or 11 it minimizes the risk down to only patents.
Theoretically but practically impossible
Wine already exists and can run pretty new Windows software. A fork also exists for MacOS and the other BSDs can also run Wine.
Running Windows apps on Linux natively seems impractical to me, the OSes are structured very differently and I’m fairly sure this would introduce many hard to fix CVEs.
ReactOS does actually submit patches to wine sometimes because they use parts of wine! But they have their own windows-like kernel so they only need wine for userland, not the whole thing
WINE does run wiindows apps natively on linux.
That’s not what natively means
You know what WINE stands for?
You know that running through a compatibility layer isn’t native whether you call it an emulator or not?
It runs natively. Compatibility layer or not.
The software run inside of wine makes windows system calls, which wine translates into *nix system calls. That’s not what native means. If that software was native it wouldn’t need wine.
That’s what libraries do. glibc converts application calls to Linux syscalls. libgl converts application calls to driver calls.
It depends on where you draw the line at “native”. Unless you’re writing assembly you’re using some sort of ‘compatibility layer’.
What makes you think it does not embrace reactos. that project is one reason wine is as good as it is.
Mostly the fact that it’s been in development since 1998. Linux has thousands of developers, yet ReactOS has 30 developers who fight with each other, and haven’t had a stable release since 2021.
Thats tons of developers for one project. You can’t compare it to linux in general. Last release 2021 is not that long ago compared to some to. Knoppix is a very well known one and its last release was 2022. React has come a long way since its NT compatibility days.
Probably because they’re afraid Microsoft would sue to shut it down. As you said, right now they’re nowhere near competitive with Windows.
This is the real issue. If ReactOS actually became useful, Microsoft will act against them. Doesn’t matter how cleanly they reverse engineered their implementation, ReactOS most likely don’t have the funds to deal with any legal battles.
I think, your expectations are off for what a native integration would achieve. A kernel which has both a Linux API and a Windows API would be an insane maintenance effort. You’d naturally want the Windows APIs to simply be translated to the respective Linux API calls. This is what WINE does.
In theory, if it’s directly integrated, you could do some dirtier stuff, i.e. call kernel-internal APIs, but you want to avoid that as much as possible, since those kernel-internal APIs are not nearly as stable as the public APIs.
It should also be said that writing kernel-level code is hard. You cannot ever crash, you cannot ever make mistakes when managing memory, you cannot allow yourself any vulnerabilities. Again, you want to avoid writing kernel-level code, if you can.WINE has some additional ugly workarounds, like a virtualized filesystem. There’s not terribly much you can do about that. Windows applications may simply expect certain folders to be in certain paths. You can’t directly map that to a UNIX filesystem.
As far as I can tell, pretty much the only advantage of natively integrating it, would be that it’s installed by default, which can be achieved in other ways (distros), and due to those ugly workarounds will not be popular at all. As much as I’m touting its horn right now, I do not want WINE on my system, unless I need it.
It’s easy to be frustrated with WINE, because it does not handle all applications perfectly, and then think that the approach is just wrong. But yeah, no, some really smart folks came up with that approach. It’s just insanely hard to get the exact (undocumented) behavior of the Windows kernel APIs correct, whether you do a mapping or implement them natively.
Because Wine and Proton exist. And they can run much more recent software, sometimes faster than on Windows. It’s a duplicated effort with not much benefit. Why limit yourself to just Windows programs when you can run Linux AND Windows programs on the same OS?
That’s like asking “Why drive an automatic car, when stick shift exists???”
I don’t think that comparison works
Rather the opposite.
I think reactos is just in a weird space of semi uselessness like haiku. It’s not good enough to use daily and doesn’t have as much retro appeal as game emulators so not enough work is done to it.
Also building reactos is terrible, or at least was years ago (it’s a whole os and userland after all, I know it won’t be simple). If the development workflow improves the project could get off the ground.
As far as posix support goes I would love to see reactos get to the point where a posix nt personality could be real again, but really I think humanity has learned enough about operating systems to build a new one from scratch instead of liberating proprietary tech at great cost.
The question is, what applications would run in ReactOS that wouldn’t run through Proton/Wine? Some applications require relatively obscure userspace quirks and tricks, in which case it doesn’t matter if they’re running through Linux+Wine or ReactOS+Wine if Wine doesn’t implement them.
Other than that, the rootkit anticheat that makes so many games not run on Linux are written by companies that have a near hostility towards Linux and open computing in general. If some version of their anticheat happened to work in ReactOS, they’d patch that out super fast. Same with DRM stuff.
Linux and Windows are, I think, too different conceptually to copy things from one to another. And I’m not sure what Linux-compatible innovation that ReactOS would have that hasn’t already been thought of. Performance of the Windows kernel is, at best, average.
Linux and Windows are, I think, too different conceptually
That is correct. Linux is a UNIX variant/clone, one of many. UNIX isn’t just an OS, it’s an entire concept on how to build and organize an OS. People keep wanting it to be Windows, but it will never be Windows. I wish it could just stand on its own as a flexible, open, UNIX-like system with its own strengths, not just be a drop-in replacement for Windows on the desktop. Let’s make the UNIX way of doing things the normal, everyday way of doing things.
Some applications require relatively obscure userspace quirks and tricks, in which case it doesn’t matter if they’re running through Linux+Wine or ReactOS+Wine if Wine doesn’t implement them.
I thought the whole goal of ReactOS was to get to a point where wine isn’t needed at all. You just take the .exe installer, and install it. Just like windows.
The issue is that they’re so poorly staffed that they’re waaaaaay behind on what Windows considers modern. They’re doing an impressive job reverse engeneering, but it’s still a 20 year old system. They partially rely on wine currently because of how unfinished THEIR work is.
But my vision is that thousands of people each contributing small little bits here and there, all contributing to the code of ReactOS. Eventually they could move beyond XP, into Windows & era, and Windows 8 era, and Windows 10 era, and Windows 11 era. But since it’s NOT microsoft, and since it’s NOT windows, it wouldn’t come with any of the stuff people hate about those versions. It would come with the compatibility, but not the forced spying, or the bloat, or the forced subscriptions.
The thing I read is that Windows 95 was composed of around 1000 people all working towards the same goal, with the same tools, at the same time. All getting paid as their full time job. ReactOS has about 30 people, who are all fighting with each other. Their last stable release was 2021, but they do have nightly builds that are “current”. But with so much infighting, and so few people, and not being a full time priority, it doesn’t get the support it should.
As far as what linux would gain by ReactOS reverse engeneering modern day OS’s? It would mean ANY program that was originally intended for windows could be installed via the .exe file, on ANY linux distro. Using the same gui setup that windows users know how to do. Which in turn would make it 1000% easier to convince a new user to switch from Windows to Linux, if you could say “You can run all the same programs, you already know how to use it, and it’s free.” THAT would be the game changer.
what applications would run in ReactOS that wouldn’t run through Proton/Wine?
Drivers and usb hardware support are the main things ReactOS currently are better positioned to support that I know of.
Yes but it’s so easy to run most Windows workloads on a VM that most people would just do that instead of doing the work to implement the needed APIs in Wine (ReactOS). I’m capable of doing such work. I can’t be bothered since everything I need runs alright in KVM. Valve takes care of games via their work on Proton (Wine). We often do this in the Linux world - reach for imperfect, easier solutions, then stack em on top of each other to form not that pretty yet stable Jenga towers. 😂
Running Windows on a VM requires significant RAM & usually an extra GPU to make both operating systems work anywhere close to equivalent in terms of performance. Even then, the hypervisor can still cause issues with enterprise software and licensing.
Yes but most machines these days have a ton of RAM and 4-8 CPUs. GPU is only required for 3D accelerated work. I think the standard QXL virtual GPU works fine for non-accelerated purposes. No idea how often licensing could be a problem. Haven’t had issues myself but I don’t use much proprietary stuff. Your standard MS Office, Adobe, AutoCAD stuff works fine to me.
I don’t have a substantial opinion about ReactOS. I’m aware of it, but that’s as far as I’ve ever gone.
However, I wanted to compliment you because that was a great opener to this discussion. 🙂
Mainly because Reactos only runs windows XP apps in this current state (Maybe we can trick apps into thinking its a windows 11 pc using winecfg??)
I think the bigger issue with the entirety of Linux as a whole is, getting everyone on the same page to make a distro that everyone can use and not be intimidated by. There’s a distro for everyone, but there are still obstacles in some distros that people are going to run into, that’ll make them turn back to Windows.
Whether it can’t run a game they played, run a piece of software natively, driver support and maybe even features they thought were best suited on Windows than Linux.
I can agree with this. I’ve always said that the concept of Linux needs to be a centralized experience for most, and then diverging distros for those who want to seek them for others. Like when you install Linux for the first time, it’s just called “Linux”. That’s the name of the distro. And it is a collection of all the other OS’s most popular features. It is the default linux experience. If YOU want to change something, you can, but most won’t. Windows 95 and later were actually pretty customizable, but how many people actually customized their window colors? I knew a few people who did. Most didn’t.
And that’s the thing about this kind of mass appeal that linux would experience. Terminal would still work, just as it does today, but it wouldn’t be the default behavior for most. Terminal is the second biggest reason people don’t use linux.
So for there to be a singular starting experience, it needs to basically be “This is linux. You’ve never used it, but you already know how. All your programs from mac and windows work here. Plus it’s free, and more secure without ads or tracking.”
That alone would be the driving force. Once they’re into the ecosystem, they can play with terminal if they want. They can customize if they want. But I have a feeling that most would stay with whatever the default experience was for their entire time using the system.
And the part where “all your apps work” is part of what I’m talking about with everybody catching ReactOS to modern. It’s not modern right now, but that’s due to lack of development. I’m saying with a huge development increase, it could be a small part of what makes your vision of a popular linux a reality. One of many moving parts basically.
We have Android and ChromeOS for those “just want an appliance” users.
The rest of the distros are for those with varying needs. Arch, Gentoo, for the full control folk. Debian for stability folk. Ubuntu for cloud. ELs for data centers.
Etc etc etc
What’s the point to reactos? I don’t want to just run windows applications, I want to run Linux. WINE is the better approach. I can run windows applications and still run Linux.