 Hey everybody, welcome to Linuxcast. I'm your host Matthew Evers. Usually I do this podcast every week, or at least I've been trying to do this podcast every week. But I skipped last week and one of the reasons I did that was because I wanted to have a little bit extra time to go through and develop this topic that I'm going to talk about this week. And that's specifically Windows subsystem for Linux. Now at the end of the last episode I had no clue what this was. I mean I had a vague idea. I knew you could run Linux on Windows. I didn't even know what it was specifically called. I called the Windows subsocket for Linux or something. Like I had no clue what it was. I knew it was WSL. I knew what the acronym was, but I had no clue what it said for it. But it is Windows subsystem for Linux. And it's on its second version now and I thought it was a good opportunity for me to figure out what this was all about. Now I will, there's a couple things I want to get into first. Let's do a little bit of contact info. If you want to contact me or the podcast in any ways, you can do that at the Linuxcast on Twitter. I'm at MTWB on Twitter. You can email us at thelinuxcast at gmail.com or like us on Facebook at facebook.com slash linuxcast. You can also subscribe to our podcast on any pod catcher, pod feed or whatever that you want. You can find a list of where we're at at thelinuxcast.org and you can also subscribe to us on YouTube. Now that that's out of the way, let's jump into WSL or the Windows subsystem for Linux. We're not going to call it the socket for Linux or HTTPS or whatever. I don't know why you got so confused. I knew in the back of my head what it was called. Anyways, WSL. What is WSL? Now this comes directly from the Microsoft Docs. I'm going to just read this verbatim. There's no sense in me trying to define it in my own words. The Windows subsystem for Linux lets developers run a GNU slash Linux environment including most command line tools, utilities and applications directly on Windows unmodified without the overhead of traditional virtual machine or dual boot setup. Now that's very interesting. In other words, it allows Linux developers, we need to keep that in mind, Linux developers. This is not for the average Linux noob who wants to use Linux but doesn't want to leave behind their precious Windows. It allows Linux developers or Windows developers who wish to try their hand at Linux based development to use Linux applications without having to go to the trouble of dual booting which dual booting I dual boot. If anybody knows me, I can't stand Windows at all but I have Windows on a partition and I use it for some gaming that I can't get around Linux. But I go there very rarely. You can see how some people just wouldn't want to dual boot so maybe WSL gives them that opportunity to use Linux tools. It also prevents them from having to use a virtual machine like Parallels or whatever that would definitely take away from the Linux experience. So with WSL version 2, Microsoft has added loads of new functionality including the ability to run GUI Linux applications now. There is a proviso here that that's not true yet. Apparently that's coming later this year but there are a workaround for that and I will talk about that here in a minute. It also for the first time has brought the full Linux kernel to Windows which is, I mean just think about that for a minute. Microsoft back in the early 2000s and even before that the Spies Linux they tried to sue it out of existence. They would go through and find every little patent that they had and try to make sure that the Linux foundation and everyone who owned or tried to create Linux had to pay out of their teeth for using whatever. But that's over with now. Microsoft loves Linux. They have t-shirts. Microsoft hearts Linux. It's a little creepy but apparently it's true. The Linux kernel allows almost complete interaction with Linux almost as if you're using Linux natively. I'll talk a little bit more about that later. Even more surprising is that Microsoft has worked hard to bring the Linux file management to Windows Explorer. So first of all Windows Explorer is horrible. We can disagree on that as bad. But with WSL2 you can now go through and interact with your Linux file system right through the Windows GUI without having to go into the terminal or whatever. It allows users to interact with their Linux file system directly from Windows which is what I have written here. I don't know why I repeated that. For developers this essentially gives them full access to the Linux ecosystem without having to do a boot or switch to Linux completely which could be a good or bad thing which we'll talk about in a little bit. So you'll notice throughout this whole thing I've said developers like 10 times so far. You know Steve Ballmer did that whole developers developers developers thing. And really that's what who WSL4. So the answer to the question of who is WSL4 is developers. If you're a developer who has to use Windows it's the key thing. If you absolutely have to use Windows all the time and it doesn't make sense to have to switch back and forth between Linux and Windows then WSL is likely for you. And mostly this is for the creation of Linux tools. It's mostly for those that need Linux tools to develop applications mostly for servers and cloud tools and things like that. WSL makes it much easier than having to switch back and forth between Windows and Linux like you'd have to if you do a boot. As I'll talk about in the next section WSL isn't easy to install. So the reason I have this here is because it's not necessarily the easiest thing to install. It's not for people. Let's say you read about this and you're just a Windows user you're not a developer and you want to use Linux. But do you think that this is a good way to try Linux? That's not the case. At least right now it's not the case that if you're just looking to try Linux this is not the way to do it. This is not the way to do it. It's much easier to download Ubuntu, put it on a USB key and boot into a live environment. It's way easier. I mean there's just so many different steps to WSL that you have to do and they're all complicated in some form of fashion. Especially for somebody who's never done it before or doesn't work in a terminal that much. So really WSL is just for developers and nobody else. I personally think that Linux is easier to install, like I said. So WSL isn't an option for people who just want to go through and experience Linux. Linux evangelists really shouldn't. So there's been this. We're going to talk about this a little bit later, but there's an idea that WSL is going to somehow take away people's interest in installing Linux. And that's just, it's not the case. Like I said, I'll talk about that later, but because it's so much more difficult to install, I don't think that that's a big deal. So I want to talk a little bit about my experience with WSL too. So after the last episode, I tried to install it for the first time and I couldn't do it. It kept giving me an error. I could get WSL one installed and Ubuntu installed and it was fine. But you couldn't really use it. And in order to upgrade to WSL two, you have to have virtualization technology enabled on your BIOS. And it doesn't make this clear outside of one single sentence in the instructions. So if you're not reading carefully or you just miss that part, you're screwed because it doesn't exactly explain what it is. Or why you need it or anything. It's just one sentence in maybe, you know, a 700 word document about how to install WSL two. And if you miss it, WSL two can't be installed. So it took me a while, but eventually I was able to actually install Ubuntu 20.04 on WSL two. I even managed to get a workaround up and running that allowed me to install XFCE, which, you know, I mean, that's awesome. Right. I mean, you're using XFCE on Windows. I mean, it's like it's a miracle. My first observation is that this is not for you. So I've talked about this before. Installing Linux itself is actually quite easier. At least, you know, Ubuntu. You can talk about Arch or whatever, but I mean, if you're just installing Ubuntu, it's way easier. In order to get WSL working, you have to go into your BIOS and set up virtualization. If you don't do that, it will not upgrade from WSL one to WSL two. Now, if you're a developer, this isn't a big deal. It's just a single setting in BIOS. And you go in, you change that setting, reboot and then WSL two will install properly and everything will be fine. But it is the problem is that setting is different on every motherboard or computer manufacturer or CPU that you have. Name something different. It's in a different place. You interact with it differently. And it's going to really depend on how you do that. It's really going to depend on what kind of hardware you have. And because of that, because there's so many different ways of doing it, you have to Google how do I do this on so-and-so motherboard. So for my Aorus, it's a gigabyte board that I just used for my new computer that I can't even say the name of. And because I knew the hardware and I was able to find out how to do it, but if you just have a pre-builder or whatever, you'd have to know what the model of your computer was and how to do that in the BIOS and whatever. It adds that extra layer of complexity so it can be hard to find instructions on how to do this virtualization thing if you don't know what your computer actually is. So it's definitely not for noobs. So that being said, like I said I talked about in the last section, WSL isn't meant for new users of Linux. It's just not. It's meant for developers and people who try to force WSL into the mole of having it be for new Linux users is just doing all those users a complete disservice. Once you set it up, if you're just going to be working in the terminal, you're great. The terminal apps work wonderfully and you can vim all the way home if you want. You can install all sorts of different terminal commands and terminal programs and it's really good. The problem comes in is once you want to do anything practical, whatever. So right now there's a workaround to install graphical programs and desktop environments. Right now if you want to use a GUI, you have to connect it via an XRDP or connect it via XRDP and then connect to it via remote server session. The fact that you can do it at all is just mind blowing at this point. It's really, really cool. As a nerd you're using Linux on Windows with a full Linux kernel. You can do everything on Linux that you want. There's a GUI there and you can just use it as a Linux computer if you want right alongside your Windows games or whatever. The problem is it's so slow. I mean it's just so slow and I mean slow slow. I don't think I can emphasize how slow it is. I mean it's not so slow that it's unusable. I suppose I shouldn't get so bogged down to being slow that it's unusable but it doesn't seem to matter what your computer hardware is. I'm running a Ryzen 3800X and I have 64GB RAM and it was slow. I'm not sure if you can go through and allocate more resources or whatever like you can in a traditional VM. I'm not sure I didn't get that deep into it. Maybe there is but it was just very slow. When I say it's slow not so much as in it's like I don't know how to explain it. It's like you're using a really old laptop where you can go through and you can browse the web. You can browse files, view pictures and stuff like that. You can even get on and do YouTube at like 480p if you wanted to. It will stutter a bit and you'll see some screen tearing and things like that. It's usable for simple tasks but if you're expecting to get on there and do anything hard core graphically intensive. I'm not talking about going on there and playing Tomb Raider or Grand Theft Auto 5. Nobody is expecting to be able to do that here. Frankly, why would you? You have Windows installed. You can just go play those Windows games there. But if you're going to do anything outside of like listening to music or install VS Code which is something you'd be expected to do. You're going to be run into some serious problems because it just doesn't have the power to do that. I will also say that I didn't have a lot of time to play around with getting it to work better. So it's possible that I missed something. There's also the fact that Microsoft is working on a way to run Linux apps and perhaps desktop environments natively which means you will no longer have to do the remote session thing. I think that will significantly increase performance when that happens. And I'm definitely going to check that out when it does. Because it would be really cool if you could run a Linux app and a Windows app side by side and not have to worry about the remote session thing. That would be really cool. The question I've asked myself is would I use WSL? I'm not a developer outside of some web development and that doesn't require me to be on Windows. I'm not required at all to be on Windows. Like I said I have a Windows partition for like Hearthstone and Destiny seems to run better on Windows. So when I play Destiny I use Windows. But I don't do that very often. Most of my time is 100% spent on Linux and I don't see that changing. But I asked myself this would I use WSL if I were using Windows? And I'd say maybe. There are some terminal applications that I would love to have on Windows if I were to use it a lot like Ranger, Vim, whatever. But the thing is there's some things that just don't work. So you really can't access files outside of the VM. It's a little bit difficult. SSH and Samba and the lake would probably work fine. I didn't give it a real good chance of testing that out. But it's not native access. So there's that extra hurdle that you have to do in order to actually access your files. Like I said I didn't spend a lot of time with WSL. So maybe that there's a way around to get native access outside of the VM. So I'll have to keep looking on that. But if there's not it's just that keeping all your files on the VM or having SSH into another computer or even just into your Windows file system. That's kind of a pain in the butt. And I just don't think that frankly I would just rather use Linux. I think that's what this boils down to is I just rather use Linux. If I have to use Linux I might as well just go full boron and install Linux. Dual booting doesn't bother me outside of the fact that I never use the dual boot. Once I'm on Linux I'm on Linux and I have all my tools there and I can do everything I want to do. So that really leads it into the next and final section of the podcast. Does WSL hurt Linux adoption or help it? So ever since WSL was announced by Microsoft and I think it was 2017 maybe 2018 I'm not sure. The question of how this affects Linux has been a serious discussion amongst Linux pundits and experts. You'll hear Brian Lunduk's talk about it. I'm always picking on Lunduk. You'll hear Joe Collins talk about it. All these Linux YouTubers talk about WSL and how some of them say it's the opponents of WSL will state that because you can now run Linux on Windows. There's no reason to actually install Linux hence hurting Linux adoption. After all if you don't have to why install Linux if you have to use Windows. It makes Linux redundant or so the argument goes. Others will say that this is nonsense. That even if you start out with WSL Linux is just as attractive as it always has been. Even more they argue if people give WSL a try and like Linux so much they might go ahead and install it. They go for real whereas they might not have otherwise done so. Now I have problems with both of these. Personally I fall somewhere in between. Some of my resistance towards WSL is because it has more to do with Microsoft. With the Microsoft from yesteryear and I really did write yesteryear in the script for this episode which is hilarious. And they're opposition to open source. That's not the Microsoft today. Microsoft today actually seems to like Linux and open source a lot. They open source some things. They even have their own Linux distribution for IoT devices which is kind of insane. I'm also not sold on the idea that if you use WSL you'll think about installing Linux. Chances are if you're going to go through the hurdles of installing WSL. You aren't incapable of installing Linux in the first place. The reason why you're doing it in this particular way means that you have to be on Windows. Chances are you've chosen to go the WSL route even though you could do Linux because you have to. The other argument is that it will drive people towards using Linux. I'm losing my train of thought. I don't think it hurts Linux in any way. For one the performance isn't great. It's slow as of right now. It's not going to keep people from installing Linux because it's so awesome that they can't be bothered. Second there's still a lot that you can't do with WSL that you need Linux to do. That being said for developers who need Linux but can't leave the Windows desktop behind. I think WSL is a great tool that will allow them to somewhat have the best of both worlds. I also think that it will get better and better over time as Microsoft makes it perform better. It adds native Linux app support and so on. If WSL does get to the point where it's as good as booting into a native Linux environment then maybe Linux would have a problem. But I don't think that that's a lot to worry about because not only is it far off into the distance but also at that point it would expose people to the awesomeness of Linux. That takes care of the argument about how WSL might hurt Linux. What about the argument that it will expose more people to Linux right now the way WSL is now? I think this is utter nonsense because if you use WSL it's such a poor experience for anything outside of development. If you're knowledgeable enough to install WSL but you're not a developer you're going to come out of it with a bad experience of Linux because it's not fantastic for the things most people want to do. If you want to browse the web or play a Linux game or whatever WSL is not great for that. It's meant for development. So I don't think that WSL is a great advertisement or marketing tool for Linux. I think both of these arguments really kind of missed the point. WSL is for a small group of people who know that they need it and those people are developers that require access to Linux tools but cannot leave Windows behind. That's what WSL is for and that's what I think WSL will always be. It's not going to hurt Linux adoption because it's never going to replace a lot of the things that Linux can do. Even if Microsoft goes through and gets everything GUI working fantastically there's still going to be things that you're going to want to do on Linux. There's just because also in that theoretical future where Microsoft gets WSL working fantastically this doesn't take away the flaws that Windows itself has. So one of the reasons why you use Linux is because you don't want to use Windows. So for example, time for a Windows rant y'all. Linux pundit complains about Windows, news at 11. So like I mentioned I don't use my Windows partition very often. Maybe once every month or so, maybe twice, not that often at all. And usually it's for like an hour and then I'll go back to Linux. And one of the reasons why is because every time I turn the damn Windows on you have updates. Now I understand Linux gets updates too, but I get to choose on Linux when to do my updates. I could wait a year if I wanted to. I mean it'd be dumb, but I could. Linux doesn't force me to go through and restart my computer four times in order to finally get to do what I want to do and that really bothers me. That's the reason why I don't use Windows. And Windows rant, I think that WSL being awesome doesn't negate the fact that Windows is terrible. I'm just going to throw that out there. It's possible if it gets to the point where WSL is very, very good. People might see how good Linux is and then decide that they're going to either do boot or just switch to Linux completely. It's not there yet. I don't know if it'll ever get there. So the two arguments about WSL and the Linux community are both wrong-headed, I think, just because they don't address what WSL really is. And that is a tool for developers who can't switch to Linux. So that's what WSL is. So that is my thoughts on Windows subsystem for Linux. I got the name right. And just in conclusion, I learned quite a lot in this process and I was reminded of quite a lot. I've been reminded of why I don't like Windows, which I'm reminded of that every time I log into Windows. I also learned that WSL has technical limitations and is slow. It's really cool. From a nerd perspective, it's really very cool that you can go on Windows and use Linux. I can't really explain why it's cool. If you think about it, you've been able to use Linux on Windows forever. There have been VMs of virtual machines managers like Parallels and whatever for decades at this point. And you can install Linux through those. But this is Linux running basically natively on Windows and it's really cool. So I guess, before I go, I should talk about this. This is completely out of order, but I guess it doesn't really matter. I mentioned how I thought installing Linux was actually easier than installing WSL. And I mentioned the virtualization thing, which I found to be the hardest part. But really, it's not the only hard part. So you have to go through and you have to enable WSL and you have to enable virtual machine technology within Windows. And there's two different ways of doing that and it's not clear on which way you should do it. You can either use PowerShell or you can do it through a GUI settings menu or whatever. And the Microsoft documentation isn't all that great. So I had problems at the beginning with. And then I found a good YouTube video, and that is finally what I had me be successful at installing WSL. So it's a multi-perp process. And at the moment, if you want to get GUI applications, it's a workaround and there's like 12 commands or so that you have to go through and run. And you have to be comfortable with said and the copy command and Vim or Nano. And it's just not user friendly. So the installation thing was honestly, I would have recorded this last week if I'd been more successful in installing this, you know, last week. So anyways, I've completely lost my train of thought of where I was in conclusions, but I just really is cool. I don't think that it's going to take away from Linux at all. That's just my thought on it. Anyways, before I sit here and ramble on for, you know, an hour and a half or something on this, that is it for this episode of the Linuxcast. I will go through and I have my little script here that I've, you know, I'm supposed to be reading this Albert Vadim because it's supposed to be, it's supposed to protect me from saying um and oh and oh my God and terrible things. You know, over again, but I've deviated from that, but I do post that in the show notes. If you want to see those show notes, you can either look in the podcast you're doing or at Linuxcast.org, the Linuxcast.org I should say, or on YouTube as well. And you can, now we don't have our next episode. That's what that's the last thing I need to talk about. I'm going to be talking about how Linux on mobile is doomed because doomed is exactly what Linux on mobile is. It's not a good situation if you want to use Linux on your mobile phone. Anyways, that is it for this time. If you want to get in contact with me, you can do so at MTWB on Twitter. I am still looking for a co-host, so I don't have to sit here and talk to myself all the time. So if you're interested in being a co-host with a Linux, basically a Linux noob, send me a DM on Twitter or email me at thelinuxcast.com. And we'll see you next time.