39 votes

Shipping a Linux Kernel with Windows

23 comments

  1. [4]
    Deimos Link
    Microsoft is making a lot of announcements today (their "Build" developer conference is on right now). Also related to this: Announcing WSL 2 Introducing Windows Terminal

    Microsoft is making a lot of announcements today (their "Build" developer conference is on right now). Also related to this:

    17 votes
    1. [3]
      lesicnik Link Parent
      Well, this is something I never would have expected. Still a bit apprehensive at this "new" Microsoft but they're making a good start.

      We are excited to announce that we are open sourcing not just Windows Terminal, but also the Windows Console which hosts the command-line infrastructure in Windows and provides the traditional Console UX.

      Well, this is something I never would have expected.
      Still a bit apprehensive at this "new" Microsoft but they're making a good start.

      16 votes
      1. [2]
        PopeRigby Link Parent
        My thoughts exactly. This is super weird to see Microsoft doing all this stuff after their use of ahem questionable ethics during their prime.

        My thoughts exactly. This is super weird to see Microsoft doing all this stuff after their use of ahem questionable ethics during their prime.

        5 votes
        1. cwagner Link Parent
          This is an interesting read: https://www.bloomberg.com/news/features/2019-05-02/satya-nadella-remade-microsoft-as-world-s-most-valuable-company

          This is an interesting read: https://www.bloomberg.com/news/features/2019-05-02/satya-nadella-remade-microsoft-as-world-s-most-valuable-company

          “At Microsoft we have this very bad habit of not being able to push ourselves because we just feel very self-satisfied with the success we’ve had,” he says. “We’re learning how not to look at the past.”

          11 votes
  2. [8]
    lionirdeadman Link
    I always said "WSL is Linux only in name" and now I guess that's not gonna be true anymore. I wonder why they finally did this after they tried re-implementing the Linux kernel inside NT, I guess...

    I always said "WSL is Linux only in name" and now I guess that's not gonna be true anymore. I wonder why they finally did this after they tried re-implementing the Linux kernel inside NT, I guess they had more problems than they expected.

    9 votes
    1. [7]
      Elronnd Link Parent
      How's that? Linux isn't a specific software package, it's a specification, which is implemented by some guys at kernel.org, and was then implemented again by some other guys at microsoft. How is...

      WSL is Linux only in name

      How's that? Linux isn't a specific software package, it's a specification, which is implemented by some guys at kernel.org, and was then implemented again by some other guys at microsoft. How is that not a linux?

      1 vote
      1. [5]
        lionirdeadman Link Parent
        How's Linux not a specific software package? It's a kernel. It's software, you can't just make something API-compatible (which WSL was not) and call it the same thing. For example : WINE is not...

        How's Linux not a specific software package? It's a kernel. It's software, you can't just make something API-compatible (which WSL was not) and call it the same thing.

        For example : WINE is not Windows/Win32, it's a translation layer which implements those APIs.

        9 votes
        1. [4]
          Elronnd Link Parent
          Wine is a windows implementation, like microsoft windows. It doesn't implement things the same way as microsoft windows, sure, it has very different behaviour. But how, really, is that different...

          Wine is a windows implementation, like microsoft windows. It doesn't implement things the same way as microsoft windows, sure, it has very different behaviour. But how, really, is that different from a c implementation targeting the web, which has different behaviour regarding the filesystem (forwards it to indexeddb, I think?).

          1 vote
          1. lionirdeadman Link Parent
            Wine is not a full windows implementation and Microsoft Windows is not an implementation of itself - it just is itself in all shapes possible. And WSL does the same as WINE, it translates the APIs...

            Wine is not a full windows implementation and Microsoft Windows is not an implementation of itself - it just is itself in all shapes possible.

            It doesn't implement things the same way as microsoft windows, sure

            And WSL does the same as WINE, it translates the APIs from Linux syscalls to NT syscalls (which is rarely a success might I add).

            But how, really, is that different from a c implementation targeting the web, which has different behaviour regarding the filesystem (forwards it to indexeddb, I think?).

            I don't think I understand what you're trying to say here at all. I'm not familiar with C on the web or web standards so that might be why..

            7 votes
          2. Adys Link Parent
            Wine is a win32 implementation in Unix. Definitely not a Windows implementation. For Linux I agree it's a bit more abstract, but either way it's semantics. What to call these matters less than...

            Wine is a win32 implementation in Unix. Definitely not a Windows implementation. For Linux I agree it's a bit more abstract, but either way it's semantics. What to call these matters less than their practical upsides and downsides since there's so few parallels out there.

            5 votes
          3. 9000 Link Parent
            Maybe this is true in some specific philosophical sense, but I don't think it's useful here. That would be like saying that Chrome is an implementation of Firefox because it came after and tried...

            Maybe this is true in some specific philosophical sense, but I don't think it's useful here. That would be like saying that Chrome is an implementation of Firefox because it came after and tried to be compatible. It's not. They are both implementations of a more abstract concept: browsers, and they both implement some of the same specific protocols: HTTP, TLS, ECMA, HTML, etc.

            C is defined primarily as a protocol, which is then implemented as GCC, Clang, whatever browser implementation you're refering to, etc. But, neither GCC nor Clang is C. They both implement C. Windows is Windows. There is only one. Just like Chrome is Chrome. And ultimately, the Linux kernel is the Linux kernel (it supports some of the Unix POSIX specification, but again, it's like the browser implementing web APIs example).

            What has happened here is that Windows implemented a compatibility layer for WSL 1, they did not recreate the kernel. Now, with this announcement for WSL 2, they are releasing a whole kernel that you can easily call a true version of Linux (I think there's some sort of virtualization going on?). Similar with WINE. They aren't recreating Windows, but creating a compatibility layer for Windows applications to run on Linux. What I would argue is recreating Windows, or at least NT, is ReactOS, but that's not based on Linux at all. If you wanted to argue that ReactOS is a version of Windows, I would probably agree with you.

            4 votes
      2. emdash Link Parent
        Because that's a simplistic take on the situation. Pragmatic use of WSL clearly demonstrates it's filled with edge cases & the isn't quintessential vanilla linux. It's pseudo-linux with a mix of...

        Because that's a simplistic take on the situation. Pragmatic use of WSL clearly demonstrates it's filled with edge cases & the isn't quintessential vanilla linux. It's pseudo-linux with a mix of available, unavailable, and differing functionality.

        This is the right move by Microsoft, and moves them closer to legitimate Windows & Linux parity. In fact, give it a decade and I wouldn't be surprised if Windows was on its way to utilising the Linux Kernel & being POSIX compliant.

        3 votes
  3. [3]
    gpl Link
    Can anyone break down what this means for the average programmer? I currently dual boot Windows 10 and Arch, but I use Arch nearly 100% of the time. I use it mainly for science applications, so...

    Can anyone break down what this means for the average programmer? I currently dual boot Windows 10 and Arch, but I use Arch nearly 100% of the time. I use it mainly for science applications, so I'm curious what having a native Linux subsystems in my windows partition might do for me.

    5 votes
    1. emdash Link Parent
      Yeah, I'm kind of wondering what the catch is. Windows Subsystem for Linux was heralded as "run linux functionality in windows", but there's so many gotchas and edge conditions that don't match...

      Yeah, I'm kind of wondering what the catch is. Windows Subsystem for Linux was heralded as "run linux functionality in windows", but there's so many gotchas and edge conditions that don't match what you'd expect from Linux that it's unreliable for anything more than just the most basic scripting.

      That being said, as a macOS user personally, and having to suffer under Windows 10 at work, if I can live inside a Linux world, I will be immensely happy.

      6 votes
    2. cfabbro (edited ) Link Parent
      As someone already primarily using Arch, you might not (probably won't) get much benefit out of it, other than the convenience of being able to use wsl.exe (WSL bash) instead of cmd.exe or...

      As someone already primarily using Arch, you might not (probably won't) get much benefit out of it, other than the convenience of being able to use wsl.exe (WSL bash) instead of cmd.exe or powershell for command line stuff when you boot into Windows. However as someone not quite ready to leave the MS ecosystem and fully commit to Linux yet, I have been using WSL for over a year now (through Windows Insider program) just as a painless way to get comfortable with the linux environment, software and using bash... and it's been really handy for that.

      It's nothing special, just way more convenient than using VMs or dual-booting, since you can do most everything (including install and use linux software) right in Windows itself and there is no significant performance overhead in doing so. It's basically Wine but in reverse, or at least that's how I have been using it. ;)

      4 votes
  4. [2]
    hereticalgorithm Link
    The 20x improvement in file I/O is huge. I wonder how they got the kernel to talk to the filesystem, can't wait to hear more.

    The 20x improvement in file I/O is huge. I wonder how they got the kernel to talk to the filesystem, can't wait to hear more.

    5 votes
    1. Diff Link Parent
      Since it used to be 20x slower than normal Linux it sounds like they've completely brought it up to parity. Super interested to hear about this myself after reading through some of the background...

      Since it used to be 20x slower than normal Linux it sounds like they've completely brought it up to parity. Super interested to hear about this myself after reading through some of the background on these issues.

      3 votes
  5. [6]
    teaearlgraycold Link
    How long until Microsoft builds an NT adapter for Linux and moves windows over to a Linux kernel?

    How long until Microsoft builds an NT adapter for Linux and moves windows over to a Linux kernel?

    2 votes
    1. moocow1452 Link Parent
      Win32 is kind of a sticky point, but I could see a Windows Lite being similar to something like Chromebooks in it's own Linux like environment with WSL and terminal capacity.

      Win32 is kind of a sticky point, but I could see a Windows Lite being similar to something like Chromebooks in it's own Linux like environment with WSL and terminal capacity.

      4 votes
    2. [3]
      lionirdeadman Link Parent
      They could use WINE as a base for this since it's MIT iirc so they could still make a proprietary fork if they wanted. It'd be really interesting if they contributed to WINE.

      They could use WINE as a base for this since it's MIT iirc so they could still make a proprietary fork if they wanted. It'd be really interesting if they contributed to WINE.

      3 votes
      1. [2]
        Adys Link Parent
        Wine is LGPL

        Wine is LGPL

        2 votes
        1. lionirdeadman Link Parent
          Well, damn. I guess they'd have to contribute back then.

          Well, damn. I guess they'd have to contribute back then.

          1 vote
    3. dblohm7 Link Parent
      Doubtful IMHO. NT is actually a great kernel.

      Doubtful IMHO. NT is actually a great kernel.