Hacker News new | past | comments | ask | show | jobs | submit login

I'm not sure this is such a great idea. Doesn't the OS for the XBox have entirely different concerns than Windows for Enterprise? You cannot make an OS that works just as well for Billy the 10 year old gamer, and Mega Co. with 400,000 employees.

Apple's recognized this and decided to pretty much abandon enterprise. Linux has fragmented into different distributions (server, desktop, mobile) each with a different focus.

Microsoft, instead, has doubled down. They all even look the same.




You answered your own question the second after you asked it.

Look at Linux first. Note that it happily goes from cell phones to supercomputers. The reason that works is because "Linux" doesn't actually that much. Really, it means the kernel and (usually) the GNU userland. (Though note that Android proves that you can swap out the entire userland and still get something that people will call Linux.) Supercomputers don't have GUIs. Desktops run X or Wayland or Mir or whatever Ubuntu is doing these days, or sometimes just Chrome. Mobiles tend to run Android, although there's also Maemo and others. Meanwhile, a supercomputer would likely have no UI at all. In all cases, when we say these devices all "run Linux", we're really referring to the driver model, the kernel, and (when applicable) the user space.

The same happens with Windows. Windows Phone 8, Windows 8, Windows Server 2012, and the Xbox One all are Windows. They all run the Windows kernel, they all have the Microsoft CLR, and they all have (a lot of) the same APIs--especially at the driver layer. But while Windows 8, Windows Phone, and Xbox all run DirectX and have GUIs, Windows Server prefers to run headless. Windows Phone 8 and Windows both use WinRT, but Windows Phone 8's UI stack is slightly different from Windows 8 proper, mostly to facilitate power consumption and allow for the wildly different form factors. Xbox pretty clearly has a lot of Win 8 UI internally, but games mostly just code against DirectX. But of course these all count as Windows, because they all are Windows. Just sliced and diced in different directions, exactly like Linux does. And unlike Linux, there's actually a lot more in common that can legitimately be shared.

I don't think unifying all the OS here is really a big deal. It's been proven to work just fine with Linux (and actually, I'd argue, with OS X, but we can save that for another time).


The Linux kernel is used in a lot of different devices, this is true, but it's also a lot leaner than the Windows one. Although efforts have been made to pare down what Windows is, it's still got a footprint gigantically bigger than Linux. Where Windows can squeeze on to an ARM system, Linux runs on embedded systems that are even smaller.

The thing that's the most broken about Microsoft's strategy is it's not just the kernel being thrown everywhere, but the user interface. That's the most incoherent part of their strategy. Does the accounting department need to use the same UI as the Xbox? It's so confused.

OS X and iOS are similar, but not the same thing, although not as different as, say, Ubuntu is to Android. It's possible that the Ubuntu phone project might blur this distinction in time, it seems possible.

What I mean mostly is that just because Windows and it's user interface can run on all these different platforms doesn't mean it's an optimal approach. Then again, Microsoft has never shied away from monoculture. They're the Monsanto of software.


    The Linux kernel is used in a lot of different devices, 
    this is true, but it's also a lot leaner than the Windows 
    one. Although efforts have been made to pare down what 
    Windows is, it's still got a footprint gigantically bigger
    than Linux.
I think Windows Phone 8 shows that this is not meaningfully true anymore. There's more work to be done, but the kernel on those devices are quite minimal, happily running on underpowered ARM devices with minimal RAM, and still leaving plenty of room for apps.


My Windows Phone runs faster than my Android Phone on less hardware, for one example. I also know my car runs on Windows on pretty barebones embedded hardware as well. The two OSes also have slightly dissimilar user interfaces.

Windows is not Windows is not Windows in exactly the same way Linux is not Linux is not Linux.


So, the Windows kernel probably is pound-for-pound as lightweight as the Linux kernel. Whenever people talk about Windows they always drag the UI and such along, whereas with Linux they seem to merrily ignore all the chrome.

Any Windows kernel folks care to confirm/deny this?


I work at MSFT and while not involved with kernel stuff directly I interact with them from time to time. The sentiment among kernel people is they'd put the NT kernel up against Linux in efficiency any day of the week.

The challenge is that it's difficult to get just the NT kernel and minimal support libraries. There was an internal project called http://en.wikipedia.org/wiki/MinWin#cite_ref-zheng2007_10-0 Without watching the entire video, Wikipedia mentions something like a 25MB footprint for a usable NT kernel.

Windows installed OS features are a lot more a' la carte these days. It annoys me that there's not a ntsd.exe or telnet.exe on every box by default, but I suppose it's worth it for the greater goal. There's a lot of focus on Windows Server Core, Hyper-V, and Azure. Cloud is bringing everybody back to thinking about OS footprint again.

I think the Windows-sans-(stuff not everyone needs) approach is only going to become more normal.


I don't work on the kernel, but I'd note that you can very comfortably run Windows Server headless on 512 MB of RAM--just like you can with Linux. (MySQL will experience hellishly Pavlovian pain on either OS with that little RAM, though.)


What's the line you're drawing between an OS and a distribution? I certainly would have said that these various different Linux distributions you reference were different distributions of the same Operating System.

Which is the same thing with OS development at Microsoft. Microsoft builds one Operating System (Windows) and bundles it into different distributions (Xbox, Windows Mobile, Windows Server, etc).

In the old business model, you could have had kernel hackers throughout the company that didn't talk to each other. The Windows team would build an operating system and then other teams would adapt it - for example, Windows Server was part of Server and Tools Business, not the Windows division. It only makes sense to bring everybody under the same roof.


Personally, as a consumer I like using Apple products over MS, and I like using Microsoft products as an enterprise user (I'm a programmer). In my perfect world, the two companies would complement each other. Typically Microsoft has done far better in the enterprise versus consumers (the xbox is the rare exception). Apple is the reverse.




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

Search: