
Why SQL server was never ported to Unix - progga
http://hal2020.com/2011/07/27/porting-microsoft-sql-server-to-linux/
======
feralchimp
Great article.

The decision to support anything new in the enterprise infrastructure space,
given that you'll often be asked to support it for (literally) decades, is
non-trivial even when you only have one platform to worry about. But
especially when the second (or nth) platform in question has very different
end-user expectations for usage conventions, documentation, scriptability,
etc...it takes a _very_ special partner opportunity (or end-customer so huge
that it might as well be a partner opportunity) to make it worth pulling the
trigger.

Databases in particular strike me as poor candidates, because the space is so
hotly contested by organizations capable of research-class CS and deep
optimization. So of all the things you might port to a new platform, MS SQL
Server (a platform in itself) represents an enormous risk.

------
rwmj
This is a great argument ... for open source.

Red Hat (the company I work for) sells quite narrow products. For example,
we'll sell you and support PostgreSQL but only on Red Hat Enterprise Linux, or
KVM but only on x86-64. Upstream, PostgreSQL runs on BSD, Windows and a
zillion other platforms. KVM supports i386, S/390, PPC and a few others.

You can either be a customer, _or_ you can port yourself / find another
partner to make the code work on other platforms. This only works because it's
open source software.

------
forgotAgain
I don't doubt the author is reliably recalling what happened but I do doubt
that Microsoft would have ever released an enterprise product for *nix. This
would have eventually had to be decided at the Gates level and I don't think
he would have ever undermined Windows with a tacit admission that it could not
meet every customer need.

------
lrobb
>> The first order engineering of making that happen, assuming you disable
some Windows-specific functionality, was rather small (on the order of a few
manweeks).

I have a hard time believing that. I used to write to the Windows internals
API a lot (the kind of stuff you see on sysinternals), and I can't imagine the
sql server team not doing the same. That stuff was _not_ easily ported to
Linux, at least in the late 90's / early 00's.

~~~
zrail
The guts of SQL Server were (and as far as I know still are) a RDBMS named
Sybase that MS bought sometime in the mid '90s. Sybase ran perfectly fine on
Unix, just without all the GUI crap.

~~~
BarkMore
See [http://hal2020.com/2011/07/27/porting-microsoft-sql-
server-t...](http://hal2020.com/2011/07/27/porting-microsoft-sql-server-to-
linux/#comment-664) for a history of the SQL Server guts. It is now a complete
rewrite of the Sybase code.

~~~
zrail
Oh, that's fascinating. Thanks!

------
sriramk
Slightly tangential - I didn't realize that this was Hal Berenson's blog. This
is an individual who carried serious clout within MSFT. All his other posts
are great reading too for an insider perspective on lots of things Microsoft.

------
sc00ter
Could someone pleae correct the title to read "Why _Microsoft_ SQL Server was
never ported to Unix" rather than the more general term SQL server (which
Microsoft would no doubt be delighted to assume as its own...)

~~~
presidentender
SQL Server already means "Microsoft SQL Server." They took ownership of the
term a long time ago.

~~~
buu700
I think he meant to point out that "SQL server" doesn't mean "SQL Server",
which is technically a valid point.

------
jakejake
The most interesting part of this article to me was the description of the
problem with sales. I think it provides a great insight into the thinking of
large companies like Microsoft and why they're decisions are sometimes
baffling to those of us not working at huge corporations. He mentions that a
sales person going after $100k contracts would not make their quota and lose
money for MS. I guess I shouldn't have been surprised but it seems pretty
crazy.

It also kinda confirms what we already know - that every department of MS is
geared towards pushing their whole software stack and to change would be like
trying to redirect an iceberg.

------
super_mario
Isn't the answer to that question trivial? Microsoft needed Windows
monoculture to succeed and the way to do that is to completely and totally
strangle any Windows customers so they could not move to something else
without basically starting over.

~~~
dmethvin
Aw c'mon, at least _read_ the article and don't trot out a knee-jerk argument.
It makes many valid points about how well Microsoft could really succeed in
selling a Unix-hosted product when their heart was in Windows. Just by
flipping the question around I think it buries the issue pretty well: If your
Unix enterprise app needed a SQL server, why would you look to Microsoft?

~~~
azakai
Why wouldn't you? Microsoft is a major software vendor. If they make a solid
DB for Unix, why not consider it alongside Oracle and other major software
vendor's offerings? You would consider it on the merits of the product.

None of the reasons in the article make much sense to me except for the one
left for last, that it just doesn't make overall strategic sense for
Microsoft: Microsoft's model is pushing Windows, and selling SQL Server for an
alternative OS is a bad idea (it's a good idea for SQL Server revenue, but bad
for overall Microsoft revenue).

As others said, Gates would have veto'd SQL Server for Unix, that's the bottom
line.

------
dredmorbius
Interesting exploration of the business issues, and, for Microsoft, I can
understand this.

