8 ms·
> I wonder if Unix might have become the "standard" for desktop OS's Microsoft is pouring buckets of money and human capital into WSL2. Today, it's their way t
by bityard 5y ago
> I wonder if Unix might have become the "standard" for desktop OS's
Microsoft is pouring buckets of money and human capital into WSL2. Today, it's their way to drag cloud developers away from the Mac and Linux ecosystems into the corporate-blessed Windows ecosystem. But tomorrow, maybe developers and server admins will demand more Linux compatibility and, who knows, maybe they will reach a point where the only way to improve performance is to "port" Windows services and applications to the Linux kernel. The open source community has already proven that much of it can be done via Wine.
One of those things that doesn't look terribly likely now but might prove obvious in retrospect.
- qbasic_forever 5y agoAre they really, is there anything to back up the claim WSL2 is a huge team internally? Because the way I see it WSL1 was much more novel and likely required a dedicated team to manage the kernel API to windows API shim layer, but now with WSL2 it's just a gussied up hyper V integration.
- sz4kerto 5y agoProbably not a huge team, but I guess the number of people involved has easily 3 digits, as MS needs to pay the developers, marketing people, manage the releases through Windows Updates, collect feedback, check compatibility etc. At the scale of MS a "major" Windows feature can't be cheap, even if it looks simple. Seriously, look at how difficult it is for them to port the old style control center or improve notepad.exe.
- spoonjim 5y agoYou’re right that at MS scale teams are bigger, but also dollars are even proportionally much easier to come by.
- AaronFriel 5y agoMy hunch is that the monumental amount of work to make virtualized GPU support and zero-copy hardware accelerated graphics work from WSL2 to the desktop (a technology called "VAIL", which hasn't shipped yet) is in order to support Android apps on Windows, and that's always been the goal of this team and a series of high profile projects. WSL2 is actually the third iteration of this technology, not the second, and I believe has the same original goal and they've dedicated a large amount of engineering effort to that goal. Here's my case: Windows 10 Mobile had "Project Astoria", which involved working with app developers to port apps to Windows Phone. This involved library support and translation layers to enable APKs to run on Windows. WSL1 abandoned the approach of requiring developers to modify apps, and used "pico processes" with kernel driver and Windows kernel's support for alternative subsystems to Win32 to map Linux syscalls to Windows equivalents. This enabled binary compatibility for most apps, but fell short. WSL2 switched to the lightweight Hyper-V integration (now using the host compute system APIs to manage lightweight containers/VMs) but added deep driver integration with graphics to enable machine learning and hardware accelerated graphic workloads to work within Linux using vGPU drivers and RAIL respectively. And soon VAIL, to enable full fidelity graphical applications (i.e.: Android apps) to run on Windows without compromise. That's a lot of engineering time on 3 high complexity projects over a span of at least 6 years, publicly. Link to a talk on X11/Wayland and VAIL: https://xdc2020.x.org/event/9/contributions/611/attachments/702/1298/XDC2020_-_X11_and_Wayland_applications_in_WSL.pdf https://xdc2020.x.org/event/9/contributions/611/attachments/...
- easton 5y agoVAIL and WSLg are available now in stable builds of Windows 11. I think VAIL was originally designed to be able to connect to containers that ran Win32 apps so that they looked natural, but since containerizing Win32 apps and their 30 years of legacy cruft was considered too good of an idea to finish, it was repurposed for this.
- AaronFriel 5y agoI think I disagree on both points. VAIL is not available yet, that I have seen, and I don't believe it was intended originally for Win32 apps. I don't think VAIL has shipped yet, and getting that working correctly and securely, as it involves sharing memory between the WSL2 VM with a Linux kernel and the host Windows kernel, seems to me the most likely blocking issue for why they haven't yet released Android app support on Windows. See this comment on the readme of the WSLg repo: > Please note that for the first release of WSLg, vGPU interops with the Weston compositor through system memory. If running on a discrete GPU, this effectively means that the rendered data is copied from VRAM to system memory before being presented to the compositor within WSLg, and uploaded onto the GPU again on the Windows side. As for originally being intended for Win32 apps, I do wonder if "Vail" and "VAIL" are different projects within the OS division. The Linux/X11/Wayland and vGPU interop part of VAIL requires different expertise and deep knowledge of the Linux graphical stack.
- easton 5y agoI mean, I’m using it on stable Windows 11. The README says it shipped in build 21xxx which is 1000 builds behind Windows 11’s number. I can check though. And for the other parts, the interop bits are new, but the deck from when the WSL2 devs presented this specifically said it was a great solution because it was already being used for Azure Virtual Desktop (hosted Windows VMs).
- AaronFriel 5y agoAre you using VAIL or just RAIL? The difference is not whether GPU applications do or do not work. They work with both. The difference is, do they work with zero copying via shared memory between the Windows host and the WSL virtual machine? RAIL enabled graphical applications - including those that use the GPU - to be presented as windows on the Windows desktop. But it involves extra latency on the order of several to tens of frames, depending on how expensive the framebuffer copying and synchronization steps are. VAIL enables performance (and input lag) that is on par with running Linux natively.
- easygenes 5y agoNot only that, but it severely underperforms vs e.g. the VMware Hypervisor, even on the latest Windows. (Good luck disabling Hyper-V so that you can even run a different hypervisor on Windows these days, btw)
- dmitrygr 5y ago> "port" Windows services and applications to the Linux kernel. In every category imaginable, the NT kernel is better designed. Async IO, better power management, pageable kernel memory, stable driver API. I'd much rather KDE shell on NT kernel. I get that Linux is popular, but no objective evaluation would claim that Linux kernel is better in any metric other than "how open source is it?" Spend some time to read the NT docs and get familiar with the design and you'll see. This may be a hard pill to swallow, but in many areas linux's design is still very much "my first kernel" (I will give credit where it is due though, it is slowly being patched piece by piece, slowly). Whereas NT was written by a team who's done it a few times and avoided a lot of pitfalls (eg: synchronous by default IO, really??)
- DeathArrow 5y agoNT kernel is not only providing a stable API but also a stable ABI. Making guarantees that software will continue to work in the future.
- otabdeveloper4 5y ago> synchronous by default IO, really?? Yes really. Synchronous, multi-threaded is the sane default from any perspective. (Performance, safety, developer convenience, flexibility, you name it.) P.S. I've been making high-performance "web-scale" services for more than a decade.
- monocasa 5y agoEven Windows doesn't agree with that. They started with a syscall wrapper for running Linux binaries, and ended up running a full Linux kernel next to the NT one because that was faster. There are absolutely parts of Linux with all the architecture and engineering rigor of a favela. Real big "I want a new room and have two sheets of corrugated steel, a neighbor's wall, and an afternoon" energy. There are also major parts of it that have benefited from decades of 'this tweak that won't be driver ABI compatible increases efficiency in this use case by measurable but single digit perf'. And yes, there's politics to getting that merged, but the barrier is way lower in Linux. You try a lot of that in how Microsoft builds software and at best you put a target on your back because you just made a lot of work for another team. At worst that amount of differently siloed work just kills the idea in the first place.
- samuellavoie90 5y agoMicrosoft's next step might be to 'Extend'; add feature to wsl2 that aren't available outside of windows. (To lock in WSL2 Users, and since they have the manpower they can outpace any other linux distro on features)
- avtar 5y agoI don't know who out there might want to deploy their production services using WSL2. The appeal of using WSL is to develop and test apps in Linux distributions that might be in use in production.
- nodejs_rulez_1 5y ago> Microsoft's next step might be to 'Extend' Damn, gramps, let it go - 90s are over.
- deleted 5y ago[deleted]
- nicce 5y agoI started to use so much WSL that I finally ditched Windows totally. I doubt that they can add something so special to keep users which Linux community can’t
- soylentnewsorg 5y agoEvery person I know who dual-booted or ran *nix in a vm has now switched over to WSL, including myself. It works ok, I got a korn shell, I can access all the windows data. This move killed cygwin and a lot of dual-boot linux installs within a year of availability. here's the thing though - everyone i know just needs the basic korn shell and basic unix like features for their laptop. no one is writing apps targeting wsl, no one's running it on a server. the features we use wsl for have been the same since 1988, and we're not interested in the new ones.
- pjmlp 5y agoExactly because of this kind of experience, and my own at the time, I deeply believe if Microsoft had been half as serious with Windows NT POSIX compatilitly as they are now with WSL, Linux would never had taken off. I got into Slackware Linux, as means to do university work at home, and when I started working it was Windows NT, Aix, HP-UX and Solaris. We had a couple of Linux based servers but they were used as toys, like smuggling a couple of networked games into the office.
- dingosity 5y agomeh. install windows 10. install WSL(2). install apache in WSL(2). start edge. point the edge browser at WSL(2). Notice the default network settings disallow edge from talking to WSL(2). or start up something that uses mDNS. or try to use non-latin characters on the terminal. I'm sure MSFT is putting a lot of money in WSL2. but it's hard to argue they're serious about it.
- dragonwriter 5y ago> Today, it's their way to drag cloud developers away from the Mac and Linux ecosystems into the corporate-blessed Windows ecosystem No, its their way to avoid corporate (now and becoming cloud) developers already on Windows from being dragged off the Windows ecosystem. Its defensive, not (primarily) expansive.