Hacker News new | past | comments | ask | show | jobs | submit login
Microsoft: An Open Source Windows Is 'Definitely Possible' (wired.com)
152 points by Libertatea on Apr 3, 2015 | hide | past | web | favorite | 186 comments

That comment was taken out of context. Wired wrote an entire article about an offhand remark.

I was at ChefConf, the comment was made during a panel discussion on open source [1]. On the panel there was an engineer from Facebook, an IT Director from Gap, and Mark Russinovich the CTO of Azure (note Azure, not Windows).

The conversation went something like this (paraphrasing):

Moderator: "Microsoft used to really suck, and they were really anti-open source. But now they are open sourcing things like CLR on GitHub. I bet one thing they will never open source is Windows."

Mark: "You never know, it's definitely possible. Crazy stuff happens."

Nothing more on the subject.

[1] https://chefconf2015a.sched.org/event/00710f4fed0e8b617aef56...

I was also there, and I had a similar reaction to seeing the Wired article. (Sensationalist, whole article written on a 30-second exchange, click-bait, etc.)

That said, here's how I remember it:

1. Metz: ... would Microsoft ever open source Windows?

2. Crowd: Cheers. Applause. People shouting "Do it!"

3. Russinovich: You never know, it's definitely possible. Crazy stuff happens.

I found the middle part more interesting than anything else. It's a perilous road to be sure but I think Microsoft may underestimate how much good something like open sourcing Windows could do them.

I believe all the talks were filmed. Hopefully the video gets posted.

While I do appreciate the context, simply putting Mark Russinovich in a box that says he is an Azure guy, ignores history. He is probably one of, if not the most authoritative Windows person on the planet. He chose to do Azure fabric stuff because at his level, you get your pick of interesting projects. Taking the Windows code base and moving to to cloud scale was probably a pretty unique challenge.

So yes, while open sourcing windows would be a massive undertaking involving nearly every level of management and buy in at Microsoft - Mark R would carry a big stick in such a discussion.

> Mark Russinovich the CTO of Azure (note Azure, not Windows).

I agree with everything you said, but it's important to note here that Russinovich is a well-known Windows reverse engineer, the founder of SysInternals, and the author of the Windows Internals books (these are akin to the Design & Implementation of BSD books, but for Windows).

He's something of a deity amongst Windows kernel hackers. I also believe he pops on HN now and again.

So what you're saying is that the conversation didn't go like:

Moderator: "I bet you won't open source Windows."

Mark "Hey we could open source Windows! Hell we might even do it during the launch of Windows 10 winkwink. You never know winkwink. winkwink"

Interestingly, it's not just Wired taking it out of context– Metz (the moderator) is actually the author of this piece.

But there was also a follow-on quote attributed to Mark in the Wired piece:

"If you open source something but it comes with a build system that takes rocket scientists and three months to set up, what’s the point?"

When was that said? Or was it? That would be something that is a blocker to adoption.

It is great to see Microsoft taking many steps to court hackers these days. What would convince me they have turned the corner ?

1. Windows playing well with other OS on my laptop. I updated my Windows 8 to Windows 8.1 and I could no longer boot into Linux

2. Dont use patents to stifle free software [1][2]

3. Port Internet Explorer, Microsoft Office to Linux and offer immunity for projects like Wine for reimplementing Windows API. Do not change APIs unreasonably to sabotage these projects. Let Windows compete on its own merit ( speed, performance, stabilty, backwards compatibility, hackability etc ).



About 1 I kind of understand, you're installing/upgrading so something might be broken and it overrides this (not sure how it works with UEFI though), there should be an option "don't override the MBR" (or the modern equivalent)

But yeah, I am skeptical about this "New Microsoft"

1. Windows playing well with other OS on my laptop. I updated my Windows 8 to Windows 8.1 and I could no longer boot into Linux

I hadn't used Windows for about 12 years when it came on a new PC that I bought. I installed Steam and played games on it for about 2 months. Then when I upgraded from 8.0 to 8.1 it offered to repair one of my Linux partitions. Thats nice I thought.

It was really inconvenient when it overwrote my root linux partition and I had to waste an hour repartitioning and replacing Windows with something a little less aggressive.

Maybe in another 12 years things will have improved and I will be able to try it again...

> Port Internet Explorer, Microsoft Office to Linux

Linux is not a platform.

At best, Microsoft can port IE and Office to Ubuntu or Red Hat. But "Linux in General" is a horrible misnomer that needs to be eradicated.

Just because a piece of software works in one configuration of Linux does NOT mean it will work on other configurations. "Linux" is a horrible platform. You have to build on top of actual platforms (ie: Red Hat, CentOS, Debian, Ubuntu).

Beyond that, IE is DirectX rendered now IIRC. Porting IE implies porting DirectX, which will probably never happen. (DirectX relies on specific hardware drivers...).

> 1. Windows playing well with other OS on my laptop. I updated my Windows 8 to Windows 8.1 and I could no longer boot into Linux

It does, as long as you use UEFI boot, since this was specifically designed to allow clean booting from multiple OSes without creating conflicts.

If you're using legacy MBR/BIOS boot, supporting multibooting involves so many unreliable hacks, you can't realistically expect it to be supported by anyone.

Except every linux distro on earth...ever. Its sufficient just to NOT overwrite the mbr with your own bootloader if you see one is already there. Pretending this is hard is pretty disingenuous.

And how do you separate a "good" Linux/BSD Bootloader from random bits? What about private/custom grub-builds?

A single false positive here means a valid windows 8 install will fail to boot because a Bootloader was not written.

Do you think Microsoft is willing to take that risk?

Just leave MBR behind. UEFI does what you want. UEFI is nice.

Except for that whole "secure boot" business, where I have to half-install a fedora or Ubuntu install in order to get a proper signed key, so that I can wipe the drive and install gentoo or arch.

Secure boot is optional in the UEFI spec. You don't need to enable it if you don't want it.

And a compliant UEFI firmware should let you provide your own trust keys. Which by default makes it more reputable and secure than the internet CA-model everyone else is willing to put their trust in.

So tell me what your problem is. I'm genuinely curious.

Seems windows 10 is making secure boot mandatory. This means my problem is Microsoft is still playing the "embrace/extend/extinguish" game as usual, and the Halloween Documents are still totally relevant.

