7 ms·
Command Line and Windows Subsystem for Linux – The Windows 10 April Update
- SuperNinKenDo 8y agoLooks like worthwhile additions. WSL is pretty nice, although I've started moving away from Windows, and generally do all my WinNix stuff on MSYS2 and Cygwin now anyway, for a variety of reasons. That and Eshell in NTEmacs is so nice.
- grewil2 8y agoShouldn't it be called Windows Subsystem for GNU? There's a boatload of GNU-tools in there, but does it include a Linux kernel too?
- da_chicken 8y ago> Shouldn't it be called Windows Subsystem for GNU? No, that's a separate module that requires the Windows Subsystem for Pedants.
- btschaegg 8y agoI'm just waiting for the rms rant demanding that it be called GNU/Windows. :) Then again, I guess rms cares much more about the non-free nature of Windows...
- JoshMnem 8y agoOr GNU/Linux Subsystem for Windows? It's called "Linux Subsystem on Windows" in the HTML: <title>Install the Linux Subsystem on Windows 10 | Microsoft Docs</title> [1] Microsoft has a tendency to create confusion around names when they relate in some way to Free software. Another example: Office Open XML. [1] https://docs.microsoft.com/en-us/windows/wsl/install-win10 https://docs.microsoft.com/en-us/windows/wsl/install-win10
- flatfilefan 8y agoI was actually trying to guess whether it’s an April joke indeed because of the naming.
- kccqzy 8y agoThe GNU userland is copied verbatim from your GNU/Linux distribution. Microsoft doesn't need to maintain these utilities. What Microsoft is developing is really a compatibility layer for running ELF binaries and handling all the system calls expected by Linux programs. So it's accurate to say Windows Subsystem for Linux. I haven't tried but I bet a GNU-free Linux system like Busybox will run just fine.
- jchw 8y agoIt emulates a Linux kernel, by handling Linux syscalls - it doesn't care much about what's in the userspace. The GNU tools are not required, they are just present since the Linux distros available use them. You can, of course, run busybox if you please. It might be buggy in some fashion but it will almost certainly work.
- xmrsilentx 8y agoToo put it more simply ladies and gents', it's the doppelgänger of WINE.
- ygra 8y agoJust inside the NT kernel.
- EvilTerran 8y agoWSL's kinda the mirror-universe Wine, but not quite - AIUI, it doesn't translate Linux syscalls into Windows ones, it's an alternative Windows kernel ABI that bypasses the normal one entirely. That makes a big difference when it comes to the implementation of syscalls that have no remotely close analogue in regular Windows. fork() and exec() spring to mind - the hoops Cygwin had to jump through to fake those[0] are pretty eye-watering, but for WSL Microsoft added new kernel functionality to support them directly. [0] https://cygwin.com/cygwin-ug-net/highlights.html#ov-hi-process https://cygwin.com/cygwin-ug-net/highlights.html#ov-hi-proce...
- moomin 8y agoGNU/Windows seems snappier
- frankohn 8y agoI advice people to not use WSL. It seems to me that this is the first step of their well-known embrace, extend, extinguish microsoft's strategy. They are now embracing the gnu/linux way of working like the packaging tools, the command line with the shells, the easy of having a compiler and developer tools, etc etc. At the same time they don't let you create from WSL standard Windows application that you can redistribute, I guess this is part of their strategy. In addition Windows 10 is such a messy, bloated system and the updates are very heavy and have often problems and they reset without asking many of the configurations you carefully made on your system. I advice people that want to use Windows to use MSYS2 instead. It is very well done, works flawlessly and you can build full featured windows application that you can redistribute. You have also the pleasure to use a shell inside a decent terminal and install very easily packages using pacman. In addition they support MinGW packages that does not need a special compatibility library, the msys2 dll, so that your application is 100% Windows native and can be a single executable if you want.
- Scarbutt 8y agobloated system and the updates are very heavy Really though, they asume everyone has a 100Mbps and a SSD, every new update is like a new install of windows, glad I don't have to use it.
- maxyme 8y agoOn one of my old computers with a i7 Sandy Bridge but a 7200rpm hard drive the update took 2 hours
- coatmatter 8y agoThat I still wouldn't mind so much if it weren't for the fact the update system provides so little feedback of what's going on and whether the process has stalled or not.
- tatersolid 8y agoI’ve had do-release-upgrade take 4+ hours on spinning rust. It’s like Canonical thinks we all are made of money have recent supercomputers with SSDs!
- JonasJSchreiber 8y agoI really wish that Docker could natively run in WSL. It's a really aspirational project for Microsoft, but it's not doing anything that Cygwin doesn't at this time.
- hrydgard 8y agoCygwin doesn't run Linux binaries. WSL does.
- raesene9 8y agoDepending on what you need, it already does. Docker for Windows provides Linux (and Windows) Containers on a windows host, albeit the Linux containers run in a VM. you can access docker for windows from WSL by setting up TLS on the Docker engine interface (https://raesene.github.io/blog/2018/03/29/WSL-And-Docker/ https://raesene.github.io/blog/2018/03/29/WSL-And-Docker/) There's also some suggestions that some versions of the docker daemon can run on WSL with ubuntu https://github.com/Microsoft/WSL/issues/2291#issuecomment-383698720 https://github.com/Microsoft/WSL/issues/2291#issuecomment-38...
- nickjj 8y agoIt doesn't run natively but it's really easy to interact with Docker from WSL. You can follow the steps to set this up at https://nickjanetakis.com/blog/setting-up-docker-for-windows-and-wsl-to-work-flawlessly https://nickjanetakis.com/blog/setting-up-docker-for-windows.... I use it every day and it's great.
- drinchev 8y agoWas so sad, because vagrant stopped working on my colleague's computer after this update. I had to force Vagrant to use the "system" ssh binary ( VAGRANT_PREFER_SYSTEM_BIN=1 ), since the internal vagrant OpenSSH stopped working. And this is without WSL being in use. It's already so complicated to run even git / vagrant on a windows machine, that I'm wondering how are people developing with it.
- pbowyer 8y ago> It's already so complicated to run even git / vagrant on a windows machine, that I'm wondering how are people developing with it. I find Git fine, but the Vagrant/Virtualbox ecosystem... I dread every Windows update because something will break the setup, and that will be a day lost to figuring out which version of every component I need in order for my Virtual Machines to boot/build. I would pay money for something that "Just works". Wondering if VMWare rather than Virtualbox is that, but no way to test without spending money.
- beagle3 8y agoRun the vagrant inside Debian (possibly inside virtual box/hyperv/VMware/parallels running on your host OS). Debian doesn’t pull or push the proverbial update rug under your legs without asking, and things rarely if ever break on a Debian stable update.
- megaman22 8y agoRun VMs in Hyper-V. That just works
- dugmartin 8y agoMy vagrant install failed under HyperV after the update. After spending a couple of hours trying to get it working again I switched over to Docker for some legacy Rails projects and installed native binaries for the Elixir project I was working on. I’ve used Vagrant for years but I guess it was time to move on.
- btschaegg 8y ago
- ChuckMcM 8y agoI really like WSL for systems where I have to use Windows either for corporate reasons or driver support. Now that you can do UNIX sockets between the 'sides' its pretty easy to add shims for special purpose USB devices as well.
- Jare 8y agoAnother nice update to the WSL which I believe arrived with this version, SIGIO and nonblockig reads. This is very nice for console textmode UI apps.
- zmix 8y agoWouldn't it have been better for Microsoft to support https://midipix.org https://midipix.org, which would have resulted in more finegrained POSIX support for Windows, rather than installing an isolated machine, that runs seperate?
- hirsin 8y agoWhat isolated machine? Open up WSL, run "CMD.exe notepad", then top. You'll see the instance of notepad running, and then you can go kill it with taskmanager. People still seem to think it's a VM when it's not - the pid in the Linux system is the same pid in Windows, it just hits a different part of the kernel.
- zmix 8y agoYou are right, I was assuming, it'd be running in a VM. At least, that was what was being said, when this project got introduced to me a while ago. I still don't sympathize and would prefer Microsoft putting other efforts, than this, into making Windows more POSIX aware/compatible.
- extralego 8y agoMaybe that will still happen? Getting this bridge built on new bedrock would make the transition more optional, so the vast amounts of different user types can switch as they please.
- hirsin 8y agoYeah, when it was first released no one wanted to believe it was kernel level compat. Curious - what would you prefer to see Windows do to make it more POSIX compatible beyond the current work of making it actually POSIX compatible? I mean, you can use any package manager you like to install any Linux application - it's literally POSIX compatible.
- ape4 8y agoWhat does just "notepad.exe" do?
- ktpsns 8y ago> [...] to start an argument, case sensitivity is one of the most annoying features of Linux. This is of course so much opinion-based, but my feeling is that in absolute numbers, machines which distinguish between upper and lowercase in file names surpass machines which don't. At least since the global market is dominated by Unix-inspired operating systems (iOS, Android) in the end ;-)
- willtim 8y agoNot to mention, that case-insensitivity requires knowledge of locale/encodings and all the associated complexity. Not every language even has the concept of case.
- nickjj 8y agoOne cool thing about the update is WSL's filesystem now supports metadata which can store Linux file permissions. So instead of having 777 permissions everywhere you can have your WSL mounted files and folders have correct permissions. Problem is popular code editors like VSCode will strip this metadata every time you save a file. If you want to see this fixed, please post about the issue in https://github.com/Microsoft/vscode/issues/49021 https://github.com/Microsoft/vscode/issues/49021.