CUDA on Windows Subsystem for Linux 2
devblogs.nvidia.com
devblogs.nvidia.com
1. You don't have to install special CUDA-specific drivers that are behind the normal gaming drivers anymore. You'll soon be able to just use the Regular nVidia Drivers (and even now, all you need to do is install a Beta driver version). That's huge for someone just starting out, they don't have to have "the dedicated CUDA machine / OS"
2. At least in Arch, the Linux side of this is literally as simple as `yay -Sy python-tensorflow-cuda`, that's it. Can't get any easier.
3. VS Code's WSL integration means you can use a real editor, with real linting / auto-complete, but without the technical issues of Desktop Linux (aka the Wayland Nightmare and DPI issues everywhere)
Nobody is forced to use Wayland. It’s still quite experimental, I think only Gnome enables it by default.
But yeah, with VSCode WSL remoting, there's just no particular reason to do that anymore.
Just for fun, I tried loading a Word document in LibreOffice - I can see the redraw lagging behind scrolling, but it's still usable enough even when typing.
Even accessing machines remotely via Xrdp has huge issues because once you create the session with a certain DPI, logging into the session from a different DPI machine means you're stuck reading either extremely tiny or extremely huge text
I work every day with a 4K monitor and a 1080p monitor side-by-side and it works well. Linux couldn't handle it in any configuration, especially with mixed Intel integrated+nvidia graphics, but Windows is a champ.
Obviously it's not so great with Xwayland, definite blurriness there. But to compare, the only workable X11 setup was one that ignored my 4K screen entirely and the whole thing was blurry.
More than enough time to catch up.
Afaik there's no official vscode build on ozone.
https://bugs.chromium.org/p/chromium/issues/detail?id=578890
I'd hope that the barrier to entry for starting ML practitioners isn't easy environment setup, as Google cloud, AWS, even colab exist with easy to use environments.
Edit: I should also add that if you enjoyed the colab experience but want to scale up, you can attach the same notebooks to a Google cloud compute VM and run them on that.
It’s more of a pick-one. Wayland has pretty good per monitor scaling; your X11 apps will be blurry but that’s about all I’ve experienced.
The Windows DPI nightmare long surpassed it anyways. On a typical Wayland desktop the usual biggest problem is the DPI being set wrong for a monitor. Even on X11 the worst you get is applications that don’t scale correctly.
On Windows mixed DPI is damn near unusable. I don’t mean “sometime in the past.” I mean, now. I have a laptop with a HiDPI screen, that I sometimes connect to two monitors that are normal DPI. The process of connecting them causes Windows to throw a fit, jumping between multiple DPI levels before actually settling on the correct DPI. This often screws up apps that are slow to respond to DPI changes, like Explorer, which sometimes manages to resize my locked taskbar during this process, and it frequently leaves applications in a totally broken state. Here’s an explorer window that didn’t make the transition. https://m.imgur.com/VgrStHQ
Some builtin Windows apps don’t handle DPI switches correctly even then. You have to entirely sign out for Explorer to enforce minimum column widths correctly on a new DPI, and it just won’t on mixed DPI; it appears to adjust them on startup and never again. I filed a feedback item about this one.
As for third party apps, it’s a crapshoot. Qt supports scaling but on Windows mixed DPI setups its broken. IDA Pro launches with enormous window borders and some controls still scaling when loaded after a DPI change. You can of course use compatibility mode to force System scaling, and that makes it work at the cost of blur.
Why are third party apps such a crapshoot? Partly, history. Windows has undergone no less than 4 different iterations of DPI scaling. No, really:
https://docs.microsoft.com/en-us/windows/win32/hidpi/dpi-awa...
There’s plenty of good information on this issue, but as someone who has tried to adhere to per monitor v2, I can say it is not terribly easy unless you limit yourself to dialogs. Builtin resources like fonts do not appear to update, so you need to create your own to support scaling a window with Win32 controls.
And that’s not all. I close my laptop lid when my laptop is docked. Windows helpfully sleeps the laptop even though external monitors, a mouse, and a keyboard are connected. There is no fix. Of course, I tried to make my own solution. https://github.com/jchv/SwitchOnDock
All in all, the Linux desktop sucks, but the Windows desktop gets a free pass because everyone has internalized the ways that it sucks. Meanwhile Linux with Wayland has progressed meaningfully and is still being regarded with unwarranted disdain nonetheless. It isn’t quite to the level of macOS with scaling, but it’s close. And that docking issue is also something that is not an issue on either Linux or macOS. So YMMV.
One thing I cannot do is allow someone to shame Linux for its DPI problems without acknowledging Windows DPI problems.
Right click the battery icon in the system tray > Power Options > Choose what closing the lid does > Do nothing.
- When the lid is closed and there are no external monitors, the laptop goes to sleep. - When there is an external monitor, it switches to it entirely.
And when the external is disconnected after that (the laptop is still closed), it goes to sleep fine.
Just disable it and actively sleep when you do want to sleep. This is the most sensible way even if you never have any external monitors attached.
Why is it better for Windows to do this wrong? It is clearly a side effect of the fact that the Power Policy system only differentiates between AC and DC and no other conditions.
What happens when I move rooms? Well, I only have one docking setup. But also, it is not a problem if my laptop spuriously goes to sleep. (My solution does not automatically sleep the laptop when it is undocked, either, so this is also still not an issue.)
There are tons of issues with a computer spuriously going to sleep. Network connectivity dies for one, as well as lots of minor quirks such as music stops etc. Having control of that is quite essential.
Being forced to manually sleep despite ones preferences is not a major issue. It is a sub-second operation that comes with lots of benefits. One of which being explicit with what you want to do.
>the Windows desktop gets a free pass because everyone has internalized the ways that it sucks.
That's because things don't work.
I moved from i3 to Sway and back to i3 because Sway didn't deliver of being compatible with i3.
Then there is the xdg portal mess which makes screen sharing through a web browser weird.
And also the whole XForawarding mess, which makes all Apps using it blurry in HiDPI. I use my computer for work, and 99% of it happens in emacs. The remaining 1% is using Chromium, which also does not support Wayland yet, so for me 100% of my wayland experience on HiDPI amounts to "all text on Wayland is blurry". There is no "HiDPI per-App" setting to fix this, scaling to 1.5x is also bad, etc. And that's without entering on the "wl-roots will never support nvidia thing". I need to use both AMD and nvidia hardware for work. I don't care about whether Wayland's desktop war (e.g. Sway) against nvidia, who has 50% of the GFX market, and 99% of the compute market, is honorable or not. But I do care about not being able to work on Wayland while X works just fine.
Sway devs say that this is 100% nvidias fault. From my POV, all other desktops manage to work with nvidia's hardware just fine, Sway does not, so I see this as being 100% Sway's fault. Without an i3 replacement I can't use Wayland, so until this fanaticism finished, I'll probably won't be able to use it.
But I switched to mac long time ago. Because I agree it handles text and HDPI displays much better. Maybe windows improved on this but reading text on it was such a downgrade to a mac. If windows would have as nice text rendering as mac I would switch instantly. Cheaper hardware for better price and all. No have best of both worlds windows and linux all in one.
I'm not sure what you mean by "nice text rendering" - are you referring to ClearType vs macOS anti-aliasing? If so, that doesn't really come up for HDPI, because you can't see the artifacts either way.
The picture is more mixed than you present.
I use Fedora at 2560x1440@14" and 2 by 3840x2160@27 and the dpi thing isn't an issue, set your font scaling to 1.5 and that's about all you need to do.
I dual boot windows and fedora (for gaming in the former and dev in the latter) and Windows 10 is by far more unpleasant to deal with, updates that tie your machine up for significant time, drivers are still "track down random binary from random vendor site and hope it works" vs "sudo dnf update" is (for me) no comparison at all.
Into the territory of personal preference, Cinnamon is a better desktop on than Windows - it's more responsive, more cohesive, closer to the classic WIMP interfaces I prefer.
As for wayland, I don't use it yet, I will when it's been stable for a year or two.
Additionally having two monitors completely breaks vsync with very ugly tearing lines.
And Wayland on Nvidia has been very unsuccessful for me. Even when I got it to run the performance in e.g. firefox was absolutely terrible. Sadly Wayland is necessary if you want hardware video decoding.
In summary:
* Full virtualization is a complete, in-software implementation of a device. Early virtualization technology was typically of this nature.
* Paravirtualization typically requires cooperation between the host and the guest, with a special communication layer (in WSL2's case, provided by Hyper-V) between a guest device driver and a host driver.
There are at least two more method of passing a host device through to a VM.
* "GPU passthrough", "PCIe passthrough", or "VFIO passthrough" depending on the source, Microsoft bucks these all and calls this direct device assignment, or DDA. In this mode, the guest OS is given exclusive access to a device or a device hierarchy (defined by the layout of the motherboard itself). This uses the MMU and IOMMU of the host to allow a VM to run a native driver, e.g.: nvidia's CUDA driver, and it will see a real physical device. (Nvidia's driver has historically blocked this by detecting that other parts of the guest OS are virtualized, because from the driver's perspective the device is a real, authentic Nvidia device, but the rest of the OS devices are virtualized and there are ways to detect that.)
* SR-IOV (https://en.wikipedia.org/wiki/Single-root_input/output_virtu...) is a PCI-express native method of splitting a device into virtual functions which can be mapped into a guest. I think the first real use for this was network adapters, which allowed VMs to get 10-40GBps network adapters working at native speeds by passing through virtual functions so that hardware offloading worked. Nvidia supports this on some of their server platforms, with GPUs offering up to 7 or 8 "virtual functions" which allows a single GPU to be partitioned and assigned to separate VMs. Once split up in this fashion though, I think it can be tricky to present the full device as a unified GPU.
Technically it just means there’s a client & server components and they communicate through some IPC. In this example you’re talking to a GPU driver running on the host, instead of the GPU directly. The communication goes through a VM boundary, the host driver accesses the device, then returns the result through the boundary, once more. You could just as well do all of this via a network socket, it would just be a little slow.
When you “pass-through” a device the guest is talking to it directly, all the host has to do is set up the IOMMU to limit the guest and the device from accessing the host’s or other guests’ memory. Basically VLANs for PCIe and the IOMMU is a firewall.
CUDA on Windows was already a big deal in engineering. Scientists and academics preferred Linux (and python, and docker) and Windows is playing catch up there to become compatible with the tools that have grown in popularity over the last 5 years.
Personally, as an open source advocate, I think competition (even from MS) is healthy. It drives everyone to build a better product.
Docker for example, I hate it, it serves no purpose beside wasting disk space and slowing down your machine. BTRFS is a bugged imitation of ZFS. Wayland not only is bugged but even does less things than Xorg.
Most scientists and academics then just don't know how to write software or administer operating systems, and if they program they write the worst crap of spaghetti code possible, no wonder they like Linux, Docker and python.
I use macOS, at least I have a system that has a decent user interface, and for my server I started using whenever I can FreeBSD, much more stable, much more simple, good documentation, a good operating system.
Docker is a deployment tool and obviously needed by enterprises and I don't think anyone sane using it for their own localhost.
> BTRFS is a bugged imitation of ZFS.
You don't really have to use it though. ext works flawlessly.
> Wayland not only is bugged but even does less things than Xorg.
Check out this video from one of major X maintainer of the past:
Today I learned me and a heap of web developers I know aren't sane.
Web developers usually need docker on their localhost just so it's work the same way as production environment. Though when you compare Windows on desktop and Linux on desktop you not gonna use docker at all.
I disagree about Docker. It's a good tool for reproducible development and production environments. What else should we use? virtual machines?
Scientists and academics are not in general, professional software engineers. At least they are using open source tools! What you rather they write their spaghetti in? MATLAB?
FreeBSD does not have the mindshare and ecosystem that Linux does. That actually does matter.
It has bugs, but at least it supports copy-on-write files and making snapshots writable.
Personally I use Ubuntu as a daily driver. No docker unless you install it and comes with Xorg (as well as wayland, but you're not forced to use it).
No, that's emulation. FreeBSD has something much better: jails.
Using Wayland... is it Ubuntu with their experiments?
It's fine you found FreeBSD, but your choices is not Linux fault.
Dave Airlie who is maintainer of Linux graphics subsystem will never allow to merge it since it's can only be used for proprietary software.
When it's come to graphics drivers Linux upstream don't accept any code that can only be used for proprietary components. So all this Direct3D and CUDA shims never gonna be merged.
See: proprietary hypervisor runs OS with a patched non-upstreamable Linux kernel and then there is proprietary userspace drivers and libraries that able to talk to their proprietary parts inside Windows.
Can any of it be used with different hypervisor? No.
Can it be used with open source drivers? Again, nope.
Microsoft could also just use Vulkan instead of bringing proprietary Direct3D user pace to Linux. Or might be they could actually open source parts of their stack, but then it's will be against their vendor lock-in.
It's definitely not as robust - you can't uninstall stuff using WinGet but the concept is there.
Do you or wider HN users have any picks for WSL/2 and/or WinGet tools?
Second there are situation where as a developer you are forced to use Windows. A lot of SDKs, compilers, debuggers, programmers for microcontrollers, FPGA, etc runs only on Windows, and if you have to do with firmware development you are basically forced to either use Windows or spend a week just to make a LED blink (if you manage to do that).
Same reason for using macOS: I use a Mac mainly because I need to make iOS software and the only way is to use a Mac. By the way macOS to me is a good compromise, you have all your UNIX tools in a system that you can use to run also proprietary software.
On my server I use Linux, even if recently I started using more and more FreeBSD and I'm liking it a lot (recently they added too much useless bloat in Linux like systemd and other crap, while on FreeBSD you have a simple system that is stable as a rock)
I don't think we will see the Linux Subsystem for Windows 2 ever. I also am not enamored with GUI side of the Linux world. WSL2 seems like a not bad place to land.
In my ideal world, Microsoft would base Windows on a mainline linux kernel. That would make me so happy.
absolutely _nothing_ about the subsystem made by microsoft is "for linux".
I also still dont understand what you get for paying for a windows licence to run linux except more overhead and a total lack of a package manager.
What is the benefit compared to the much simpler, better performance and cheaper option of just running Linux proper and using wine for windows things.
So, I guess when I use Office365 on my linux laptop, which is connected to a HiDPI monitor, that I can't do what you say.
Ok.
Here's a bit of a reality check. You can do, with very limited corner cases, everything you want to do on windows, on linux (and Mac) today, via the web or similar clients.
One exception to this is skype for business. Which is complete and utter trash anyway. But there is a commercial linux version, not by Microsoft, that works quite well for it. I have it and use it.
Teams for linux from Microsoft is in preview/beta. But, the port using electron was out first. And is fully operational.
For things that just absolutely require windows, I boot my licensed windows 10 home which was installed on a small SSD when I bought the laptop, in a qemu kvm window. Everything works on it.
I am amazed with all the hate on Linux desktops. I've been using Linux machines as my primary desktops, and linux laptops for more than 20 years. My current laptop is a Sager (Clevo) unit with 64 GB ram, 1.5TB SSD, GTX1060. Win10 was installed when I bought it, on an SSD. I changed boot order, installed Linux Mint 17.x at the time, and everything just worked.
Once I realized I could use windows from the qemu kvm session, I set that up. Took about 10 minutes.
Something I've learned from a long and painful life with windows, is that one should never let it touch real hardware. When you have to manage it versus fleets of linux machines, you understand why keeping it virtualized is the best option.
FWIW, I don't think WSL2 is going to change anyone's game. This is my opinion of course, but most of the developers I know are either on Mac books, or linux machines. About 60-40 split. In my field (HPC) its 25-75.
Microsoft's best play at this moment would be to buy Canonical, and offer that as MS Linux.
Imagemagick and call it done. Now everyone likes minimalist shit, so here you have. Or Xfig, if you feel fancy.
>You maybe need to connect to a printer like the one that we have at my office that good luck doing that on Linux
CUPS has less issues on Unix than the Windows "today it prints, tomorrow I'll toss a coin and let the Universe decide".
Because windows now literally has all the stuff Linux has plus a lot more.
The only reason for a well paid developer to prefer linux over windows for a desktop OS is that you don't need any of the extra stuff (a decent desktop experience, hardware support and a commercial end user software eco system) or that you have some fundamental objections concerning Microsoft's business practices. These are good reasons, but experience shows that most people don't care enough about things like privacy to give up convenience or shiny things.
Apple may be in for a tough awakening. They profited enormously from providing the desktop OS that a very large fraction of the technical elite has been using for a long time. MacOS still is still smoother than windows in some regards, but the writing is on the wall: linux completely dominates the server but is as hopeless as ever as a general purpose desktop OS, but windows no longer sucks for software development. It used to be that macs had the unique selling point of offering a nice desktop experience on good hardware coupled with something close enough to linux that you could use it for a very wide range of software development tasks. But new hardware is developer hostile and macOS drifts further and further away from linux (ever more lock-down that directly breaks developer workflows and tooling and ever more diverging user land with a mix of ancient GNU and irrelevant BSD tooling). By contrast windows now includes an ultra-high-fidelity linux layer with excellent tooling and integration to "core" windows and Microsoft also owns the world's most popular editor and code hosting solution.
I'm amazed how well Microsoft has managed to find back to its embrace, extend, extinguish roots. It is both a technical and a strategic marvel.
I have a better experience on Linux now than I've had on Windows in the past.
https://insights.stackoverflow.com/survey/2016#technology-de...
https://insights.stackoverflow.com/survey/2018#technology-_-...
https://insights.stackoverflow.com/survey/2019#technology-_-...
https://insights.stackoverflow.com/survey/2020#technology-de...
Windows Terminal 1.0 has been out for a bit, the current version is 1.0.1401.0 [0]
[0]: https://github.com/microsoft/terminal/releases/tag/v1.0.1401...
I think there were being some problems with that. It is planned but still in the future, possibly only with another feature update.
CUDA was always the big thing for me, I use CUDA and develop with it — AMD and Apple have missed their shot on this, in an absolutely massive way. Alienate developers with centralized app stores and huge fees, then alienate researchers by picking a fight with the biggest name in the GPU industry while providing no alternative. Silly.
I haven’t used Windows in years and it will be so so bittersweet the day I boot it up on a Dell laptop again.
Now, Apple is making a lot of hardware decisions that I don't like. Having used WSL daily for several months now, it's the game changer.
My next laptop will probably be a PC, and I can only say this because of WSL.
And then of course, there was the very successful advertising campaign from Apple where they specifically distinguish Macs from PCs: https://en.wikipedia.org/wiki/Get_a_Mac
Essentially, Macs are "personal computers" but they aren't "Personal Computers", if you know what I mean.
But if PC = IBM PC, and those basically always came with Microsoft software, I guess history supports that interpretation.
Direct rendering for X. This means the maximum OpenGL version that can be supported with hardware acceleration is 1.4, so many modern X program don't work or will use software rendering.
Multi-monitor support. Under X, windows are by default positioned and sized by the window manager and it's hard for application developers to screw it up, but under Windows each application developer has to be careful to make their program work well on multiple monitors. This shows, and event some built-in Windows applications get confused by multiple monitors, usually by having an action performed on one monitor open a window on a different monitor.
It is amazing how Mac users stick with Apple through a lot of inconvenience - x86 transition, USB type C, adapters, no audio jack, touchbar, breaking updates, walled garden iPhone. But they also brought a lot to community - good chassis, quality touchpad, HiDPI, wide gamut, capacitive touchscreens with gorilla glass.
Microsoft users has no less inconvenience - ribbon, metro, viruses, ever changing frameworks, ever confusing names (winrt), wrecked settings, custom theme on every application. And community gains - Word, Excel, up to IE6 innovations, XBox, VS Code, language servers, maybe crossplatform .Net some day.
I do not want to wreck them, I want to be objective. Microsoft of 80s rocked, in 90s - big and everpresent. Today they excel in PR. Hell, they got package manager 20 years late.
I think you'll find many Linux devs who have previously used or considered Windows have their own list of "windows sucks" reasons.
(By "Well paid", are you referring to people who are willing to spend money on big ticket desktop sw, or people who are in it for the money and don't have the curiosity or interest about how the system works? I think for most it's not about not being able to afford the SW.)
Sometimes it is simply the problem of linux being utterly broken. Linux users wonder why people won't adopt linux, and it is because it is full of problems. I spent a full day this week trying to get an internet connection for my linux desktop working (sans ethernet cable) and was unable to. USB tethering was broken for unfixable reasons and wifi adapters are a nightmare with linux. So that drove me back to windows, I tried WSL, and now I probably just won't ever bother trying to run linux on desktop again. I didn't want to tinker with my software, I wanted to do my personal projects. Windows at least lets me get the job done.
Developers targeting Apple platforms are doing just fine.
Perhaps WSL is a perfect tie in terms of user migration: for every person who decides that WSL is their most convenient way of using Linux there might be another who decides that if they are spending so much time in WSL anyways should better try shipping the surrounding Windows. And everybody wins, even pure Linux users who will over time use more software that isn't developed with the overhead of Windows port ifdefs.
I'll offer you one data point, for what it's worth.
We do multidisciplinary work on our workstations. That means electrical engineering (Altium Designer), mechanical engineering (Solidworks+CAM), embedded (Keil, Xilinx, Linux, NVidia Jetson, etc.), FEA (Solidworks Simulation), server-side development (Linux, Python, Django, etc.) and the myriad business documents that can go with all of that.
The traditional setup has been to custom build powerful Windows machines with as much memory as the mobo will support and half a dozen SSD's assigned to specific functions (system, data, library, hardware dev, software dev, virtual machines) and then build a bunch of task-specific virtual machines.
Using multiple (3+) monitors it is easy to live in this multi-OS/multi-paradigm world once you get it all setup.
Not quite using WSL yet but watching its development with great interest.
If all someone is doing is web development it used to be that either an Apple laptop or a dual-boot Windows/Linux machine was the top choice. WSL seems to be displacing Apple in this domain.
Competition is ultimately good, and we should promote Linux for the benefits it brings. Not hope windows will stagnate.
Developer != UNIX.
Overall I like Windows as an OS, but I like using a linux command line for development. Windows with WSL2 meets most of my dev needs.
Frankly, learning and intuitively understanding how many software components work is a valuable skill. "do the work" is steep up front but yields dividends, imo.
Personally, I use WSL2, as well.
I recently tried 20.04LTS on a laptop, with an external GPU over tb3 - it works! However, I really struggled to rectify the display density of my external 4k with the laptop's built in 1080p. I had other show stopper bugs, besides bad scaling, however. :(
What you're missing is the ability to open a game for a quick session while keeping your work open in the background.
What you're missing is that desktop linux is famously unpolished, and worse, brittle. There's a list of known(!) issues with desktop linux that some guy updates - currently it has over 100 entries.
What you're missing is your system continuing to work after major updates (Windows 10's relatively recent and rare "big oops" bugs aside lol). Personally, I use w10 pro with deferred feature updates to mitigate this, which is kinda messed up but there you go. I simply can't afford an update to knock my desktop out, which has happened to me a few times with desktop linux.
What you're missing is that "works for me" works for you, but not for me.
In case you're wondering why I keep trying desktop linux, it's because what I'm missing is an open, free, libre, privacy-respecting desktop. These are values I take seriously enough that I pay yearly estimated license fees to the open source components I use in the form of donations.
Absolutely possible with Wine or QEMU.
> What you're missing is that desktop linux is famously unpolished, and worse, brittle
Correct, but arguably also true for Windows. There’s no Linux distro that has had two settings panels for years. IMO the only polished OS is macOS.
I can just hope that with AMD's competition that nvidia makes some things easier for us practitioners. I just want stable and relatively up to date drivers.
I have literally no reason to dual-boot with Ubuntu anymore. WSL2 and Visual Studio Code fulfils all my Linux coding requirements.
Maybe (probably?) a bad thing but it's damn convenient.
If you're using WSL 2 and you put your Linux files on the Windows filesystem IO performance becomes spectacularly awful. If you keep your Linux files on the Linux filesystem it works rather well.
Docker should be installed on the Windows side with Docker Desktop and then associated with your Linux machines under Docker Desktop settings. This makes it available on both Windows and Linux. If you install it directly on Linux it only becomes available on that Linux installation and you get no interoperability.
Systemd tools will yell at you. I encountered issues when running systemctl. There are some fixes but I don't know if they work because I'm lazy so I worked around the issue instead.
I don't know if accessing the Linux files from Windows breaks them. I'm using VSCode remote extensions instead of mounting \\wsl$ and accessing it directly.
A Linux environment is superior for doing development (for everything I care about), and nowadays I've been able to play every game that doesn't have a native Linux port in Proton.
Now, the following has more than a bit of elitism, I'm aware of that, so please don't comment to point that bit out...
I'm afraid that searching for answers to specific ML questions will start feeling like trying to google some Windows problems (every few years when I make the mistake of trying to help someone out) where it's all "download this, then click here..."
I hope I'm wrong and this will only be used by people willing to go the extra mile...
MTS is the single largest reason why SQLServer_Linux was a shoehorn refit, not anything like the job that it could have been.
Out of the box CICS interop was bigger than my memory of the first browsers for W/NT. Want to trade with the world and speak EDIFACT, or do X.500 real money movement? You had codes running before you could put the screws on your local IBM account rep to get out of bed for you.
I last looked at HN just as Lockdown was announced in England. The last discussion I perused was showing a project that provided secure remote access to sensitive ports. Which I think is stable CICS fayre since about ‘85 on the cross platform side I would guess at least twenty years older for anything/360.
Some of the paths were too long and the installer could only be executed after being unpacked to root.
It's been a while since I more than casually gutted and used Windows as an app container, but I hadn't realized how much has remained the same after more than two decades.
You can take a look at the Github issues for Microsoft's projects related to WSL if you don't believe me. They are normal developers like you and me.
On another note. I don't think technical proficiency (or whatever your elitism-metric is) is very correlated with using Windows as the primary platform. You can Google stuff related to a Windows problem and through that learn how to work with the registry, and yes, some of the things you need to do require you to RTFM. So this elitism also suffers from being off the mark.
- Graphical installers / no package manager
- No search results / docs for most languages
- Weird bugs due to being second class for most languages
- Have to use docker in VM
- Bad env for writing scripts
- We deploy on Linux
- IMHO PowerShell is not that bad, but the newer PowerShell Core works better and with WSL you can use your favorite linux shell (and mix and match Windows and Linux binaries)
- WinGet is in preview
- No search results: my experience is 50/50 on that
- second class citizen: I wouldn't say most, definitely for Golang
- Docker now runs on WSL2 (which is still a sort of VM, but in my experience it's night and day with the old VM and especially compared to the default Docker experience on macOS)
- Why? You can use Python, and scripts are where Powershell really shines as a language
- That's the entire point of WSL I guess
If I’m running everything in WSL/2 why not just run Linux? I don’t remember the last time I had to use something windows specific - and word is available online for the sporadic times that needs to be used.
About WSL, you're right: if you only use WSL it doesn't make sense to use Windows, but it's a good compromise for anyone who needs both at the same time (at least it's a better compromise than a VM)
- driver support was atrocious for Windows server, and also for Windows 10. Almost every component from a fairly standard Ryzen build installed some form of custom skinned crapware to get basic functionality
- spyware and advertising was everywhere.
- the UI is a mess of old and new. It's unforgivable that this far from Windows 8 there is still such a mix of metro and older UIs.
- mixed DPI support is poor leading to screens where elements are quite different sizes
These are not specific to coding, but in particular the advertising and spyware removes Windows as a contender for _any_ use from me.
After a brief foray into desktop Linux, I returned all the parts to Microcenter and went back to OS X.
SDI Tool Origin. Don't waste your time with everything else.
Ok, so it was not about coding after all.
I haven't seen any ads or spyware when I use Windows 10. Maybe I just don't install them.
Python and virtual environment a were bizarrely difficult to get working across my + my teammates computers.
Many useful packages weren’t on Windows, or if they were were awkward to install or just weren’t as fast.
Sure I can install WSL and just use that for everything, but then you get to a point where everything is kind of duplicated, and I’m doing everything in Linux anyways, so why not just use that and be done with it?
Windows never felt as fast as Linux, and using it just perpetually annoyed me.
https://news.ycombinator.com/item?id=23241040
And related discussion on lkml with more context:
With this support now for CUDA now, it can be argued that the best, most versatile developer experience is on Windows. You now have access to all the Windows specific tools (such as Visual Studio) as well as all the Linux tools in a very seamless environment.
One more thing. Given that there's lots of distros, which Linux distro/desktop has won this year? Right, the winning Linux desktop is Windows, thanks to WSL2.
How unexpected of Microsoft.
By great, I mean great for NVidia, not for us.
With Intel joining AMD on high end GPU scene with open drivers, it's Nvidia who will be the loser with their dinosaur blob approach.
This is finally the year of Linux on the Windows desktop!
The arguments for not calling it something like "Linux Subsystem [for/on/in] Windows" don't seem to match up with the fact that there used to be a similar thing which was called "Microsoft POSIX Subsystem" also.
FIXED: safe mode, reinstall latest nvidia driver.
But I’m also a bit afraid. Has anything related to CUDA ever been easy to install and setup? Anyone who tried this have some pointers on this? For example, I don’t know how many times I’ve googled the CUDA, cudnn, TF compatibility matrix but it must be close to 100. Is this helping fix that as well?
Well, they have so far: 1) embraced Linux. 2) extended it with proprietary functionality (Windows living outside WSL), and now what is next?
How is this not the same?
Of course, the MS employee will downvote me automatically, the VS code users will downvote me too, and I will lose 5 karma for saying the truth.
The point is not "extinguishing" Linux per se, it's achieving enough lock-in that only Linux that Microsoft customers can use is WSL.
The "default" is Ubuntu. But Debian is supported, OpenSUSE is supported, Kali is supported. Unsupported but available, you can get Alpine, CentOS, Fedora, Arch, lots of distros.
Even if this driver went upstream, it wouldn't be any less tied to the WSL virtualization platform.
And from a lock-in perspective, the userland is all that matters, yeah? If an app runs on Ubuntu, whether it's WSL 2 or in Docker or in a a VM or on bare metal. If it's all the same, then it's not a Microsoft Linux, it's just Ubuntu. Or whatever Linux you want.