Hacker News new | past | comments | ask | show | jobs | submit login
ReactOS 0.4.6 released (reactos.org)
297 points by jeditobe on Sept 5, 2017 | hide | past | web | favorite | 112 comments

`In order to track ReactOS compatibility with Windows behavior, 1,088,893 unit test cases have been added since 0.4.5. This new release has been tested through 14,238,159 unit test cases, failing just 18,419 (a 0,129% ratio failure). Still, ReactOS is marked as Alpha for the moment.`

14M tests are impressive.

I'm guessing they haven't been written manually?

3 nested for loops may count as thousands of tests (not that it diminishes the value of the tests). Probably most of them come from Wine.

It is getting much better with each release. I'm seeing it each time more as a good replacement for the office machines that need to run the legacy software.

Plus, with this Windows exists no state surveillance involved nor costs with licenses, perfect for VM deployment.

I've used ReactOS at the past to automatically create Win32 builds for software (the real hardware ran Linux, ReactOS was booted in a VM), the command-line stuff tend to work fine. The main problem is that there are still tons of issues with the GUI side, including glaring things like region clipping (you can see obscured windows sometimes being drawn above other windows or areas in some windows not being drawn at all) and a single window being able to hang the entire UI (seems all window message handling is synchronized).

Older software tends to work ok (i ran Borland C++ Builder on it without major issues, beyond the GUI glitches i mentioned), but not perfect. Also old software sometimes tends to include 16bit components that do not work yet with ReactOS.

The file manager was also rewritten at some point and it seems to have issues (e.g. you need to manually refresh the desktop/a folder to see changes, drag-drop doesn't always work, etc). However it is much better than 1-2 releases ago, which shows that it gets a lot of development.

Command-line stuff seem to work perfect (although the current shell is quite primitive) though so, if nothing else it can be used for automated tasks.

IMO they should try to pay a bit more attention to getting the basics of the GUI side working since this will attract more developers who are interested in helping with the higher levels (as higher as working with stuff like user32.dll etc can be anyway) but don't want to mess with the low level stuff (graphics, etc). I think ReactOS is still at a point before the "snowball effect" with its developer popularity.

> Also old software sometimes tends to include 16bit components that do not work yet with ReactOS.

Possibly some "new" software too? A few months ago on HN there was a thread about the "age" of various software, someone had mentioned that Visual C++ traces its lineage back to 1983's Microsoft C (written in pre-ANSI C and 16-bit x86 assembly for DOS), and I said I imagine they must've thrown that code out when rewriting it in C++ for Win32, but then someone from the VC++ team corrected me: a lot of that code is still in there.

Of course, 64-bit Windows doesn't support 16-bit programs, so I'm not sure if those parts are only still present on builds for 32-bit Windows, or if they're recompiled as 32-bit, or if they're run in a VM or kernel module.

I'm going to guess that some stuff might be there, if for no other reason than to support the bootup process for computers that use the classic BIOS which starts at 16bit real mode.

Although considering that 32bit Windows can still run 16bit code, i guess they also need to be able to compile the 16bit-to-32bit bridge code so this is probably another reason why the 16bit stuff exist.

> i ran Borland C++ Builder on it without major issues, beyond the GUI glitches i mentioned

To whom does the Borland C++ builder belong. Because I wonder if there will open a market to get old c++/pascal code running in ReactOS?

There is projects like lazarus and free pascal.

But if you can keep your legacy win32 stuff in a self contained ReacOS vm...

This will solve the enterprise problem of keeping legacy applications contained without win related licencing worries.

Also your long term support looks more promising with ReactOS compared to Win XP; But microsoft will still drag the bone along for a little longer if not indefinitely at a enterprise price, ofcourse.

> To whom does the Borland C++ builder belong.

Me, i bought it off ebay some time ago. Here is a blog post with some details: http://runtimeterror.com/blog/borland-c-builder.html

Note that i remembered wrong: BCB doesn't work out of the box, there is some issue with paths and such (i tried a few hours ago to install it in the latest version). I remember i solved it at the past, but i don't remember how i did it.

> Because I wonder if there will open a market to get old c++/pascal code running in ReactOS?

Well, if ReactOS is supposed to be Windows compatible it should be able to run that software without any explicit support for it since they work fine in Windows 10 (and as you say it is more likely they'll continue working on ReactOS than Windows - after all Wine can run today old 16bit software even on 64bit Linux, unlike Windows).

> But if you can keep your legacy win32 stuff in a self contained ReacOS vm...

Personally i prefer to run things natively because i often use those older tools for "real" work, mainly because of their speed (i write a game engine in C and Borland C++ 5.0 can compile the entire thing in less than a second). C++ Builder can also be very helpful to create a quick and dirty GUI for some C library (merging oldschool retro with bleeding edge, i modified GLEW to work with C++ Builder to create some tests for OpenGL 4.6 that was released a few days ago - being able to easily throw sliders, knobs and other widgets is neat).

Embarcadero was the company which made historically significant projects, like Turbo Pascal, downloadable quite a few years ago: http://edn.embarcadero.com/museum/

Sadly, this stopped around when they changed the name back to Borland and years before they split into "Borland" and "CodeGear". I wish they would release Delphi 1 at some point, but that never happened.

to be fair even on Windows 10 you still have refresh manually sometimes

My department will be adopting ReactOS as soon as is possible - the amount of issues being purposely built into newer versions* of Windows is borderline hilarious. If we could pay for using LTSB installations we would do so but for a smaller charity this is near impossible.

*When car manufacturers reach peak saturation with a given model they expand/consolidate their position by improving their product, NOT by making the consumer buying their car the product...!

What's the security situation? Is it safe to have ReactOS networked?

Well, on account there isnt really a working AD or SMB implementation, little printing support, and most NICs arent supported (also: no wireless at all), then I would say there is little attack surface :)

> little attack surface

Well, PCs had been suffering from viruses long before they got network adapters...

Yip, I remember a virus that hi-jack your bios to draw a flag of some country before every boot; this was in 1998/dos years. You were "sharing" games with your friend they downloaded from geocities... good times. To think a intel ME like vulnerability was already possible back then(if not more) for your bios.

Right now, it doesn't even have multiuser support.

I love ReactOS and what they're trying to accomplish. Every release keeps getting better. Weirdly though, it seems like every release is just one release away from me being able to fully switch to it.

One thing I wish would get fixed (though I understand why it hasn't been yet) is the USB boot option. Most of the physical devices I want to run it on lack a CD drive.

I think you can use Rufus to boot using the ISO file on a USB drive. I haven't been able to test it, but it says it supports ReactOS. http://rufus.akeo.ie/

No problem creating the ISO boot disk but did not boot on my burner 2014 intel i3 motherboard :-(

Still I'm glad someones working on this project and will keep hoping the USB support gets fixed in the future

What is so special and complicated in USB booting that needs special support?

The info on http://www.reactos.org/wiki/LiveUSB says "With current versions of ReactOS, USB support is not advanced enough to successfully boot, and ReactOS will crash when it begins loading system USB drivers." Bug here for example: https://jira.reactos.org/browse/CORE-7826

Need support for booting from the USB flash drive in the drivers. http://vgal.ru.com/

Can it run Doom?

Edit: Ok I'm impressed, apparently it can even run Doom III https://www.youtube.com/watch?v=rluGgjcXtEY

Doom most probably use a very superficial part of windows. Mainly, whatever is needed to put a framebuffer on screen. So although this is definitely a good news, it's not that impressive. Does it run MS Word or Visual Basic ?

Assuming you mean VB6, apparently yes but with some glitches:

(not my image and it is 3 years old so it might work better now)

Note that VB6 was released in 1998 and thus was expected to work on Windows 95/98 and NT4 (and Windows 2000 when it came out). It is kind of sad to see that ReactOS is not there yet...

My guess is that most of API is generally there, but the issues i mentioned elsewhere in this post with the region stuff cause the glitches. This looks like a simple thing to fix (i've implemented regions at the past in an experimental winsys i was writing on Linux [0] so i have a general idea of how they work) for someone with knowledge about ReactOS' graphics stack, so i suppose there are reasons it hasn't been fixed yet (maybe it relies on driver support and they plan to change the driver model? Just an assumption).

[0] https://i.imgur.com/v6NaqNW.png

> apparently it can even run Doom III

Can run? That was unplayable choppy. Guess it could be the machine though.

It's in a VM according to the comments on YouTube.

Does anybody have experience with using ReactOS for hosting e.g. videogame servers? I wanted to host the servers of a few old games in a vm (just for some friends), and I'd obviously much rather run ReactOS than some outdated Windows.

Wine would probably be worth a shot as well.

Kudos to ReactOS team! I've never used it in production, but I tried it several times during the years and I was always fascinated by the efforts made to improve this OS.

Would it make sense (understand: is it now stable and compatible enough) to use it as a development platform for Windows version of a software (supposing that we haven't any real Windows available)? Any experience with it?

I would be really interested in this use case.

Congrats for all this work through years!

The mingw cross toolchain works surprisingly well; pesign and msitools (living under the GNOME umbrella) can also be used to produce UI-less .msi installers through a (very) minimal Linux-native version of Wix called Wixl.

(I was one of the two original authors of msitools, taking care of porting Wine's msi DLLs to a POSIX environment. The other guy took care of making the API less Windows-like, ported .cab file support and wrote Wixl).

And if project using CMake then it's even better with MXE [1]. It's basically let you build toolchain with no effort by typing few commands and while I didn't test Wix it's perfectly capable of creating installer with CPack / NSIS.

Another option is to use AppVeyor CI + Microsoft's Vcpkg [2], it's also integrated with CMake and require no manual setup.

[1] http://mxe.cc/ [2] https://github.com/Microsoft/vcpkg

NSIS (imperative) is much inferior to MSI (declarative). MSI tracks each file's users and is able to automatically uninstall packages as well as rollback installs that fail in the mid of a transaction.

Thanks for the information. Now I have a reason to check Wix. Though so far NSIS worked well enough because we efficiently only have one component, all libraries needed just bundled inside and it's just 15-50MB in size.

And copies every installer somewhere into system directories... (and if you delete it, you cannot uninstall it without pointing to installer file)

I used ReactOS at the past for automated builds, command-line stuff generally work (almost) perfect. But using it for actual development might be a problem since the GUI bits tend to glitch out even with very old applications.

If I was trying to run a legacy Windows application, would I have more luck with ReactOS or linux/WINE?

I know both projects share a lot of code, so if one is better, why is that the case?

One major difference is that ReactOS uses windows drivers for your hardware.


And the livecd is just a 70MB zip file, interesting.

It does make me wonder where did the rest of the space in a Windows CD go to? I mean they needed a full cd for it and it wasn't even a live cd. And React OS should atleast have most of WinXP's features and yet is much smaller. What did microsoft use the rest of the space for?

Just because it shows an Explorer doesn’t mean it includes most WinXP features.

Device drivers: Driver.cab is 60MB. Localizations: LANG folder takes 100MB. .NET Framework: 41MB. Various migration tools to upgrade from Win95: 32MB.

MS windows ships with a lot more drivers, and translations, or one.

ReactOS ships with more translations than any Microsoft Windows. But translation does take much space, it's just text in RC files linked to binary files.

Lots of drivers, for one, and a lot more functionality (the live CD certainly doesn't do Active Directory!).

Plus, everything in the base system is in two copies, one for the boot environment and one for the installed version, similar to initramfs and RPMs for Linux.

Probably the same reasons why the Facebook App uses 3 times as much space as this whole OS: Legacy Code, Visualisations and using numerous libraries.

Libraries? What libraries does a Windows implementation use, except for the ones that it implements?

Resource storage (codecs, etc), software not necessarily built into the OS, and similar.

Roughly 20% of the space used in Windows’ exe’s and .dll’s is EXIF and similar metadata in image assets. It’s very wasteful.

They probably never tried to reduce the size.

This seems unlikely, but giving you the benefit of the doubt - is there some research on this?

Windows is Bloated, Thanks to Adobe’s Extensible Metadata Platform https://www.thurrott.com/windows/109962/windows-bloated-than...

Also previously discussed here: https://news.ycombinator.com/item?id=14192353

It turns out that the overall Windows bloat due to XMP tags amounts to something like 5MB.

Interesting, I missed the follow up, and had only read https://www.thurrott.com/wp-content/uploads/2017/04/Bloat-Gr...

This is not true, it's a much smaller percentage, negligible overall.

I can see that this is an awesome achievement but why would people, not involved in the project, choose to use it instead of other operating systems such as windows itself?

What are the differences between Windows and ReactOS?

There are mainly two. Firstly ReactOS is open source. Secondly ReactOS is Free. Also Windows (especially the newer versions) are known to monitor all your activity by default. So if you're concerned about your privacy or just don't want to share any personal info, we promise (and you can check our source code) that we don't track any of your data.

And it could be used for legacy software from what I've read.

"Monitor all your activity by default" is serious FUD here. There is some telemetry data collected and phoned home, but it's not like they're monitoring what websites you go to, what you write in your Word docs, etc.

Not contents but behaviour. They do monitor if you use Chrome or IE, if you use Excel and for how long, etc. This alone is powerful enough.

Last time I checked, Edge still sent all your keystrokes to Microsoft in plaintext and over HTTP (not HTTPS).

So yeah, they are (at least were) monitoring not only what sites you went to, but also what you typed into them.

Went looking for it just in case it's true and... nothing. There's a case of predictive text system in windows 10 which can query for suggestions (there's an option to disable it), but no keylogger either in edge or windows that I can find. And the predictive text didn't use HTTP.

Cannot confirm--what toolset did you use to determine this?

Can you provide a source / proof of that statement?

You should check more thoroughly, because that claim is complete bollocks.

I grew up with DOS and Windows, I have no interest whatsoever in moving to Linux; in fact I have an active disinterest in doing so, if for no other reason than the fact that all my software is for Windows. ReactOS is my main upgrade option, because I don't want to be tied into all of the Win10 nonsense.

On top of that, I have several old (XP-era) laptops which still boot, still can play my older games and get on the Internet, etc. They're not really capable of running even Win7. ReactOS allows me to run a newer OS on those old IBM battleaxes.

Damn! Are you saying that you won't buy a new PC, that is, condemning all the effort of Microsoft to sustain economical growth and, therefore, kill employment. I can't believe it, that is so against the current economical paradigm. :-)

Fair enough, I can appreciate that wanting to be able to continue older software a valid reason. Just to add that I've had good success running a vb6 application on WINE on Ubuntu.

Old Windows versions are not available from Microsoft (or at least not without some expensive special contracts). I see the main use case for ReactOS is running legacy software for which upgrades are not available or are not otherwise feasible.

One reason would be price. Another reason would be software compatibility. Many people praise Windows backwards compatibility, but that's not the case in my experience, a lot of poorly written software breaks with new Windows versions, so people forced to stay with XP. I'm not sure if ReactOS would have better compatibility, but it's a chance. Also some people just want to use free software for their own reasons.

I keep trying to use each version of ReactOS in order to run the Windows XP programs, I still need some of them. In 2017 I can't even buy Windows XP in Microsoft Store.

Do Win XP programs run yet?

They do on WINE on ubuntu anyway

Yes, that's right. I was wondering if they worked on ReactOS yet.

...for good reason? Technologies from XP are by now insecure and obsolete. Why would Microsoft sell XP still? Does Ford still sell 1998 F150's at their dealerships?

It's a fairly straightforward cost-benefit analysis. Some of us rely on software that would otherwise be too difficult or expensive to replace, software that only runs on Windows XP for a variety of reasons. In my case it's a device driver that interacts with a very expensive flow cytometer. We've taken other precautions in order to protect the computer, and we're reasonably confident we can operate it safely. The same goes for many, many other Windows XP or Windows XP Embedded installations, where it's basically treated like firmware and carefully walled off from the outside.

Does "VM it" work? I mean, there is PCI and USB-passthrough in qemu, so this might be an option, especially since VMs are easy to sandbox (easier than physical machines where someone might simply plug a cable in so he can watch YouTube, for example).

Mitigations only make sense in a cost-benefit analysis when there's a corresponding threat. Why would someone bother with watching YouTube on a junky old PC in a corner of the lab? It doesn't even have an audio card, let alone a modern web browser. Besides, it's on an isolated VLAN and monitored (and backed up) like a server, so anyone messing with its network connection will cause the equivalent "server down" alert in our NOC, not that it will do them much good: This particular lab is in a pretty remote location where network bandwidth is at a premium, so we block YouTube campus-wide.

Frankly, I'm only really worried about malware somehow sneaking aboard the thing, which is why it's on-network in the first place. I don't want people plugging flash drives into it. And fortunately, there are still antivirus products that support Windows XP, which keeps the riff-raff out.

There are a number of old software that won't work on modern versions of Windows and old versions are no longer maintained. Even "offline" use, e.g. in VirtualBox with no network access can be problematic; for example my XP installer comes with SP2, but it is no longer possible to download SP3 from Microsoft.

Having said that, ReactOS still needs quite a bit of work to cover that niche, in my opinion.

You can still get SP3 for Windows XP, but you have to download it directly from the Windows Update catalog:


Thanks a lot ! When I did a search, all the links would point to the old (deleted) pages.

Here we go! These folks are waisting thousands of hours making something that already exists.

You appear to be far too bothered what other people are doing with their own time. If they're not doing anything illegal or immoral, I fail to see the problem you have with this.

Well, I guess, the same could be said about FreeBSD vs. Linux (or, is it the other way around?)

Using a third party implementation of the Win32 API reminds me of vegan cheese. It's great in theory, but it's never quite good enough. You'll either end up giving up and eating real cheese (using Microsoft Windows) or use some other ingredient (a different software product that runs natively on your OS of choice).

Think about it more like a substitute ingredient which provides a vital service in a recipe, such binding (like egg). You need something for that purpose to complete the recipe, so it's eggs or some replacement.

There's lots of legacy software targeting win32 out there.

Slightly off topic but you mentioned it. There have been some great developments in vegan cheese, most notably Daiya. The first time I tried it at a restaurant I sent it back thinking they made a mistake by giving me dairy cheese.

Going back to the topic, I hope that ReactOS/Wine will sometime become a better Windows than Windows itself. (This, at least, is what was said about OS/2). In some ways it already is, I am sure.

I agree. Although "better" depends on opinion and usage. For some of my needs, such as developing for HoloLens, ReactOS has a long way to go. But for other things, such as solving Windows crackmes, ReactOS might be a good candidate.

This might be a good candidate for running my automation software in the future. I actually run it headless, but on Windows with a GUI for compatibility reasons with the way I wrote it (Visual Basic, WinForms, etc.). I was a little sad buying a Windows license for a single-app headless PC, and had to do a lot to mitigate unwanted Windows 10 behavior.

Why should I choose this over a Linux/Wine configuration? Maybe it is compatible with Windows drivers?

Yes, it is compatible with some older Windows drivers.

Is there any popular CI-testing service providing ReactOS as a build/test/deploy target? It would be interesting if someone like Travis or Appveyor could offer that.

I guess I should have bought a GeForce 9 series videocard instead of GeForce 10, as it's the last one having drivers for Windows XP. Might have worked with ReactOS.

Which Windows version are they emulating now?

It's not possible to say that precisely; the closest thing I could find is this: https://www.reactos.org/wiki/Missing_ReactOS_Functionality .

On the outdated page https://www.reactos.org/wiki/Version_Status you can see that Windows 2003 (the server version of XP) is a bit of a target.

Windows 2003 sp2

Will it ever be able to run Adobe Creative Cloud programs?

Don't see why not.

Does it run msys2?


Thank god, I was wondering what I'd replace Solaris with

I really despise this. These developers could give the world someone new, instead they clone exactly what they believe is evil.

The great thing about developers working on a project in their free time, is that they can choose anything they want. They're not constrained by what other people think they should be doing, despicable or otherwise.

Why do you think they believe ms to be evil, and why do you think it is their motivator ? There are practical reasons behind reactos : programs and drivers written for old windows versions are not compatible with newer ones.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact