Ramblings of a software developer

Sunday, October 12, 2008

ReactOS -- some thoughts

ReactOS (homepage) is a very interesting project to me. It is billed on their website as a free replacement for Windows, and they're aiming at being 100% binary compatible with Microsoft Windows.

Now, I've been a die-hard Linux user for about 12 years now, and I've seen the technology for Linux get better and better. If ReactOS became a viable operating system, I'm not sure what I'd do, however. It currently seems inconceivable that I would switch away from Linux currently, but in the future...?

First, I should share the reasons why I became a Linux user in the first place, and why it stuck. Way back in the dark ages (mid 1990s or so), I was in school. Music school, to be precise. I had heard that the university's Unix servers had a C compiler you could use for free, which was rather cool in my book. I wanted to learn C (I don't remember how I had originally heard of C or why I wanted to learn it, oh well!), so I did some telnetting in to the Unix servers for a while.

That became a pain all too quickly. Only being able to do stuff from the command line became really inconvenient. I was kind of stuck, though. As a poor (and cheap) college student, I didn't want to fork out the cash for a compiler for Windows (there weren't any free ones at the time). And I couldn't justify it either, since I was a music major, not a computer science major.

Then I heard about this Unix-like operating system called Linux that you could run on a PC. On a PC! Way too cool. And hey, guess what else? You could download it off the internet for free! And yes, that means a free C (and C++) compiler.

But, how did I install the thing? 'Twas a sticking point. So I eventually learned about partitioning hard drives, dual booting, and a slew of other stuff that most computer users don't get into (and wonder what insanity would drive someone to it :-). And then, after playing around with Linux for a while, I learned about the Free Software philosophy and all about this community that develops software not for a paycheck, but out of love for the craft.

That was ages ago. Now my PC is a single-boot Linux box with Kubuntu installed, and when I need to run a Windows application (which is rare), I run Windows in a virtual machine.

OK, so... How does this all relate to ReactOS?
Well, Linux is arguably weaker on some things than Windows is. Lack of driver support for peripherals is the main one. Application support is really not an argument anymore as far as general purpose applications go, but usually the default platform for developers to develop for is Windows, so Linux is arguably behind on that front too.

So why not switch back to Windows? After all, Windows has all the driver support and applications you can shake a stick at, and it now has free C/C++ compilers too :-). Answer: draconian EULAs. I recently moved my Windows installation from a hard drive to a virtual machine. Seems simple, right? I should be able to do something like this without the DRM police coming after me. Right?

Wrong. I had to call Microsoft to reactivate my software. Until I called them to talk to an automated service to reactivate, I couldn't use the software I had paid good money for because it decided I might be a pirate. Guilty until proven innocent.

Enter ReactOS. It's released under the GNU GPL (same as Linux), so there are no licensing restrictions on what I can do with the software. Nice. When this project is mature, I can only imagine what I could do with it. I envision a dual boot machine where on each side a virtual machine runs the other OS--virtual ReactOS on Linux, and virtual Linux on ReactOS. Maybe install a copy on my laptop too. Since I don't have to pay for each copy I install, I could do this without breaking the bank. Very nice.

Now, An operating system, particularly an open source one, is nothing without a community. What good is an OS if nobody uses it? Here are some things the ReactOS people should do to ensure they develop a vibrant operating system:
  • Make the OS attractive in its own right. An OS won't gain much traction unless it offers something others don't. Simply being a replacement for another OS isn't enough. (And no, being free doesn't count either, I'm afraid.)
  • Allow customization of parts of the OS that Microsoft doesn't currently offer. Linux, for example, has a whole boatload of themes you can choose from to customize the look and feel of your desktop. Do that in ReactOS too.
  • Make the OS attractive to developers. Offer development tools that make the developer's life easier. Develop scripting languages for automated tasks.
  • Encourage current free software projects that run on MS Windows to test on ReactOS as well. Achieving absolute 100% binary compatibility is probably impossible, but 99.99% compatibility is probably not. It's up to the developers of end-user applications to provide that last 0.01%.
  • Encourage more free software projects to start on (or port to) ReactOS. If more software is available, people will be more likely to use it, and thus a bigger community, which helps with the other stuff I've mentioned.
Just some thoughts. It'll be interesting to see how this project turns out, and how long it takes Microsoft to notice.

0 Comments:

Post a Comment

<< Home