Please show me a compliant UEFI firmware that allows for custom keys. I'm genuinely curious.

Your claim was new to me so I did some very basic checking and found this:


What it says is not that it must be mandatory, but that being able to disable secure-boot is not a requirement. It's clearly sneaky, but it's not the same.

Note also that nowhere does it say that you can no longer install your own keys.

Some parts are what I'd call "sneaky", but this Windows 10 spec is not hijacking the X86 architecture to run Windows only, like you hint at either.

As for adding your own keys, I only have Intel mobos with UEFI and I've seen menus for adding them. This article from the intel forums seems to give you some leads if you want to go looking:


Thanks for the link. That's the first time I've seen an implementation. And I've looked at a bunch of devices from different vendors.

Unfortunately, this means that i can have my own key if I avoid tablets and laptops, and only build my own hardware. I'll still have to use Canonical or RedHat's (possibly NSA/GCHQ-compromised) keys in order to have portable computing.

So how do you know the current bootloader will actually boot your new Windows installation? You don't. Now you have people confused why they can't install windows. This is a very bad "solution".

> Port Internet Explorer, Microsoft Office to Linux

Office maybe, but is there any demand for IE on Linux?

Both times I booted in to Windows over the last ~18 months were to apply for Visas on sites that wouldn't work properly with either Firefox, Chrome or Opera in Linux. With most sites I'd just move on, but for a visa application with no viable alternative...

Sure, that's a problem that ought to be addressed by those sites, but it's still a possible use case.

If you assume the goal of the IE team is to just have as many users as possible then porting IE would be a huge step forward. If you use anything in addition to Windows then you're going probably going to limit your browser choices to ones that are cross platform which right now basically means Chrome or Firefox.

Web development, but you can try to use a few virtual machines to run IE 11 & 9

Wouldn't you still need to use VMs even if IE were available for Linux? Aren't sites supposed to be tested for browsers and platforms? E.g., a site may show an undesired behaviour under Chrome for Windows but not under Chrome for Linux (or vice-versa).

N.B. not a web dev, so please put me straight if I'm wrong.

You can actually just go grab the wms from MS of modern.ie the only limitations is that they can't run for more than one hour.

If the new IE any good, I'd be willing to try it on my Linux box.

I'd say the Windows API is rather stable, to be honest. Mostly because MS is big on backwards compatibility. Is this really a problem for WINE?

> Do not change APIs unreasonably to sabotage these projects

Forget about Windows. That's a malicious thing they've always done with Office, even after promising to adhere to a "standard". It's so ridiculous even their own different Office versions aren't properly compatible with that "standard".

That's because it supports a ton of features which the standard doesn't mention. I'd imagine the standard has more to do with being able to make documents Office can handle with a subset of its features than enabling feature parity.

Off-topic, but have you figured out a solution to your first point.

I went deep into the rabbit hole and learned a whole lot on how booting my computers works at the time but I gave up and have to spam F8 when I turn on my computer now so I don't boot into Windows.

I had to reinstall GRUB uefi. Afterwards, I followed the advice from here : http://askubuntu.com/a/371589

Edit : Care to explain why this is getting downvoted ?

Thank you so much for the link. Running bcdedit on Windows did the trick. Who knew it was possible to let Windows fix the issue it caused.

I can now finally press my power button and walk away knowing it'll boot into Ubuntu in peace.

It sounds like you have two different hard drives. You should change your boot drive in BIOS.

I don't think they're courting the hackers. I think they've realized they're on a slow and steady path towards irrelevancy.

They have the office market. Yay. I bet that's growing at, what, 2% a year? Maybe? They have home pc's as well. Great.

But where it matters? Mobile, cloud, start-ups - all the new, cool, exciting, future stuff - they're basically absent.

And the new CEO knows that.

So they open-sourced .NET, the compilers, everything. First-class support for OS X and Linux. Is that because they like it? No, I doubt it. It's to stay alive and relevant in the next 10-15 years.

For me, #1 would be to allow Metro apps for Windows to be developed outside the App Store.

4. Don't ram a half-baked document format through ISO.

> Windows playing well with other OS on my laptop. I updated my Windows 8 to Windows 8.1 and I could no longer boot into Linux

You don't seriously think that was anything but a consequence of your specific setup, right? Dual booting with Windows 8.1 and Linux is most certainly possible.

> You don't seriously think that was anything but a consequence of your specific setup, right? Dual booting with Windows 8.1 and Linux is most certainly possible.

Yet is is. It is a consequence of the fact that windows overwrites things like the master boot record that live outside of it's partition on a hard drive without asking the user first.

Yes dual booting is possible. But as always installing windows second makes everything else unbootable (until fixed).

>Yes dual booting is possible. But as always installing windows second makes everything else unbootable (until fixed).

Yeah, I'm 100% sure you fucked up. Windows' bootloader offers me either Windows 8.1 or starting GRUB, from which I can start Linux.

Of course, the first option on Grub is Windows and the first option in Windows is Gub so I can get a nice bootloop.

>without asking the user first

You must be kidding.

Why would she be?

Care to actually write a small bit about your opinion so that we can have a discussion?

Well last time I checked operating systems don't install themselves, a user has to download the setup or insert a disk and there are quite a few user agreement prompts before anything installs.

Yes, but the thing is that, when you do this with many other OSes, they install in a manner such that the other OSes on the machine still work. There's no warning that this isn't the case with Windows.


Installing Linux has preserved the bootability of Windows, even multiple Windows installations on one machine, for more than a decade. The technology exists for MS to do the same.

But it doesn't fit their biggest, or even their second biggest use case, so why would they?

Because it's the right thing to do. Imagine if installing a Sony stereo in your car disabled access to your JBL speakers.

Ah yes, because every company should act according to your moral code.

God forbid you ever be wrong about anything.

How long have you worked there?

Is this the kind of attitude you promote on IamSignificant.ca? Seems pretty negative, to me.

>Is this the kind of attitude you promote on IamSignificant.ca? Seems pretty negative, to me.

Even though the comment you are responding to is brash and unfounded, this comment is even worse. Is it really necessary to search out a poster's web presence/background just to retaliate against some perceived slight? Seems to be against HN spirit.

Why does HN have usernames, comment/submission history, and frankly upvote counts if we're not supposed to look at them?

If it weren't in the "spirit" of HN, it wouldn't be such a critical feature of the website.

