[KLUG Members] The reality of "when WINE 1.0 is released ..."

Bryan J. Smith members@kalamazoolinux.org
27 Jan 2002 08:52:18 -0500


This is long and detailed, but I want to make a _complete_point_ here. 
Print it out and take it to the bathroom if you feel like it (or just go
wireless on your notebook like me ;-).  If anyone has some contacts into
various publications that would be interested in a more "polished"
version of this article, please forward it to them and let me know.

"WHEN WINE 1.0 IS RELEASED ..."

Been hearing that since 1995.  The WINE team has done an excellent job,
and even Linus agrees that they've done better than anyone expected them
to.  But the whole concept of OS emulation is at issue, as Linus himself
has regularly stated that native apps are key.  I know most non-Linux
desktop users think Windows emulation is the key to adoption.  But as
I've always said, emulation is not only a more time consuming endeavor,
but you can't make a non-native OS better for running another OS' apps.

E.g., "Linux will never run Windows apps better than Windows."

ARCHITECTURE EMULATION IS ONE THING, OS EMULATION IS ANOTHER

Architectural emulation is one thing.  Digital did ran both VAX and x86
on Alpha with their FX!32 software, but it was on a per-OS basis (i.e.
only NT/Alpha ran NT/x86, Linux/Alpha ran Linux/x86, Alpha/VMS ran
VAX/VMS).  Transmeta built a 128-bit VLIW (very large instruction word)
processor that could run x86 byte code (or any other), but it still
meant Win/TM ran only Win/x86, Linux/TM ran only Linux/x86.  Sun built
an architecture independent, virtual machine behind its Java language,
but the API was its own, and had to be written to it.

The only OS emulators that work well under Linux are the ones that use a
virtual machine (e.g., VMWare, Bochs/Plex86, etc...) or a partial one
(e.g., Win4Lin).  And then you're still running Windows.  WINE, instead,
maps Win32 system calls to UNIX/X ones for a 100% Windows-free
codebase.  But even then, it works best when there is a full, underlying
DOS-based Windows install on the same system _plus_ there are the
additional licensing issues involved with running its support .DLLs on a
second OS.  [ Yes, the principle of "fair use" dictates otherwise, but
it could get messy. ]

DOS-BASED WINDOWS IS THE WORST BASTARD OF OS DESIGN

Probably the biggest issue with Windows emulation is the Windows
platform itself.  As an original NT 3.1 beta tester, the Win32 API
wasn't a bad one.  A true 32-bit, protective kernel with a good
foundation is exactly what the Windows world needed.  Unfortunately a
group known as "Chicago" continued to work on MS-DOS 7 and DOS-based
Windows 4 inside of Microsoft and finally got the "thumbs up" from Gates
in 1994.  Despite the marketing name, unless you are still running
Windows NT, 2000 or XP, you're still running MS-DOS.

THE PROBLEM WITH WINDOWS HAS ALWAYS BEEN ITS APPLICATIONS

Because Microsoft introduced Windows 95, developers stuck with writing
NT-ignorant software.  From putting files wherever they wanted on the C:
drive, to directly accessing hardware and bypassing the Win32 API, the
great majority of Windows applications are NOT written for a protected
OS, let alone one with security!  Even Microsoft's own applications
division has been guilty of this, as is the code generated by the
Microsoft Visual Studio of products.

WINE COMPATIBILITY WILL ALWAYS BE AS BAD AS WINDOWS 2000 IS

Which is the issue on the Windows platform itself!  For those of you who
have run Windows NT or 2000, you _know_ how poor the application
compatibility is.  From not running at all, to requiring full
Administrator privaledges, most Windows software is a _pain_ to support
on the NT/2000 platforms on a corporate network with users running as a
non-Administrator/PowerUser privaledge.  And even then anything remotely
related to entertainment titles would often not work.

[ SIDE NOTE:  In fact, anyone who has used Windows software created by
Digital _knows_ Digital understood the Win32 API much better than
Microsoft.  The reason for this is because much of Windows NT was
written by Digital or former Digital employees! ]

MICROSOFT WINDOWS ME AND WINDOWS XP

Microsoft has had a pair of experiments in recent years.  One was
Windows ME.  Windows ME was DOS-based Windows with an improved Win32 API
and removed DOS Int21-3Fh and other functionality.  The idea was to
_force_ developers to write to the Win32 API for compatibility. 
Instead, the world avoided Windows ME like the black plague, and
developers continued their DOS developer habits, including Microsoft's
own application division.

Windows XP is quite an achievement for Microsoft, and a disappointment
for longtime NT users like myself.  Windows XP uses an NT-based kernel,
which gives it excellent stability, like NT and 2000 before it (outside
of the Internet Explorer shell which is another story).  At the same
time, much of the DOS-based Windows API has been moved into the NT
kernel, and much of the security model in both the "Home" and "Pro"
editions have been "broken down" for application compatibility.  While
this has vastly improved software compatibility, it scares the dickens
out of me regarding security (with one major issue coming true already, 
because of its Windows 98 compatible internals).  And like NT and 2000
before it, most applications require you to have Power User or, most of
the time, Administrator privaledges anyway.

UNIX/LINUX APPLICATIONS ARE "MULTIUSER BY DEFAULT"

The IT world preaches "make applications 'secure by default.'"  My
preach has always been "make applications 'multiuser by default.'"  This
means you need both an OS that has full multiuser capabilities _and_
applications that are written fully to acknowledge security levels and
it use its APIs when necessary.  Every UNIX/Linux application I have
ever run has been written this way.  Furthermore, even NT-based Windows
still does NOT have an equivalent to UNIX's "home directory" concept --
and the "profiles" approach has been changed far too many times for most
applications to follow.

WINDOWS WILL NEVER BE "MULTIUSER BY DEFAULT," NEVER AS SECURE

DOS-based Windows is still the more popular OS.  This means that writing
Windows applications that are "multiuser by default" is simply not an
option.  And even NT-based Windows is a "multiple account, single
simultaneous user" OS -- and the "Citrix / Terminal Server" variant
isn't a true, secure multiuser approach.  And now that Windows XP is
where, DOS-based compatibility on NT-based Windows is now a reality!  So
why bother writing completely to the Win32 API, eh?  Combine this with
the fact that Microsoft has _never_ put security in front of features
and you can see where I'm going.

GATES' RECENT LIP SERVICE IS FALLING ON DEAF EARS IN MICROSOFT

Lastly, don't even give Gates' recent "lip service" on security any
credibility.  Microsoft commishoned a "security audit" team about 9
months ago, well before Gates' statement.  They found, as I have said
time and time again, numerous development approaches that are grossly
unacceptable from a security standpoint in their own applications
division and developer tools.  In each and every case, the audit team
was _ignored_ by Microsoft developers.  They even had them labelled
"troublemakers" and no one would work with them.  So Gates' recent
statements aren't going to do any better than what they've already
tried.

I THOUGHT THIS E-MAIL WAS ABOUT LINDOWS?  IT IS ...

Okay, let's talk Lindows.  The LindowsOS is a forthcoming distro that
combines a customized WINE install with a friendly
Windows-looking/acting desktop.  The idea is that you can now run
Windows apps seemingly on Linux.  Worse yet, I've been on various IT
chats and I'm sure Windows users are getting sick of Linux bigots
talking about Lindows as much as I am.

Well, in case youd don't read NewsForge.NET (or /.), there was a recent
"review" of the LindowsOS beta.  I predicted their approach right down
to the root login by default.

LINDOWSOS DESTROYS LINUX SECURITY

The review is here:
http://www.newsforge.com/article.pl?sid=02/01/25/1811226&mode=thread

Some of my favorite passages:

'Not only did the installation process not give us the opportunity to
add users other than root, it didn't even explain that we *should* add
users other than root, didn't tell us that the account was root, and
even tended to discourage us from entering the optional security
password for root, because, "if you lose this password it cannot be
recovered.'

'Our Insider got Outlook running and found that yes, it would happily
execute common worms. But remember, he couldn't get his Norton antivirus
program to work.'

And in the end ...

'Unfortunately, 99% of the Windows executables I attempted to run
"poofed."'

Not much application compatibility, eh?  Not a "fair exchange," IMHO,
for all that is *BAD* about Windows applications!

WINDOWS XP IS THE "BETTER BUY," NO LESS SECURE THAN LINDOWSOS

At $99/seat, you're over half-way to the cost of Windows XP Home Edition
(non-upgrade, which would mean you already paid for Windows before). 
For the application compatibility, Microsoft will _always_ be the
"better buy."  As long as you run Mozilla or another Web browser/E-mail
combination, stability is "tolerable" and much better than DOS-based
Windows 9x (although still not as good as Linux).

And since LindowsOS offers the same level of "security" with regards to
Windows applications, you're no worse off for the most part.  If desktop
"friendliness" means not bothering users with a login, I'm sorry, I
don't think making the Linux desktop more "friendly" is going to do it
justice.  And the support nightmare of WINE is just not worth it.

LINDOWSOS WINE APPROACH IS NOTHING SPECIAL, PORTABLE TO OTHER DISTROS

I also want to add this nugget from the article:

'Our Insider friend was able to "split" the LindowsOS Wine components
out from the operating system itself rather easily, and said he was
running them successfully with other Linux distributions and was having
great fun playing with the Lindows version of Wine in Red Hat 7.2.'

If I was a sysadmin who wanted to add WINE functionality to my desktops,
I'd just do this.  Of course, some of those components are probably
commercially licensed, so I'm back to paying $99/seat.  And I'm back to
giving Windows XP** a consideration.

[ **SIDE NOTE:  I still recommend my clients users stick with Windows NT
(if their hardware is support) or 2000 as long as their Windows
applications run, because of the increased security issues of Windows
XP.  Microsoft might say "Windows XP is the most secure Windows yet" but
they obvious mean "most secure CONSUMER Windows yet" -- i.e. versus
DOS-based Windows.  I'm also finding several are very "open" to Linux,
even after I talk about the fact that emulation is not cost effective
nor are file formats completely compatible.  Especially if they are
already running StarOffice or a non-Microsoft office suite like
602Software's 602Pro PC Suite. ]

BUT WHAT ABOUT THE GOOD IN THE ARTICLE?  THAT'S XANDROS!

Yes, there was all kinds of "good Linux things" about the LindowsOS in
its installer and approach.  As you will note from the same article ...

'NewsForge has confirmed that LindowsOS is licensing an early
pre-release version of Xandros' Debian-based Linux distro, which a
Xandros spokesperson says isn't expected to be ready for public view
until the 15th of February at the earliest.'

It's not LindowsOS, but the underlying Xandros' distribution.  Xandros
is the Corel distro reborn.  As a developer and sysadmin, I'm a big fan
of Debian now.  But I still use RedHat as my primary desktop and server
distro, just for the "release consistency."  With Xandros, we're going
to see Debian go professional with RedHat-like integration QA/testing. 
I welcome this, especially since I can still use Apt to grab other
Debian packages as necessary (sure wish RedHat had this for
Rawhide/Contrib!).

SO WHAT ABOUT WINDOWS COMPATIBILITY?

You want your Windows apps and files?  There are three avenues.

1) WINE IS A PORTING KIT, DEVELOPERS SHOULD USE IT

Most don't realize that WINE is both an emulator _and_ a porting kit
(aka WINELIB).  Users should demand Linux ports, and Windows software
developers need to get off their duffs and port their applications to
Linux c/o WINELIB.  Wine is 100x more powerful as a porting kit than an
emulator!  The result is _native_ Linux applications that run nice and
stable (even if they don't always look good).  And just ask Corel how
easy it was to port c/o WINE.

If Windows developers are waiting on WINE's emulation capabilities for
Linux users, they are going to be waiting a _long_time_.  If emulation
has proved anything, porting is the only mechanism that works.  WINE
makes it easy.  Maybe its time we consumers say things like, "hey
Intuit, we know you get a lot of 'support' from Microsoft, but you could
get a lot more monetary support with a Linux port, and you could be
their in 3 months by using WINELIB."

2) USERS NEED TO FREE THEMSELVES OF 'VENDOR LOCK-IN'

Gartner has written on this extensively.  Only *YOU* can prevent vendor
lock-in.  *YOU* must make the choice.  The Linux Desktop _is_here_ and
you're missing out.  Both Gnome and KDE have viable solutions, *IF* you
drop *YOUR* requirement of 100% file compatibility.  OpenOffice is
another and the more "polished" StarOffice 6.0 will be released shortly,
probably at the same time as Gnome (beginning of 2002Q2).  And it offers
near file compatibility -- really no worse than MS Office itself!

I mean, how many of you have lost portions and/or formatting in Word
documents and templates due to version upgrades?  How many of you have
tried to exchange documents between Windows and Mac versions of MS
Office?  I'm sorry, this paints me a horrendous picture of Microsoft. 
And MS Office is *NOT* a "defacto standard" -- "defacto standard" work
with their own products, Microsoft doesn't.  If MS Office isn't
compatible with its own file formats, consider moving away from it when
your next upgrade causes your business hundreds of hours in document
recovery!

Furthermore, you need not move to Linux overnight.  You just need to
consciencely move away from "vendor lock-in" -- even while you use the
Windows platform.

3)  STAY WITH "VENDOR LOCK-IN," PAY THE PIPER

Many people have chosen this.  As such, the "community" (commonly known
as "Linux") canNOT help you.  Only you can decide to join the
"community."  Again, the "community" has done a lot, we have desktops, 
office suites and plenty of applications you _can_ run a business on. 
I'm sorry it doesn't act 100% like the "vendor lock-in" apps, but they
work well.  If you want the vendor lock-in apps, well you have to accept
the vendor lock-in.  The "community" will do all it can to help you, but
it has decide between painful reverse engineering, or producing 10x the
results with native, open applications and file formats.

The choice is yours.

-- Bryan

-- 
Bryan J. Smith, Engineer        mailto:b.j.smith@ieee.org
AbsoluteValue Systems, Inc.     http://www.linux-wlan.org
SmithConcepts, Inc.          http://www.SmithConcepts.com
---------------------------------------------------------
1999 IRS Data:  The top 1% of income earners pay over 36%
of the taxes, but have less than 20% of the total income.