Hacker News new | more | comments | ask | show | jobs | submit login
ReactOS, a 17-year quest for an open-source Windows, has a new release candidate (yahoo.com)
229 points by Fjolsvith on Dec 16, 2015 | hide | past | web | favorite | 174 comments

I've always been strangely fascinated by this project. I don't understand it. I appreciate the technical skill involved, and the amount of effort expended. But, I can't imagine working on it.

From my perspective, Windows is an inferior system to any UNIX-based system on almost every front. It has a very strong application ecosystem, but technically it's unpleasant to work on (for me). So, given that, if there's something I want an OS to do that Linux can't do, I would be motivated to work on making Linux able to do that thing so I could do that thing on an Open Source OS I enjoy using, rather than work on replicating Windows so I could do that thing on an open source OS I don't enjoy using.

But, it seems there are people who genuinely enjoy Windows more than Linux (or BSD), and are willing to work for 17 years in pursuit of being able to run an Open Source Windows version. I admire them for it, but still can't understand it.

- Written for thread based applications, not processes

- Asynchronous IO architecture only matched by Solaris

- Object based architecture

- OO ABI (more so with WinRT), besides the C one

- Allows C++ in kernel space

- Components as interoperability between applications

- User space driver model, specially nice for graphics drivers

- Pursues the mainframe ideas of safer languages for system and application's programming

- Powershell is closer to Xerox PARC REPLs than any UNIX shell, except for Mac OS X.

And what brought me back, after 10 years mostly in UNIX land, culture of using graphic based tools instead of a PDP-11 experience and desire to try new approaches to OS architecture.

> Powershell is closer to Xerox PARC REPLs than any UNIX shell, except for Mac OS X.

Which shell do you mean on OS X? I thought they just shipped with zsh or bash?

I had Apple Script and Swift Playgrounds on my mind as I typed it.

To see the overall architecture, the following block diagram I created for Wikipedia some time ago might be helpful:


Incidentally, it annoys the living snott out of me that I took the time to put a PNG version of this together, someone redoes the diagram as an SVG then someone loads it to commons and I don't get any credit!

Update: I speak too soon. The image viewer doesn't show it, but the main page does.

Quite nice. Have you though about adding the new WinRT changes?

I haven't been following :( do you have a good pointer to info?

> From my perspective, Windows is an inferior system to any UNIX-based system on almost every front.

The core architecture of Windows NT is actually pretty nice. Its chief architect, Dave Cutler, was one of the lead developers of VMS. I think Windows NT and VMS do IO much better than Unix/Linux - making the basic primitives asynchronous, and layering synchronous IO on top, instead of asynchronous IO being a fragile afterthought. However, Microsoft has (no doubt forced by backward compatibility) layered a lot of less than pleasant legacy cruft on top of this nice core.

That's an interesting point you make. I've not digged into NT, but is there some fork of linux that provides the same. I can think of GNU Mach, being a case of taking that to the extreme end (i.e: micro services making together a kernel).

I don't think GNU Mach in itself provides any IO facilities, as opposed to other layers on top (e.g. GNU Hurd). (And neither is a fork of Linux.) I'm not particularly familiar with Hurd, but I had a quick look at the Hurd Reference Manual, and it looks to me like the primary IO primitives are synchronous, and there are a couple of additional calls which provide some asynch support. This is different from the NT/VMS approach, in which the primitives are asynch, and synch is implemented by combining an asynch IO call with a wait for completion.

IMHO the nixes have a far superior CLI, but Windows' GUI is (at least pre-Metro, i.e. Win32 desktop) superior to the many disjoint alternatives that the Linux/BSD/OS X/Solaris/etc. world has. Instead of Qt, Gtk, and all the others, Windows just has Win32 and all apps have basically identical look-and-feel (except for those that go out of their way to reinvent the standard GUI elements, but in my experience this is much rarer on Windows) and it's relatively easy for them to interact.

(I've been writing Win32 apps for over a decade, so maybe I'm biased that way, but I definitely prefer (ba)sh over command.com/cmd.exe. My ideal environment would be a pre-Metro Windows GUI with a UNIX-based filesystem and command prompt...)

> Instead of Qt, Gtk, and all the others, Windows just has Win32

No, Windows has Qt, Gtk and all the others, too. Virtually any regular user Windows install has 2-5 Qt apps on it. And Windows has been infamous for apps reinventing standard UI elements with skinned monstrosities.

> And Windows has been infamous for apps reinventing standard UI elements with skinned monstrosities.

This becomes painfully obvious when you start working with any kind of GUI automation tools (e.g. AutoIt). I imagine users of screenreaders have similar issues.

It's been about 5 years since I was a regular Windows user, but I can't think of a single Qt app I used on a regular basis. Care to name some examples?

EA's Origin and TeamSpeak (-> most PC gamers), VLC (-> most young tech-savvy media consumers), various device bundled software like the stuff that comes with TomTom GPS, the LightScribe control panel, ... it just accumulates. Germany's official tax app is Qt so that's a whole country right there. Many HN users might use VirtualBox which is Qt. The new Radeon Control Panel is Qt, too, so anyone who buys an AMD graphics card and installs the drivers. Many slightly geeky users use qBitorrent ever since uTorrent turned bad. Lots of one-off mini apps such as game launchers and settings apps are often Qt. And lots of weird random stuff people use for specific interests ... knitting pattern software, kids edutainment apps, language course CD apps, scientific citation managers, IRC clients and other messengers (Telegram desktop is Qt), ...

This is before you get into pro apps like Mathematica or Maya (and half of Autodesk's other apps and Nuke and so on). Or not-pro but widely used and semigeeky stuff like Avidemux. Or Valve's video making tool for Source engine video games like TF2 used by game YouTubers and esports people.

Qt is a pretty common way to write GUI apps for Windows. Just go to any regularly used Windows PC with a 20-something user and I almost guarantee you will find a few qtcore DLLs.

Common is an exaggeration. You mentioned a handful of examples, most of which are either programmer/geek intended or niche (the LightScribe control panel? German's official tax app? language course CD apps? Virtualbox? scientific citation managers, etc?)...

The fact is a user can go for years without ever using one. And in the tens of millions of apps available for Windows, QT based ones make for less than 1/1000...

I don't really know why you seem to have an axe to grind here. My original assertion was that most Windows PCs used by regular consumers have copies of Qt on them, and I stand by that. How that happens is not hard to see across the examples I gave: Widely deployed hardware support software, widely used content client software, auxiliary roles in widely used entertainment software, software required by law to use by a decently-sized country population, software used in content creation of various kinds, software used by students and in the course of common hobbies ...

Yeah, a user can conceivably go for years without using one. By far most won't though, or will have Qt apps installed they don't use frequently.

Qt is an 800k developer ecosystem[1] -- do you think they all work on Wireshark? Most of them write Windows apps.

1 = https://youtu.be/sa2gS9GKG9Y

Edit: windows.com seems quite taken as well: https://blogs.windows.com/devices/2011/03/15/10-qt-use-cases...

>I don't really know why you seem to have an axe to grind here.

Not sure about the "axe to grind" thing -- I didn't call any names, and it kind of calls for people to see any kind of reply from me as further "aggression". I merely stated my opinion based on what I've seen 15+ years in IT (including using QT to write some KDE API based apps).

I believe I have a quite good understanding on where QT stands in the "commercial apps" landscape, and common isn't the word I'd use for it. Skype would be the biggest success story, if they still use it, and it looks quite different from the regular QT/Windows look (which is what we were discussing).

So, just by Skype alone sure, you'll find "most Windows PCs used by regular consumers have [a copy] of Qt on them", but that's not enough to call it common in my book. Most regular PC also have had Java applet SDK and even JREs, and one could cite a few apps using it, but few would call Swing "popular" in the desktop space.

As for Qt being a "800k developer ecosystem", a lot of them work on internal enterprise tools, automation software and stuff like that, which has been a traditional market for TrollTech and QT in past decades. Then there's always KDE of course too.

> As for Qt being a "800k developer ecosystem", a lot of them work on internal enterprise tools, automation software and stuff like that

Many of which run on Windows, FWIW.

Sure, but our original discussion, lost in the sands of time, was about UI libs and how "regular windows users" have lots of QT apps. In the enterprise all bets are off, and all kind of crap is used, including tons of Swing, Flex, old VB6 apps, etc.

In fact, as I've just checked it again to be sure, the whole initial point was a non starter, trying to paint Windows as equally fragmented, UI-wise, as Linux.

I'd say Windows is a bit more fragmented UI-wise than Linux, even if you remove Qt from the conversation entirely. There simply hasn't been a strong notion of "this is how a Windows app looks" since the, say, Win 98 days between multiple different generations of MS-blessed designs, the skin-heavy era and a myriad of toolkits. The classic "Windows app" design in my mind is Notepad, and few apps look like Notepad. I admittedly don't use Windows heavily, but the few apps I use occasionally inside a Windows VM or on the dual-booted Windows on my laptop all sport widely different UI appearance:

- iTunes (built on a port of some of Cocoa I think)

- Spotify (custom UX, also on Linux - using Qt - but I don't bother)

- Steam (custom UX, own toolkit - also on Linux)

- EA Origin (custom UX, made with Qt)

- KakaoTalk (custom UX, I think using a native toolkit though)

- LINE (similar to Kakao)

- Telegram (custom UX, built on Qt - actually this runs fine on Linux, but I keep it in the VM alongside KakaoTalk because it's the same use case)

- Firefox (custom UX, with native-ish theming by its own XUL toolkit grabbing stuff from Windows APIs)

- Chrome (custom UX, built on a custom toolkit called Aura with some Windows exceptions)

- Kodi (custom fullscreen UX)

All of these are apps with user numbers in the range of hundreds of thousands to tens of millions, and they're all unicorns. (You may never have heard of KakaoTalk or LINE, say, but both have 50+ million desktop installed bases.)

Some of the above (Telegram, Firefox, Chrome, Steam, Spotify) show up on Linux just the same, no better or worse. Outside of that, most apps people actually use on Linux:

- KDE/Qt apps, which import a lot of standard structure from kxmlgui and DE settings (e.g. dialog button order, standard dialogs) from Qt's QPA plugins

- Gnome apps, which follow a strongly defined HIG

- Non-Gnome GTK+ apps imitating the Win98-style HIG for the most part (which overlaps a fair bit with the kxmlgui standard structure)

Sure, there's a long tail of other toolkits on Linux (just as on Windows), but my argument is basically: Going by the most-used apps, Windows and Linux suffer this problem (if you consider it one) to a similar degree, but Windows slighly worse because outside the apps showing up on both platforms, the remaining popular Windows apps are more fragmented UX-wise than on Linux with its three broad categories.

Heck, Windows 10's bundled apps are fragmented UI-wise to a much greater degree than any competing offering due to the classic/Metro divide.

It's an utter mess. An interesting question is whether this messyness hasn't had some benefits (like allowing app designers to iterate and innovate individually, with no concern for following a system HIG, allowing the overall platform not to fall behind the curb). But arguing the mess isn't there is very strange to me.

I am a regular Windows user (split between OSX and Windows, actually, but Windows gets used on a daily basis) and I can't think of a single Qt app I use on a regular basis now. Actually, with my current workflow, I can't think of a Qt or GTK app that I use on a regular basis on either platform.

I guess Wireshark's Qt and it gets used occasionally. But most of the cross-platform Qt and GTK stuff I used to install (Pidgin and GIMP immediately come to mind) I haven't even installed on a machine in ages. I've moved to native alternatives for a lot of the stuff I run, and what cross-platform applications I do run (Chrome, Sublime, etc.) tend to implement UIs with the native toolkit, since that's a much better experience on non-Linux platforms.

Chrome uses Aura (http://dev.chromium.org/developers/design-documents/aura)

I'd also argue that Qt applications are still "native" in that they run as a native EXE (or ELF on nix). Granted they don't use Win32 APIs, but then calling them non-native because of that is a little like calling Windows OpenGL games non-native because they don't use Direct3D. But that's an aside point.

On the whole, I don't think it makes sense to categorise Windows desktop applications by what toolkit they use. MS Office 2003 didn't use Win32 toolbars. Office 2007 then introduced the ribbon bar, which changed in appearance in every subsequent release of MS Office. And even within MS Office, Microsoft doesn't always follow the same design patterns (Office 2007 used ribbon in Word and Excel but not in Outlook). Even outside of MS Office, some Windows applications in WinXP used different menu bars to the ones provided by the Win32 APIs (you can see by looking at whether menu items go 3D or just highlight when you hover over them). One example was the difference between Windows Explorer and Notepad. Plus often older Windows utilities go completely unaltered for years, eg the add font dialog box in XP was still using Windows 3.1 APIs: http://apagreekkeys.org/images/addFont1.jpg ....and this is all without discussing the disruption Metro has caused.

I will grant you that in spite of these criticisms, Windows still fairs better than Linux in terms of uniformity. But it's certainly not consistent enough to define anything that doesn't use Win32 widgets as non-native.

Skype might be the most popular.

Skype was written in Delphi originally.

Last time I checked Skype only used Qt on Linux.

Not a common app, but GOG Galaxy is built on Qt

Only if you ignore Powershell.

You can orchestrate scripts in FP style, similar to the REPLs in Xerox PARC workstations, access any .NET, DLL or COM API as if it was part of Powershell, manipulate data without parsing it all the time, interact with running applications via Windows APIs....

I've tried to adopt powershell, and here are the obstacles I encountered:

1) You can't write or run scripts "out of the box", you need to do a security incantation first. A oneoff hurdle, but right at the start of the learning curve.

2) Perhaps because of (1), it's not very dogfooded: on a UNIX system, there are lots of already-existing shell scripts sitting around as parts of the OS. PS is not so rich in examples.

3) If you do actually want to parse data, it's not very good at this.

4) I've not worked out how to save intermediate stages in a pipeline to persistent storage.

5) Hasn't yet developed much of a "user culture", although I think that will come eventually.

You can't run scripts out of the box on nix either: you either need to manually mark the script as executable or invoke the interpreter and pass it as a parameter.

Not saying that's a bad thing, just that we (as Unix folks) do things intuitively that we forgot we once not intuitive.

Totally agreed on 2 though 5 though.

What comes to mind by 4), is "tee", which powershell also has - but that's perhaps not what you want/mean ?

Almost, but not quite. Tee writes the pipeline to disk as text; you can't trivially take the written output and pipe it back in as objects. It's lost the magic.

Fair point. I believe you can use the Export-Clixml/Import-Clixml or ConvertTo-Xml/ConfertFrom-Xml for doing just that.

Regarding 1), at least it avoids the curl | sh => send $HOME to the world of current UNIX users.

I use windows for the GUI. Win8 is very battery friendly, heck it uses less battery then Linux in console mode.

To me the superiority of the windows GUI isn't really beauty or consistency (which with Windows 10 is basically gone, you have three styles in the same OS - Win 8, Win 7 and Win XP). And Windows has many other rough GUI edges.

To me the real superiority of the windows GUI is that almost all of the settings are accessible with a GUI. In Linux or MacOX you very quickly end up having to write some command lines or editing a text file. That's great for already experienced users or administrators running batches. But to the common user, discoverability and intuitiveness is crucial and you are not helping them with an OS they can't understand or control. One should be able to visually see the state of the system.

If CLI had auto-complete/intellisense features, the gap would be smaller.

Regedit is not "discoverable".

Arguably it's not that bad, you can visually go through sections / sub sections, which is an order of magnitude better than having to call individual keys with a command line. But I wouldn't call that a good GUI either.

>but Windows' GUI is [...] superior to [...] OS X

Hmm ...

If you think that an NOT USER CUSTOMIZABLE GUI is superior...

Some people (like me) have invested a lot of effort learning how to use Windows. Some of those aren't particularly interested in technical superiority. The just want to use a computer in the sufficiently good way that they already know. Personally, I find Linux difficult to approach, because of the overhead involved in just getting back to my current level of proficiency. If I needed to learn it for a job, I would. I might even do it independently, eventually.

It's similar to the dominance of QWERTY.

But even I would much sooner learn how to use linux, than embark on a crazy project like this.

Could you give your opinion on Win8/8.1/Metro/Modern ? How would you rate its effect on your proficiency?

My situation is almost identical to recursive. I upgraded to Windows 8, right when it came out. Hated the jarring dual interface. But the only thing I had to do was install Classic Shell[0]. And I was back to the familiar Windows. Practically nothing else changed from the UI perspective. The same with Windows 10 as well. I'm addicted to the Win32 based Start menu and the ability to right click files and folders from search results. So I installed Classic Shell over the new Metro based Start Menu and everything is back to normal again. Plus, I don't miss out on the speed and security improvements.

[0] http://classicshell.net/

Thanks. Does it totally kill metro? Everytime I work on a Win8 computer, I manage to do something that brings metro up (e.g, press the network icon in the notification area on the right, or press the "Windows" key on the keyboard), and start cursing ....

I'd say upgrade to 10, not as nice as 7, but way better than 8/8.1 ... just disable the two bing search options (they're annoying).

Also used ClassicShell on Win8.. if you lauch a metro app it will go metro mode.. but that's the only case.

It does not quite kill metro, but it hides it really well. Pressing the Windows key or the Start button gives you the Old school menu. If you want the new Metro Start screen on Windows 8.1 or the menu on Windows 10, you have to press Shift+Enter. So unless, you specifically or accidentally press Shift+Enter you will never see Metro again.

The only time I had to go to the Metro Start Menu was to find the Universal Apps like Mail and Edge browser. These don't show up on the Classic Shell results for some reason. Once I pinned them to the taskbar however, I haven't needed that Metro screen again.

> if there's something I want an OS to do that Linux can't do, I would be motivated to work on making Linux able to do that thing so I could do that thing on an Open Source OS I enjoy using, rather than work on replicating Windows so I could do that thing on an open source OS I don't enjoy using.

That's a great ethos, but it's not that Windows can do something Linux can't. If you want to play a game/use a CAD made only for windows, are you going to pour years into cloning it? Yeah, Linux has, at least, competent applications for almost every need, but sometimes what you want just isn't available.

ReactOS is shooting for the moon, but if it took off and got to an almost 100% windows-compatible state, I'd be glad to have an Open Source Windows.

If you want to run Windows applications on an Open Source OS, the Wine approach is much more realistic. It's also nicer because for everything that Linux can already do, you don't have to mimic Windows.

Anyway, desktop applications are not that relevant today, and most of those that are (like web browsers, developer tools) are cross-platform anyway.

ReactOS shares a lot of code with Wine. Mostly DLLs. Code flows both ways.

Even if you're never going to use ReactOS, it still helps make wine better.

IIRC, ReactOS is based on Wine anyway.

> Anyway, desktop applications are not that relevant today, and most of those that are (like web browsers, developer tools) are cross-platform anyway.

Yes, but PC games are very relevant. They are the entire reason I have a Windows machine at all.

Exactly. I have some apps that don't run on Linux, like Photoshop and at work the printer driver. It seems that ReactOS is much faster than XP running in Virtualbox, and if Photoshop and that printer driver work in ReactOS, then I'm all for it.

I hope this does provide a better user experience than Wine, because I've tried that, and after a while Photoshop breaks down somehow. Elements on the page disappear, file operations don't work and in the end it all stops. I want something that is stable, and I hope this works better than Wine, even if both share much code.

Below are the issues I face with Linux:

- Windows has better accessibility support. (Windows 10 has messed some of it up.)

- When there are issues, it is easy to find help with Windows than for Linux. Unless it is about a BSOD which are rare now.

- While there are many claims that Linux does not need a firewall, I do not agree. Setting up a firewall on Linux is a lot more challenging (newbie here) than on Windows. For example, on Windows, I can easily control which application can access the Internet using some paid firewall product.

- Finding replacement for Windows applications on Linux is a troublesome, especially given that most of them would have minor unadvertized issues like accessibility or some counter-intuitive thing with zero documentation.

Accessibility is an excellent reason to choose Windows, probably sufficient even on its own, if you need an accessible system. Accessibility is hard, and requires a ton of resources to do well...Microsoft has been willing and able to expend those resources. I do know users who require assistive technologies to work who use Linux, but it's rare and they're extremely technically savvy themselves (usually software developers).

As for finding help, I usually find it's the opposite, or at least the kind of help I find for Windows is often very cargo cultish. e.g. "I did these fifteen mysterious steps, and my problem when away. I think that's what fixed it." I feel much more in command of the system with Linux. This is, admittedly, at least as much my own depth of knowledge. I've been building products for Linux for two decades, including kernel development, patching system libraries and services, etc. I actually understand Linux systems on a pretty deep level; I don't understand Windows systems, beyond the GUI.

Firewall? Meh. The default firewall on a Fedora system is fine. There are tons of free tools for managing the iptables firewall (and firewalld simplifies management at the expense of flexibility). I never use a UI, though, as it's pretty easy to use once you understand the basic concepts. But, a firewall isn't really the most important part of securing a system.

Application replacements could definitely be an issue, with regard to accessibility. I am more comfortable with Linux options because of familiarity. I'm less productive with the "leading" applications than I am with their Open Source competition in almost every instance. Inkscape is easier for me than Illustrator, Gimp easier than Photoshop, but again it is due to extreme familiarity. Over a decade of use vs. occasional forays into the Adobe products because a designer I'd hired wanted to go back and forth on designs and was using Adobe products.

Sometimes ease of use is just another way of saying "What I'm used to". I'm just much more used to Linux. I used Windows full time for a little under a year after switching from Amiga in 1995, then switched to Linux, and have been using Linux almost exclusively ever since...I have a Windows partition for games and audio recording. Of course, I've been using it almost exclusively all that time because I strongly prefer it and always have, even when it was really rough around the edges and patching and compiling kernels was just a normal part of being a Linux user. I don't miss those days, but the strength of UNIX/Linux over Windows (to me) stood out even then and even with all of the warts.

> The default firewall on a Fedora system is fine

It really isn't.

Try blocking one particular program from accessing the Internet. You'll end-up messing around with assigning programs to group ownership and then adding ip tables rules.

Linux-Android goes all the way and sandboxes programs which makes firewalling easier. But desktop Linux is far behind.

> While there are many claims that Linux does not need a firewall, I do not agree.

Aren't the claims more like "you shouldn't run the firewall on the same machine that you want to be firewalled"?

I know that programs like Windows Firewall or Little Snitch (OSX) are good enough for most stuff, but when they're not good enough you're going to regret not having a seperate firewall.

A local firewall can be set up along with an external firewall. Having a firewall only somewhere on a separate machine doesn't address the use-case alok-g described - he (and many others including myself) may want to "easily control which application can access the Internet".

I vehemetly disagree wrg. to firewalls and a11y.

Gnome-Shell (default on fedora et al.) has since the GNOME projects 2.x release had _stellar_ accessability support.

Firewall? you fail to mention what you'd block. there are ease of use projects shipping per default such as UFW. But since it's uncommon in the post-inetd era to have services running and exposed publicly, i fail to see the usecase.

bsods? uncommon? i have four baytrail tablets that spew forth a bluescreen once a day.

"From my perspective, Windows is an inferior system to any UNIX-based system on almost every front. It has a very strong application ecosystem, but technically it's unpleasant to work on"

I suppose this depends on the workflow. Powershell is just as powerfull for me as bash (I can't help to learn the syntax for either of them - I just google the expression for iterating a command over files and whatnot)

I start applications with a shortcut - on windows this is windows key + plus a few starting letters of the application name.

That's about all I need from the OS.

"if there's something I want an OS to do that Linux can't do, I would be motivated to work on making Linux able to do that thing so I could do that thing on an Open Source OS I enjoy using,"

This might be the main difference- for me the OS is just an underlying substrate to support my programs I want to run and develop. For third party apps - once I'm in the application the OS pretty much fades into the background unless there is a problem - and quite a lot of the code I write is pretty much platform agnostic.

The main point of the OS for me then is, how much of it works unobtrusively out of the box. And since windows comes in the box for off the shelf hardware it's the easiest for me.

I did do dual boots in the past but now I don't see the point anymore for desktop use. For some document batch runs I've not yet found equivalent for windows world for so for those I see the value for a virtual machine. My NAS box runs linux and it's pretty sweet.

So are there anything that actually locks me on windows? Visual studio is really, really nice for C++ development and that alone would be a sufficient reason for me to run windows. And then comes the sweet, sweet surface pro with its fantastic pen - basically, that combined with Manga Studio takes me to a place of digital art bliss (no, I'm not a paid advertisement - I've used digitizers for two decades and drawn all my life I know what I like - even if just for a hobby).

That said, I don't trust proprietary stuff for anything of value - i.e. data and programs which I would like to be able to run always - but the windows platform offers currently the best platform for the creative activities - coding and art - that I do at home.

You're confusing the OS with the UI. This is sadly commonplace.

Sorry, did you answer to a wrong message? I don't know how your response applies to my message.

Sorry indeed — it does indeed seem I answered the wrong comment. My apologies both for that and for the delayed response.

Personally, I strongly prefer Unixoid systems, too.

But in my day job, I am a Windows admin (and helpdesk monkey). If there was a system that is both free software and binary compatible with Windows, that would be pretty nice, if only to give Microsoft some competition.

And on the corporate desktop, Windows totally and utterly dominates. Replacing it is next to impossible, because most of the applications (at least in our case) are not available for other systems. So a free software-alternative that maintains compatibility would be really nice.

(Of course, ReactOS is aiming for XP-compatibility, so even if they reach 100% compatibility, they still have a long way to go...)

ReactOS aims to be compatible with Windows 2003 only on the kernel level. Compatibility on the user-space level is not restricted to that.

That's good to know. Thanks!

Windows can run an executable with a GUI interface compiled for 32-bit Windows over 20 years ago...

Though it's far from perfect, Windows has a better binary compatibility record than ANY other OS for far longer periods of time. There is something to be said for that. It's only recently (for 64-bit windows) that DOS support (ntvdm) has been unavailable.

At the user experience level, you're certainly correct.

However, as a sibling comment notes, Linux has also preserved binary compatibility (at the kernel level) for a similar amount of time (of course as long as neither of them break compatibility then Windows will have the numerical edge as it's slightly older).

So the question becomes, why is compatibility so apparently good on Windows and so apparently bad on Linux? I feel it's to do with a culture of dynamic linking and compiling your own software. A statically linked X11 application from 15 years ago will, as far as I can tell, run fine on Linux - it's just that such things are rare. You're far more likely to come across either a dynamically linked binary, or a source tree. This seems to be reflected in source code compatibility, which is better in Linux.

But the core libraries used in Windows aren't statically compiled... they're dynamically linked, and work across windows versions for decades. I regularly have several applications I need to re-install, or correct configurations for after doing maintenance updates in Linux. In windows, usually only system utilities (A/V) are broken between major version upgrades.

There really isn't a comparison, but it does have value to a lot of people. I don't mind so much, but there's enough people that do. I've helped many people over the years switch away from windows, and half of those switched back to windows within a year.

Don't get me wrong, I really like Linux... but stability for the standard atypical end user isn't very good at all.

The standard on Windows is to toss a bunch of .dlls in with your distribution. Linux uses package managers and tries to avoid multiple copies of shared libraries.

I don't remember seeing kernel32.dll or system32.dll or a lot of others in any software distribution (outside windows itself).

    > Windows can run an executable with a GUI interface compiled for 32-bit Windows over 20 years ago...
Linux can also run really old code that is 16-17+ years old: Loki Software games ports from 1998-1999. Though there just no need for average user to run anything that old so it's usually not available out of box.

I barely notice the difference between Linux and Windows these days. A lot of that has to do with having a common scripting language between the two.

Is there a common scripting language that they both speak natively?

I am not sure what "natively" means. I use Tcl because it's a conservative choice; very nearly any of the usual suspects will run on both. There are of course many small and irritating differences.

This is one OS I've kept my eye on forever, though it feels as though Microsoft will go open source before ReactOS can catch up if anything. I wouldn't mind if certain parts of Windows were open sourced, or replaced by open sourced alternatives at least, not all of Windows. We saw this happen to the Open Live Writer.

Microsoft already kinda went open source, unintentionally :) http://www.opennt.net/

interesting thread documenting start of OpenNT project http://www.betaarchive.com/forum/viewtopic.php?f=61&t=33250 from broken code base that would not compile to booting ~Windows 2003 compiled from source.

Avast gives me a Win32Evo Trojan warning when downloading NT 4.5 binary or ISO images. Is it a false positive or did they accidentally introduce a Trojan into the code?

Anyway Avast won't let me download NT 4.5 due to a Trojan warning. So I can't test it out unless I disabled my AV.

Edit: Why the downvote, scan it with Avast yourself if you don't believe me. I refuse to use it unless it is verified to not have a Trojan. Even if it might be a false positive.

Antiviruses are useless and you probably shouldn't be using one in 2015. Run the ISO in a VM if you don't trust it. (I didn't downvote you.)

They do this for "cracks" and "warez". I have a remote desktop licensing reset program and it flags it as a virus when it isn't.

oh, you might want to brush up on state of the art in security practices

https://www.youtube.com/watch?v=8Z7L498dNB0 https://www.youtube.com/watch?v=DzC8jJ0ESJ0

its trivial to bypass every single scanner on the market, at this point they are all snake oil

The NT 4.0 source code leak was in 1999 or so. How did it take so long for a compilation project to get underway?

I wouldn't go anywhere near that. Not worth getting legally tainted.

What's the license of that?

The license seems to be "very illegal", as this is a fork of the NT4 source code leak.

Interesting, I didn't know about OpenNT. Do you happen to know why they based it on the leaded NT4 source instead of the leaked win2k one?

The leaked win2k was very incomplete.

ReactOS may be the best WinXP-like alternative in existence. That counts for something... Not a huge amount, but something.

It seems to me like Microsoft is trying to position themselves more as a Google-type entity. In the past, they were a massive proprietary corporation focused on Windows.

Nobody cares about computers anymore (thanks smartphones, tablets!), and so Windows will go down the drain eventually. Not to mention Linux and OSX market share increasing. Not today, not tomorrow, but the writing's on the wall.

Open source to get devs on board again, switch to subscription-based models, record more user data, and create more products.

> Nobody cares about computers anymore

You know, it was annoying when people started to say those computers you carry with yourself the entire day were not "personal computers".

Now you are trying to say they are not even "computers"! I just hope the world ignores your labels.

Every label gets stuck to its progenitor. The first things that we owned that were computers get called computers. The second set of things we own, that are also computers, but have some other defining qualities, get called something else to distinguish them from the first thing.

I'm perfectly ok with naming them "telephones", or "smartphones". As I'm quite ok with naming those older ones "desktops" and "laptops".

I find the name "PC" for distinguishing desktops/laptops from phones/tablets mildly annoying, and very amusing because of how badly the name fits its meaning. But yes, there is a need to differentiate open computers from locked-down computers, and from that point of view the name isn't that bad anymore.

Now, there's no need at all to assign the label "computer" to any form-factor. We have plenty of label already, and that would make a huge mess on communications.

I call it "the super computer in my pocket", but that label doesn't seem to be catching on.

> Nobody cares about computers anymore (thanks smartphones, tablets!), and so Windows will go down the drain eventually

Not holding my breath for that.

Agree, but with a disclaimer: I have a feeling the biggest part of Windows' marketshare 20 years from now will be Windows Server Core instances (running on Azure and elsewhere), with "Windows as PC software" no longer contributing much-at-all to the bottom line, and possibly made entirely free. Business workstations (everything currently running Windows Enterprise) will run something-or-other-that-doesn't-matter that can run Microsoft Remote Desktop, and apps will mostly be delivered via RemoteApp connections to said Windows Server Core clusters.

Microsoft is becoming a cloud company, and enterprises are finally starting to accept thin clients (because now thin clients are actually kind of fat, and thus much less annoying to use.) Windows-on-the-desktop will basically be in a race against ChromeOS, which is fundamentally a thin-client OS as well.

(Meanwhile, OSX will probably... continue to just be OSX. Unless Apple has some big new shift in vision, they're nowhere near being a cloud company, and OSX is nowhere near being a thin-client OS.)

Apple is a hardware company, too.

They kind of have to be. They forbid using their OSes on non-Apple hardware.

Desktop use is shrinking compared to alternatives --- especially mobile. In developing countries, many people use smartphones as their only form of access to the internet.

People aren't saying that desktops etc are going to disappear, but that the cash cow in the next decade is probably going to have a much smaller form factor and a different OS from your traditional desktop.

This is exactly what I was trying to say, thank you.

Wait....are you telling me that used a computer today? And the day before that? And the day before...

Ah, you're probably behind the times and not very techy anyway.

I'm using a computer right now. I use a cellphone when I'm out, and use a tablet in bed/on the couch. I use a laptop when not home.

I use my computer to stream games on TwitchTV. I also run a Linux VM on my personal computer to run caffe for neural net things. Let's see your tablet do that...

Tablets are computers.

Computer + X = Computer

Computer + teletype = Computer

Computer + VDU = Computer

Computer + Mouse = Computer

Computer + Ethernet = Computer

Computer + Phone = Computer

Computer platforms devour the peripherals mated to them.

BTW The Limbo PC emulator on Android is capable of running a minimal Linux distro and there are MS DOS emulators for iOS. It's just a matter of time.

BRB, installing vmware on my Win8 tablet.

It still won't run caffe because you don't have a powerful GPU to train neural nets on

> Nobody cares about computers anymore

You're not in touch with reality at all

I think the comment to which you were responding was both thoughtful and, yes, provocative. You took the bait, but you didn't add anything of substance. Do you think that attributing some of the shift in how computing is done to tablets/smartphones is "not in touch with reality"? Because if you can show some data or link to other arguments, that would be really interesting. If not, why post?

The parent post didn't say anything thoughtful. The same spiel about Windows going down the drain has been repeated for years. People not using computers is just mindlessly repeated these days.

You're asking me to provide data or links to other arguments but the initial statement provided neither.

Why did you call my comment out but not the other two similar responses to the same line?

I could say that you proved my comment to provocative and took the bait but then we'll spiral into comment hell.

I replied to your post because I saw it first. Had I seen the others at the time, I might have just moved on.

What I understand when people say the PC is dying is not that people will not touch a desktop or laptop at all in the foreseeable future but rather that the growth in sales will be much sharpernwith phones and tabletsbthan with desktop and laptop devices. They're not making broad, futuristic predictions. They're just trying to make sense of the market. The fact that Apple released a whole line of iPads kindnof shows this. That is just my opinio though.

Moore's Law is slowing down, and PCs and laptops are having longer effective lifetimes. I've got an eight year old laptop that's still serviceable - actually runs better with Windows 10 than it did with the Vista that came on it. It's not obsolescence every eighteen months any more. That's where phones are now. In a few years, they'll mature, and it'll be how VR goggles or the next gewgaw are killing the PC. Meanwhile PCs will still be there anywhere actual work and creation needs to happen.

Or maybe I'm a prematurely old man, who's looking for kids to yell at about getting off his lawn. But I haven't found a use for tablets other than watching TV or reading, and I can't even really do those functions on a phone. Much less use a phone as a phone. What percentage of smartphones are primarily used as uber-expensive, complicated digital watches or alarm clocks?

Which is exactly the point I (the parent comment of this thread) was trying to make: The desktop/laptop (which I described using the term computer in my original post) market is declining. Not because they aren't used anymore, but because I don't need to replace them anymore.

You do realize that that's a totally different argument that "nobody cares about computers anymore".

The market doesn't care anymore about getting the hot new computer. They care about the new, shinier gadgets. I don't think it's a different argument.

It is. In one we have "the market" as the one who cares or not. On the other we have "the people".

The people will continue to care for and use computers, even if the hot new market is something else.

Fair enough. I didn't meant to start a "thing" with my comment but thought maybe it would make you explain what you meant. I'll word my comments better in future.

Windows is complex enough that I think so. I am thinking of breaking up Microsoft's OS division into a non-profit foundation, funded by hardware vendors like Dell and Intel with no per system licensing fees required anymore for example.

The DOJ wanted to break Microsoft up into different companies like they did to AT&T. They would have been called the Baby Bills, and one would do Windows all by itself, and another would do Internet sites and apps, and another games, and another apps, and another developer tools.

But that didn't happen and Microsoft got a slap on the wrist instead.

Many people migrated to GNU/Linux or Mac because Microsoft had abused their monopoly, some people and companies are stuck with Microsoft because their business needs Windows to run their custom apps.

    Many people migrated to GNU/Linux or Mac because
    Microsoft had abused their monopoly, some people
    and companies are stuck with Microsoft because
    their business needs Windows to run their custom
Citation needed. I migrated to Mac OS X in 2000[1] because it was a Unix-like operating system with a usable UI that worked well on a laptop[2].

Also, there were to be two companies, not five[3].

Of course, I might be biased because I worked for Microsoft for four years in the 00's. So take this for what you will.

[1] Yes, the public beta.

[2] OK, let's be honest, it worked tolerably. It didn't get good until 10.2'ish.

[3] http://money.cnn.com/2000/06/07/technology/microsoft_ruling/

How can I cite thoughts in people's heads? Their opinions on why they switched? Apple did a series of commercials about switching to Macs and cited the problems in Windows. The FOSS community has been promoting GNU/Linux as an alternative to Windows for a long time now. This is common sense stuff that I shouldn't have to find a news media source on, because the news media doesn't cover that sort of stuff.

Most business software is written for Windows, some businesses develop their own custom apps or use Excel and MS-Office. So it isn't easy to migrate from Windows to GNU/Linux for them. I know this from experience as I worked at places like that. It is stuff that the news media won't report on, the business lock-in and when you Google Windows business lock in you get Windows apps for Business results so you can't find anything about the lock-in.

But back on topic ReactOS doesn't run the business apps a lot of companies rely on, so it isn't a good alternative to Windows yet for them.

ReactOS is for hobbyists right now because it is still in the alpha stage and not ready for Prime Time yet.

Edit: Typo

    How can I cite thoughts in people's heads?
    Their opinions on why they switched?
NPD[1] often does research on consumer technology choices. I would've checked there for starters.

[1] https://www.npd.com/wps/portal/npd/us/home/

Yes, it is common sense stuff, but the point is that many switched not because of the famous MS anti-trust rulings as you implied in the original post.

I know, and simply breaking up the OS division the traditional way would not solve the problems anyway. That is why I suggested a better idea this time.

You designed... what?

Generous of you. What about the effect on pension funds that hold this now worthless stock? Grants to employees? The thousands of job losses?

Yea, it would be complex and have to be planned carefully too.

I love this reply. It made me smile

As someone working on digital and physical security for human rights defenders in the field, I've followed this project closely. I would love to have a version of TAILS which had the Windows friendly attributes of ReactOS. Unfortunately, far too often the people most at risk just cannot really make the leap to a Linux based system, so a free, locked down version of something like ReactOS mixed with many of TAILS features, would be awesome. I know TAILS have tried to mirror some of the visual features but realistically it will never be the same.

A serious question: When will we see a truly new OS built from the ground up? If there is a space where there seems to be little innovation it is in the space of new OS paradigms. Flavors of Windows or Linux - are there really any commercially ready alternatives today or in the very near future?

New operating systems are still being created. Barrelfish[0] for example is quite promising. The "commercially ready" part is much more challenging.

[0] http://www.barrelfish.org/

Genode has commercial support: http://genode.org/

Haiku comes to mind. It's an open source reimplementation of BeOS. Unfortunately it's still alpha like ReactOS.

Serious OS research has tended to get stuck in academia and research labs for the past ~20 years; probably something to do with the worse-is-better pricnciple. L4 [1] has managed to sneak into a lot of phones in basebands and "security processors", though.

[1] http://www.l4hq.org/

The last successful launch of a "new" operating system was maybe iOS? Whereas there are plenty of expensively developed commercial failures littering the path.

A serious problem: who would pay for the development of a new OS, or sink a very large chunk of free time into it? What properties would it have that could not be achieved starting from one of the POSIX OSs? Who would port all the apps? Why would people - end users - adopt it?

How about an operating system that doesn't execute native code directly anymore. No Segfaults. All programs live in the same VM space.

It's pretty much dead now, but Microsoft Research had a project called Singularity (http://research.microsoft.com/en-us/projects/singularity/). It's an entire OS implemented in Spec#, which is a subset of C# + Code Contracts. It was built so that contracts between programs could be statically verified when compiled, allowing applications to all run in the kernel's address space.

Isn't that kind of what Android does?

Well, if the JVM was the basic layer of the operating system, then yes. But really it's some form of Linux, there's a lot of native code running, system calls, user and kernel mode etc. Apps can use native code too.

Ok, played with it in a virtual machine. Good to see they are making progress.

My experience so far from today's experiment run, .. it still is quite unstable, saw several BSODs (about 7 of them varying from processor locked to the real blue screen) Most of the times I lost data during the crash. Files disappearing etc.. Good part is that it reboots really fast.

VMware Tools installed -albeit complaining- and I could use VMware shared folders which was convenient.

Of course this is a release candidate and we are not at 1.0 so stability really isn't a promise. If they manage to get it more stable then it is starting to become usable.

ReactOS may be impressive from a technical standpoint, but judging from the release candidate its still got a long way to go in terms of stability. While I was able to install it after puzzling over the correct hardware options, it still hanged during installing drivers at boot.

ReactOS runs best in a virtual machine. Running it on bare iron is risky. Driver support is limited and they are still working on it. For example they just added Wifi support and printing support.

I donated to their Indiegogo campaign to get the community edition developed, that campaign allowed them to hire developers to get to the 0.40 mile stone.

Isn't one of the goals behind ReactOS that you can "simply" use the large existing base of Windows drivers on it?

That's the aim, but the circle of developers working on it is not that wide and even at the level of Windows 2003 (the project's compatibility aim) there already was a pretty large surface of binary compatibility to be covered. Many drivers already work, but many do not yet (because hey, it's not even in beta stage yet).

Quixotic is a characteristic I appreciate more and more in software projects as I get older, as my own efforts seem to increasingly tilt at windmills.

At this point, I wonder whether it wouldn't be easier to bundle linux and wine together.

Wine is a mess, to be honest. It's amazing in that it gets Windows applications to work on Linux. The first time I tried that, I was amazed and so very very grateful as I made a full switch to Linux one day without looking back (too-much).

But from a usability perspective, it seems to still be a "second-class" citizen in the Linux world for lack of a better way to phrase it.

Some applications create a separate set of "windows" folders, so interoperability between them is a pain. Click and drag support, just doesn't work properly. The folder structure thing seems to be really jarring for me, as I figured it would be as easy to use as Cygwin's folders on Windows, but somehow isn't.

Any who, it's not a perfect or exhaustive criticism, but Wine is still not a good "drop-in" replacement, even if it does amazing things.

What if you want to run vendor provided Windows-only binary drives for some weird hardware?

ReactOS attempts to implement the driver interfaces as well.


Those 0.1% of the users are likely going to have to buy Windows. After 17 years of development, ReactOS is not really usable with mainstream hardware, so it is unlikely to be a solution for weird hardware.

"it is unlikely to be a solution for weird hardware"

But it's there for the taking and tweaking! It's the same as you solve your own problems in the *nix world, but it's for the cases where you really don't have any other solution but but to work with the hardware vendor's black-box provided driver. BTW, don't expect that buying Windows will solve your problems (because Microsoft seems to have acquired a taste for moving fast and breaking things lately).

I've thought this as well. I agree there's value in aiming too-high, but the amount of effort which has gone into ReactOS would have served Wine really well.

There's a ton of shared code between Wine and ReactOS. They are rather complementary.

Only 5%

One is an operating system and the other is a Win32 compatibility layer for *nix. I'd say 5% is a lot.

"the amount of effort which has gone into ReactOS would have served Wine really well"

That may be partly true. Partly, because you falsely assume that anyone contributing to ReactOS would contribute to Wine. These cover common technical ground (of Windows application binary support), but from different ideological prospectives.

The converse is true also.

An OEM Windows 7 disc is under $50 at Amazon now (down from $80 which is what I paid a couple of months ago). At a certain point, why not just buy the real thing and not have to fuss so much about compatibility? Almost every recent Mac can bootcamp Windows now, and Linux can also dual-boot, or else maybe install it to VirtualBox.

That's also why I've stopped updating my Crossover for $40 every year or two. Basic laptops and desktop boxes are so cheap these days that it becomes a question of whether your time is worth fussing around with compatibility software.

The reason I like R rather than Stata (actually, there are many, but the initial reason) is that I can run R on as many computers as I have access to simultaneously without worrying about license compliance.

When I submit 1,000 jobs to a compute cluster to process genotyping, I don't worry that I'm violating a license.

When I sold my business that used R as a core tool, I didn't worry that I had enough licenses.

I think that is a valuable reason to actively prefer free as in beer and free as in liberty over even inexpensive but proprietary.

I'm not sure it's entirely clear what you can use an OEM Windows disk for. Isn't that just for new hardware? And that's at least 50/vm if I understand things. The thing to compare reactOS to is probably a datacenter licensed copy of Windows server. Productivity applications will (mostly) run in Wine - I don't think anyone expects ReactOS to be a viable alternative to bare-metal Windows install for gaming.

Exactly. The Windows "OEM" or "System Builder" edition is only valid for computers that are sold on to the final end user. They aren't legal for personal use by the original purchaser. [1]

[1] = http://www.howtogeek.com/197232/microsoft-is-misleading-cons...

Interesting. I bought Windows 8 System Builder and used the "Personal Use License". Some point thereafter I upgraded to Windows 8.1. I'm sure I agreed to the new terms of use (after all, I wanted to get back to my computer), and was suddenly breaking the license.


Can't you sell yourself the system? The OEM edition is intended for system builders, and you have to provide the device drivers separately, but that seems to be the only difference between the home/business distro and the OEM one.

Microsoft is dragging its users into the cloud. Something like ReactOS would let people live within the Microsoft environment without the baggage of the cloud. A personal computer rather than a glorified cloud terminal.

Just a personal thing, but I'd pay extra to run the one or two windows applications on linux rather install windows. Just because of system maintenance, security, licensing, privacy, etc. reasons.

Even if it was $200, you get about as much mileage out of a single-machine license for Windows as you would out of, say, a hard drive or a video card, and you don't see anyone complaining about having to pay for those. I think people even understand that most of the price for those items goes toward paying employees and keeping the lights on, not physically building the device. What gives, people? What gives?

Well. I OWN the video card. Until the licence purchaser have more rights over what to do with the software and resell it, it is not worth the money.

Also my video card don't have 6 screens of privacy settings that I need to turn off at first boot.

OEM pricing only applies if you have receipts for desktop components. To put Windows in a VM costs a good bit more.

Grey market keys can be had for way less than that, if you are comfortable with grey markets -- where keys being provided to countries being charged way less are resold to consumers in other countries.

Windows 10 was offered for free (as upgrade) and there was a good reason why that cookie was free! I don't want it for the same reasons.

If ReactOS provides a Windows 98/ME like interface and icons and rest of the UI/UX, I would definitely donate to the project and will install it on one of my home computers. I love when software reminds me of my childhood. :)

I think ReactOS is still targeting XP/2003? The way things are going, Microsoft may open source Windows before ReactOS catches up, likely with a more permissive license.

Applications are open for YC Summer 2019

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