The fact that you looked at it wasn't what I was commenting on... It was the fact that you brought it up as a way of deriding the commenter's point and their person. You (childishly? bitterly?) searched the web for the person's username, looking for something to latch on to, simply because they insinuated that you had an uncanny hankering for MS products. Rather than escalate the situation, why not point them to your profile and tell them that you don't work there, but do agree with what they are currently doing with their products?

EDIT: I probably won't respond any more after this regardless of what is posted. Derailing the thread further than I have is pointless.

I did do that (point to my profile, which demonstrates I don't work at Microsoft) with my comment, albeit in an implied manner.

I think you're reading too much into my comment. I don't think you're giving me the a charitable reading of my comment, which is against HN's spirit.

Furthermore, comment threads are for everyone, and not just the people participating. Letting us know whether or not you're going to respond is very "you"-centric, and yet again doesn't really fit with the "spirit" of HN.

Maybe in the future you examine your glass house before throwing stones.

Yeah, all credibility you may have was lost with this post.

I prefer a strong argument to credibility.

A shame neither was brought to the table, eh?

I brought a strong argument.

That's why you're devolving into name-calling.

Feel free to let me know what name I called you.

You called me non-credible.

And these terse, off-topic replies are further evidence of your lack of a leg to stand on.

You haven't contributed one whit to this conversation. Be topical or get ignored.

feel free to show me that "strong argument" as well.

I'm sure you're credible in something. Alas, your credibility in this matter has been compromised by your words.

There is already opensource Windows implementation: Wine. Perhaps they could contribute there.

In the meantime Windows 10 certification no longer requires option to disable secure boot. It might not be possible to install alternative operating systems on new computers.

Doesn't really matter to much whether Wine exists or not. People are not arguing about whether Windows software runs on Linux or not. What people actually want (or would like, I guess) is for Windows to be open source. They would like to be able to contribute, maybe, and to avoid closed software.

I guess ReactOS is really more like an OS. Wine is just implementing the Windows API, not a whole OS.

Even so, having used Play On Linux (I guess a "Wine fork") just to run Flash on Linux where it wouldn't I've had positive results thus far.

ReactOS is nice, but it's a whole OS, and it's not necessarily the greatest option just yet, plus you wouldn't get to run many Linux packages.

PlayOnLinux is just a (very useful) wrapper around wine. It uses stock wine and you can even use multiple versions of wine with it.

Win32 is not Windows; the latter encompasses many more things.

"New Microsoft"? So why are they still bullying with patents against Android device makers? (FAT file system, etc.)

Android phones use FAT when there are other alternatives available. Microsoft still uses FAT. Microsoft produces phones that compete with Android. What more can you possibly ask for to make this not bullying? If there is such a thing as legitimate use of patents, this surely qualifies.

Patents are more like, nuclear arsenals. All big companies are holding onto them, for safety against each other.

Unlike some of the other big players (Facebook, Google), Microsoft is actively threatening players with their patent portfolio on Android. So, no, this is not like a nuclear arsenal.

And TomTom, the GPS navigation device maker.

Because the patent system requires you to do so else you lose the patent.

The only solution to this is to stop having math and logic patents, which are already illegal under any sane interpretation of patent law: its Congress and USPTO that continue allowing these un-patents to be issued.

They could choose to license those patents for $1 in perpetuity if they wanted. They choose to extract rent from other companies in the form of expensive licensing agreements.

No, you're thinking trademarks.

All major tech companies are doing this. The rules need to be changed.

Nothing stopping them from doing a RHEL/CentOS setup - they open the code, keep the trademarks to themselves, if you want 'Windows' you have to pay for support.

People who don't want support are probably pirating Windows anyway.

The point about piracy is a strong enough reason for freeing the source code. Why not just let people buy quality support instead of some blurb of binary data? It also would be interesting to see how many different forks emerge out of the original code base. A kind of fork comes to my mind is a specialized Windows build for high performance gaming. Gamers would be dedicated enough to build community support around their fork, then Microsoft can fight over a monopoly on "better support" instead.

I agree it could be an interesting move. But forks could be dangerous if they want to keep their predominance on the home market.

But they'd be exposed to competition on support, and even today, external tools offer better support than windows in many case(for example security micro-virtualization like qubes/bromium) and many offer cheaper stuff - all this while the code is closed.

If the platform will be open, opening a huge market for support ,Microsoft will have a very tough life.


I think current software will be compatible with the open source version. Since they won't likely be swapping the entire kernel.

I think he meant selling Windows under an RHEL model, not making their own Linux distribution.

>> Current Windows software wouldn't be compatible with this, there is no prior lock in...

Why ?

I don't think that is what nailer was saying, I read it as if MS where to open source Windows, they could then run the openWin project in the same way as Redhat run things now.

Among the possible hurdles to open sourcing Windows are any dependencies on 3rd party code with incompatible licence terms.

I thought April Fool's day was on Wednesday. Now I'm not sure which is pulling my leg: Every single fake story from April 1, or this?

Interesting things sure have been going on since the LA Clippers changed ownership!

One of the reasons why OS/2 wasn't open-sourced is that it contained several 3rd party libraries whose license wouldn't permit IBM to release their source, and IBM didn't want to go to the trouble of getting releases from them.

I wonder if there's an issue like this that would preclude Microsoft from releasing the source for Windows.

They could always do a "partial open source", where DLLs with license problems are kept closed-source. There's precedent for that; I recall a successful open sourcing of an old game engine where the third-party audio library it used couldn't be released.

In fact, I could argue they are already slowly going a "partial open source" route, with their gradual open sourcing of parts of the dotnet runtime.

Exactly, pieces that would be too difficult for them to Open Source I think communities would gather to build those out to form a complete Open Source Windows.

I am not sure that I want Windows open sourced, there is actually some value in not being open source. Having strong control over a system makes coherent design decisions much easier, helps avoid fragmentation and simplifies compatibility. You can see all this at play in the wild - hundreds of Linux distributions, competing GUI frameworks or the relative ease of targeting a limited number of gaming console hardware options or the pretty coherent design of the .NET Framework.

There are real costs behind all that, when developing and maintaining several competing options as well as when deciding between or targeting them. Easily being able to look at the Windows source code would probably be a nice thing, but I am not sure if I would value this high enough to risk ending with a fragmented ecosystem a decade or so in the future.

You can be open source and still maintain tight control over the system. Just don't let anybody hack the official repo. Open source doesn't have to be open development. It would be nice for third-party devs to be able to see the source to develop better apps. That was the problem with MS historically- they only allowed you certain hooks, and if you had a product they were interested in competing with, your hooks never seemed to work quite properly.

Then their product would come out and work quite well with their system. IIRC, an example of this was RealPlayer vs MediaPlayer.

Also, open source allows security audits and faster fixes, etc., at least in principle.

I have to disagree. There are two use cases, reading and changing the source. When Microsoft only allows very limited contributions to the source it either becomes effectively read-only or it will get forked. If it gets forked they will sooner or later face the decision to either compromise on their design decisions in order to maintain compatibility with forks or they start going down the fragmentation road leading to compatibility issues.

Only reading the source is a different story. It should actually be a exceptional use case, for example for debugging, but besides that you should of course usually not worry about implementation details or even take dependencies on them. And Microsoft's documentation of the public surface is pretty good and therefore there is rarely a need to look at the source to understand the functionality.

Finally at least for research purpose it has been possible for a long time to obtain a copy of the source, not sure if this is possible or how hard it would be for non-research purposes.

The open-sourcing of Java could be considered to be a counterexample to the picture you're painting. In spite of being opened up years ago, Java has not been meaningfully fragmented as a software platform/development target.

Of course, there are differences, such as Java being a language, library, and tooling, whereas Windows is an OS in addition to APIs and tooling. I'm sure you're right that there would be costs as well as benefits to open-sourcing of Windows.

Of course it's possible. That doesn't mean it will happen.

I always wonder what would have happened if popular products had been open sourced in their heyday. What if Windows had been open sourced around the time Linux was growing up? Windows would be on every platform in the world.

What if Flash had been open sourced in the early 2000s? HTML5 would have never been created.

In either case these companies would have been in charge of global standards. I'm not sure if that would have been better for them or not?

Open source <> GPL or BSD license. Yes open sourcing would improve quality with more eyes on the code, but Microsoft isn't going to give it away.

Open source means free software means freedom.

Although in the past MSFT has used non-free, source-visible licenses, they seem to understand very well what "open source" means. I don't think they use their "shared source" licenses for new things. If they are serious about freeing Windows, I'm sure they will do it under a free license.

Edit: Sigh, downvotes already, so here is your reminder of where open source comes from and what it means:


To give a concrete counterexample:

one of my favorite video games, Descent, has been open source for about 15 years. I have four different source ports on my system right now (d1x, rebirth, retro, and d2x-xl) each of which is free to download, install, run, and even modify. But some of the game assets (textures, ship polymodels) are not free; you must buy a copy of the game [0] to acquire a license to those asset files, or play using only the shareware assets [1].

[0] http://www.gog.com/game/descent_1_descent_2 or http://steamcommunity.com/app/273570

[1] prepackaged with the rebirth/retro ports at http://descendentstudios.com/community/topic/1167-descent-sh... , where they're being used as a marketing tool for the currently-being-kickstarted Descent:Underground game at https://www.kickstarter.com/projects/descendentstudios/desce...

That's not a counterexample. The engine is free software and open source. There just isn't any free and open source material to run it on.

The same situation happens with Doom and Freedoom, but the existence or not of Freedoom doesn't change whether the Doom engine itself is open source or free.

After all, people are free to run the Doom engine on Freedoom. People are also free to do the same for Descent, I assume. If the Descent license were to forbid running Descent on your own custom-made game assets, then it would not be open source nor free software.

So I went to see what the license is. It says, "You are allowed to use this code only for non-commercial, non-revenue generating purposes only."

Forbidding commercial use invalidates the Descent engine as being open source. The Doom engine does not have this restriction.

Interesting. I had no idea "open source" meant so much more than "here's the source code and it's OK to modify it".


That's right. Open Source typically means OSI approved license. Sadly, Open Source gets used as a term to refer to things that are inclusive in some way, or where access to source code is given without the bundle of rights associated with OSI approved licenses.

As RMS says, all Free Software is open source. I believe the converse statement to be true always or nearly always all the time. Though the licenses are the same, the guiding philosophies are different. Open Source tends to focus on the benefits of openness, such as quality resulting from many reviewers. By contrast, RMS and the Free software folks will tell you that quality isn't the primary aim--the 4 freedoms are.

In terms of licenses, Copyleft licenses are a subset of Free and Open Source licenses that restrict the ability to make derived works non-Free/Open. E.g. BSD is Free software, but not Copyleft.

Wait a second, since when did OSI (or any group in particular, for that matter) become the ultimate arbiter on what "open source" means?

I'm not saying this to be argumentative - I don't like the idea of something like that in the hands of a bureaucracy.

1998, when they were founded to start promoting the term "Open Source" over "Free Software" to make GPL/BSD etc license software more business friendly.

I took a quick look through https://books.google.com/ngrams/graph?content=%22open+source... and I couldn't see the term being used in a software context before 1998.

Huh, something's wrong with that link. Should be:


If they open sourced something important to Windows like the NT Kernel or DirectX then I'll believe they are serious about open sourcing it.

I love how bad Microsoft has made OS X and Linux look recently.

They have a better UI than Debian/Ubuntu/whatever. They have better security features than both OS X and Linux. If they get the open source thing right, both OS X and Linux will (have to) improve as a direct result of that. Can't lose.

// Did I miss something?

Is this missing a "/s" flag?

> They have a better UI than Debian/Ubuntu/whatever.

They may beat out some linux distros but there are some VERY nice looking linux distros and OS X blows Windows UI out of the water.

> They have better security features than both OS X and Linux.

Oh, give me a minute to wipe the tears out of my eyes, that was a good one.

> If they get the open source thing right, both OS X and Linux will (have to) improve as a direct result of that. Can't lose.

I venture a guess that OS X has more open source contributions than Windows (or at least more contributions that I benefit from) but let's remember they said 'Definitely Possible' not 'Coming Tomorrow'. Linux has been open source from the start and OS X has deep roots in an open source OS as well. Why would OS X or Linux "have to" improve, open sourcing shit doesn't make it any less shitty....

> // Did I miss something?

Yes you missed a "/s" flag at the end of your post. Microsoft is not making Linux or OS X "look bad" it's finally doing what every other kid on the block has been doing for a while now. Let's not praise them for doing the right thing when they should have been doing the right thing all along...

> Is this missing a "/s" flag?


I don't care how "nice looking" the distros are. I care about consistent, well though out design guidelines that users can rely on across many applications. And yes, OS X is better, hence they're not in the list.

They do have significantly better security features (that has been true for a while now). See my answer below for details.

Apple is one of the most secretive companies we have on this planet and I, a Apple user, am not happy about that. (Yann Lecun complained about this in a recent Facebook ad too.) All parts that matter are closed: Kernel stuff, device drivers, core libs/frameworks, the Swift compiler, etc.

Ignorance is bliss.

I hear you on "I care about consistent, well though ought design guidelines that users can rely on across many applications" that is a pain point for many linux distros. Nothing is more frustrating than having 80% of your apps looks similar and then 20% stand out like a sore thumb. It's probably one of the top reasons that I pick OS X over linux, I think people work better on things that look better and all fit together well.

> They do have significantly better security features (that has been true for a while now). See my answer below for details.

You must still be responding to bigstumpy so I'll wait for that reply and respond in that thread.

> Apple is one of the most secretive companies we have on this planet and I, a Apple user, am not happy about that.

I hear that but I'm going to pick the best platform that let's me do my job best and for now (and for a while now) OS X has been that platform. I don't think I could ever go back to non-unixy OS (read: windows). I can survive on Linux (All of my code runs on Linux and I work with Linux servers) as a desktop OS but where it really shines IMHO is server OS's.

> All parts that matter are closed: Kernel stuff, device drivers, core libs/frameworks, the Swift compiler, etc.

As someone who would only care about the Swift compiler and possibly core libs/frameworks I guess this just doesn't bother me personally as much. I'd love if it was all OS for other people's benefit but it don't affect my day to day life really.

> Ignorance is bliss.

This is true but OS X let's me do my job better than Windows/Linux so call me ignorant cause development on OS X (for me) is bliss.

> I hear you on "I care about consistent, well though ought design guidelines that users can rely on across many applications" that is a pain point for many linux distros. Nothing is more frustrating than having 80% of your apps looks similar and then 20% stand out like a sore thumb. It's probably one of the top reasons that I pick OS X over linux, I think people work better on things that look better and all fit together well.

It's not just looks. Almost every Windows application has the same keyboard shortcuts. How many X-based Linux applications is that true for? Even classic command-line utils are wildly inconsistent (look at dd, for instance).

OS X has some great things about it but there is so much software that is only on Windows that I want to use that it ends up being hard to use other OSs for desktop (I've used both Linux and OS X for several years before coming back).

> Almost every Windows application has the same keyboard shortcuts.

I don't use keyboard shortcuts as much as some people may but I've never experienced issues with hotkey differences between apps in OS X. The one's I use are always consistent.

> there is so much software that is only on Windows

I don't have this issue either. For every daily task I do I have a native OS X app that performs without issues (often looking better while doing it than their windows alternative/equivalent). There is 1 single windows app that I need to use 1-2 times a month that a vendor provides and I have a VirtualBox VM for that. I do understand that different sectors/professions will have different experiences but OS X does everything I need it to do and I've never felt restrained.

I agree that Windows and OS X are roughly equal (maybe OS X is a little better) when it comes to UI consistency, consistent keyboard shortcuts, etc. That's not true of Linux applications, generally (which is why I said "X-based Linux applications," not "OS X applications").

As far as your second point, I'm glad for you, but it wasn't my experience and I got really sick of jumping through hoops trying to emulate a Windows environment for various software that was not available in OS X.

> OS X blows Windows UI out of the water.

I'm sorry but this just isn't true. I've used a MBP the last few years for my webdev work and spend most of my time in terminal, Chrome and ST3 avoiding the OSX interface whenever possible. Because the moment I open Finder and try to navigate, I wish I were using File Explorer instead.

Then I give a presentation, detach the HDMI cable, leaving my MBP screen unresponsive until I am forced to reboot, and I sigh.

> I'm sorry but this just isn't true. I've used a MBP the last few years for my webdev work and spend most of my time in terminal, Chrome and ST3 avoiding the OSX interface whenever possible. Because the moment I open Finder and try to navigate, I wish I were using File Explorer instead.

Can you expand on what is so egregious about Finder? Also in terms of apps on each platform I don't think you can really make a point about Windows beating out OS X. On average I've found OS X apps to be leaps and bounds over Windows equivalents.

> Then I give a presentation, detach the HDMI cable, leaving my MBP screen unresponsive until I am forced to reboot, and I sigh.

I've used an HDMI cable at work with my Mac weekly if not more often and I've never had that issue. As well as my extra monitors (one runs on HDMI and the other on Thunderbolt).

Daily Linux user here. I love the Windows 7 UI and would kill for the polish and consistency of the Windows UI in say KDE. I own a Mac too and I wouldn't even consider the OS X UI in the same league as Windows anymore, but it was superior back when XP was relevant.

The things I like better in OS X aren't really design features so much as, well, I don't know what you call them. App bundles are so much better than whatever MS has in store. The help in OS X is beautiful. I can still remember the day I gave my mum an old MacBook and showed her that she can basically search for a button she can't find in realtime and they'll point a huge arrow at it. The Windows help (still is?) really just a huge manual.

OS X help is amazing.... if they have what you are looking for. But this is a problem in all OS's and I do think that the "Show you where what you are searching for in the menus" is a huge UI/UX improvement over anything else. It's leaps and bounds above Windows "Here is a manual, good luck".

> App bundles are so much better than whatever MS has in store

Hm? The dmg files that you have to double-click on, manually drag into your app folder, then manually unmount from the desktop? Why do I still have to do all that busywork in 2015?

App bundles are folders with a file extension and a binary at a specific place. Folders that you can double click (and then some!) That's pretty great.

DMG files are a way to ship app bundles (or other files). They're basically images with compression and checksumming added on top (I think). Images are useful (compared to, say, a zip archive) because you can mount them (e.g., over a network). That's useful for all kinds of sysadmin-y things. (Compression and checksumming are obviously useful as well.)

I used Win7 extensively and I really don't agree. I think OS X is much more polished as well as better looking apps being available for OS X compared to Windows. As far as "kill for the polish and consistency of the Windows UI in say KDE" I agree, that's a huge pain point of mine on Linux desktops which is why I use OS X to get a unix-y environment with a beautiful interface.

I think Gnome in its recent versions is extremely polished and consistent. I know a lot of Linux users do not agree, but I really feel it's the best desktop out there currently, at least to my taste.

Better UI is in the eye of the beholder. I use Win7 at work, and Linux at home. On linux I run i3wm, a tiling window manager. There is barely a UI on the OS itself at all. I don't care about shaded and rounded desktop icons (I actually never see my desktop), desktop menus, desktop backgrounds, etc.

The only thing I care about is the apps that I'm running on the OS. They're what I came to the computer for, not a purple or blue desktop.

I'm not saying my opinion is better than others. And I used to be smitten with all the little font, color and widget adjustments that Windows or Linux has. But I gradually found myself just not caring about all that, because they have nothing to do with what I want to do: work and play.

I wasn't aware Windows had better security than Linux. Do you have a source for this?

They got the code signing right very early on. ALSR is still better than on Linux (I think). The whole privilege isolation thing is neat. Feel free to google it, this shouldn't be news.

Just to be clear: Linux is doing fine. OS X is a hell of a lot worse.


I forgot to say what I actually wanted to say: I said security features, not overall security. Linux is FOSS.

OS X has code signing and a I think you mean ASLR not ALSR. Further OS X has ASLR the SAME YEAR as Windows (2007) according to wikipedia [0]:

> Windows

> Microsoft's Windows Vista (released January 2007) and later have ASLR enabled for only those executables and dynamic link libraries specifically linked to be ASLR-enabled. For compatibility, it is not enabled by default for other applications. Typically, only older software is incompatible and ASLR can be fully enabled by editing a registry entry "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\MoveImages", or by installing Microsoft's Enhanced Mitigation Experience Toolkit.

> The locations of the heap, stack, Process Environment Block, and Thread Environment Block are also randomized. A security whitepaper from Symantec noted that ASLR in 32-bit Windows Vista may not be as robust as expected, and Microsoft has acknowledged a weakness in its implementation.

> Host-based intrusion prevention systems such as WehnTrust and Ozone also offer ASLR for Windows XP and Windows Server 2003 operating systems. WehnTrust is open-source. Complete details of Ozone's implementation is not available.

> It was noted in February 2012 that ASLR on 32-bit Windows systems prior to Windows 8 can have its effectiveness reduced in low memory situations. Similar effect also had been achieved on Linux in the same research. The test code caused the Mac OS X 10.7.3 system to kernel panic, so it was left unclear about its ASLR behavior in this scenario.

> Mac OS X

> In Mac OS X Leopard 10.5 (released October 2007), Apple introduced randomization for system libraries.

> In Mac OS X Lion 10.7 (released July 2011), Apple expanded their implementation to cover all applications, stating "address space layout randomization (ASLR) has been improved for all applications. It is now available for 32-bit apps (as are heap memory protections), making 64-bit and 32-bit applications more resistant to attack."

> As of OS X Mountain Lion 10.8 (released July 2012) and later, the entire system including the kernel as well as kexts and zones are randomly relocated during system boot.

[0] http://en.wikipedia.org/wiki/Address_space_layout_randomizat...

I do mean ASLR. I even tried to correct it, but I spelled it wrong again ...

They all have ASLR, but the Windows implementation is supposed to be better than Linux' (even if it's just a little). Anyway, they're both better than Apple's. The details really do matter here.


By the way: Linux plays a very odd role here because it's also run on servers. Might be an unfair comparison.


You really shouldn't google for these things (for the same reason you shouldn't listen to me either). Having said that, this source seems alright: https://www.cert.org/blogs/certcc/post.cfm?EntryID=191

