20 ms·
One Windows Kernel
- detuur 8y ago>The most amazing aspect of all this is that the core of Windows, its kernel, remains virtually unchanged on all these architectures and SKUs. Is that really such an exciting concept? Maybe I have a poor understanding, but I've been under the impression that nearly every competing kernel (Linux, Darwin, *BSD) is exactly like that. The only situation where I can imagine a slight departure is Solaris and its SPARC architecture, where SPARC had certain features to specifically to tie in with the kernel but I'm sure it still compiled to foreign architectures from the same codebase.
- ChuckMcM 8y agoWell it is an exciting concept but it isn't as you point out unique. It was fairly clear in the 80's and 90's there were two 'streams' of systems programmers, those who started at mainframes and mini-computers and were making things work on smaller and smaller versions of those machines, and those who started at the ROM monitor or DOS level type machine and made things work on larger and larger versions of those machines. It was stark how differently the two 'types' of people approached operating system problems. Windows "crossed over" from being more of a monitor type interface to being an executive interface with Windows NT at the hands of a former VAX software architect (which was firmly in the mainframe getting smaller path), and that cross over happened for the masses when Microsoft merged the NT kernel with the Window "old tech" kernel in Windows XP as I recall. By the time Windows 7 came around it was pretty much unified for life and has evolved since then. If all you knew were Microsoft OSes, then yes it is an amazing journey. If however you had already been experiencing systems like UNIX that ran on everything from mainframes to PDP-11/70's you would not have been quite so surprised.
- smacktoward 8y agoThat's the core irony of the PC revolution. PCs started out with the explicit goal of being something different than mainframes and minis. But when people started networking them together, the only way to keep them viable was to essentially turn them into mainframes and minis, just in different shaped boxes. So we've gotten to live through 20 years of PC vendors reinventing things that big-iron users had access to long ago.
- nine_k 8y agoOne interesting part was that it had to become 10x to 100x cheaper to become viable on the PC platform: FPU, MMU, hardware virtualization, vector processors (aka GPUs), etc. It was possible for quite some time thanks to the Moore law.
- scentoni 8y agoAnd VMs that IBM invented on mainframes. And containers that IBM invented on mainframes.
- pjmlp 8y agoIncluding bytecode as executable format, with various ways to convert it into actual machine code before execution.
- derefr 8y ago(The original idea behind) PCs continued to exist long after networking, in the form of video game consoles. A Gameboy Advance isn't all that different from an Apple II or an IBM-compatible PC running DOS: both focus on running one executable and giving it complete control over banging bits toward "rich" I/O devices, where instead of abstractions over ugly low-level interfaces, the peripherals have been designed with nice ABIs that are their canonical APIs (and, until the ARM era, the CPUs themselves were also designed such that their ISA, as written in macro-assembler, was the canonical "high-level" language.) Of course, eventually game consoles became networked too...
- AnIdiotOnTheNet 8y agoI think it was Casey Muratori who made the argument that we could return to having nice ABIs that are canonical APIs, and still have more than one program running via hardware virtualization features. Then any OS would just be like a hypervisor managing all of the OS-less VMs that, from their perspective, are interacting directly with hardware. It was an interesting idea.
- derefr 8y ago
- cptskippy 8y agoThe evolution of DOS and Windows over the last 30 years makes me wonder if Windows is really even Windows. It started out as a Windowing environment that ran on top of DOS but with Windows 95 it switched to a Windowing OS that also ran DOS. Later all of that was replaced with an entirely different OS (NT/XP) that basically supports the legacy OS in emulation.
- buckminster 8y agoNT had win32 from day one and it predates 95.
- cptskippy 8y agoYes and it wasn't really Windows. If you put a Windows 3.1 user in front of an NT machine they'd have been very confused.
- mixmastamyk 8y agoWin NT 3.X had the same interface with Program Manager.
- Sharlin 8y agoYou mean this one? [1] The shells in 3.0/3.1 and NT 3.1/3.5 were identical. Except the latter wouldn't hard crash the machine every time a program did something naughty, which might indeed be confusing to a consumer 3.1 user... [1] https://en.wikipedia.org/wiki/Windows_NT_3.1#/media/File:Windows_NT_3.1.png https://en.wikipedia.org/wiki/Windows_NT_3.1#/media/File:Win...
- yjftsjthsd-h 8y agoIf you put a Windows 3.1 user in front of a 95 machine they'd have been very confused. Exactly as confused, as it happens.
- zzo38computer 8y agoAlthough there are differences, many keyboard commands are the same, and some other stuff is also similar. Double clicking the icon to the left of the title closes the window, and double clicking the title maximizes the window, in both versions of Windows. ALT+F4 still closes the window, too. DOS commands are mostly the same (although Windows NT changes this somewhat, but still it is closely enough that you may be able to use without too much difficulty). All of this despite they move all of the menus around everywhere to make that stuff confusing.
- e12e 8y agoMaybe something happened with xp too, but "windows 2000" was the departure to "NT kernel" land for desktops/home users AFAIK. (I guess xp was really 2000 with windows 95 heritage bling added). Maybe they did try to force windows millenium on poor saps parallel to w2k - and didn't quit that racket until xp?
- basch 8y agoWindows 2000 was not a home OS. Windows ME was. 2000 being NT and ME being DOS.
- Animats 8y agoSure it was. I ran NT 3.51, NT 4, and Windows 2000 at home. Avoided all the horrors of the DOS-based versions of Windows. Microsoft finally got it right at Windows 7. It's been downhill since then, with Microsoft trying to make the desktop look like a phone.
- blattimwind 8y ago> If however you had already been experiencing systems like UNIX that ran on everything from mainframes to PDP-11/70's you would not have been quite so surprised. Back then (R) there wasn't one UNIX, rather everyone had their flavour of it for their kind of machine. I don't think source compatibility became mainstream until the late 80s to 90s, before that it was all ports.
- markbnj 8y ago>> at the hands of a former VAX software architect Dave Cutler. I think he is still a Senior Technical Fellow at MS and a lead developer on Azure.
- nineteen999 8y agoHe also did a lot of work on the Xbox One hypervisor.
- fulafel 8y agoInteresting. I found this article about it, though it's not very technical: https://news.microsoft.com/features/the-engineers-engineer-computer-industry-luminaries-salute-dave-cutlers-five-decade-long-quest-for-quality/ https://news.microsoft.com/features/the-engineers-engineer-c...
- dasmoth 8y agoAt the time this switchover was happening, I remember being pretty excited about things like protected memory. But in retrospect, I think it’s a shame there hasn’t really been a continuation of the “monitor” type interface. I could imagine them winning at things like minimising latency when responding to user input.
- tinus_hn 8y agoThe Windows NT kernel always was Cutlers neat and tidy core with ugly parts bolted on because they somewhat made sense at the time. These parts are integrated pretty deeply so it’s quite hard to use this kernel in a system that’s not Windows with a desktop. So although it’s a race for Microsoft against Microsoft but it’s still somewhat of an achievement they ended up with this result.
- partiallypro 8y agoIt's an exciting concept within Microsoft and the Windows team and could bring good things. But it's not a unique concept, no.
- rayiner 8y agoSolaris doesn't scale down to cell phones, and Darwin doesn't scale up to 896-core servers. Linux does scale like that, but Linux is pretty unusual in that regard too.
- detuur 8y agoThat is actually a really good point. At the end of the day there are many, many kernels out there and only Linux, BSD, and NT scale from all the way at the bottom to all the way at the top. I actually even recall my scepticism when MS announced Windows for IoT platforms (not that this scepticism has abated, though).
- clhodapp 8y agoWindows doesn't scale down quite as far and thus Microsoft's lastest answer for IoT is actually Linux: https://en.wikipedia.org/wiki/Azure_Sphere https://en.wikipedia.org/wiki/Azure_Sphere
- wvenable 8y agohttps://developer.microsoft.com/en-us/windows/iot https://developer.microsoft.com/en-us/windows/iot
- icebraining 8y agoAccording to https://docs.microsoft.com/en-us/windows-hardware/design/minimum/minimum-hardware-requirements-overview https://docs.microsoft.com/en-us/windows-hardware/design/min..., IoT Core needs 256MB of RAM. The Azure Sphere will run on 4. So that seems to validate that it can't actually scale down quite as far.
- pjmlp 8y agoIf you ever bothered to watch Sphere talks, the reason has nothing to do with scale, rather with OEMs, licensing and access to source code for customization.
- lizknope 8y agoSun had different kernels for the sun4c and sun4m architectures. In this infamous post David Miller brags about how he has made a single Linux kernel capable of booting on both. https://cryptnet.net/mirrors/texts/kissedagirl.html https://cryptnet.net/mirrors/texts/kissedagirl.html and then the response from Bryan Cantrill
- amanaplanacanal 8y agoThat is freaking hilarious.
- gnu8 8y agoThere are still a lot of people out there who don’t understand that there are computing environments outside of Microsoft Windows. Not as many as there were in the 1990’s, but still quite a few.
- mtgx 8y agoOne exploit - everywhere.
- mschuster91 8y agoIs it possible to "backport" the Kernel (and other parts, such as the WSL, with it) to Windows 7? I'd like to have a modern Windows, but with the "classic" UI and no forced ads/bloatware/crapware. And yeah I am aware of W10 LTSB but it's not legally available for 99% of users. edit: Looks like the post attracted a bit of a flamewar. Originally, I just wanted to know if this was technically feasible or not.
- rpeden 8y agoIf you had the source and enough developer time...sure, it would be possible. :)
- 21 8y agoSame old story. When XP came out, people were moaning that it looks like shit and how they wanted the XP kernel, but the 2000 look. When Vista came out, same thing again, all that Aero looks like shit, disable it so that it looks like XP classic. Now 10 comes out, same story, looks like shit, we want it to look like 7. You should think deeper to see what drives this desire of yours. I bet that when Vista came out with the Aero look, you felt like it's shit forced on you, and you wanted the XP classic look. Now you want the Aero look that you once hated. Ironic, isn't it?
- cptskippy 8y agoIt's interesting though that no one pined for Vista or 8.
- ConceptJunkie 8y agoI actually won a copy of Vista Ultimate from an online contest. I never had a reason to install it.
- lozaning 8y agoMicrosoft sent me like $300 dollars worth of paper plates, cups, utensils, and gave me pizza vouchers and a bunch of free licenses because I signed up to host a Windows Vista launch party. No one came, and I have yet to ever install Vista on a machine either. The pizza was good though and my roommates and I used the plates for weeks.
- tialaramex 8y agoThis seems like it's essentially confessing to something we already knew. Back at the turn of the century Microsoft liked to claim that Windows Server and the ordinary client NT were different in some important way beyond just the branding and price. People would even try to argue that Linux couldn't be a "real" desktop OS because it lacked some kind of secret sauce not found in a server OS... Hackers eventually found out how to tell a client NT kernel to behave exactly like Server, because of course they are the same kernel, duh. Microsoft's reaction was to stop selling the two next to each other. There is no Windows 10 Server and Windows Server 2019 doesn't have a client version. So the exact same thing continues, but now there IS no equivalent product to prove the point that they're identical bar branding and price.
- basch 8y agoMicrosoft kinda gave up on this ruse back at Longhorn and Vista SP1 days. Longhorn was a fork of the Server 2003 codebase, and Vista SP1 was a backport/newfork of changes made to Server 2008. (Server2008 and VistaSP1 were both released Feb.4.08.) They were absolutely released in lockstep. Vista SP2 was released April.28.09 and Server 2008 R2 was released Oct.22.09. At that point the consumer product became the testing ground for the server kernel. It's easier to think of Vista RTM as a giant public alpha, and and Vista SP2 as an insider preview for Server2008 R2 / Windows 7.
- dblohm7 8y ago> Hackers eventually found out how to tell a client NT kernel to behave exactly like Server It was Mark Russinovich who did it with a utility called NTTune. Now he's the CTO of Azure!
- abainbridge 8y agoYou mean Mark Russunovich the sci-fi author: https://www.amazon.co.uk/Rogue-Code-Jeff-Aiken-Russinovich/dp/1250035376/ref=sr_1_5 https://www.amazon.co.uk/Rogue-Code-Jeff-Aiken-Russinovich/d... That Azure stuff is just his hobby.
- dblohm7 8y ago
- zeptomu 8y agoSo ... how long until Windows becomes just a Linux distribution similar to Android? 8 years? Sooner, later?
- pjmlp 8y agoWindows is most likely to become another mainframe like OS, with its multiple execution personalties than yet another a Linux distribution. Just like IBM i, IBM z, ClearPath are their own thing, and can also run Aix, Windows and GNU/Linux on top.
- Sharlin 8y agoI wonder what it would cost to purchase an Oracle license for that 1792 core instance.
- linuxlizard 8y agoWe'd probably need 4 cores just dedicated to that math.
- teddyh 8y agoThe answer is: Whatever amount of money which Oracle’s sales and customer research teams determines that you can barely afford to pay.
- ianmcgowan 8y agoAka "how deep are your pockets?". The flip-side to this comes at quarter-end, when the question is turned around on your sales rep - "how far are you from quota?". Some amazing deals when they just need a few deals to make their number...
- TimTheTinker 8y agoIt seems to me like Oracle has figured out a sort of secret formula for making a lot of money through shrewd business practices while managing to avoid the public hatred Microsoft and IBM attracted when they did likewise. Perhaps because they market to business leaders who could stand to lose a lot if Oracle unleashed the legal hounds?
- jake_the_third 8y ago> Perhaps because they market to business leaders who could stand to lose a lot if Oracle unleashed the legal hounds? I think so. But that doesn't seem like it's going to remain a viable business model for too long. Those who are forced by their bosses to work with Oracle today, are going to be the bosses of tomorrow. I personally know a company where anything oracle is explicitly blacklisted because of this reason. Eventually, Oracle is going to run out of their oblivious- executive-type customers. (inc. govs)
- excalibur 8y ago> This is a picture of Windows taskmgr running on a pre-release Windows DataCenter class machine with 896 cores supporting 1792 logical processors and 2TB of RAM! 896 cores with 1792 logical processors, and Windows is bogging down each and every one.
- Sargos 8y agoDo you have any basis for this claim? The Windows kernel is very efficient and well designed and doesn't have any more overhead than other kernels out there as far as I'm aware. This is also the kind of machine that won't be running many extraneous processes or features so I'm not sure what would be "bogging down" the system.
- excalibur 8y ago> Do you have any basis for this claim? Yeah, the aforementioned picture.
- 01100011 8y agoI want to upvote this because it made me laugh... and then I realized that it's shit like this that made me flee reddit(98% of the comments being snarky jokes).
- SEJeff 8y agoWindows is one of the most versatile and flexible operating systems out there, running on a variety of machine architectures and available in multiple SKUs. Linux, BSD, Darwin... You support a dozen architectures? How adorable. condescendingly pats head
- deleted 8y ago[deleted]
- cyphar 8y ago> You support a dozen architectures? And they only support four (x86, amd64, ARM, ARM64)! This is quite a cute thing to mention after saying you're "one of the most versatile and flexible operating systems". Ignoring the obviously qualifying language of "one of the most", I would argue it is still false -- virtually every mainstream operating system I can think of supports more architectures than this. Here is my quickly-put-together list: * Linux: 25. * MINIX: 15. * OpenBSD: 13. * FreeBSD: 7. * Windows: 4. * illumos: 3 (with arm* in development). * Darwin: 2. What an achievement. Now -- don't get me wrong, Windows has done a lot of things, but they have set the parameters of this comparison and they don't fare well in it (even if you get past the qualifying language over a comparison that they decided to make).
- SEJeff 8y agoNetBSD: 57!
- cestith 8y agoCertain whole Linux distros would be high upon that list, not to mention NetBSD. * NetBSD: 8 in Tier I, another 49 in Tier 2, total of 57. * Gentoo Linux: 10 to 12, as they target i[456]86 separately within IA-32 * Debian Linux: 11 * Fedora Linux: 4 primary, 7 secondary, total of 11 * L4: 9 * Red Hat EL: 8 * Ubuntu Linux: 8 * QNX OS: 8 * OpenSuSe Linux: 7 * Alpine Linux: 6 * CentOS (Linux): 5 * Illumos: 4 * Kali Linux: 4 * Q4OS (Linux): 4 * Android: 4 * Arch Linux: 1 official, 2 unofficial * Parabola Linux: 3 * Slackware Linux: 3 * ChromeOS: 3 * QNX Neutrino RTOS: 2 * Haiku: 2, with 3 more ports underway RiscOS runs across four or five generations of ARM. Darwin used to run on three more platforms but newer versions don't. Illumos is the kernel and libraries underlying OpenIndiana, Dyson, and many other systems based off the old OpenSolaris effort.
- karmenblack 8y agoI wish Windows kernel been optimised for a given architecture. It is one of the examples where "one fits all" doesn't work. Even if Intel or AMD bring another grounbreaking generation of CPUs - giving mighty 5% increase in performance - it is all for nothing, because it gets eaten up by Windows poorly written guts. I don't know what kind of monster machine you need nowadays to watch YouTube video without audio breaking up or without having to dedicate one core just to handle the mouse.
- matachuan 8y agoC'mon. Not even your own Drawbridge project is supported in Windows...
- pjmlp 8y agoHave a look at WSL pico-processes, device guard, and secure kernel support.
- andrewstuart 8y agoI wish they had the courage to get rid of the registry.
- stephengillie 8y agoWhat would replace it? Thousands of individual config files? That's a mess to manage. What the Windows Registry needs is a REST API.
- Jedd 8y ago> What would replace it? Thousands of individual config files? That's a mess to manage. That's not necessarily true. In the 90's I worked at a large telco where we'd gotten good user roaming functionality along with package management using third party tools, for about 1600 applications, on Windows 3. Uninstalling a package demonstrably left no remnants behind. The migration to Windows 95 was troublesome partly because it was much harder for roaming users, but mostly the registry was much more difficult to manage - Office applications were notably impolite, with thousands of registry entries, many of which lingered after an uninstall, and no way to sanitise the registry other than reinstalling the OS. If you're using a computer without a package management system I could see how you could be convinced config files are harder to manage (by hand) than an opaque blob that poorly hides its ugliness, but you'd have bigger problems.
- gruez 8y ago>What the Windows Registry needs is a REST API. shudders
- badpun 8y ago> What the Windows Registry needs is a REST API. Why would you want a networked API for stuff that should be internal to the machine?
- orf 8y agoAnd replace it with?
- 8y ago
- idiots 8y agoOne hundred comments here and practically none of them are about the technical content of the article. It gives a fascinating history of technical developments in Windows kernel scheduling. For example how they solved a scaling bottleneck exemplified by poor SQL Server performance, through introducing finer grained locking. Or the challenges of heterogenous scheduling on certain 64-bit ARM processors, in ensuring service performance isn't degraded for foreground processes. But all the fools' gallery of HN can muster up is whining about SKUs, mumbling about the cost of licences, complaining about the Windows 10 UI, fantasizing about Linux, or making irrelevant wisecracks. For a community that prides itself on the hacker mentality and the curiosity that comes with it, you lot certainly don't show it. Idiots.
- deleted 8y ago[deleted]
- davemp 8y ago> For a community that prides itself on the hacker mentality and the curiosity that comes with it, you lot certainly don't show it. Idiots. This is my first post in the thread. The blog is cool and all. Though, all I can say is that it’s hard to get excited about software whose source you can’t look at if you’re curious.
- deleted 8y ago[deleted]
- cyphar 8y agoFor someone who is asking for civility in a forum, you certainly don't appear to be willing to be civil yourself.
- deleted 8y ago[deleted]
- urda 8y agoThe Windows Kernel is an insane engineering feet by itself, so getting to see how the inner components mesh in articles like these always fascinates me.
- partycoder 8y agoForgot to add the line count of backdoors and stupid absurd shit like processing fonts on the kernel rather than userland so people can hack your 896 core machine and mine bitcoin.
- crumbshot 8y agoYour claim of backdoors is nonsense of course, but the kernel mode font handling was indeed a security risk. However on recent releases of Windows, they changed font parsing to run in a user mode sandbox: see the "Mitigating font exploits with AppContainer" section of https://cloudblogs.microsoft.com/microsoftsecure/2017/01/13/hardening-windows-10-with-zero-day-exploit-mitigations/ https://cloudblogs.microsoft.com/microsoftsecure/2017/01/13/...
- partycoder 8y agoRest assured that your Windows box is now invulnerable to any form of hacking thanks to the mighty Windows Defender [insert laugh track] By the way, font processing remains in the kernel.
- crumbshot 8y agoOkay then, I see you're not interested in any meaningful discussion on this topic.
- deleted 8y ago[deleted]
- antiwin32 8y agoHow is it possible to have CPU with 100% of usage and Memory at 0% of usage at this screenshot (Task Manager showing 1792 logical processors)?
- saagarjha 8y agoI don't see why not: create a process that just spawns a thousand threads that infinitely loop, but uses very little memory.
- irfanhamid 8y agoThat still is some memory. Threads don't run without consuming memory and some are prone to memory leaks. But, that's not the point here.
- saagarjha 8y agoIt's very little.
- SteveCoast 8y agoIt was a 2Tb of RAM machine I think? So 0.49% of that would be 9.8Gb? Plenty of space and it would still be "0%" used.
- irfanhamid 8y agoHow come out of 1TB 9GB is 0%?
- saagarjha 8y agoRounding. 0.49% rounds down to 0%.
- Annatar 8y ago"This is a picture of Windows taskmgr running on a pre-release Windows DataCenter class machine with 896 cores supporting 1792 logical processors and 2TB of RAM!" Reminds me of an UltraSPARC T5 server with 3072 processors I used to work on... from five years ago. Old tech, eh?