11 ms·
I was a Windows user for a long time. 5 years ago I switched to OS X, because I think it's closer to the deployment environment I use as a dev. However what O
by drinchev 10y ago
I was a Windows user for a long time.
5 years ago I switched to OS X, because I think it's closer to the deployment environment I use as a dev.
However what OS X did ( when they killed the old one - MacOS 9 and rewrote the whole thing on UNIX based kernel ) was the single greatest move, which I think pays off even these days.
This is what I hope should happen with Windows. They should decide on POSIX kernel and completely rewrite most of it. This will put Windows as an option for me.
- UK-AL 10y agoThere are lots of flaws with the POSIX models. NT's creater (cutler) fixed a lot of them. Your dismive attitude is probably due to ignorance instead deep knowledge of what the NT kernel is capable of. Just a few days ago there was post about how NT's IO by default is more performant.
- youdontknowtho 10y agoCutler is a nerd-hero of mine. Yeah, the NT kernel design is pretty frickin awesome. There is a great book about the run up to NT's release. He took on the job because he thought that writing operating systems would happen fewer and fewer times in the future. I think he actually said that he thought this might be one of the last times a commercial OS would be written from scratch. The thing about operating systems is that everyone thinks they know everything there is to know, but wow are they off the mark.
- niroze 10y agoAwesome! Glad someone is actually talking sense here :) The idea that windows=bad across the board is terrible. Most don't even know what VMS is/was.
- orf 10y agoSuggesting a rewrite of something as important as the NT kernel is ignorant at best. I think Bash on Windows is a great compromise.
- Gravityloss 10y agoWhy is the NT kernel so important? It hasn't touched my life much in about eight years, private or professional. Nokia thought Symbian was very important too.
- protomyth 10y agoWhy switch from a tested kernel that is technically very nice? Nothing about the kernel prevents proper support of POSIX and it has a lot more drivers and hardware support than any existing kernel. Your exposure to the kernel in the last 8 years is not representative of 90+% of computer users.
- mohaine 10y agoThe kernel isn't that import but all the software that depends on it and the win32 libs is. There is lots of software that is w32 only, more then enough to keep windows around for years.
- gnoway 10y agoUnless you're OK with breaking compatibility with all existing Windows apps - most of which you have no control over - rewriting the kernel as a POSIX thing is going to look a lot like 'bash on windows' in reverse. You'd have to have some kind of shim layer to translate all the old system calls, so most everyone's existing software is going to be slower and there will be bugs, etc. Including your own, since Windows is a kernel, a ton of drivers, a userland (including basic runtimes), a windowing system, a basic set of productivity tools and games, etc. I think this would be a total disaster that killed Windows, personally.
- pdkl95 10y ago> 'bash on windows' in reverse That would be "wine", which has worked surprisingly well several years.
- overgryphon 10y ago
- douche 10y agoMicrosoft already had that moment, 20 years ago - moving from the DOS-based 95/98/ME variants to the NT-based 2000/XP branch.
- kidmenot 10y ago> This is what I hope should happen with Windows. They should decide on POSIX kernel and completely rewrite most of it. They simply can't afford it, not because they lack the resources but from a strategic point of view. See the other comments talking about compatibility. Windows works for many, many, many people and businesses. It would be a suicide move. People, and even more importantly businesses, don't jump on any hot new thing just because it's available, because change has huge costs in an enterprise context. If Microsoft ever tried to pull the rug from under them, you can be pretty sure that would be the end for them.
- newjersey 10y ago> If Microsoft ever tried to pull the rug from under them, you can be pretty sure that would be the end for them. It is necessary though. Microsoft seems to be preparing for a post-Windows eventuality as well. Doesn't mean they have to write their own operating system. Edit: it is mostly for azure anyway... I think Microsoft might as well ride Windows as long as it can and give it up.
- norea-armozel 10y agoI agree that they're not likely to do a full abandonment of the Windows stack, it still makes money for them so why mess with a good thing? I think more likely is that as Azure expands they'll try to make more money off of that platform and use Windows (desktop/server) as their supplementary income which in itself is a big gamble IMO.
- overgryphon 10y agoAzure runs on Windows.
- faragon 10y agoThis one's pretty obvious if you've ever written a malloc. Compare VirtualAlloc² with the mess of mmap/madvise/mprotect. I'm not even sure you can get the nice explicit reserve/commit of Windows with pure POSIX APIs. Then, can you explain why the C library provided by Microsoft in their compilers has such slow 'realloc()' implementation? (e.g. expanding a 10MB allocation to 20MB using realloc())
- scholia 10y agoMicrosoft killed the old one and replaced it with new stuff -- Windows New Technology -- long before Apple did. In fact, when Apple was shopping around for a new OS base, Windows NT was one of the options that Apple considered. (Didn't consider it very seriously, Hancock told me, but still, she did consider it.)
- franto 10y agoDon't forget that Windows is also used as servers, compared to MacOS used primary on desktops.
- whatever_dude 10y agoOther than the tools available (which will become irrelevant since Windows 10 will support the Unix command line in the next big update), why do you think Windows should adopt a POSIX kernel? What difference would it make to the end user?
- JustSomeNobody 10y agoLong ago Bill Gates always pushed for backwards compatibility. That carries on today. So until Microsoft is completely gone, Windows will always carry with it the cruft of generations past.
- JoeAltmaier 10y agoIts changing. Win phones, surface, WinRT did a lot of restructuring.
- ZenoArrow 10y ago> "They should decide on POSIX kernel and completely rewrite most of it." What features do you want from POSIX that Windows doesn't already provide?
- JoeAltmaier 10y agoThe point of POSIX is conformity, not extra features. Though I don't see how that fixes Windows either. It can already do many things more than POSIX. In fact most OSs support POSIX for application capture, but certainly don't depend upon it entirely.
- ZenoArrow 10y agoSo in other words the main benefit of POSIX conformity (with regards to Windows) is application portability, right? Is the Linux subsystem in Windows 10 not good enough to handle this? What *nix applications do people want to be able to run in Windows that they can't already?
- cptskippy 10y agoI believe what you're asking for is called the "Windows Subsystem for Linux" that they launched earlier this year. The NT Kernel originally was POSIX compliant and there was a UNIX user-mode subsystem available called "Windows Services for UNIX". Unfortunately over the years the distinction between the NT Kernel and the Win32 subsystem eroded and Microsoft eventually dropped the Windows Services for UNIX subsystem around 2008. With Vista however, the MinWin initiative took off to extricate the Win32 Subsystem from the NT Kernel. This was carried forward with 7 and completed for 8. It's because of this separation that they were able to share the same Kernel in Phone, RT, Desktop and Server OSes. It's also how WinRT and UWP apps can run on Phone, RT, Desktop and Server because they do not rely on the Win32 subsystem to operate. The Windows Subsystem for Linux is Microsoft's new Linux (not UNIX) user-mode subsystem.
- Arzh 10y agoBut that was an easy call for Mac since no one really cared about OS9, windows on the other hand still cares about supporting old tech since the people who give them a bunch of money a year are still running it.
- PeCaN 10y agoYikes! NT kernel is far far far better designed than any * nix¹. POSIX is an API (and not a very good one), not a kernel type anyway. Windows has had a POSIX layer for a while. The NT kernel actually has its own API that both the Win32 and POSIX APIs are implemented on top of. Why is NT better than * nix (particularly Linux)? Two areas mainly: - Virtual memory This one's pretty obvious if you've ever written a malloc. Compare VirtualAlloc² with the mess of mmap/madvise/mprotect. I'm not even sure you can get the nice explicit reserve/commit of Windows with pure POSIX APIs. Linux in particular used to have a very questionable virtual memory implementation³, but I suspect it's been much improved. NT can demand-page kernel memory; Linux kills processes if the kernel needs memory. - Async I/O Here's how platforms do async I/O: POSIX: You don't.⁴ Linux: Sleep. Wait for the kernel to wake you up when something happens so you can yell “IS ANYONE READY YET? HOW ABOUT NOW?!” at your file descriptors. FreeBSD: Like Linux, but the API is less stupid. Windows: Tell the kernel to run a callback when an I/O operation completes. Personally I'm really excited for ReactOS. Linux is a 1970s kernel design. --- ¹ Well, Solaris and DragonFlyBSD have a lot of good ideas and good implementation. ² https://msdn.microsoft.com/en-us/library/windows/desktop/aa366887(v=vs.85).aspx https://msdn.microsoft.com/en-us/library/windows/desktop/aa3... ³ https://lwn.net/1999/0121/a/vmreview.html https://lwn.net/1999/0121/a/vmreview.html ⁴ Okay okay, you have select(2) and poll(2), but then you're using select and poll.
- amaks 10y ago> Linux in particular used to have a very questionable virtual memory implementation³, but I suspect it's been much improved. The document you're referencing is written in 1999. I suspect a lot has changed since then.
- amaks 10y agoAlso, nobody is using select and poll in Linux these days, epoll is the way to go.
- PeCaN 10y ago> Linux: Sleep. Wait for the kernel to wake you up when something happens so you can yell “IS ANYONE READY YET? HOW ABOUT NOW?!” at your file descriptors. > FreeBSD: Like Linux, but the API is less stupid. Yeah, I covered epoll (and kqueue, which also applies to Solaris and OS X).
- vborovikov 10y agoThey considered that option in late 80s while working on NT kernel and decided not to do that. Instead POSIX services became a standalone subsystem running in user mode.