Make sure to have a look at the Reddit discussion as well.

Another good example for this is how /dev/urandom is implemented in Linux and FreeBSD/OS X. They both have it but it's not quite the same.


Also note that the reason MS invests more into security than Apple does is because of their painful history. Makes all the sense in the world, doesn't it?


Here's another one: https://en.wikipedia.org/wiki/Comparison_of_operating_system...

Note that Capsicum and SELinux aren't used that much (unfortunately). I don't know if Apple's sandbox is "inspired by" Capsicum. I also don't know why the MS sandbox isn't listed there. What's the feature called that gives each app it's own System32?

Do you have a source on that? I'm googling for differences in implementation and the benefits and downsides of them but I'm not finding much, I may not be searching for the right thing though.


Found this but it's from 2011 so probably out of date: http://www.theregister.co.uk/2011/07/21/mac_os_x_lion_securi...

  > Did I miss something?
Yeah. The Halloween Documents[1], mainly.

1. http://www.catb.org/esr/halloween/

It doesn't have to be open source but making "the garden" readily available (dirt cheap or free) is Microsoft's only hope to avoid fading into oblivion on windows products. OSX still requires expensive apple hardware... Which seems like an opportunity to me.

Have you tried to work with OSX with more than one or two macs and using OSX server - it's hopeless basic functionality doesn't work.

While this would be great, I would love for Visual Studio, or an Open Source alternative to come out that runs on Windows, Mac, and Linux. Maybe for .NET Core? It doesn't have to be as heavy weight as Visual Studio, but if it can produce the same project types it would be amazing. I know we have MonoDevelop, but that has to be the buggiest IDE I've used in a long time, also there is definitely SharpDevelop, but it is Windows only. Heck, even if Visual Studio came to Linux as a proprietary binary I would still appreciate that. It's quite the product.

As a side note, I let my finger rest on the keyboard and pressed some key, the whole page went solid white and a massive edit cursor appeared.

I know it won't but I would love it if they would make Spartan based off Webkit. (Edit: or Gecko or something else with a bit of traction.) Edit 2: I fear that if they start from scratch and put it on every Windows 10 machine it's going to be feature incomplete from the start and force web developer hacks just like IE does now.

I wouldn't. There's already a threat of Webkit's monoculture on the web, we don't need to make it worse. If you'd like to see Spartan based on some already existing free software engine, then go for Gecko; however, another big player on the engine market won't hurt, especially after Opera went Webkit (well, Blink technically, but it's not a big difference yet).

Good point. As a front end developer I just am still wary of what Microsoft produces as a browser just because IE left such a bad taste in my mouth and I really love what Opera did with it.

I get the feeling MS is heading towards Windows running on a MS Linux kernel at some point.

An MS linux build, that supports .NET (CoreCLR) and a true cross platform windowing library (WPF) would be serious force to contend with in both the enterprise and consumer markets.

I get the feeling MS is heading towards Windows running on a MS Linux kernel at some point.

What would be the point? The NT kernel has a newer architecture than the Linux kernel and build upon Dave Cutler's experience with VMS (which could already benefit from learning from Unix).

Open sourcing the NT kernel does make a lot of sense though, since it would be easier to integrate Windows in Xen, KVM, and other virtualization infrastructure.

They will probably end up taking an Apple-like approach. Open bits where it is strategic and keep some bits closed to sell Windows licenses. It 'only' took a new CEO to do the rational thing.

"newer architecture" doesn't really mean much. Microsoft have to maintain a more rigid overall structure because they are committed to third-party binary compatibility wrt drivers and such. As a result, major architectural shifts in things like networking or graphics (XP -> Vista) cause a lot of pain.

It's a trade-off. Linux looks floppy architecturally because it can afford to be.

"Open sourcing the NT kernel does make a lot of sense though, since it would be easier to integrate Windows in Xen, KVM, and other virtualization infrastructure."

If you're interested in an open-source NT kernel, you might be interested in ReactOS. Although their target comprises development of the entire OS, their main task was the NT kernel and "the glue" with existing parts of Win32 sub-system developed by Wine.

I did think sometime back that this was a possibility, but not anymore.

- Windows sells because it works with every hardware device ever made. Linux does not even come close to that level of hardware support. There is no way those drivers will run on MS Linux kernel.

- None of Microsoft's top money making apps are built with .Net; Office, Visual Studio or Sql Server are mostly C++. So it isn't as easy as porting .Net over to Linux.

- Windows Driver development tooling is way ahead of Linux. So while we all love Linux, throwing away the entire Windows kernel is a bad idea.

- The Windows NT kernel is not an awkward piece of engineering. While different from the *nix, it is actually quite respectable.

- Add: MS mobile device strategy too is based on the NT kernel. They are not going to be an Android theme.

What they really wanna do is make windows more text-shell friendly, and perhaps Open Source the NT kernel. But more than anything else, I just want Microsoft to switch sides when it comes to Patents and IP extortion.

>> Windows sells because it works with every hardware device ever made. Linux does not even come close to that level of hardware support.

In my own experience on over a dozen computers since 2000 when I started to get serious about Linux and especially the past 7 to 8 years...Linux driver support exceeds Windows.

Well, i'm not so lucky.

With windows, its likely the base OS may not even be able to install on a piece of hardware without a driver update CD, but the driver support is fantastic. Its possible to run XP on a lot of modern hardware because companies like nvidia continue to make drivers for XP. That is not possible with any linux distribution from that time frame.

The opposite also exists, I have a baytrail tablet I picked up over Christmas. It runs win8.1 just fine, and will sort of boot the latest bleeding edge ubuntu, but the wifi still doesn't work (as of a couple weeks ago), nor does the SD controller, and a few other things are suboptimal.

There are also whole product lines that still don't work in linux (see the USB3 displaylink based products) even years after their initial release.

Plus, linux tends to put users in a sticky situation. For example at work I have a fairly recent intel based platform, that doesn't work 100% in the older (still supported) SLES environment we use by default. That is because the drivers need to be backported by SUSE and they aren't exactly on the ball about it (same thing for the LTS releases of ubuntu).

I'm a pretty strong believer that linux needs to decouple the drivers from the core kernel. I don't necessarily want to upgrade my whole OS platform just because I got a new piece of hardware. This is especially true on stable platforms. Thankfully companies like emulex do a good job of providing two dozen different drivers for different versions of linux. They and a few other companies are the exception not the rule.

Agreed. Linux and the packaging systems of it's distros have become amazing for driver support these days.

I don't think MS would abandon the NT kernel. Both version of Windows could exist side-by-side and organizations would have to choose which one they would want to adopt.

I thought the latest Visual Studio was built with WPF and therefore C#. Is that not correct?

Yes, Visual Studio since 2010 is built with WPF so at least a large part of Visual Studio is based on .Net . Also at least some parts of SQL Server depend on .Net. About Office I'm not sure.

If they are going to use a completely different kernel anyway, why bother with Linux? Why not create something more innovative, and this time with solid security in mind.

There was an article here a few months ago about 5 (?) new innovative operating systems that have security in mind. One was MirageOS and there was another one I liked - something about resource starvation - but I can't remember the name now.

There's also the Ethos OS, that comes with the "encrypted by default" MinimaLT networking stack, and so on.

I'd be much more excited about a "new" Windows that's open source and is truly built for the 21st century with (cyber-) security in mind, than just dumping the old Windows onto the Linux kernel (and I bet they won't even bother to implement grsec in that, if they do it, because it's yet another patched-up solution for an unsecure kernel, that breaks a lot of stuff).

It would also be lovely if this new kernel was built with Rust or some other type-safe language.

Microsoft Research has numerous languages that provide many, many more guarantees than Rust. If Microsoft were to design a completely new kernel, I'd be fairly disappointed if they didn't do it in something Z3 Boogie based like Dafny.

Microsoft Research is still building Midori:


The odds that Windows will become based on Linux seems pretty low to me. There are advantages of Windows architecture, e.g. PowerShell and similar reflection technologies that are unlikely to be implemented in *nix OS's. Engineering tradeoffs happen on both sides.

There's already a PowerShell implementation for *nix: https://github.com/Pash-Project/Pash

It depends on what one's definition of "is" is. From the top of the link:

  An Open Source reimplementation of Windows 
  PowerShell, for Mono.
Mono is not *nix and PowerShell provides direct access to [nearly?] the entire Windows OS.

More from the project page:


  Alpha. This project is useful in certain constrained 
  applications, e.g. the NuGet Console in Xamarin Studio.

I just wanted to point out that there's nothing that inherently ties PowerShell to Windows (as expected, it's just a shell after all).

> PowerShell provides direct access to [nearly?] the entire Windows OS

PS has access to the .NET Framework which abstracts the OS APIs, not really to Windows directly.

There's also chatter that MS is already working on porting PowerShell to CoreCLR/.NET Core (the cross-plat, open-source version of .NET).

The abstraction layer is 'thinner' with Windows. With *nix we're dealing with serializing text with regexes or parsers or both coming in and deserializing to text on the way out.

It's a bit of a Turing tarpit when it comes to non-inherency.

Couple of points:

1. PowerShell reimplements older commands as aliases, e.g. ls is an alias for Get-ChildItem. You'd not be relying on existing shell functionality.

2. I don't know much about it, but wouldn't the upcoming Linux IPC improvements being made to support kdbus do away with needing to handle message passing in the way you describe?

PowerShell's get-childItem returns something on which get-methods can be called. How will the improved IPC create an easy systematic way of creating meaningful responses to "get-methods" system-wide?

dbus makes use of a type system to describe messages passed over it. kdbus is an implementation of dbus at the lowest level of the OS. The IPC improvements to support kdbus will be made at the kernel level. At a higher level, systemd will make use of these same processes, so it's not purely internal to the kernel. Therefore, there's no restriction on building an object-oriented approach to interfacing with the OS, which is what PowerShell uses.

Perhaps my logic is off, or my view is missing key information, but from my novice perspective it seems to make sense.

If you're interested, this page has more information on the type system used in dbus: http://dbus.freedesktop.org/doc/dbus-specification.html#type...

I think it would require rewriting a lot of existing 'nix code to achieve the level of OS integration that PowerShell provides for Windows, that's aside from the level of integration PowerShell has with many Windows applications [e.g. Office].

Microsoft has been integrating interprocess communication into Windows since DDE in version 2.0 almost 30 years ago. Then more than a decade of OLE. Then more than a decade of .NET. At this point it and the reflection it enables are baked into the toolchain and pretty much comes along for free on a project. *nix has many advantages but everybody rowing in the same direction is not among them.

Microsoft already has an OS that is "competitive" in those markets, if by competitive you mean 90% or more market share on the desktop,which is where WPF makes sense. The NT kernel has its advantages, not least of which is driver support and the ability to run large amounts of existing software. Who benefits from changing kernels?

Microsoft does. An MS Linux kernel opens Windows to all the native server side applications that can't run on Windows now.

What applications cannot run with a small POSIX compatibility layer? Or perhaps even simpler - emulating Linux system calls, as recently shown. (Yes, it would help if they implemented fork().)

They will never give up a kernel architecture that is more modern and that is not tainted (from their perspective) by the GPL.

You would still have to purchase the Windows license. Also, why would you run say something like Redis, on Windows through a compatibility layer ... when you can just run it on Ubuntu or Cent instead?

Sure, if you are already committed to Windows then that makes sense. But if you are starting fresh then you don't choose Windows, and that is the dilemma MS is facing.

I'm really liking the way Microsoft is going. While there are quite a lot of things they need to improve on, they are becoming more and more open, and I have a feeling we will eventually see an open source Windows version.

I don't know if they still do it, but some time ago, Microsoft used to "lend" Windows source code to some academics that worked on operating systems.

The code is not that valuable anyway. No one will be able to steal IP from them, very few people will have the acumen to build their distro, so they have nothing to lose.

And in the case that people find innovative uses for windows - hey - pay up.

It is also definitely possible that my keyboard will pass through my desk while I am typing this comment.

Possibility and probability are two completely different things.

I never thought I'd read Microsoft thinking about Open Sourcing Windows. I'd consider getting back into Microsoft technologies if they did it.

I don't want Windows. I just want Visual Studio.

Visual studio with the vsVim plugin is a pleasure to use.

Put up or shut up?

I think this is positively maybe almost definitely possible.

We've heard these vaporware statements from Microsoft in the past. I'm used to them. I guess they're starting them up again.

As a reminder, "open source" doesn't mean free, in case anyone goes off on that tangent.

> As a reminder, "open source" doesn't mean free, in case anyone goes off on that tangent.

As a reminder, yes it does:


I don't know where people got the idea that open source is not a synonym for free software. It was always meant to be a synonym.


I'm sure Microsoft understands what open source means, because they don't call their source-visible licenses "open source". "Shared source" is the term they invented for their non-free, source-visible licenses. If they are talking about open source in an article, I do think they really do mean open source.

I was all set to downvote you, but I thought I should read your actual argument first (madness, I know), so I did that. And then you got an upvote from me instead, because I found your blogpost to be a useful contribution to the discussion.

I relate this narcissistic tale in the hopes that it encourages others to actually read your argument.

>I don't know where people got the idea that open source is not a synonym for free software. It was always meant to be a synonym.

Probably from rms himself.


He also says it's a synonym:

   “Free software.” “Open source.” If it's the same software, does it 
   matter which name you use?
It refers to the same software, but one emphasises one part or another. It's like saying "developing country" to emphasise that supposedly it's working on improving or "third world country" to emphasise that it's not part of the two big warring Cold-war era groups, but the two terms refer to the same thing.

And you would be wrong. There are plenty of open source projects that are not free. That Microsoft wants to name some of their projects "shared source" doesn't change that. And I'd bet we will see you in court should you do anything with Microsoft's.

Even a "shared source" NT kernel would be very cool.

"Earlier this year, Microsoft open sourced a tool called .NET, a popular way of building online applications, and the hope is that this will expand the tool’s reach. "


Why the shivers? Have you used .NET? I my experience visual studios + .net framework is a pleasure to work with.

That was not my point, I'm a fulltime .NET dev and love it. My point was they way they described it as a "tool" instead of a framework.

I don't get why this has to be downvoted.

A framework is a kind of tool, and Wired isn't focussed on an audience of developers and people for whom the particular type of tool ("framework") would be all that meaningful (and those for whome it would be already know what .NET is, and wouldn't be hurt by the less-specific description.)

FWIW, I didn't downvote you, but I imagine the people who did misunderstood your intention, and I can see why as shivers implies you were creeped out, which is sufficiently different than joking about the accuracy of the article. No problem though, better luck next time!

As far as I understand it, the business case for not open sourcing Windows is loosing merit. Linux is a very advanced operating system, in many ways surpassing current Windows versions - technically speaking.

The problem for Windows seems to be that it has trouble leaving the desktop and its particular server market. Windows-based mobile devices are struggling, and pricing/enforcing Windows licenses for IoT devices would be a tough problem. Pay for a Windows 10 license for a Raspberry Pi? I don't see that as a mass market either.

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