It does contrast rather strongly, though, with the experience of Oracle and
Informix trialing their first Linux ports. "We just typed 'make'" was the
quote out of Oracle at the time. While I'm reasonably confident that there has
been a bit of platform-specific tuning since then, the point is that writing
code for a standards-based platform (UNIX and POSIX) made porting to a new
target pretty straightforward.

------
kermitthehermit
This is just sugar coating for the crap they're covering.

I'd reduce it all down to: we didn't want people to use SQL Server on *NIX
because we wanted to sell them expensive OS licenses & licenses for other
products.

>environment no one really knows nor cares what the underlying OS is. SQL
Azure thus becomes Microsoft’s answer for those who don’t want to run an in-
house Windows Server just so they can run SQL Server.

Nope, not really, I do care about the database and about the underlying OS. I
don't like to use Windows for web hosting mainly due to its unpredictable HDD
space usage (Windows folder growth vs number of installed updates over time).

Also, in Microsoft land, it's pretty difficult to be "up to date" with
everything. You install hundreds of updates for the OS, the database and other
components and there are some extra hotfixes you normally get when you have a
support contract with them.

There's also the issue of the performance. You need more hardware for Windows
than for other OSes. I had an "enterprise" CRM we will not name which had low
performance on a Windows 2008 R1 Standard. I tried to upgrade it to R2 and the
CRM stopped working completely. Of course, this wasn't done on the production
box.

~~~
dextorious
"""This is just sugar coating for the crap they're covering."""

Yes, please, do reduce an elaborate article discussing technical and business
trade-offs into a silly anti-MS rant that wouldn't be out of place in Slashdot
circa 1999 for us.

~~~
kermitthehermit
>I had full executive support in investigating a port, but had I brought forth
a proposal to proceed I would have faced arguments from many that I was
undermining Microsoft’s entire business plan.

See? Read that part "I was undermining Microsoft's entire business plan",
please. That also includes the monoculture and the perfect vendor lock in.

The main issue is that you can't easily move to another platform when your
entire app / system runs on MS software. If you use Oracle's DB or something
else for an app with a DB, you could move away from Windows if you decided to,
provided you are ready to and can make the required changes to your app's
code.

As for "my rant", it looks like the porting to *NIX was just an idea, not
something they were seriously considering. I never expected them to do it
because some people would choose not to buy Windows licenses and just buy SQL
Server licenses, not both.

That's hardly a rant. It's just the long story of MS vs. the "viral" open
source / free software.

~~~
dextorious
"""That's hardly a rant. It's just the long story of MS vs. the "viral" open
source / free software."""

That's hardly a story.

Company wants you to use their products instead of OSS/whatever alternatives.
News at 11.

------
rwboyer
I could have sworn that way way way back when MS-SQLServer just started out it
was a "fork" of Sybase Unix code??? I kinda remember that happening in like
the 90's and then like usual Microsloth screwed it's partner (Then Sybase that
did a lot of the work on the initial windows port)

Of course I maybe having some sort of strange drug induced flashback but kinda
remember this?

RB

~~~
dredmorbius
TFA states as much: _When someone says Microsoft SQL Server you could think of
two things. One is the relational server(sqlservr.exe) that has its origins at
Sybase and was re-written by Microsoft to produce Microsoft SQL Server 7.0 and
later versions._

------
Stormbringer
Wasn't that the database that used to regularly get it's indexes all mangled
up?

I weep cold salty tears into my stale cheerios at the thought that any large
Enterprise was ever seriously considering it as a viable solution.

------
guard-of-terra
Please stop calling MS SQL Server just "sql server". It's just as ridiculous
as calling MS Internet Explorer just "internet".

~~~
jonknee
No, it would be like calling Microsoft Internet Explorer just "Internet
Explorer". That's what most people call it.

~~~
frou_dh
If IE were called "Web Browser", I think we'd feel the need to prefix it with
MS.

~~~
andreadallera
At least in my community, when you talk about "sql server" it's obvious that
you're talking about MS SQL Server. In the same way, postgreSQL is "postgres"
and Oracle Database is just "oracle".

~~~
frou_dh
That community being people who already know about the brand. I say it every
day at work, too, but the OP still has a valid point for public discussion.

~~~
dextorious
No, he has not. "sql server" is just the product's name, it's not a generic
category of servers.

We call the generic category "SQL Server" belongs to: database servers, or
relational database servers.

No one uses "sql server" for something besides naming that specific MS
product.

~~~
frou_dh
Fair enough. I still think it's hard to say how confusing it is to those not
familiar with the brand.

~~~
Confusion
I don't know about your culture, but I've never heard anyone use 'sql server'
when they meant 'the database server'. You just don't call it that. I also
think it's a pretty dumb product name. You might as well call a web server
'html server'.

------
biasedstudy
Porting to unix? How about the other way: turning it OFF on windows?

 _sigh_

~~~
biasedstudy
I'm guessing the down moderators are missing the irony here. I'll spell it
out: why is sql server an essential system service on Windows? WTHeck?

~~~
balakk
Which version of SQL server is an "essential system service" on Windows?

