Hey everybody, I'm a writer who has been working on a kind of General Overview of Darwine for Beginners and would appreciate any feedback from you experts. Please don't flame me I am very Pro-Darwine and doing the best I can. Thanks, Jim
ps/ I have this in HTML form and it looks / works much better. If any kind soul wants to post it I would be more than happy to email the file to you. Thanks!
The Darwine Project: Running Windows on OSX
An Introduction for Beginners
Running in a Native Environment
The Darwine Project aims to enable Mac OSX users to run Microsoft Windows programs on their computers. Basically, with Darwine one could simply insert a Windows application disc, install the program just like on a PC, and then use the program natively.
Running Windows programs on OSX just like on a PC is important for many reasons- and presents some formidable challenges. We'll discuss the importance of the Darwine Project, as well as address some of the hurdles, but first a short discussion of the Native Environment:
First of all, you may not know this, but it is already possible to "run" Windows on computers that are not Windows-based. There are several ways, here are two:
Virtual PC is a program developed by Microsoft that allows you to basically have a miniature version of Windows running inside of a window on the OSX desktop. It uses technology called "emulation". With emulation you don't actually have a Windows PC, but you have an emulated or artifical version.
Sounds pretty cool, huh? Well it is and it isn't. First of all, you have to purchase Virtual PC (which is not cheap), and it requires substantial system resources. You have to power a Windows PC on your desktop- in addition to powering your Mac. So it runs slow, even on the most powerful Macs.
Keep in mind also that in order to run just one Windows program on OSX with Virtual PC you have to purchase Virtual PC, WindowsXP, the program you wish to use, slow the OSX system down, AND use it in a little window on your desktop.
However, in the sense that you can actually run Windows inside of a window on OSX is very cool. It's just not entirely useful.
WINE is a program that basically allows you to run Windows programs on different flavors of UNIX, but does not work for OSX. There are several reasons, but the important fact is that Apple developed a program named Aqua to make OSX's underlying operating system look so pretty. Modern Mac computers use a FreeBSD operating system (based on Unix) with a Graphical User's Interface named Aqua. Darwin is the flavor of Unix that Apple chose to build OSX upon.
Darwin and Aqua use different software licenses. Darwin does not obligate you to share your improvements with the developer community. In fact, you can sell your improved version without giving away the secrets of your work. And this is just what Apple did- took the free Darwin software, built OSX and then decided to sell it instead of giving it away. A great business decision no doubt but since Apple isn't giving Aqua away it still leaves OSX users without a means of running Windows programs natively.
By the way, WINE stands for Wine Is Not Emulation. The fact that it works so well on Unix flavors (aside from OSX) is one of the largest motivating factors behind the Darwine project. In fact the Darwine Project is named just that- Darwin + WINE.
Importance of the Darwine Project
There are many reasons why Darwine is "important". Some of them are esoteric, others can be political in nature, there are economic implications, some people love to hate Microsoft, and some people just want the convenience. Open Source projects require a lot of effort in the forms of research, development, documentation, storage, distribution, error-fixing and more- from a volunteer community to succeed. One could possibly infer that Darwine is important simply because of the network of developers working on it, but that would be an oversimplification.
Here are some of the things that make Darwine important:
The ability to run Windows programs on OSX natively does not currently exist. Take if you will that OSX is the world's most advanced operating system- coupled with the fact that Windows (and the programs that run on it) run over 90% of the world's personal computers- and the problem is self-evident. It's like having a million dollar car that can't play most of the popular songs on the radio.
Creating the ability to run Windows applications on OSX will require discovering how Apple used Darwin and Aqua to create OSX. Aqua is the award winning desktop that users see when they look at the screen. If the Darwine Project helps pave the way for Aqua to be used on other operating systems that in itself could revolutionize open source operating systems such as Linux.
The WINE project has been wildly successful and represents one of the world's largest and best-of-breed open source software community efforts. If Darwine can help bridge the gap between WINE and OSX then it contributes on a global scale.
In a Mac versus PC world software developers must develop two versions of their product- one for PC, one for Mac. While modern software development environments provide the means to make the different versions relatively easily it is still an added effort and waste. Getting Microsoft's little sticker that says XP Approved on your software is hard enough, but consider that any software that Apple endorses for OSX goes through a somewhat more rigorous process. One can point out the inevitable pitfalls of sub-par "OSX" software that is bound to come about as a result of Darwine, but again this another reason why the Project is important. Done correctly the Made for XP and OSX approved software can continue true to their roots, while Darwine marries the camp.
With the new Intel-based OSX it is possible to run pirated versions of OSX on a regular PC. This produces a computer that can boot into Windows when you need to use a Windows program, and then boot into OSX for everyday use. This is still fairly difficult for the average person to set up, but the important thing is that Darwine eliminates the need for the extra PC. It also eliminates the need to purchase Windows, Virtual PC, hardware and other operating costs- not to mention fringe benefits like reducing landfill space and manufacturing pollution.
The list literally goes on forever. People who hate Microsoft benefit from Darwine because it disenfranchises the need for a Windows PC. People who think Mac nuts are idiots benefit from Darwine because it introduces their Windows world to the Mac fan and affirms Microsoft's "superiority". Whatever, Darwine is important.
Things Darwine Does
As of now Darwine runs some simple applications that are called "native to Windows". These are applications like Mine Sweeper, Notepad, and Windows Explorer. There are other applications have been tweaked and run but they are bug prone and slow.
Right now Darwine is gaining traction in what it can do and working towards getting a critical mass of developers to volunteer their time for the Project.
As each piece of the development puzzle is solved there are exponential benefits due to the Darwine Project's open source approach; when one person fixes a bug many other people are able to use the fix and add it to the list for others to use.
People Who Use Darwine
Darwine is used by engineers contributing to the Project. Although it is available for download to the general public support is only offered on an "expert to expert" basis. At the time of this writing those without a background in software engineering are encouraged to wait before trying it. There is still plenty of work to be done before Darwine works like the everyday consumer would expect it to.
The people building Darwine are an enthusiastic bunch, but as volunteers who have full time jobs to hold down their time is stretched tight. Although they will undoubtedly appreciate your interest in the Project it is best to quietly wait on the sidelines for now.
What Darwine Cannot Do Yet
You cannot download a copy of Darwine and install a Windows program on OSX yet. Darwine also cannot fly you to the moon, help you have more friends, grow your hair back or trim 10 pounds from your waist.
As Darwine becomes able to do more things then more related FAQs will be added to this section of the Guide. Presently a discussion of what Darwine cannot do is an exercise in software engineering- and as such is outside the scope of this Guide.
The Goal of the Darwine Project
"The Darwine project intends to port and develop WINE as well as other supporting tools that will allow Darwin and Mac OS X users to run Windows Applications, and to provide a Win32 API compatibility at application source code level. " -http://darwine.opendarwin.org/
This is how engineers tell you the Darwine Project aims to let you run Windows programs on the Mac OSX.
A Discussion of Difficulties
From a general perspective Darwine faces some fairly formidable obstacles. For one, Apple Computer has cut back support for the Project. In the not too distant past Mac OSX ran on proprietary equipment, with computer chips specifically made for Apple. Now OSX runs on Intel chips- the same kind you find in virtually any PC. This is called the x86 platform. AMD chips also run on x86.
With OSX on x86 Apple's flagship operating system is precariously close to a Linux world, where anyone anywhere can download an excellent operating system for free and to an extent run Windows programs. (Linux is the most popular of the free Unix flavors and there are many versions of it.)
One of Apple's biggest fears is that average consumers will purchase "white box" PC boxes in droves and rush home to install pirated versions of OSX. Then, no one would need to buy Apple hardware. While this sounds like a justifiable fear, the fact is that this has not happened even with Linux- which is free and can also run Windows programs with free tools (WINE).
It is a valid point that OSX and Linux can only be compared in certain light. Whether Linux is "better" than Windows is also an argument that is made. Heck you could try and argue that Windows is superior to OSX because its' software is more widely available, but that would just strengthen the importance of the Darwine Project.
The point is people love the familiarity of Microsoft Windows. They feel that it works fine for them, and do not mind the price, or even the system crashes. Corporations are increasingly looking for Windows alternatives, but they too enjoy the nice application servers that handle stuff like company email. Both enjoy having oodles of software made for Windows and the fact that PCs are cheaper than Macs. It's been said "the customer is always right" and this seems true.
But Apple's reluctance to support Darwine, whatever reasons nonetheless remains a significant challenge for Darwine.
Other significant challenges lie in the way Aqua, the pretty user interface that OSX uses- works. Making Windows programs look and behave right in OSX is more of a challenge that one might think. For one thing Windows and the Unix underpinings of OSX are very different creatures. Windows programs use a "registry". This is similar to checking in to your hotel room; you go to the front desk show your Windows ID with a list of room preferences and Windows assigns you a room, replete with access to a double bed, the view you need and a wine bar.
In Unix in things are done much more differently. Unix doesn't use a registry. It provides the double bed, view, wine bar and all to every guest at the hotel who has permission. Now this is a gross oversimplification, but rest asured the differences between the two operating systems are very real and present a formidable challenge to Darwine.
Then there are other engineering challenges. One significant challenge is that when engineers create a program they "compile" it. That is, they wrap it all up in one neat bundle so that as an end user you just install it and it more or less works. When engineers compile Windows programs there are special options to include functionality in the program that is to be distributed. For instance Windows allows the engineer to specify which functions should be available to the guests at the hotel for instance. This way Windows development is very fast and relatively easy. All you have to do is check the box that says "each visitor gets a wine bar" and joila! it makes the program with that functionality.
The only problem is that these Windows programs require the Windows operating system to work, so you'd better be in a Windows hotel if you want the Windows mini bar.
Unix programmers on the other hand are hired by corporations who want to make their own special functions. This is what happens when you want to add two mini bars to each hotel room and Windows never considered that. They didn't anticipate that functionality. The beauty of Unix programming is a reflection of creative choices, but I digress.
Darwine suffers from the fact that Windows development is so streamlined. In everday terms what this means is that for a Windows program to live in the Unix world the programmer has to either:
(1) host a Windows hotel inside of a Unix one (see Virtual PC), or
(2) find a way to create that mini bar in your hotel room- (WINE) with no help from Windows.
Because of the inherent differences in these two operation systems Darwine is born, and yet challenged.
How to Contribute
If you are new to Darwine, FreBSD, OSX, WINE, Linux or Unix you can contribute in general to the open source community by learning more. Hopefully you will find that you like what you see and become like so many others- enlightened
The Darwine Project needs volunteers, especially engineers- so feel free to talk it up to your geek friends!
How to Receive Updates
Glad you asked, and welcome to Darwine! You can join the Darwine mailing list here.
You can join the author's mailing list, send corrections, additions, etc. to jtb4 (at) yahoo.com
Created March 13, 2006 by Jim Barfield. This Version 1.1 is not an "official" Darwine FAQ document. All copyrights and trademarks the property of Microsoft, Apple, Linus Torvalds, and other owners. You can freely distribute this document unedited and in its entirety only. Boycott Google.