1x64: Windows Subsystem for Podcasts

oh, if only 'twere so. Maybe some places have loosened that requirement. Many, many have not.

You think? I personally can’t imagine any sysadmins deciding to deploy a Linux app on Windows+WSL rather than on actual Linux, in the same way that I can’t imagine any sysadmins deploying a Windows app in the datacentre on Linux+Wine rather than Windows, but I’d be happy to hear argument otherwise.

1 Like

You’re right it would be an awful idea to put a productive Linux app onto a Win Server.

But in modern hybrid datacenters where everything is automated and the target is to have unified deployment, backup, etc. processes, you still have to do everything twice, once for Win and once for Unix systems. The possibility of using the same tools for these kind of tasks on both platforms helps sysadmins simplifying the infrastructure.

1 Like

Aha, I see! Yes, I can imagine that being useful, although I don’t know how useful; as I understand it, stuff inside the WSL can’t do all that much to affect the hosting Windows environment? So you can’t tweak networking or machine setup stuff. Obviously you can write files (C: is mounted on /mnt/c) but that may not be enough… but equally I may have misunderstood here!

Yes, that’s what I meant. I should have explained better in the first place.
You’re right there are many limitations. We’ll see how useful it is in the different areas.

Agreed. This feels like a big public beta of “Windows Container Services for Linux”, which will undoubtedly show up in the next Windows Server, supporting Enterprise Linux distros.

After all, “a distro without the kernel” is a very simple definition of what Linux containers provide :wink:

Thank you @sil for actually getting the dates in there, since @bryanlunduke doesn’t have a damn clue. :smiley:

2 Likes

Agreed. Especially when developing for multiple types of production environments, virtualization is preferrable. Especially in Web/SaaS space, stuff like Docker and Vagrant are really nice. Which still begs the question, what is so unique about Bash on Windows? It feels like MS is just grasping at straws at this point. First it was mobile, then tablets, as stupid table and now this? Wow…

No matter how automated and “open sourcey” Windows becomes, I would still not trust it over a Linux infrastructure.

1 Like

With regards to distro packaging I have spent a lot of time working with Ubuntu’s server packaging people to get NGINX packaged correctly. The problem being that our “stable” release (as in non-breaking changes) is typically released a few weeks after Ubuntu’s LTS releases. So Ubuntu has an NGINX release that is at least 1 year out of date upon release, missing many features.

I think (hope) we have come up with a good solution for 16.04 but I can imagine that many other upstream projects have similar problems. I really wanted 16.04 to have NGINX 1.10 because we have added things like HTTP/2 and TCP/UDP load balancing. I’d rather Ubuntu LTS users who use Ubuntu’s own packages not wait 2 years for these things when they are available now.

We do have our own Ubuntu packages and of course docker images, but some people just seem to prefer the distro’s own packaging.

Not in this big organisation it’s not. You can use a Mac or whatever if you want. Which is a surprisingly permissive policy considering where I work, take my word for it. But then you only get access to the Internet. That’s useful for posting on Bad Voltage, but less useful for interacting with all the Linux servers deployed on the corporate network. The only way the IT department are going to give you access to the network is if you run Windows, and moreover Windows managed by them.

A lot of the discussion about this issue seems pretty idealistic, rather than realistic. In reality there’re an awful lot of places where if you don’t run Windows you don’t get to play. In a technically ideal world perhaps things would be different. But Microsoft have made a lot of money over the years dealing in business reality rather than ideal technical solutions :wink:

Here’s a specific example. I’m posting this from a laptop running a corporate build of 32-bit Windows. It has to be 32-bit, because there’s some enterprisey thing somewhere that isn’t 64-bit. I do have Cygwin, but because I’m using Ansible (amongst other things) I need a proper Unix-like environment. I wasted about 2 days trying to get our tooling working properly under Cygwin. So I have a VM of the lightest usable Linux environment I can get away with. However because this POC machine is 32-bit I only have 3GB of available RAM. You can probably guess how well my VM runs by the time I have some Chrome tabs open, etc etc. And setting up networking was a pain too.

I’ve no love for Windows 10. But if someone was to offer me a machine that Just Worked on the corporate network but still gave me a proper POSIX environment I’d be all over it like sausage gravy on biscuits. So yeah, I find @sil’s analysis entirely plausible and I’m not sure what @bryanlunduke is smoking.

1 Like

Is what you are describing here the same as or similar to Snap packages? http://www.omgubuntu.co.uk/2016/04/ubuntu-16-04-lts-snap-packages

Snap packages may do the trick for Ubuntu. But I think there are really one of two ways it needs to go:

A core lightweight OS managed by something like apt/dnf/etc… and either:

  1. A good UI to manage approved repositories to get the packages you want. These repositories would contain the latest versions but are well tested and can be trusted
    or
  2. A good UI to pick the docker images (or some other container based system) for the packages you want

Option 2 may be a little overkill but probably makes potential dependency conflicts with newer versions of libs a lot easier to manage. It also lets you jail applications for some level of security.

I’m talking about making this work for desktop and server.

The implementation of AppImage sounds like it could be a good middle ground for 1 and 2 for desktop. Basically very similar to Apple’s DMG way of doing things. But there could be massive problems trying to do it for server software like NGINX. The goal appears to be to aim for platform agnostic installations. This won’t be possible for server software like NGINX because we have compile-time options that depend on what is found in the kernel.

As an example if the SO_REUSEPORT TCP/IP socket option is found in Linux then we allow users to enable it in configuration files, if you try that binary on a 3.x kernel that was released before that option was added the results are unpredictable at best (my best guess is runtime error or you will get really weird socket behaviour).

