Your Preferred Os And Why

Started by
67 comments, last by Truanger 7 years, 7 months ago

Windows 10 for desktops/laptops/tablets/phone. FreeBSD for servers.

I love Visual Studio, especially C#. I love the UI. I hate the updates, but I can kindof live with it. The MS account support for Windows 8+ is awesome when using multiple computers and devices. I actually use and enjoy some of the store apps. For FreeBSD, it's the ports system. Being able to build from source with compile time customization yet full dependency resolution and update support, that also integrates with the default package manager is really awesome.

One thing I really don't get is why the whole Ubuntu on Windows is such a hyped feature? I've been using Cygwin for 10 years or so now, which has pretty much all of the tools and stuff from the OSS world, so what is so much better with running native Ubuntu binaries? Can the native Ubuntu binaries even interact with native Windows binaries (for example, piping output to eachother etc)? I'm guessing I'm missing something big..?

Advertisement

One thing I really don't get is why the whole Ubuntu on Windows is such a hyped feature? I've been using Cygwin for 10 years or so now, which has pretty much all of the tools and stuff from the OSS world, so what is so much better with running native Ubuntu binaries? Can the native Ubuntu binaries even interact with native Windows binaries (for example, piping output to eachother etc)? I'm guessing I'm missing something big..?
The one big thing about Cygwin is that it's an emulation layer. For the most part, that's rather meaningless, but there is one notable exception which is very, very disturbing.

GNU tools (or pretty much every Unix software) assume that you can fork() rather cheaply. It copies the page table, marks it COW, and brings another process into existence, that's it.

But Windows does not expose this functionality in its ordinary, publicly accessible API (although the kernel could very well do it). Instead, it can only spawn fresh processes with their own, separate set of pages. Which means that in order for programs that rely on fork to work, Cygwin has to do an awful lot of work, copying around memory between processes, and it effectively doubles the pressure on the page manager (because... no sharing pages). This is why GNU tools suck so much, it's why people start to puke when someone innocently writes "to build, simply run ./configure" -- running ./configure takes about 30 times as long as on a Linux machine, for no directly obvious reason.

Now, with this native Ubuntu-compatible Unix layer, forking means simply that, forking. No copying around stuff, no sucks. This is big win.

That, and of course you can directly use the up-to-date packages intended to run under present-day Ubuntu, rather than some UnxUtils or GnuWin32 packages from around 2008.

The interaction between Unix and Windows processes is... uh... limited. Let's use that word. But the point is, you can run native executables which can access the file system, and they don't suck.

I installed bash-on-ubuntu-on-windows after the anniversary update, and my computer started rebooting itself every few minutes. I uninstalled bash-on-ubuntu-on-windows and it stopped. I didn't have the patience to diagnose the problem any further. :(

10 without a doubt from a user environment point of view, I reserve judgement on its commercial aspect....

This topic is closed to new replies.

Advertisement