Microsoft's Linux Kernel
github.com
github.com
In the mid 2000's the Mac really took off due to being a good-enough Linux replacement on the command line, while taking care of all the hardware integration and providing a sleek desktop experience. This really helped the Mac take off among hackers. This system wasn't as open-source as Linux, but it was good enough: Most of us don't want to mess about with the desktop stack. If the stack we care about is open-source and runs across many systems, then we still have the freedom. I find it fairly easy to work on both Mac OS X, Linux and WSL2 -- but not pre-WSL Windows.
The inclusion of a Linux kernel really seems to cause a lot of confusion. No, Microsoft is not about to remove the NT kernel. No, they're not about to supplant Linux. WSL1 did what the guys from Illumos and FreeBSD have also done: since the Linux syscall interface is quite stable, the NT kernel can simply implement these syscalls and handle them appropriately. The was that the NT kernel was still sufficiently different that the filesystem performance was quite poor and complex applications like Docker required more kernel features than was provided by just the syscall API.
Including a Linux kernel is really the nuclear option: rather than trying to fit Linux applications in Windows, they're running in their own world and providing integrations into this world. This means you can now run Docker on WSL2 for instance, but it's also complicated: Kernels really like to think that they own the world, for instance they keep memory around to use for later. WSL2 dynamically grows the amount of RAM allocated to the VM, which is quite clever, but I don't know how/if they're going to handle freeing memory again -- here the NT kernel really needs to communicate with the Linux kernel.
Anyways, the upshot is that no, Microsoft is not going to take over the world, but perhaps it will be easier to use a Windows laptop which supports all the stupid Enterprise software I need but still have a Linux shell for actual work.
nit picking but it was more of a good enough bsd/unix than linux.
It is effectively their way to have an "integrated Linux virtual machine" inside of Windows. The WSL1 on Windows was relatively similar (but not enough for me) to Wine on Linux. The WSL2 is in some ways "more integrated" than the typical VM would be, but otherwise still similar to that.
Not enough: my greatest disappointment up to now is that the "VM-like" behavior was present even in WSL1, if I understood correctly, the files "inside" were more special than the files inside Cygwin folders would be.
Another disappointment was: it was not easy to install WSL on previous Windows 10 versions. Specifically, it was "in app store" but you weren't supposed to "click to install" -- it resulted in something weird. There were recipes what to do from the command line with hoops to take care of, so at the end... I've installed Cygwin, which I knew will work. Does anybody know, did WSL get better now?
(Edit: in the last sentence: s/ it / WSL /)
I really like Cygwin. With the MinTTY terminal, it was very nice. Slower than native Linux (or Windows), but enough of an environment to make me happy and productive.
Yesterday I:
1. Enabled the Windows Subsystem for Linux option from the control panel
2. Downloaded Ubuntu from the windows store
3. Open Ubuntu and it worked.
https://www.reddit.com/r/bashonubuntuonwindows/comments/7smf...
Regarding the problems between the "different filesystems" it was like:
https://www.reddit.com/r/bashonubuntuonwindows/comments/9dkl...
Which was especially bad: what's the point in having it "there" if you aren't allowed to access the files inside.
Also problems with making a backup of that etc. In that aspects using a real VM (e.g. VirtualBox) the situation was much clearer.
So from my perspective it was both worse than Cygwin and worse (or at least not better) than real VMs... I would really like to read if/how WSL improved.
The similar experience was when I've tried to "just install ssh server". The things I've expected to "just work" didn't. Again at the end I've just used Cygwin.
I'm disappoint to "VM-like" behavior too, so I don't expect they would be totally replaced by WSL.
But this is similar in the other direction. Many applications just rely on such "VM-like" behavior, even though they can be (re)built for Win32 and/or they do not need a real VM for functionality. Note WSL1 can already do something more, e.g. hosting programs as X clients working with VcXsrv. I don't think WSL2 will be necessarily better than WSL1 in many of such cases. (In particular, when I have to reserve VT-x for some other hypervisors, I have no other choice.)
The thing that annoys me most on Windows is Windows itself. After using Linuxes for almost two decades now, the notion of the OS taking tens of minutes to self update when all I wanted was to quickly reboot it is unbearable.
> I don't know how/if they're going to handle freeing memory again -- here the NT kernel really needs to communicate with the Linux kernel
Usually "free" memory only happens when a Linux machine starts. During normal usage most of the memory is being used to cache things and, when some large app frees its own memory (such as when Slack quits) it'll eventually be used for other things.
Not sure how that would work. Memory doesn't stay unused in Linux for long - whatever programs free will end up being used to cache information that's slow to access.
But not all annoyances are created equal
This is definitely a problem especially considering that the shotgun approach to some Windows updates actually hurt the performance of some machines, even breaking Windows on occasion [0]. However, in fairness I would say that I've spent just as much or more time fixing rolling release issues on Arch/Manjaro, or troubleshooting the package stopping me from sudo apt upgrade. The worst experience for me was having to reformat after the update from Ubuntu 14.04 crashed.
What annoys me most about Microsoft's overarching paternalistic philosophy is is how creepy their telemetry initiatives are. Granted plenty of companies do this now, for the same profit-driven motivations, but Microsoft goes above and beyond in terms of disabling or even ignoring opt out options [1]. I've found the Winaero blog [2] to be a good source of tools to stop some of the Windows telemetry shenanigans.
[0]: https://www.forbes.com/sites/daveywinder/2019/05/19/microsof...
[1]: https://www.reddit.com/r/Windows10/comments/a4lpg0/windows_1...
[2]: https://winaero.com/
Fantastic - so if any of the fstab entries are missing, the entire system effectively bricks itself. The only way to fix it was to remove the SD card, put it in another machine, and manually remove the offending entries from the fstab file. Fantastic. I Don't think I have ever managed to get windows to self-brick itself with something so simple.
If you can't properly start the OS, that's correct behavior. You don't want the OS to start writing things to /var when it can't mount the filesystem that should be mounted to /var.
In any case, the fix with an RPi is easy - pop out the microSD, mount it on the other computer and fix whatever is broken (which should be in the logs). If the RPi is the only computer, put a microSD with a plain install of the OS, mount the other microSD through an USB dongle and fix it the same way you'd do with a laptop.
--no-preserve-root
do not treat '/' specially
--preserve-root
do not remove '/' (default)
https://manpages.debian.org/stretch/coreutils/rm.1.en.htmlMind that if your rm comes from elsewhere (say, Busybox), it may not have that protection.
Very careful use of rm as root is an excellent habit to cultivate.
As are backups.
And no, I'm sorry but I hate the argument of "you should have known better" - the system first and foremost shouldn't have defaults set up in such a way that not only the SSH server doesn't come up in case of an issue during boot, but the local console is entirely disabled for any access. That's a crazy default.
That doesn't even matter much to me. Obviously, less time spent is better, but what really matters is the timing.
When I have to spend time upgrading my linux box, I have set time aside. I decide that I have a bit of time, and if it turns out to be a bigger job than expected, I can decide to abort and continue some other time.
On Windows the upgrade is always inconvenient, because you have no way of controlling it. Microsoft decides when the best time for you to upgrade is, and once it starts you have no means of punting on it.
Although the telemetry is certainly a problem too.
True, very good point in favor of user control. Linux has the added benefit of teaching the discipline and foresight to understand that "Hey... maybe I shouldn't run sudo pacman -Syu and reboot until I have some time set aside". Though in recent years I've found Arch to be way more stable with very few updates causing major problems.
Can confirm. I've had the same Arch install for nearly 6 years now. I've borked it only once in that time, and that one was my fault for not reading the news first. Fixed it in < 5 minutes.
And I've made considerable changes in that time, including moving the entire installation from one hard disk to another.
That too. When I update MacPorts, it can, sometimes, take ages. I don't care - I just continue working.
I find the same thing with electric cars. Eight hours to charge when I've spent two decades filling in minutes is absurd.
No we do not.
Who are you to claim this?
The closed off nature of Apple is very dangerous to trust, and I don't know any 'hackers' who are willing to risk unchecked/vulnerable OSes.
I have no idea if Apple has a backdoor to the FBI. We do know on Linux there is no hidden backdoor.
There's not much Windows can do about this, which causes tons of issues with e.g. git clone. Erick Smith is ludicrously smart, he just couldn't squeeze better FS perf out of WSL1 due to these issues.
Cygwin really helped me with the Windows part of that for many years. I switched to a Powerbook about a year before the Intel switch & haven't looked back since. Linux has never been a good enough desktop all-rounder to make me switch to it as a desktop OS. Maybe I should take another look.
A tangential point but a relevant one nonetheless. I owe most of my tech. skills to the fact that it was hard to get a Linux distribution running on a cheap PC. I had to read up about hardware, learn how to fix installation issues, sometimes recompile the kernel with different options (and hence study them) and a number of other things simply because it didn't "just work". It gave me an intimate comfort with Linux that I just don't have with any other system (including MacOS which I used for about 2.5 years).
I completely get the notion that when one is a professional he or she shouldn't need to meddle with system level quirks to get a productive environment and a desktop and thankfully, modern Linux is more or less there. I haven't had any major trouble in a long time with it. However, during college or early years, having a system that demands some amount of work to get it working has, atleast to me, be crucial in honing my skills. I wouldn't change that even if I could. I'd vigourously defend it.
What I really appreciate about WSL is that you get the accessibility of a bunch of OSS projects and a machine which has legit drivers for all of its component bits. What this means to me is that searching for a "linux laptop" won't be a chore, if it runs the latest Windows it will run Linux. And I can do development on the Linux side while communicating with senior management in power point on the Windows side :-). If they come up with a better/credible USB allocation scheme it will be icing on the cake.
I also think they should buy one of the X server vendors and bundle it (comments about X.org from Redhat not withstanding) I use Xwin32 on my laptop with WSL and its pretty seamless in terms of things that want to pop up a GUI.
1. You can't connect to a port listening on WSL localhost like in WSL1, you have to figure out the WSL IP address and use that.
2. From WSL you can't connect to a Windows TCP port on localhost, you must figure out the Windows IP (cat /etc/resolv.conf) and use that.
3. The WSL remote interpreter on PyCharm is not working anymore. The suggested workaround is "use SSH remote interpreter" but given #1 you can't connect to localhost (and the WSL IP changes every time you restart it)
In order to use the SSH remote interpreter in my favorite IDE I'm using this script (on Windows):
import subprocess
import re
output = subprocess.check_output('wsl.exe ifconfig')
match = re.search(r"\sinet\s+(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\s", output.decode('utf-8'))
if match:
ip = match.group(1)
with open(r"C:\Windows\System32\drivers\etc\hosts") as i:
content = i.read()
new_content = re.sub(r"(172.\d+\.\d+\.\d+)\s+wsl", f"{ip} wsl", content, re.M)
if new_content != content:
try:
with open(r"C:\Windows\System32\drivers\etc\hosts", "w") as o:
o.write(new_content)
except PermissionError:
print(new_content)
First I use the Windows Scheduler to start SSH (wsl service start ssh) on logon. Then this script is executed on logon with elevated privileges to update the hosts file. Instead of "localhost", I use "wsl" and it works well enough for me while I wait for the fixes.Despite the above, the combo Windows 10 + WSL2 is the best "Linux Desktop" for me.
Doesn't solve the speed issue, but at least you're never blocked by a software that only work with a local/non-network path.
I'd guess all significant Windows developer tools will add support for the wsl paths over time. VS Code obviously leads the pack with its remote extensions. I hope Jetbrains will do something similar with IntelliJ Idea - the piecemeal approach doesn't work as well IMO.
I'll be interested to see what Microsoft can do about the speed of access to the windows file system. It's painfully slow right now.
The existence of c:\Windows\System32\drivers\etc\hosts cracks me up. Supposedly [citation needed] Windows uses/used part of the BSD network stack.
[0] https://chrome.google.com/webstore/detail/secure-shell-app/p...
That'd suck! is there no way to nail it down?
https://www.usenix.org/legacy/events/osdi04/tech/full_papers...
https://os.inf.tu-dresden.de/Studium/KMB/WS2012/06-Drivers.p...
Well, a mix of Windows and Linux drivers where we use Linux whenever it works well enough. Windows when it doesn't. Might also be able to tie that in Windows Embedded to trim as much fat out of the driver VM as possible.
Seems like there could be a market for that where it's combined with recent enhancements in efficiency targeted toward people like you that want more compatibility. What do you think?
Microsoft puts itself in the middle of that by certifying a driver through a vendor sign up / certification process, and since it doesn't require the vendor to release source, the vendor can keep that information secret. As a result you have more drivers for more hardware created under the "Made for Windows" driver development plan than you do from enthusiastic reverse engineering efforts in the Linux camp.
To the extent that you can capture the value of Microsoft's oversight without having to pay the 'tax' of a Microsoft OS, you add value for the end users.
The drawback being whatever in middle interfaces the Windows interface to the non-Windows VM's might introduce bugs. It must be correct and compatible.
Edit:
Here is the link to the Microsoft provided VMs:
https://developer.microsoft.com/en-us/windows/downloads/virt...
Given Microsoft's zeal for legacy support I'd say there's a snowball's chance in hell for this, but a man can dream.
The first version of WSL is just another process in task manager, with all the syscalls and filesystems emulated.
(I also want to just be about to plug in my HDMI to my laptop and have it work. Literally the only two things I care about)
I've never used crossover. Thanks, I'll look into it.
There has to be something with Cuda that messes everything up on laptops.
As such, the 'native' docker for windows you linked is actually managing a Linux VM (HyperV or VBox) fot you; the docker server runs on that VM, and the native docker windows binary simply connects to that server.
They also do a lot of tricks to connect networking and file shares with that VM. The file shares part is almost completely non-working in my experience, with scary comments in the bugs like 'doesn't work if your windows password contains certain characters' (it sets up CIFS shares between the Linux VM and some parts of your Windows file system).
So, not sure what docker for Mac looks like, but Docker For Windows is only 'native' in a very hand-wavy sort of way, unless (maybe) if you're running Windows docker containers.
However, we use VMs managed with Salt for our Centos VMs. I never saw the need for Docker. Maybe if I did "web" stuff.
[1] https://engineering.docker.com/2019/06/docker-hearts-wsl-2/
This is what happens in the case of WSL 2; both Linux and Windows (the host OS) run in very (very) lightweight VMs.
(But it's more aimed at services, so doesn't do GUI etc.)
It's a shame and makes me sad for modern computing.
Not sure if this will mean new architectures, operating systems & better tools.. but one can dream!
Also, nobody ever saw a fireman by hiding inside with their window blinds shut. Take a peek outside, what you see might bring you hope.
I don't have the website anymore, but the basic idea is detailed here: https://grack.com/blog/2011/03/07/abusing-the-html5-history-...
All things have their downsides. There are no perfect things that are nothing but goodness and light.
As they say: Sunshine all the time makes a desert.
1- We have 4/5 mainstream OSes today: Win/OSX/iOS/Android + Linux. In the case of iOS/android: Some users alread switch between the 2.
2- If it have apps is almost all people need. Drivers are not THAT significant IMHO.
3- Chromebook is a thing, despite it sound stupid: A OS that is just a browser.
Web is the 6 truly mainstream "OS".
4- What people need on drivers? USB (and with usb-c), hdmi, bluetooth (maybe?) + wifi. With this alone and you get even better than iPad: Monitors, wireless mouse, keyboards, external storage, and by extension you catch the rest.
5- Printers? By proxy of iOS it can work full wireless with no drivers on device.
So I think a true desktop OS could launch with less worry about legacy hardware.
Where IS the problem is the apps. It need to be better than chromebook, have very great first party apps that cover basics and hopefully, a VM layer so you could run linux and catch the rest.
Do you honestly think there is a single USB-C driver that covers literally everything that can connect over USB? And anything with an HDMI port uses the same driver!?
I think that nail the software (app + dev experience) is a bigger challenge and priority than worry about the (external) hardware.
P.D: One thin I forget to articulate is the possibility to leverage linux as a bridge for drivers (possible)? so the new OS ship a smallish linux just for get compatibility.
> I think that nail the software (app + dev experience) is a bigger challenge and priority than worry about the (external) hardware.
You are ludicrously wrong. Using the Linux kernel as an example, because drivers are in-tree, as of 4.19 (late 2018): https://raw.githubusercontent.com/udoprog/kernelstats/master...
As you can see, drivers are the vast majority of the kernel. And Linux's hardware support is often called out as a reason people use Windows or MacOS!
It’s sad that commercial realities are pushing people to throw away 30 years of progress on desktop UIs, but here we are.
It's not really "just a browser" these days. Runs Android apps, and regular old GNU/Linux desktop apps.
+ FreeBSD
+ OpenBSD
+ NetBSD
+ DragonFlyBSD
+ Minix
+ Haiku
+ Redox
+ Plan 9
+ SeL4
+ Fuchsia
And many more.View the kernel API like HTML. Browser diversity is good, but they need to be implementing the same interface if the smaller players want to support any hardware that works with Linux
So for all that just want a local nix enviroment for dev (and to most these means linux), Microsoft has actually beat Apple at this.
I see WSLv2 as more of a concession that a *nix-style interface is what developers want, and that the NT kernel can't deliver that.
The only thing that NT really lacks is a Unix-style TTY subsystem. The interplay in Unix between TTYs, process control, and signals is complex and deep, and none of it lends itself toward abstractions--it's all quintessentially Unix. For almost everything else, NT provides interfaces that can be used to efficiently implement Unix semantics.
Microsoft isn't interested in supporting a modern POSIX environment natively as that would merely accelerate the migration of the software ecosystem away from Windows APIs. IMO, it's why they killed WSL1. WSL1 was de facto a modern, native Unix personality on NT. They may not have managed 100% Linux compatibility, but they could've simply relabeled it Windix or something, used a small team to round things out, and received UNIX V7 certification in a jiffy.
WSL is about managing the shift toward a Linux-based cloud world, capturing as much of that business as they can without unnecessarily risking their existing footprint. WSL2 neatly allows them to maintain Windows API lock-in while also providing substantial value for those needing to develop Linux-based software. WSL1 fell short on both accounts, though standing alone I think it was much cooler technology.
My take on it was that they were never able to implement all the syscalls (WSL just couldn’t reliably run some production server software), and filesystem calls were horribly slow (try npm install on a reasonably large JS project if you have any doubt).
You may be right — but I’d still like to dream that one day Microsoft will release a true Linux (or OpenSolaris, BSD, or whatever!) OS of their own, which their Office apps will fully support. That’ll be the day I weigh another option besides macOS.
Also, don't forget that Windows and NTFS has never been known for performance. Expecting file access to be as fast as ext4 from a Linux kernel was just the wrong set of expectations. If you want Linux performance you need to use Linux, of course, accessing it's own block device directly; and people demanding that are going to get it with WSL2. The cost is that integration will be worse, both in terms of ease of use as well as performance. AFAIU WSL2 is using 9P now and in the future probably virtio-fs (https://virtio-fs.gitlab.io/) or something similar.
People keep saying how lightweight the WSL2 VM is. Well, that's how all modern VM architectures are now. If you launch a vanilla Linux, FreeBSD, or OpenBSD kernel inside Linux KVM, FreeBSD bhyve, or OpenBSD VMM there's very little hardware emulation, if any[1]; they all have virtio drivers for block storage, network, balloon paging (equivalent of malloc/free), serial console, etc; for both host and guest modes.
[1] I don't think OpenBSD VMM supports any hardware emulation.
"The new Windows subsystem for Linux architecture: a deep dive - BRK3068"
The long, laborious ConHost / NT Console subsystem rewrite/refactor over the last few years has moved Windows a lot closer to the Unix PTY system for internal plumbing (while not breaking the NT Object side of things). The fancy new Microsoft Terminal in alpha testing now takes advantage of that.
> WSL1 fell short on both accounts, though standing alone I think it was much cooler technology.
I feel like this is an interesting case where version numbers hurt more than help, because it sounds like WSL1 and WSL2 rather than a pure 2 > 1 are going to be side-by-side for some time now (moving distros between WSL1 and WSL2 is supposedly a simple powershell operation and can be done in either direction) and hints from Microsoft that there may even still be additional investments in WSL1 depending on user use cases and interest.
I think it's good for the NT Kernel to maintain subsystem diversity, and so I do hope that WSL1 continues to see interesting uses, even if a lot of developers will prefer WSL2 more for day-to-day performance.
Windows revenue grew $925 million. Not to $925 million. By $925 million.
https://www.microsoft.com/en-us/annualreports/ar2018/annualr...
Linux's driver architecture and even app distribution is a fucking nightmare.
I would say this move by Microsoft is the exact opposite, because it maintains Windows at the centre of the picture.
Microsoft is basically saying, look you can have all your Linux goodness and best of all you can access all that goodness using your current Windows desktop.
Using WSL2 the between Windows/Linux are very blurred.
WSL 2 is a lot like that -- it's a VM in the sense that it uses Hyper-V, but it's super lightweight. And in fact, when WSL 2 is enabled, both Windows AND Linux are running in the same type of VM (separate, obviously), so it's near-native performance in a lot of ways. There are still some I/O issues that the team is actively working on, but early benchmarks are quite promising.
=/
Hoping to run my R code on WSL 2. Glad I got the answer. I wish you guys well on I/O issues.
Is there any performance hit for WSL2 in regard to process forking? I recall that how window and unix deal with process is different (my R code uses mclapply parallel package for unix). I'm curious if there will be any performance hit that stands out versus running on a unix system for parallel/concurrency code.
I can't find that exact thread right now, but here's another one comparing WSL with Windows:
https://www.reddit.com/r/bashonubuntuonwindows/comments/c1r6...
I may disagree with a comment, but that doesn't remotely generate in me an opinion re where it should sit in the tree. I don't think other people should or are likely to find a comment agreeable/interesting/relevant/insightful just because I do. Different strokes I guess.
I see it as a community service.
I havent been on the PC for several weeks, so I don't have a link to my feedback. I'll post next time I'm on.
does this mean there will be issues using VirtualBox if WSL 2 is enabled?
I personally have to reboot when I need to use docker or virtualbox. Very annoying.
[1]: https://twitter.com/tara_msft/status/1125888319974400000?s=2...
Is there a way to suspend windows? From what you say, there is nothing technical preventing this.
You can learn more about the architecture of WSL2 in this video from Build https://youtu.be/lwhMThePdIo
Many of my colleagues use macOS, some use Windows, some Linux. I have a work-issued Mac and a work-issued Surface Book, because it’s important to test compatibility, especially when it comes to CLI stuff, across different platforms. I have Linux VMs and docker containers and WSL configured too.
There seems to be an assumption that Linux is the ultimate in OSes. But most of the value comes from the large ecosystem and momentum, rather than specific technical advantages.
The value of Linux (to many) rests on its FOSS value system.
This gloomy world of palpable beige-yellow-purple is the world of Microsoft Windows. As a product, it caters exclusively to that clientele, in that environment. To be blunt, above all other design considerations, Windows was built to accommodate the lackluster office drone -- or, more precisely, their bean-counting overlords who wanted to save on user workstations.
Despite attempts to undo this, the design has proven impossible to build upon. How many legitimate improvements in the cutting edge of either academic or industrial compsci have been built on Windows technology, for any reason other than "MS signs my paycheck so I'm contriving this to appear like I'm happy to be using PowerShell"?
MS was able to paper over the deficiencies for a while through sheer force (pushing .NET as a semi-unified computing environment, Ballmer screaming "DEVELOPERS!", etc.), but Windows was in no way prepared for the revolution brought by virtualization in the mid-aughts, and any shred of a hope that MS would somehow recover was utterly and entirely obliterated by the widespread proliferation of containerization. Good luck getting a real version of that working on Windows.
I've said it before and I'll say it again: in about 5 years, I wouldn't be surprised at all to see the new version of "Windows" plumbed end-to-end atop a nix-like kernel, and driven by a hybrid userland comprised of a spit-polished copy-paste from WINE + a grab bag of snippets from the proprietary MS-internal Win32.
The flexibility of the nix model is the indisputable, indomnitable winner here, and it stunned and killed the Goliath in its tracks. This is the ultimate surrender to the open-source model. Windows's top-down, "report to your cube by 8:26am sharp and don't question the men in the fancy suits" approach to computing resulted in a rigid operating system that was unable to keep pace with the technological demands of the many pantheons of loyal corporate drones that comprised their user base. Even strictly-Microsoft shops are forced to give developers MacBooks now, or they're unable to get anyone competent to sign on.
It really couldn't get more poetic than MS desperately integrating Linux into their OS so that people won't switch to the more flexible nix-like systems for their workstations, although I anxiously await MS accidentally linking in a GPL module and thus becoming required to disclose the Windows source code. :)
Meanwhile, per usual, nix-like OSes have been humming for 50-ish years now and show no signs of slowing down. IMO, that's all the objective, borne-out proof one needs to say that for all practical purposes, Windows couldn't stand the test of time.
Please note that this is not about Linux per se, but the overarching design theory and development processes in use in major operating systems, and the massive success it represents for open-source, research-driven systems.
The chapter on "The Windows Way" has been written, and whatever its benefits may be in theory, they don't bear out as sustainable in practice.
It'd be fun to do a macro-scale timeline comparison to Sun. These invincible tech behemoths that cater to their narrow niche become rotting, hollowed-out fossils as the free systems continue to develop and evolve the cutting edge. Microsoft is right on time here, and I fully expect to see them struggle through the next decade or so until Larry Ellison finally puts them out of their misery.
No one can fight against free beer, regardless how bad it might taste, people still go for it.
For some balance, you could consider how Windows got preinstalled on most computers since the 90s and what huge dominance it had in the consumer and also development domains (also thanks to some evil capitalist practices, some might say!). That there are free versions of Visual Studio and other IDEs and dev tooling for various programming languages for Windows just as well. Also, consider that I can buy Windows 10 Professional for $8.90 with 5 seconds of googling.
Maybe Coherent would have survived with such willingness.
[1] https://en.m.wikipedia.org/wiki/Embrace,_extend,_and_extingu...
Edit: To those questioning if this really counts as Linux on the Desktop. Yes, I understand what you're saying, I too am a bit of a blowhard about Linux and prefer to use the real deal, not some kernel on a kernel bs. But I think this is still a huge deal in terms of the accessibility of Linux, think of how many young programmers will be able to dip their toes in the Linux pool on their gaming rigs without having to go through an Ubuntu install process (I write, thinking in the back of my mind that I had to go through that, and so maybe they should too.) Yes there is something of an ideological compromise here, because the Linux they're running is sitting on a binary blob and not truly free... but Linux still exists in it's gloriously free form for them to use when they decide that's important to them, I see no harm in them reaping some of the other benefits of Linux without the freedom, it will hopefully become an on ramp to more Linux adopters and programmers.
The next step is fully locked down hardware that requires a signed OS. Linux will not run on it, but MS will pretend to support you by allowing linux apps to run on their kernel. Then, once no hardware will allow you to run linux natively they will depreciate it and get people to migrate to better supported APIs of their own.
People are just walking right into this as if none of Microsofts history ever happened.
The only OK scenario is that MS becomes a larger version of Redhat and migrates users the other direction. Is that happening? No. It's all about bringing your toys to their house.
In other words, I'm not worried about WSL as a vector.
In that line of thinking you also want costs of running your own cloud solution as low as possible, so it kind of even makes sense to phase out Windows because all competitors are running their cloud on Linux based systems, where they get all upsides of collaboration on Linux. Where MS trying to run all their stuff on Win pour money into something they could have for free or just also investing a lot less into Linux than what they spend maintaining Win.
I don't see this in reality though. Any kind of corporate office IT is still firmly in the hands of Microsoft and Windows and I don't see any change for that on the horizon. Quite the contrary as IT departments have to double down on applying the Microsoft way with Windows 10 Enterprise and its changed licensing scheme. Where you've been able to dodge having a machine dedicated to license management (Windows Server, of course), you now are forced into a different licensing setup with Windows 10 Enterprise. Why Windows 10? Because Microsoft forbids you to use anything older on new hardware. Why Enterprise? Because you can't reliably make Windows 10 Pro stop phoning home about the documents you are opening. The only offer here is Windows 10 Enterprise.
All this futzing around with open source and Linux subsystems is just for the developer facing part of Windows. All the other areas, those that developers rarely encounter unless they talk to IT, are still shaped by the same Microsoft of 10 or 15 years ago.
Microsoft has seen that there was a huge brain drain towards apps running on Linux servers, developed on Macs (webdev, containers, deep learning, ...).
The new strategy is to get developers back on Windows via Linux. Once it's the new norm to run your apps in Linux containers that run inside Windows Server 2022, developed on Windows 10 machines, they are going to edge Linux out of the equation again. You won't be able to switch your containers away from Windows after that.
Believing that it doesn't matter how your end user devices fit into corporate IT or ignoring what steps Microsoft has taken to make Windows Server the default in the cloud is really dangerous.
And I, personally, will never forgive M$ for Elopcalypse, burning platform and death of nokia.
They don't need to do this anymore, pushing Windows is not their priority, they want to get people on Azure, Office 365 and Xbox live. Everything is about services these days.
Using Linux on a personal machine is primarily so you can trust your machine to serve you and no one else. This is defeated if Windows or backdoored firmware is running below Linux.
Note that the no lock-in benefit also exists on the desktop and because of that it makes sense to switch to Linux on a machine that requires proprietary firmware as an intermediate step to moving to a better machine like those from https://puri.sm/
It's not very sane to run anything on Windows.
https://www.theregister.co.uk/2001/06/02/ballmer_linux_is_a_...
It took years for Microsoft to take iPhone seriously. They never predicted the “byo phone” era and figured IT pros would insist on enterprise features. Years after iphones were out the Windows phone OS code names were bears that ate blackberries.
Oh wait...
It's just progressed very far, and their latest moves are only desperate efforts to "embrace the cancer" before it completely consumes the market.
Maybe more importantly redefining the goal isn't helping Linux much. I remember everyone raving about Android, but now look at the lack of vanilla graphics drivers for embedded platforms.
That said, I have nothing against WSL.
I don't see why you couldn't run x11 in the window manager with the new Linux kernel in Windows.
AMD, ARM (CPUs & Mali GPUs), Intel, VIA, Qualcomm (Adreno) all have support in kernel 5, whereas Microsoft is still stuck subsetting a small group of ARM GPUs and branding Windows 10's OpenGL ES support as DirectX 11. This is a repeat of the troubles Microsoft had with supporting Windows Phone, but now the userbase is significantly smaller despite a wider array of hardware to support.
Still, my old desktop scanner that the manufacturer stopped publishing drives for during the Windows Vista era? Yeah Linux runs it like a boss. No looking up drivers or config parameters on the internet, it just works.
YMMV, but as far as I know that's more or less a solved problem by default (for X anyway) with DRI3.
This particular complaint echoes folks (I was one) who booted Ubuntu desktop a decade ago and couldn't get wifi to work, and proceeded to complain about shoddy driver support (to present day, clearly), using only that single outdated* example as an argument. Of course this is compounded by a ~months to ~years delay in most desktops getting those improvements thanks to the glacial pace at which the mainstream desktop distros update their repos.
Was there a point when Optimus/Bumblebee/Prime was a shitshow? Yes. Is that still reality? No.
What this ignores is that Linux driver support is generally fantastic, works out of the box in a way that desktop architects at MS dream about and is infinitely more current in practice since you go to one place to update all your software, including driver software, something MS hasn't been able to get right in a decade of trying.
Regardless, mobile battery life's still worse on Linux. And as much as some things are super convenient compared to the Windows/Apple world, the truism a friend told me as I wrestled with Ubuntu ten years ago remains true today: Linux is for folks that enjoy configuring Linux.
* I have to use a combo of DKMS and an AUR package to get WiFi on my one year old IdeaPad, so outdated may be the wrong word there. Better to say that realtek and broadcom chips have gotten hit hard by Intel's move into consumer networking.
Worth pointing out that 'year of the Linux desktop' probably predates that.
https://wiki.archlinux.org/index.php/Dell_XPS_15_9570#Graphi...
Especially when the relevant part of the wiki is correct.[1]
[1]https://wiki.archlinux.org/index.php/PRIME#PRIME_GPU_offload...
Generally, yes, it's pretty decent on first go and there's a nice default happy path.
Unfortunately in my own experience, that path isn't particularly wide, and there's a huge number of gaps.
Version compatibility is a major issue, imo. One driver or package works great on one kernel version is completely broken on the next.
A few hours ago I tried to install the official AMD drivers for Ubuntu. It's not until the install script has already gone and screwed up my system that I get told that they don't support 19.04.
I just don't have that issue on Windows as a rule. I'm not claiming Windows is perfect by any means, it's got it's own set of issues.
Many manufacturers contribute drivers to the kernel.
Expected by whom, though?
I could understand it if it was major kernel versions or something like that, but it seems that a whole bunch of things are really tightly linked.
> Which now explicitly and clearly says the driver is for Ubuntu 18.04 only - did you not see that?
I honestly didn't. I went back and checked - yep, it does say for 18.04[1].
I have to say though that I wouldn't have automatically assumed it was ONLY for 18.04 though without it being more explicit about that. If the official drivers are available within the repo from now on, then it'd be great for AMD to actually say that. (I realise this isn't Ubuntu's fault)
[1] https://www.amd.com/en/support/graphics/amd-radeon-hd/amd-ra...
Advice to Linux users: one would best get their the graphics driver and a matching Linux kernel from the same source, either the Linux project, or the OS distribution. Mixing versions downloaded from AMD website with random kernel is supported by nobody and is testing your luck. That is a Windows model and kind of works with Linux only with nvidia drivers for their hardware, although it brings a lot of headaches too.
I agree that the installer should have warned you about the incompatibility at the beginning of the install, not at the end. That sucks.
With graphics, it is usually best to run the newest drivers with Linux, that means the newest kernel possible. Except for the older cards, which are not supported by AMD anymore (which sucks), where one can only use old drivers with appropriate old kernel.
I think the folks using Catalyst for better 3D acceleration have probably moved on to cards supported by amdgpu by now.
I'm running a quite current Dell on an essentially unpatched kernel (just includes Gentoo's default patches) with no additional modules involved and everything I tested up until now works, even fancy things like Dell's mini-dock.
I think that's a bit of a difference though. Vista came out nearly ~13 years ago, and we're talking things breaking a year or less later.
Heck, for more obscure drivers[1], it seems necessary to recompile for every kernel patch. Perhaps that's the fault of that driver's developer for not following the correct way to build kernel drivers, or there's something unique about this particular device - I don't know.
[1] an example: https://github.com/milesp20/intel_nuc_led
> I think that's a bit of a difference though. Vista came out nearly ~13 years ago, and we're talking things breaking a year or less later.
I'm not. I'm talking about the fact that drivers for devices older than me that have been merged into the kernel keep on working today while on Windows for some subsystems (like graphics or sound) you can't expect things to work after "just" 15 years. I admit that this is a long time, it's still a huge difference.
And yes, on Linux you are expected to recompile drivers for every new kernel version, that's intentional (https://github.com/torvalds/linux/blob/master/Documentation/...). Since the driver API is reasonably stable, the code doesn't need to be adjusted for every version, and if the driver has landed in the kernel, this is done while changing the API.
Optimus is definitely not a "solved problem", unless you know some method I didn't find in my dozens of hours of googling how to get it to work on a system76 laptop (Linux preinstalled) and a 2012 MacBook.
Nvidia meanwhile has stated they will not support Wayland, and has sandbagged the integration of their Linux Kernel patches for their single board computers (like the ones that are used in Tesla's cars). They don't give a fuck if their clients are stuck on broken, insecure BSPs, and frankly they operate as a malicious vendor: https://www.theregister.co.uk/2018/01/03/nvidia_server_gpus/
And there is a very simple reason for that. All desktop PCs and laptops are sold with windows, if no support exist the hardware as a whole will not exist.
Meanwhile in linux land I still can't use my three monitors because displayport MST doesn't work with the open source AMD driver. Support has existed for quite a while, but it seems none of the five people on the internet that have actually tried it has gotten it to work. Just one of the many driver issues I currently have on a couple of machines with linux.
> YMMV, but as far as I know that's more or less a solved problem by default (for X anyway) with DRI3.
Just no.
Maybe I shouldn't have started with an "obscure" example. Maybe that the driver crashes if displays are awakened from sleep? Mind you - only waking the screens from sleep, not the entire system (that doesn't work either, but I don't know which driver that is to blame for that yet).
Or that ubuntu LTS are just incapable of turning off most machines I've installed it on? (machines that did exist for a while when the LTS version came out).
For linux, I am in control. For windows I am a puppet of Microsoft will.
+ Network Effects
+ Brand recognition in the general public
+ Indifference to FOSS principles
+ Resistance to changeMicrosoft still plays dirty and has done that for a long time.
If this really is the year of the linux desktop, it's not what I had imagined.
Maybe I just have less time and patience nowadays :-)
Maybe people just get fed up with the same grating pain points and need to spread the frustration around. Periodic changes in scenery are healthy. :)
At least on Linux I can fix the things that are really making me nuts.
But as far as I know that is this case. That Microsoft's offering is much stronger when it comes to large scale corporate deployments. Unless you want to make the claim that e.g. RedHat's offering is on par or better, which isn't something I have heard in the wild.
Now, does using Ubuntu cover some of these glaring warts? Perhaps. But that often opens its own set of problems. Each comes with its own set of workarounds. Where macOS and Windows excel, is their sense of "polish". Most happy path things just work, and work 99% of the time.
All that said, I'm die-hard Linux ALL THE WAY! I just couldn't say that it's ready for most purposes. For the things that I'd use a tablet for? Sure.
>For most purposes, it has been ready for years.[...] Most people, however, could switch to one of many Linux distributions and be just as productive if not moreso.
If "most people" includes non-technical users, I doubt they could switch to Linux without difficulties.
E.g. a typical non-geek user might be my friend that runs Windows. Some examples of showstoppers that makes Linux totally a non-option:
- Intuit Quicken which she's been using for 20 years. Yes Linux Mint was a possible alternative but its early releases (inside of your 15-year time period) didn't have reliable online downloads from financial institutions. Mint's later partnership with Yodlee api for transaction downloads still didn't make it equal to Quicken. Yes, Quicken is terrible and buggy software but early Mint was even worse for online banking scenarios.
- Netflix streaming was not easy to run on Linux until recently[0]
- AAA games (including recent ones like Fortnite) don't run easily on Linux. Valve Steam Proton is a recent effort.
- iPhone sync with Apple iTunes - running on Linux requires googling for articles of running a Windows vm or Rhythmbox on Ubuntu which may not work with certain iOS updates
- sewing machine embroidery software all runs on Windows and not Linux or even MacOS. The software also requires a dongle for copy-protection and the hardware drivers for the dongles only exist for Windows. Running Windows as a vm inside of a Linux Desktop and exposing the host USB port to the client vm won't fool the dongle software. If the ultimate solution to "Windows in a virtual machine" shortfalls is to dual-boot Windows and Linux, that advanced configuration adds more complexity and it contradicts the ideal of "run Linux desktop exclusively".
For people to run Linux without issue, the person would need to possess technical skills equivalent to you (e.g. a HN poster) -- or the person has a "guardian angel" as on-call tech support (e.g. a son/daughter/friend) to get them over technical issues (like Netflix) with workarounds.
I don't doubt you've been able to run Linux exclusively and there are more examples like you. Nevertheless, it still required a very atypical usage profile to run a Linux desktop exclusively for the last 15 years.
Even today in 2019, I would not recommend the Linux desktop to any of my non-programmer and non-sysadmin type of friends & family unless I was willing to be their on-call tech support to handle their inevitable Windows compatibility issues.
For Linux to work in a mass-consumer-facing situation, it has to be an "appliance" type of installation and "invisible" such that the user doesn't realize they're running Linux. E.g. as the underlying os in Android smartphones, or the os in smart TVs, or the os in Tesla cars.
The tech community doesn't realize that there is more than just office applications and browsers that people use. I can not install BIM (Revit) software on Ubuntu for example. I can't install Lightroom on Ubuntu. I know that there are alternatives and work arounds to software, but consumers only understand what they understand and is easy and mainstream.
The tech community can't expect consumers to spend time looking for alternative software. I feel that this is why the Windows Phone failed, because there was a lack of mainstream software (apps).
The day that BIM (Revit) is available to install on Ubuntu is the day I switch.
Yes, a lot of Linux desktop enthusiasts only include "web browsing and email" scenarios in their mental models. Therefore, they are not aware of how the Windows os is an unavoidable platform dependency in many critical workflows. This perspective is why "Linux desktop exclusively" appears totally realistic to them.
A similar scenario to yours just happened to me last month. A land surveyor gave me some 3D laser scan point cloud files. (Trimble RealWorks files which are ".rwcx" files generated by the Trimble SX10.) The software (Trimble Business Center) to import those files only runs on MS Windows. I tried running it on VMware but the Trimble software required DirectX 11 so it crashed with an unrecoverable error[0]. Well, VMware only supports up to DirectX 10[1]. It's another example of "just run Windows in a vm" on Linux Desktop doesn't always solve the problem.
This also highlights another underappreciated and unseen difficulty with Linux desktops: You often don't know you will have a roadblock with Linux until you encounter that roadblock. It's not easy to predict your future incompatibilities!
Yes, unfortunately, architecture CAD and BIM are not among those fields :(
Gaming is still very game dependent. Think of it like a console. Some "exclusives" just wont run.
If someone is using their computer to surf, write emails, watch netflix, alongside lite gaming, I find linux to be more enjoyable. I don't have to do any command line oriented stuff at all for general use. The initial install is also very simple. On a desktop :)
We will have to agree to disagree. I think it is more an issue of framing perspective than anything.
In fact I would recommend it for anyone who only uses their computer for general, basic use.
We are far, far past the point where the general population is going to spend effort to learn about something as simple as using apt-update or even a GUI application update manager, ever. Phone operating systems give the user everything they care about (mostly content consumption, a little creation) without having to read or learn anything. If you ask that of people (to read and learn about an operating system) it's a non-starter for >80% of users.
For general, basic use I would recommend a chromebook or ipad. That's what most people are looking for - something that lets them do the handful of things they want to do with as little overhead as possible.
Maybe if ms makes an nvidia driver too. :/
Microsoft brings integration not possible in VM. You can actually make Linux tools part of your complex heterogeneous workflow.
How is their WSL2 integration is different from something like shared folders?
Also, while I think it is useful. I imagine much of the hype here is also from the weirdness of it all. Would you agree that it is noteworthy that Microsoft is publishing a Linux-kernel for Windows? It think it is.
Unsurprisingly, the latter case gets truer for low computer litteracy adults for who investing in a decent smartphone has a better ROI than buying a meh phone with a cheap laptop.
Anecdotally we bought our aging parents each an ipad two years ago.
They were decent but not that proficient at Windows, but got comfortable very fast at viewing/saving photos, printing, email/messaging and browsing on the ipad.
From there they gave up on their budget “my carrier gave it for free” phone to move to the iphone Xr and started doing all of the above on their phones most of the time. The laptop is now a third rank device they use to check their savings once a month.
For most of their lifes PC were the only way to do some tasks, including photo management (and we were sharing them tons and tons of photo, they also filled SD card fter SD cards in the summer), and it’s only recently (basically the ipad Pro) that looking at us they though they could give it a try.
I have a hard time believing this, do you have any studies to back this up?
https://developer.android.com/ndk/guides/stable_apis
So it is meaningless.
https://github.com/termux/termux-packages/tree/master/packag...
Second, iOS being based on UNIX hardly matters, no one is doing shell scripts and writing UNIX daemons on it.
Thirdly, no one was talking about macOS on that comment,.
Finally, even if you want to bring macOS into the picture, while macOS is a proper UNIX, what matters for Apple community developers lives in C++, Objective-C and Swift libraries, hardly POSIX related.
(And I mean the desktop version. O365 is dumbed down half-way to Google's Office Suite level - which is cool for an occasional document or spreadsheet, but is lacking both features and efficiency for professional use.)
99% of my job requires nothing more than a web browser and a terminal with a SSH client. The remainder is mostly Wireshark.
Indeed it does. At her last-1 job, my wife could probably do most of the spreadsheet-related stuff in GSuite, except for that one spreadsheet that brought desktop Excel to its knees, and would totally explode the browser if you've ever tried it.
My experience from watching other people and occasional summer jobs is mixed. Some of the stuff you technically could manage on GSuite. Others you wouldn't, not because the files were too big/complex, but because the office computers were underpowered.
And just as the Mac Mini is a laptop without screen and keyboard, the latest Macbooks are more and more iPads with a good keyboard. Well, good keyboards is questionable even these days...
Chrome and Windows using the Linux kernel as a POSIX support layer is only going to diminish the Linux desktop community and the quality of its modern hardware support.
I'm sure there's far more complexity involved than I could imagine, but I've always loved the idea of having a bunch of different subsystems running without the need for virtualization.
This article[1] has a good overview of the design goals, which mainly was to let unmodified binaries run.
[1] https://blogs.msdn.microsoft.com/wsl/2016/04/22/windows-subs...
As a long-time Mac user working at Microsoft (with Azure), this is the perfect storm. I can do everything I need on WSL 1 (except some networking stuff, obviously) and WSL 2 is going to let me get rid of Docker Desktop’s virtualization for Linux containers.
However, the one problem I have with switching to Windows, even with a flawless WSL (2), or full Linux/BSD/whatever OS under the hood, the whole Apple ecosystem integration, seamless syncing between all my devices and accounts will be hard to let go unless something from MSFT / Windows and company can provide that same convenience. From what I have researched, it's close, but still not there.
It's too convenient. I know people will say they have problems with it (iCloud/macOS/iOS syncing/integration), but my experience and all my fellow constituents and family haven't. So, I have not witnessed nor experienced these issues people bring up in threads on HackerNews, Reddit, etc that I have seen (yet can't seem to find exact examples of at the moment with links).
I really admire this work. I hope MSFT continues down the path they have been. I've always had a soft spot for them. I'm rooting for them.
However, WTF. Why has the "Microsoft" directory got a leading capital. I mean every.other.directory.in.linux.is.lower.case!!!!!! Look around folks! Every other vendor in that tree has their name lowercase, please respect the local customs!
On a serious note, you should make a github issue.
If I could avoid spending time getting nvidia drivers working on my laptop, that would be a massive help. And yeah, I know, I'm supposed to buy AMD stuff so I can use open source etc. But all the best hardware is nvidia, and so top hardware ships with nvidia. I've got to use this thing for my work as well, so it's not really an option, and I don't have the technical chops to quickly debug my drivers or wm or whatever.
[1] https://wpdev.uservoice.com/forums/266908-command-prompt-con...
[2] https://wpdev.uservoice.com/forums/266908-command-prompt-con...
This is spent effort to be lazy.
Having said that, it is technologically worth studying.
I'm still sure as ever Microsoft is no friend of free (as in Freedom, not price) software and can't help but shake my head at this latest publicity stunt. I wouldn't trust their software any further than I throw it.
I don't see how that's anything but reasonable unless you take the position that all software ought to be open source regardless the creators wishes.
[1] https://opensource.org/osd
In particular, if the software or "work" was never made freely available by its lawful owner, it is not open source.
> There is a viable alternative to the problems raised by Bill Gates in his irate letter to computer hobbyists concerning "ripping off" software. When software is free, or so inexpensive that it's easier to pay for it than to duplicate it, then it won't be "stolen".
—Jim Warren, July 1976
It is about earning money. RedHat does it. Microsoft does it.
Does this let users do more? Does this give users more options? This is a good, practical feature. I'm excited to, hopefully soon, fully ditch Linux on desktop for something that actually works.
These words are not made up by journalists, these are the exact words Microsoft used internally.
They do this, every. Single. Time.
Everyone keeps falling for it, talking proudly about how MS changed so much and they are now somehow totally turned around. Yes.. ok, whatever you need to believe in. Just be warned, they will utterly drstroy everything they come into contact with.
Or should I say: denial is the most predictable of all human responses. But, rest assured, this will be the umpteenth time we have destroyed it, and we have become exceedingly efficient at it.
The new Microsoft may finally let me go back to windows. Mac is too expensive.
(1) Node.js of course runs natively on Win; however my apps makes particular assumptions wrt file paths, shared-reading/locking semantics, and spawning external shell scripts
Users first need to enable the WSL optional feature in their windows install, then they can install their favorite distro's userland from the windows store.
More detailed instructions here: https://aka.ms/wslinstall
You then open/unzip the '.appx' package with any archiver such as 7Zip and place the files in a folder of your choosing; simply launching the distro executable ('ubuntu1804.exe' for example) to install and register the distro.
You can then use that same executable to launch WSL for that distro in its own window, which makes it easy to add the icon as a shortcut to your taskbar for quick access like you would any Windows program, without having to open command line first.
Added benefit is that you can store all your distros as folders (with individual rootfs and config files) in a parent location of your choosing such as a fast external array, without having to use the MS Store or an MS Account.
[0] https://docs.microsoft.com/en-us/windows/wsl/install-manual
Still, the same until they:
1. Will give up FAT and exFAT patents
2. Stop racketeering Android vendors for their patented "inventions"
Also, what happened with NTFS-3G[1] project? Seems dead for many years, while still not supporting some of the NTFS features. They should at least upload it to GitHub.
I understand some need Windows only app to work but otherwise what does Windows offer better for third party apps that Mac doesn't for developers that WSL targets? I just can't think of one but I can think quite several the other way around.
It is for Windows users.
> All of the tools I want to use are very well supported on OSX and I don't have much use for Microsoft software like Office these days with Google Sheets et cetera.
Sure, OS X is a good solution for people or institutions who can afford those computers, who don't want to or can't use Linux, and don't mind paying that much.
> Is this being geared more towards corporate customers who have chosen to standardise all of their IT on Microsoft products, but who need easier access to dev tools/environments?
Yes, definitely, or just individual developers who want to use Windows. I don't know any devs who do this, but Kenneth Reitz was tweeting a lot about how much he was enjoying working on Windows and thought people's complaints about it were overblown.
The current WSL is pretty good, but version 2 is going to be a massive upgrade.
I also refuse to give Apple money for their overpriced garbage products.
I don't have that experience running Rails on Windows. Having said that, I do use thin for my development instance, so maybe that's why.
They'd also save on kernel development AND get docker and a lot of other goodies.
https://www.theregister.co.uk/2017/09/12/microsoft_downplays...
apparently a bash on linux in wsl can deliver a payload to the windows environment.
if windows is going to ship with its wsl turned on by default, bashware has to be addressed.
Conceptually it amounts to having England and France whose people speak their own languages and now there is an European Union language translator program that allows them to talk to each other in their own language. No?
If I could do COM calls from Linux to a Windows hosted Excel.Application, now that would be amazing...
And I think currently they are just patching their own Linux together like any distro does
Microsoft is leveraging the same technology they use to run Windows on Xbox alongside the game OS, so it's really like an OS with 2 kernels
And if you do not know Dave Cutler... Well he is a VMS veteran (a system which was also ground up virtualized) who designed the Windows NT Kernel. He is essentially a legend in the field of operating systems and engineering. There is a nice documentation around him.
With this kernel we could use unix commands in somekind of terminal? Maybe node executations will run faster?
MS really playing the “we’ll go wherever the developers are” game really well.
I work at Microsoft and was issued a Lenovo, then got a Surface Pro 4 and finally a Laptop. Everyone in my team who got the Book instead is a little sad because it’s a huge lumbering beast compared to the Laptop and tends to be top-heavy compared to the X1s and Yogas we had. Those of us with Pros (tablets) and Laptops love the portability, even if you only get one USB port.
Also, all the Surface trackpads are MacBook-grade (although the software handling might need some tweaking for you to get exactly the same feeling - but I’m happy with mine now).
This makes me nervous. This is a win-win now, but who can say they won't just do what they do and destroy desktop Linux as we know it when theirs gets the traction necessary? If I were a nefarious assembly of MS execs, my long-term plan would be to use Windows' UI friendliness and compatibility to attract Linux users (embrace) and, when there would be a critical mass of users, extend MS Linux to break compatibility with true Linux (extend and extinguish).
What about the memorable MS exec quote "Linux is cancer"? For MS, Linux is cancer. For the consumer, MS is the cancer. Don't use their products. What's a company got to do to be shunned by the market?
[0] https://en.wikipedia.org/wiki/Embrace,_extend,_and_extinguis...
I don't see how this is a win-win. It incentivizes people (like developers who might otherwise stick to linux) to run a proprietary operating system.
Of course, to repeat myself, I don't think Windows is a good thing.
Arguably. It's hard to say Linux won on technical merits of networking compared to FreeBSD or OpenBSD, or on storage compared to FreeBSD+ZFS, or say that generally when devs chose MacOS X.
I suggest Linux won for being: the most popular out of the things which cost $0.
BSD lost for not being popular, commercial Unix, Windows and MacOS lost for costing money.
People used to say that BSD lost because of the ambiguous copyright status of the early 90s, allowing Linux to glide in unopposed as the "free unix-like os for PCs".
https://en.wikipedia.org/wiki/UNIX_System_Laboratories,_Inc.....
https://en.wikipedia.org/wiki/Berkeley_Software_Distribution...
https://en.wikipedia.org/wiki/Worse_is_better
Also the first versions of the kernel was released at the right time.
It is decent enough, free, open source and was around at the right time. The internet was just becoming a thing, the PC ecosystem had "won" and it was pretty open in that anyone could manufacture a PC. There was an AT&T lawsuit wasn't happening in the 90s IIRC against the BSD Code. If Linus had created his kernel a little later or a litter earlier than it may have never received the interest it did.
Same with Google/Microsoft and privacy...
This privacy policy[1] is insane:
> Together, diagnostics and feedback are how you and your Windows 10 device tell Microsoft what's really going on. As you use Windows, we collect diagnostic information, and to make sure we're listening to you, our customer, we've also built ways for you to send us feedback anytime, and at specific times, like when Windows 10 asks you a question about how something is working for you.
> There are two levels of diagnostic data: Basic and Full. [...] This data is transmitted to Microsoft and stored with one or more unique identifiers that can help us recognize an individual user on an individual device and understand the device's service issues and use patterns.
> Specific data items collected in Windows diagnostics are subject to change to give Microsoft flexibility to collect the data needed for the purposes described. For example, to ensure Microsoft can troubleshoot the latest performance issue impacting users’ computing experience or update a Windows 10 device that is new to the market, Microsoft may need to collect data items that were not collected previously. For detailed info about the data that Microsoft collects at the Basic level, see Basic level Windows diagnostic events and fields. For more info about the data that Microsoft collects at the Full level, see Diagnostic data for full level.
> We use the Basic level of diagnostic data to improve Windows. We use the Full level of diagnostic data to improve Windows and related products and services.
> Some of the data described above may not be collected from your device even if your Diagnostic data setting is set to Full. Microsoft minimizes the volume of data we collect from all devices by collecting some of the data at the Full level from only a small percentage of devices (sample). By running the Diagnostic Data Viewer tool (available on newer versions of Windows), you can see an icon which indicates whether your device is part of a sample and also which specific data is collected from your device. Instructions for how to download the Diagnostic Data Viewer tool can be found at Start > Settings > Privacy > Diagnostics & feedback.
> You can view diagnostic data for your device in real time by using the Diagnostic Data Viewer. Note that you will only be able to view data that is available while the Diagnostic Data Viewer is running. The Diagnostic Data Viewer does not allow you to view your diagnostic data history.
If you click the feedback panel on the right edge, you get sent to another Microsoft privacy policy[2]:
> We also use the data to operate our business, which includes analyzing our performance, meeting our legal obligations, developing our workforce, and doing research. In carrying out these purposes, we combine data we collect from different contexts (for example, from your use of two Microsoft products) or obtain from third parties to give you a more seamless, consistent, and personalized experience, to make informed business decisions, and for other legitimate purposes.
> We share your personal data with your consent or to complete any transaction or provide any product you have requested or authorized. We also share data with Microsoft-controlled affiliates and subsidiaries; with vendors working on our behalf; when required by law or to respond to legal process; to protect our customers; to protect lives; to maintain the security of our products; and to protect the rights and property of Microsoft and its customers.
> You can also make choices about the collection and use of your data by Microsoft. You can control your personal data that Microsoft has obtained, and exercise your data protection rights, by contacting Microsoft or using various tools we provide. In some cases, your ability to access or control your personal data will be limited, as required or permitted by applicable law.
1. https://support.microsoft.com/en-us/help/4468236/diagnostics...
2. https://privacy.microsoft.com/en-US/privacystatement
[edited to give excerpts from the second privacy I encountered trying to provide feedback to the first one!]
In any generic platform privacy policy, the same lines you quoted from their privacy statement would be summed up as "We collect [insert here] as required for operational and security reasons", "We use your data to perform business functions" and "Your data may be shared with third-party service providers such as payment processors". It's nothing scary and is what's required for Microsoft to operate as an entity.
I'd also be careful how you interpret it. Microsoft's privacy statement applies to literally every single product and service they offer and acts as a catch-all, and from there they have independent statements that cover individual products in more detail.
In this case, the diagnostics and feedback page describes all of the scenarios that they collect and use the information, and therefore the global statement isn't relevant.
> one or more unique identifiers that can help us recognize an individual user on an individual device and understand the device's service issues and use patterns.
They have a file on each user, it is straight out of 1984.
Unix compatibility is worth quite a bit on its own, Linux wouldn't have gotten half as far without it. And Unix is historically proprietary and closed-source.
"Unix" the brand name, maybe, but "Unix" the source code less so. BSD was based on Unix. The story of why Linux became popular instead of BSD is that BSD was mired in a copyright fight with AT&T over that relationship at the time.
Per http://www.catb.org/esr/writings/taoup/html/ch02s01.html who was active at the time (and before he became today's wingnut)
"It would take another two years and the great Internet explosion of 1993–1994 before the true importance of Linux and the open-source BSD distributions became evident to the rest of the Unix world. Unfortunately for the BSDers, an AT&T lawsuit against BSDI (the startup company that had backed the Jolitz port) consumed much of that time and motivated some key Berkeley developers to switch to Linux.
> Code copying and theft of trade secrets was alleged. The actual infringing code was not identified for nearly two years. The lawsuit could have dragged on for much longer but for the fact that Novell bought USL from AT&T and sought a settlement. In the end, three files were removed from the 18,000 that made up the distribution, and a number of minor changes were made to other files. In addition, the University agreed to add USL copyrights to about 70 files, with the stipulation that those files continued to be freely redistributed. -- Marshall Kirk McKusick
The settlement set an important precedent by freeing an entire working Unix from proprietary control, but its effects on BSD itself were dire. Matters were not helped when, in 1992–1994, the Computer Science Research Group at Berkeley shut down; afterwards, factional warfare within the BSD community split it into three competing development efforts. As a result, the BSD lineage lagged behind Linux at a crucial time and lost to it the lead position in the Unix community."
Though everything can be done in Windows, it's not easy to do so.
I specifically remember trying to install Redis on Windows and had to give up after the end of the day. Ended up creating a server and installing Redis on that on AWS.
Also, people are complaining that Microsoft once said "Linux is Cancer" at some point. A lot has changed since then. Ubuntu was released after that which IMO helped to adopt Linux by an end user.
MacBook userspace is derived from NetBSD. The kernel is so far removed from BSD UNIX it's not worth even mentioning.
This link you commented on points to the kernel used in WSL2 which gives you a full Linux under Windows. Unlike Mac where you probably will use homebrew to install Unix packages, this is a full, unadultered Linux machine. Even WSL1 allowed you to install anything from Ubuntu although some (very, very few!) didn't run, most importantly (for us) some debuggers.