To be fair to @bryanlunduke (oh God, why?!) the fact that you get SSH is a bit “meh” IMO. I find that Cygwin (actually Babun) already does an excellent job of providing a native SSH client on Windows.

Where Cygwin falls down is the more developer-y stuff. Compiling is a chore, if it even works at all. Ansible fails in mysterious ways. IIRC there are problems/hacks for installing Ruby stuff. Probably other stuff.

If you have a 100% Ubuntu LTS userland but running on the NT kernel, I’d like to think that all these things would work in much the same way as they do on normal Ubuntu.

@bryanlunduke I’m glad you brought up the most interesting topic of this show: Supergirl!

I started watching the show some time ago and I’m in the same situation as you are (Although I don’t have a daughter). Sometimes it seems okay and watchable, but most of the time it just makes me angry. I don’t know at which episode you are, but overtime it gets better! … And then all of the sudden it’s shit again… (ep. 18).

A few things I like about this show:

  • It has a lot of nerdy stuff from the comics
  • Melissa Benoist is great as Supergirl and easy on the eyes
  • Cat grant’s wit and pop culture references are arguably the best thing on the show

Now, It’s not possible for me to sum up the things I DON’T like about this show, because these little irritations are all over the place. It all seems like bad writing.
For example: The writers think that they have to put Supergirl in physical peril every damn episode, which make her powers, very underpowered and inconsistent. Seriously, what’s up with her powers?? She has a hard time with every freaking Villain in every episode, even when they are not THAT strong. And when you take look at the details, it’s even more ridiculous:

  • Supergirl get’s stuck in quicksand… Huh?? (It’s literally the equivalent of a normal person getting stuck in a plastic bathtub filled with water!)
  • Winn bumps into Cara and she gets pushed away… Really? Bumping into Supergirl is like bumping into a concrete wall, resulting in a broken arm…

I just have the feeling that Cara is in danger and in need of saving aaaalll the time… Doesn’t sound very ‘super’ to me.
Also you get characters showing up at very convenient times at very convenient places. (I cringe a lot) Not so intriguing when you are used to high quality shows, like Game of Thrones.

My advice would be: If your daughter loves the show, then be the best Dad ever and continue watching it with her. :wink: It’s practically a kids sitcom that’s light and has some uplifting messages every episode.

for compiling applications for Windows I normally use MinGW and cross-compile from my Linux machines (and running test suites in wine). It has worked quite well for the projects I’ve used it on. But typically with those projects Windows is seen as a non-production environment and a 2nd-class citizen.

As a cross-platform desktop software developer I’m quite psyched about this Windows Subsystem for Linux. As it currently stands my development workflow is already identical between OS X, Linux and Windows. The difference, however, is in performance (git on Windows is noticeably slower than git on Linux running in VirtualBox on the same machine) and stability (bash from mingw sometimes doesn’t handle ^C and sometimes breaks the terminal). So if this WSL thing takes off and bash (or any other shell for that matter, like zsh or fish), git, vim, … would work with the same level of quality that they do on unix-y platforms, doing job on Windows would stop being a huge annoyance and might actually become enjoyable.

1 Like

And hopefully vice-versa. Remotely managing Windows hosts in an automated way has always been a painful experience.

1 Like

I realize I’m almost a month late to the discussion - if that’s poor etiquette and it’s preferred for me to start a new thread, just let me know.

I have no fondness for Microsoft or for Oracle, but I’ve often thought that most applications that are not system libraries or performance-critical should be written in C#/Mono or Java (or any other JVM-compatible language)/OpenJDK. That still contains the same security risk that your bundled libraries will contain security flaws. But since most Linux distributions offer Mono and OpenJDK and those projects basically never break backwards compatibility, your application will probably run as well in 2026 as it does today.

I’m not trying to assert that C# or Java are good programming languages, just that the respective platforms they run on give developers effectively something similar to appImage already.

(Edit) Admittedly this isn’t necessarily a good solution for smart phones and tablets because Mono and the Java Virtual Machine have heavier runtime overhead than an equivalent well-written native application. (/Edit)

I think I’d dispute that a bit – almost all the Android apps are Java, no? (On a different Java VM, but still on a Java VM.)

Essentially the idea here is: maintain backwards compatibility and keep your apps running by not targeting an actual machine but targeting a VM instead; the Java VM, or the Mono runtime (or the python interpreter, or V8 in nodejs, etc). This is I think reasonable; down with the tyranny of compiled native binaries, I say. It solves architecture problems too :slight_smile:

1 Like

I believe the Android JVM and the Java Micro Edition JVM (not sure if that’s still used anywhere), and potentially the Java 9 JVM with Project Jigsaw only use the system resources required to run the code in your specific Java application. That’s still not going to match C, but if you’re off 2-3x for speed and 3-6x for memory usage on an Android device with 2GB of RAM that’s fine.

But the biggest thing that made the standard JVM so painful to use fifteen years ago was that it would load the entire Java standard library before executing so much as Hello World. Today on my five year old desktop “Hello World” in C takes 12 ms and a negligible amount of memory. In Java 8 “Hello World” takes 170 ms and 180 MB of RAM - a few kilobytes of memory and probably near 12 ms for printing Hello World and about 150 ms and 179.x MB for loading the standard library.

But otherwise, I agree - Python, V8, etc… would be just as good. In fact, I’d prefer them just to avoid being entangled in a potential patent lawsuit with Microsoft or Oracle.