For a somewhat alternative if you want to run both Linux and Windows, you can run Linux natively and then run Windows in a VM with GPU passthrough. Then you can use Looking Glass which sends the Windows pixels to a Linux window with native performance. For the Linux machine, you can run it as a host or use something like Proxmox as a hypervisor if you need more VMs or containers. I use this setup to run Windows, macOS and Linux simultaneously, macOS mostly for iOS development.
This sounds really fantastic. Can you explain a bit more about the hardware requirements? If I have a decent notebook with an Intel-integrated GPU, how can I both passthrought the GPU to the VM and use it for rendering the GUI on the host?
It won't really work for laptops, at least without a lot of research and fiddling. You need a desktop with at least one GPU, for the guest. If you want to run the host as GUI, instead of headless, then you need a GPU for the host as well. You can shut down each guest and boot up another one but generally you'll need a GPU for each guest you want to run with a GUI, if you want proper hardware acceleration and if you want to run them simultaneously. I run on a 4 GPU system for example, one for the host and 3 for each OS.
However, for certain Intel systems, there is something called GVT-g which allows sharing one GPU with both the host and guest, as you mentioned. You can try that and see if it works, I'm not sure if it does on a laptop. Or if you don't really need GPU acceleration, just make a VM as you normally would. I suspect since you don't say whether the notebook has a dedicated GPU that you don't game and thus wouldn't necessarily need GPU acceleration.
"for certain Intel systems" makes it sound rare. https://wiki.archlinux.org/index.php/Intel_GVT-g says, anything Broadwell and up should work, so any device from 2015+ should work for creating vGPUs, and thus be able to use native acceleration at host and vm-guest level!
Do you, or anyone, happen to know, if WSL2 (=HyperV), or any other Hypervisor on Windows supports GVT-g (well), so that (wsl2) linux applications running on-guest can benefit from hardware assisted rendering?
WSL 2 does not support GPU pass through currently. I'm not sure if Hyper V does either, but this seems like it will change soon due to Windows 10 X. There has been development where for emulated Win32 apps they do use GPU / hardware acceleration. Sadly, with the the Neo being delayed past 2020, we might not see it until next year.
I wasn't aware Intel still made "Desktop-AddIn cards", or that the Non-Mobile versions are in any relevant way different to the mobile versions. In any case, the page I linked above does not seem to draw a distinction. So I assume, mobile versions are good to go too. Heard/read about differing experiences?
I have it setup on my Thinkpad T580, seems to work fine enough. I do get the occasional visual corruption with it but it works well enough for me to run things like Luminar and other photo editing things that need hardware acceleration. It doesn't seem to work reliably with video encoding, which might just be a driver issue somewhere that I haven't found a solution for yet.
In a World where virtualization has allowed to run several virtual machines on one physical machine (not even high-end) for 15+ years, it looks like a strange concept to need one physical piece of hardware per VM.
I actually understand why it makes sense, simplification and best performance for GPU intensive context, yet it feels like "let's virtualize, not really".
The real reason is money, as it usually is. Nvidia and AMD GPUs can in fact split their resources per VM - if only you buy their enterprise/research versions of their cards, like Quadro and Firepro. Most people have no need of VM GPU passthrough, so they don't support it for consumer cards. Intel does because they are not really in the graphics space (not yet anyway, we'll see how Xe does).
With Linux 4.16+ and an Intel Card of age Broadwell or newer (~2015+) you can use this howto: https://wiki.archlinux.org/index.php/Intel_GVT-g. Adapt from Arch Linux if you have something else.
I'm glad someone brought this up. I'm about to build a new rig and was hoping to make it compatible with Looking Glass (I can buy any hardware I need since it's a fresh build), but I can't make sense of the hardware requirements.
I was planning on an AMD GPU, since nvidia famously has bad Linux support and I don't want the driver headaches.
You'll notice they specifically say "passthrough gpu." What you use on the Linux side and what you passthrough don't have to be the same and probably shouldn't be. I'd optimize for the use cases you have, also as much as I truly hate to give this recommendation: youtube has a lot of resources on shit like this (because I hate having to watch a video for something I could read).
Also, you might want to really think about the GPU and its use-cases, newer isn't always better, because there are some specific ones you can buy that'll let you also run another OS 10 in a VM effortlessly :)
At the end of the day this all pretty much powered by Qemu, KVM, and virtio. So if you can't find a resources for "looking glass" then just go to one of the the sources above...
Prop nVidia has fantastic Linux support. I have been running GTX 1060 for about 3 years driving 5 4K screens on Debian 8, 9, and now 10, including video playback with no tearing. Rarely when a card experiences a crash after being fed a corrupt h264 chuck, it freezes for 10-20 seconds but it recovers by itself.
The open source driver... the open source driver crashes at least one a week driving two monitors. I gave up on it.
It only works with a Linux host and Windows guest. I posted this on HN as well, and I wrote that there have been rumors that Apple might implement something similar due to development happening with virtIO drivers in macOS, so perhaps you may not have to wait long for a macOS host running Windows.
I ran the 3 OS using a Proxmox (Linux) host and three guest VMs.
Yes that's actually what Looking Glass was mainly built for, you can game without using a program like Barrier or Synergy to pass inputs back and forth, and you can game on one window and have your work on the other, so context switching is a lot easier. Performance is basically 95%+ of native speed.
I've been using VcXsrv (https://sourceforge.net/projects/vcxsrv/) to do the same thing for a few months. It works well in most cases, but it can be janky. The scaling doesn't always work well if you're using a hidpi screen, and I had one application that was crashing consistently under certain circumstances.
Definitely going to try this out, but I wonder if it's worth paying for when I have a free alternative that does most of what I need it to do.
Been using VcXsrv as well in combination with WSL2. However the clipboard stopped working randomly (but at every session). Only a complete restart of the WSL-services and X-server made it work again.
This is what brought me to try X410, and I never had a problem with the clipboard there.
Using it now in combination with WSL2, qtile and Terminator as terminals (I have to stick with Windows in my company).
I've been using it for literally years to access the GUIs of programs running on Linux workstations from my Windows 10 machine over our LAN. I don't think it's ever crashed for me with the 3 or 4 programs I run but it's sometimes a little slow, although I'm not convinced that's the fault of vcxsrv. I have no other problems with it, my experience with scaling has been surprisingly good. I see no reason to pay for an alternative.
My crash happened whenever I tried using a Matlab MLX file (which are similar to Jupyter notebooks in Matlab, if you aren't familiar). Since I don't use them much, this was easy to work around. Not clear to me whether the problem was Matlab or VcXsrv.
I (and most of my colleagues) stopped using vcxsrv at my workplace since we moved from Qt4 to Qt5. At some point in between, Qt stopped supporting native X11 painting[1] which means all of the graphics are now drawn as bitmap at server side and sent in whole to the client. That easily hoses up our network. The problem is more exarcebated now that Japan has declared state of emergency and everyone is urged to work from home. We now resort to using VNC solutions. (I wish we had developed a curses client along with the GUI for times like this)
> X also doesn't really work if you UI is implemented with OpenGL or similar.
Depends on how you use the OpenGL API. OpenGL display lists, once compiled, are extremly light on the connection. However they're also deprecreated and no longer supported in (forward compatible) OpenGL-3.3 core. But then again there's no 3.3 GLX specification.
As I understand it, when you open an OpenGL application inside Xvnc (et al) on :1, a shim is LD_PRELOADed that quietly redirects the OpenGL initialization calls so they create an offscreen buffer associated with Xorg at :0 (which is presumably sitting on a 3D-capable GPU).
Said Xorg can be displaying a black screen (or be being used for arbitrary purposes); no windows are ever displayed on it. Theoretically, avoiding compositing WMs may aid performance.
I am using it with qemu to allow Linux guests to use hosts's gpu to do 3d acceleration. It works fairly well except that it seems there is a memory leak in the path somewhere because over time qemu VMs with it enabled grow over the memory allocated to them.
This is qemu 4.2.0 configure command line that built what i needed to support this ( Debain 10's qemu did not have virgl support ). Spice did not work me, SDL did.
Oh and when I say it is working "fairly well" I mean the a guest with a single vCPU runs a spinning cube with no sweat, not to mention glxgears etc. Just for a test I have done 4 guests ( one per physical core ) doing gears and spinning cube each in addition to the host itself doing spinning cube with no issue.
If only I could figure out how to fix this memory leak.
Arg, only noticed your reply yesterday then the tab got buried!
Thanks for the info. I probably don't have the hardware setup to run VMs at the moment (chronically low on RAM + do not have a GPU). I will be very interested to play with this when that changes in the future.
The one question (if you notice this) I do have is: how quickly does the memory leak happen? And can just running glxgears do it?
I'm running 32GB system with two browser VMs getting 4G each.
The work VM which is typically connected to Github and work gmail needs to be restarted once every couple of days.
The play VM which would have a Chromium with a dozen tabs open can can take ~20 min to ~1 hour depending on the content in tabs.
I notice the memory leak when Sublime that I run on the host itself
starts dropping key press speed ( I run "xset r rate 400 50" ). Killing VMs or restarting them makes everything go back to normal.
I've ran glxgears for ~2 hours now with no significant leak. I will probably leave it overnight to see if something as simple as it can be used as a leak example.
I'm going to speculate the key is heavy usage of GLX something that only Chromium does as I have left a desktop with an xterm running top for two days and no leaks were detected on a play vm. So it is not just virtgl in QEMU being exposed to the guest, initialized by the guest and interfaced by the guest via virtio, but actually using virgl on a host to do rendering. Maybe virtual context creation/release cycle?
P.S. I originally made this work on my super light laptop ( i7-6500U with 8G ), so you don't need a beefy rig for it although there's a bug in recent Intel GPU libraries used by mesa that sometimes lock it up. I initially attributed it to something I did but it was not:
"Depending on the content in tabs". Might be interesting to graph the leak rate (in KB/min or MB/min) and maybe either record the screen or limit to one or two websites at a time to narrow down what causes the most issues. Besides video playback, CSS animations come to mind as a potential source of GLX acceleration caused by random/mainstream websites.
Virtual context creation+release could indeed be the problem. FWIW https://github.com/cyrus-and/chrome-remote-interface makes using Chrome's remote debug protocol (to open and close tabs) utterly trivial; or you could just run multiple concurrent browsers with --user-data-dir=somewhere (probably actually much easier to work with).
Chromium aside, another potentially useful trigger may be Unity games - the last(/first/only) time I tried to fire one up my laptop (i5-3360M + HD Graphics 3000) I was scrambling for ^C^C^C while everything slowed to a crawl and the system climbed (impressively quickly) past 97°C ;) (thankfully(!) nothing froze - thanks for the Intel lockup reference), so perhaps that could be a very effective trigger.
I'll keep your email address in mind; email is a bit of a long-term sore point due to Gmail constantly slowing everything to a crawl, and I'm currently using 8GB of swap (need to close some tabs) so I replied here so I could respond in a timely manner.
In those cases I prefer using Xpra, configured to use the regular Xorg server operating on the GPU.
It would be nice if there was a X11 "media" extension to transport encoded image streams (aka video) with server side decoding into Pixmaps, Xv or SHM buffers.
4k @32 bit color is ~3.5Gbit/sec at 60 fps or 1.6Gbit/sec for 30fps.
Modern video cards and CPUs are fast. With no optimizations I can screen grab a fully rendered X11 4k x 5 screen in ~100ms on i7-4790 CPU from a GTX 1060 ( did it yesterday when I discovered that Looking Glass does not support Linux guest). Some people that I know who are in the graphics business claim that using MIT shared memory extension they can do nearly 1000 fps for a single 4k screen.
Iperf (TCP) with no network optimization and no shared memory a-la Looking Glass between host and guest gets 2.5Gbit/sec.
Why not just do a PCI pass through to a virtualized ( or dedicated ) graphics card to guest, run an X server on it and stream raw frames from guest to host? It surely can do at least 30fps on a modern workstation or over a 10G network with no frame loss.
Because we're talking about remote desktop over low bandwidth connections. If push comes to shove you can use Xpra over dial-up.
Of course the more elegant solution then is to use some virtio based graphics pass-through driver doing all that, without running MIT-SHM screen grabber X11 clients shoving around frames. I want less kludges, not more.
> Because we're talking about remote desktop over low bandwidth connections.
I'm presuming this implies there's already a non-theoretical solution for remote desktop over high bandwidth connections ( say over 10Gbit/sec ) that would allow me to run a spinning cube at 30 frames per second at 4k without frame drops? What is it? I have been looking for one for years!
> Of course the more elegant solution then is to use some virtio based graphics pass-through driver doing all that, without running MIT-SHM screen grabber X11 clients shoving around frames. I want less kludges, not more.
That would be Looking Glass, but its author's position is (paraphrasing) "Stuff like this already exists for Linux so there's no support for a Linux guest". Alas, no one can point to it.
I've used xpra in situations where x forwarding is not performant enough. It's got some rough edges but it works very well over low bandwidth connections.
Yes, but with multiple compression technology available. I use RealVNC where there is only one knob for controlling image quality, but in TightVNC for example there's a choice of using zlib, RRE, hextile and its very own Tight encoding[1]. The problem with Qt over X is that it tries to send every frame on every redraw event. With VNC this is automatically limited by the frame rate.
What differentiates x410 from other x servers is that it support communication over VSock, which Hyper-V supports, and it's probably 3x less latency than tunneling x over ssh. Made it possible for me to comfortably use emacs in my hyper-v arch vm
The solution would be easy: Put the flashy stuff in a div with ID "advert", and the ad-blocker will hide it from view. All non-techies gets the intro-movie.
Anyway: Here is the list of things I gathered from the comments (iiuc):
* Uses a fork of x.org with support for legacy Windows version removed.
* Costs 10$ if you find it on sale, 50$ otherwise.
* Can be installed on 10 PCs.
* Can be installed/updated via the AppStore.
* Has a windowed mode.
* Well-integrated into Windows 10 and WSL.
* Takes advantage of HyperV virtio vsock for small latency enhancement.
* If VcXsv or XMing are unstable for you, file a bugreport, and try if X410 is more stable.
* Cannot make use of hardware assisted rendering, because of underlying WSL limitation w.r.t GVT-g in some HW configurations
I have a Linux laptop from work with a small amount of supported hardware configurations. I have had issues with: UI lockups, audio failures, resume from suspend issues.
Windows 10 isn't perfect, but it's a lot better at not getting in the way.
I've been using XMing for years (there are probably better options out there but it works for me) and there is of course vcxsrv as other people have mentioned.
It looks nice and all, but there are plenty of free options available that will do the same.
Does anyone want to share how they use the WSL2 & X-Server combination?
In my case, I'm mostly happy with the VSCode WSL2 integration. I keep all my projects on the linux fs and it is fast to work with. The only thing which annoys me is the window management in Windows. Too much Mouse movement and random ALT-TAB-ing.
I've never got i3 to work with a Windows x server on multiple displays with high dpi. X401 also only supports a single display.
As for Windows native window management, FancyZones is better than nothing. You can overlay zones, I have split each monitor in half with two zones each, then overlayed a bunch of smaller zones for stuff like terminal windows, etc.
FancyZones is great! Already a huge enhancement to the normal windows snapping.
However, it only solves the window placing problem, not the window navigation problem. I would love to navigate with something like SUPER + LEFT/RIGHT, similar to i3. Currently the only possible way is to (CTRL)+ALT+TAB, which completely lacks window layout context and changes order depending on recent uses.
I'm curious, I always thought that devs who choose Windows do so because they like the window management and the UI tools etc. That's my reason for sure. What's stopping you from just running proper Linux with VS Code, if you don't like the way the Windows shell works?
Windows shell is a good reason not to use Windows. It's like an early 2000s KDE desktop mixed with a bunch of Gnome and ancient Motif apps. On the command line side, PowerShell isn't half bad, but it still requires you to write C# from time to time to make things work... The biggest four reasons to use something other than Linux (Mac included):
* Adobe software, MS Office, pro audio, pro video, and other income-dependent software tools mostly run on Windows and/or Macs and don't have a Linux version.
* Ease of asset management for the company (yes, it can be done with Linux, but Apple, MS and Google have great tools for managing huge numbers of computers). Google (Chrome) and Apple have a great story on configuration management by having much more consistent hardware.
* Company issued laptop (usually combined with the need for MS Office & corporate asset management)
Oh, and I love VS Code, but it really needs a full org-mode equivalent. It's the only thing that keeps me reaching for Emacs at least once a day.
The strongest argument for Windows is not its window management or UI tools, it's that you can use third-party software without dealing with too much bullshit.
On Linux, if your third-party software is available at all, it's on some third party repo you have to add manually, or maybe it's a binary which may or may not work on your particular distribution on your particular version.
This is basically the reason why I gave up on Linux on the desktop, it just hasn't gotten better in decades, it probably will never get better. The distributions have no incentive to make this work well, because first-party packages are a big selling point.
(After re-reading my own comment, I don't think I'm particularly rebuking what you said, it's turned into a "I hate computers" vent :-))
In my eyes, how Windows and Linux deal with third party software is identical...
The Windows model forever has been "you just double click an .exe or an .msi and it runs".
i.e. outside of stuff published on Windows Store (which many developers will not do), it's down to the developer to:
- Distribute their software and provide an update mechanism (download an exe? Windows Store? chocolatey? Steam / epic games launcher / origin / uplay? jetbrains toolbox? adobe software updater?)
- Deal with the many different environments (i686 vs x84, Windows XP / 7 / 8 / 10 / 10 Home / 10 Pro / 10 Pro N* / 10 Basic Server Education Edition N RT for phones)
- (Probably) bundle their software with the exact version of the libraries they're using (looking at you, "Installing Microsoft VC Redist" and DirectX, every single game that I run), because any in /system32 might be the "wrong" ones
* 10 Pro N = "without media essentials" or something, which I stupidly chose last time I forked out the money for a Windows license. Every time there's a new major Windows update (assuming it doesn't repeatedly fail to update, forcing me to reinstall from scratch,) I need to go and reinstall the Media Feature Pack so Rockstar Launcher and GTAV and $software don't all fail to launch with an obscure error code that means one of 100 things that some corporate web forum rep will not have the answer to... Because none of them put a .log file somewhere ...
So the fact that stuff "just runs" better on Win is more to do with third party developer effort rather than a failing of the OS and distribution. There's no incentive for microsoft to make it work better either, because it's Not Their Problem. A whole slew of software runs like bullshit on Windows too, but we just kind of accept it as it is...
Yet me running a program by installing Wine and double clicking the .exe, or via mono, or running one via a snap image, or an .AppImage, or a docker image (those 3 are essentially containerized environments which should work regardless of distro as they bundle their own libraries a la the windows dll hell, though your kernel version may cause issues, just like windows driver versions do), or my Linux distro's packages... is apparently jumping through more hoops than Windows?
As a power user of both OS'es, they're just as much a pain in the ass as each other.
One key difference is the OS <-> application interface is defined as a group of system provided dynamic libraries on Windows, not syscalls. So Windows effectively provides a set of very reliable core libraries that is guaranteed to be backward compatible. And as long as you don't use newly added APIs, also forward compatible. While on Linux even libc is decoupled from the kernel, each distribution uses a different version, the application cannot distribute its own libc in any sane way, and the glibc choose to use ELF symbol version to make incompatible changes to frequently used APIs (like memcpy), sabotage bidirectional compatible attempts.
Oh, and there are only one Windows distribution. Not at least 3 major ones.
These both make packaging for Linux hard (requiring kinda funny solutions wrapping up a sysroot as a whole, like Snap or AppImage), while on Windows, the developer builds an exe, and voila, it works everywhere, even on very old systems. There are simply no funky stuffs e.g. glibc symbol version issue.
* Corp Policy
* Gaming
* Professional Tools (Photoshop etc.)
* Ease of Use
I tried concepts like dual booting windows & linux, but in the end they often created a mental barrier ("Ugh, I could do some work but I would've to reboot"). With WSL2 and PowerToys I'm 90% happy. The missing 10% is a better window navigation via keyboard concept.
I don't fully understand what this is capable of. Can I use this to run a window manager like xmonad? If so, does it work only for linux gui apps run through WSL or also for windows programs?
I really love what WSL has been doing so far and this would really take it to the next level. I'd actually consider switching my private computer to Windows.
Haven't been using this specifically but it looks similar enough to vcxsrv.
To me the big selling points of both this and vcxsrv is using seamless windows so that the windows are just like any other windows-window and not like VNC or something where you get two desktops - one for local and one for remote.
In vcxsrv, and it seems this one as well, can also run a window manager. I tried i3 that way, but it is quite clunky and the shortcuts collided with windows native shortcuts in a bad way. Maybe there are fixes for that. But it will would still only be for linux apps and not windows apps.
It runs X on Windows. This was doable before as well.
Unless you can make Windows render windows on the X server, no, you can't use your Linux window manager for Windows programs.
They are asking $50 for something that there are other open source solutions for. It would be interesting to find out how much of the original source code is the developers and how much is just repackaging of one of the multitude of open source X servers for Windows that are currently available.
Originally thinking it was another open source project, I looked at the website to see if there were some features that would be worth it to switch from VcXsrv. Mostly it talked about how there was a windowed mode that allowed seamless integration with Windows. Wow how revolutionary! /s
The most successful open source company ever (RedHat) made their whole business packaging up open source in a nice manner.
People will pay for convenience and polish. Also, i would guess that Windows users are not likely to be free software purists and just wants something that works with a minimum of fuss.
The price of software should be based on the value it provides to the user, not on what it cost to make it.
That glosses over RedHat's strong arm sales tactics of the community, and rules-lawyering the GPL. Redistributing "their" source, as allowed by the GPL, is liable for your support license to not get renewed. And where's the Red Hat kernel source in a digestible format? I haven't followed recently, but they were at one point distributing their diffs to the mainline kernel as a single giant patch file and arguing that it was okay. It may abide by the letter of the GPL, but it's against the spirit of interoperability.
RedHat's the first billion dollar Linux company, but first and foremost it's a business. Their sales people are aggressive and their lawyer's hungry. Support contracts don't exactly fly off the shelves, especially when there's a huge community of experts.
How many people do you know that have given money to Canonical for Ubuntu?
Also, RedHat stopped providing detail changelogs and started doing just one bug diff dump after Oracle started hurting their business -- where Oracle's work at the time was basically repackaging RedHat's work and doing "sed s/RedHat Enterprise Linux/Oracle Unbreakable Linux". RedHat did what it felt needed to fend that off.
Up until that time, they were publishing their internal repositories.
While I agree with the criticism of Redhat, Oracle's behavior was shitty. I'll have remember this next time I land on a "Support Contract Only" Redhat knowledge base page. Oracle is just a bully.
> ...rules-lawyering the GPL. Redistributing "their" source, as allowed by the GPL, is liable for your support license to not get renewed.
There isn't anything wrong with that at all. If someone is undermining RedHat's business model it is reasonable for RedHat not to support them.
The spirit of the GPL is the source code should be available and the user can do what they like with it. RedHat makes the source code available and the user can do whatever they like with it. No principle says RedHat has to like what people do with their GPL-ed code. Quite the reverse is expected, in fact.
The spirit of the GPL is to make source code available. Why? So that anyone can maintain the software. Thus there's an expectation (however naive) that the code is in a usable format because that's kind of the point of having the source. RedHat, however, provides the source in an obtuse format, a format that isn't even how it's used it internally. That is to say, they go above and beyond, in order to make their source harder to use. I'd say that pretty directly violates the spirit, if not the letter of the GPL.
The other part is that the GPL explicitly grants customers the right to redistribute the changes. That's pretty wild. Buying a DVD copy of Avengers doesn't give me the right to setup Avengersflix.com and sell subscriptions. GPL software does. RedHat then turns around and says if you actually do that, then fuck you (paraphrased a bit). They are entirely within their rights to do that, but if you're telling me the spirit of the GPL gives me a right that I'm not actually supposed to exercise, then we'll just have to disagree. (Un)forunately for me, the legal system looks at the letter of the GPL rather than the spirit, so what Redhat's doing is legal.
Why does the GPL explicitly grant that permission if it isn't meant to be exercised? Why did RedHat choose the GPL?
They didn't, is the answer. It chose them. The two fundamental pieces, GNU libc and the Linux kernel, are LGPL and GPLv2 licensed, respectively, along with many other packages, and relicensing them is not something RedHat has the rights to do.
Hence, RedHat's strong-arm tactics to force people into buying expensive support contracts.
There's nothing legally wrong with what they're doing but it's still a dick move by RedHat. Sure, RedHat's dick move is in response to Oracle's dick move, but two wrongs don't make a right. They do make a billion dollar business though.
There are other more opinionated licenses that RedHat could adopt for new software that they do own the copyright to. For the conscientious objector software developer, there's the idea of the Non-Military Open Source License which says the military is not allowed to use the software. There's the AGPL, which is a further left license that says if you use my website, I owe you the source, and all modifications to it. Hell, RedHat can afford the lawyers to write their own license that says companies started by Larry Ellison aren't allowed access to the source.
I don't know the support contract details from RedHat, but they are one very large contributor to the kernel and other parts of the eco system as they employ lots of the contributors. Also, their source is freely available, they call it CentOS.
I think RedHat does a lot more than just packaging open source in a nice manner. AFAIK, they actively shape the ecosystem and contribute to quite a few projects. Wasn't the whole systemd transition spearheaded by RedHat for example?
But I agree with you, that consumers pay for convenience and companies require Service Level Agreements for which they are willing to pay.
Red Hat made its fortune selling licenses with support contracts for software to risk-averse industrires. That the software happened to be free wasn't really relevant to the revenue stream except insofar as it made it cheaper for Red Hat to provide the service.
I don't see how a desktop X server is going to tap into that need.
I mean... I've been using and relatively happy with the Cygwin X server integration for more than a decade. I'm not about to drop $50 on a polished replacement.
RedHat does give back to the community a lot -- their packaging and distribution is paid-for, but a great deal of their projects are open sources and reused by others.
I really hope that's the case with this software. There have been many in the past that provided "free source", but the binary from the app store is paid-for.
> People will pay for convenience and polish. Also, i would guess that Windows users are not likely to be free software purists and just wants something that works with a minimum of fuss.
I would say "companies" will pay for ....
not sure about "people" undesrtood as individual persons
It never was the model, even from day one? The service is not free, even if the code is. You can do it yourself fine. If you need somebody else effort not related to source, you should pay for it.
I don't know how much code is shared, if any, but I do know that xming and vcxsrv both crash for me constantly and X410 doesn't. Like, ever. I got it on sale, but I'd pay full price solely for the amount of headache it has saved me.
They used to sell it for much cheaper - way back when I got it, I'm pretty sure it was under $10. If they raised it that much, surely that's a sign of demand?
I have little doubt that it's a polished fork, but what ultimately matters is the value added - in this case, the value is, "it just works". The only thing I had to do manually was to configure DISPLAY=:0 system-wide in my WSL.
I've used Cygwin X and Xming before WSL even existed.
The beauty of X410 is that you click "Install" in the store (which also means it auto-updates), run it, and that's it - it's configured out of the box to work in desktop integration mode. Top-level windows are projected onto the host desktop, clipboard is shared etc. It also has some convenience stuff, like DPI scaling.
I don't think I'd have paid $50 for that myself, to be honest (although I don't think they are actually selling it at $50... this looks more like one of those "permanently on sale" psychological tricks). But when they just got started and were selling it for cheap? I think it was a bargain then. OTOH for somebody who has never even seen an X server before, I can see how it can be a bargain even now.
That's Cygwin, not WSL. I don't think those two are compatible. I think people want the actual Linux you can get with WSL, not a pseudo-Linux like Cygwin.
It doesn't matter what X server you are running. It is a server, you can send data to it, and it will render the windows. In this case you tell WSL to use X server on Windows and it will work.
I think I used Xming for this purpose before.
You can also render windows on other computers if network is open and access is provided.
Cygwin consists of ordinary Windows programs, WSL2 is a specialized virtual machine: they are partly redundant (for the purpose of offering well-behaved POSIX tools) but perfectly compatible.
This would be a correct comment in other contexts but you seem to be unaware of the architecture of X. You can run an X server under cygwin and X clients under WSL.
I also bought it for I think $5 maybe a year or two ago. I've also purchased a license for Xming (while strictly not necessary, at the time I had some version specific issues), and X410 is a very nice set-and-forget application. I would not say it's worth $50, but I have definitely gotten my $5-10 out of it.
Where to set global environment variables (and I mean global for all users here!) depends on the distro. On Debian and most derivatives, you can use /etc/environment for this.
I don't think there is anything wrong with paying for software. Free software isn't about the price, it's about the liberty,freedom of the software itself.
As others have said, it's normally on sale for less. Back when I was using Windows, I found it much less troublesome than the alternatives coupled with WSL, and it's well documented and comes with decent support. It was well worth the $ for me.
I don’t mind the price. They need to fund development. More open source projects should do the same. And being rather niche on the Microsoft store means they’re already catering to a consumer that is under the impression to buy something whereas if this were a normal Ubuntu desktop it’s free.
I bought it for $10 ("$40 off") and that's still how its listed for me. I never tried the other free options but reviews online were consistent that X410 was good. I've been happy with it.
Same, that was probably at least a year ago. For all intents and purposes, it's $10.
I've also been pretty happy with it, and substantive new features are added regularly. There's a couple little annoyances from the design assumption that the user's main interest is WSL, but for the most part, it's been much smoother than the other X11-for-Win32 variants.
Support was recently added for listening on a hyperv vsock, but again, it assumes that you're using Windows on the hardware and connecting to a virtualized Linux. The vsock-win32 driver for KVM is supposedly coming soon and then it will be fun to explore just reversing the tunnel and see what we can get done that way.
I picked it up for around 10 IIRC. Have also used Xming in the past (not on Win10). Liked how simple and easy X410 was to setup. It worked flawlessly with WSL.
I just bought it on spec. The terms claim you can install it on 10 machines! $1/box is pretty cost effective.
I've paid for xming a couple times in the last few years. Doesn't quite cut it with certain applications; various show stopper glitches. Really would like to solve the X Windows on Windows problem once and for all.
There are other posts speculating on the code base; isn't this just X.Org for Windows repackaged? Yes, it is based on X.Org. The publisher explains it on the site; it's X.Org with pre-Window 10 support removed and otherwise optimized and enhanced.
Personal attacks will get you banned here, regardless of how little someone else has contributed to open source or how mad their comment makes you feel.
It's particularly not ok to bring someone else's personal details as ammunition in an argument (or attempt to): https://hn.algolia.com/?dateRange=all&page=0&prefix=true&que.... But please omit the name-calling ('leecher') and snark ('sorry to break it to you') also.
I was fully aware of the guidelines and potential consequences when posting this comment. That said I didn’t expect it to be a serious enough violation to deserve a moderation comment.
I think a little bit of context is warranted. The parent is a shallow dismissal that applies to a vast amount of paid software (to be clear I have no skin in the game at all); “Wow how revolutionary! /s” didn’t help either. It’s a rather obvious case of guidelines violation itself according to my understanding, and it’s painful to see it voted to the top, which IMO doesn’t reflect well on the community at all.
(I know piling on a bad comment is no defense for breaking rules, but seeing it at the top was a bit much.)
As for the personal attack, the shallow dismissal is pretty bad as is, but I wouldn’t have vented my frustration if it came from someone who has notable contributions behind their belt and could somewhat understandably attack paid software like this. Not even meeting that threshold was a tipping point for me. Personally I gauge whether I have crossed the line with the thought experiment of whether I could say it out loud to that person’s face. In this case I could and I wouldn’t be ashamed of it. It breaks the rules here, that’s very clear, but I’m not ashamed of the comment.
Some specifics:
> name-calling (‘leecher’)
I was making a BitTorrent analogy where a seeder is someone who uploads and a leecher is someone who downloads. It was not meant to be offensive, but I can see how it could be read that way. Will be more careful in the future.
> snark
Point taken.
Overall, I don’t regret posting this comment, even if I’m banned for it right now. I will do my best to shut up in the future though, if I’m not.
Follow-up: I read more moderation comments at https://hn.algolia.com/?dateRange=all&page=0&prefix=true&que... which gave me a better idea of why using personal details in arguments would degrade discussions here. That made me change my mind and I’ll not do it again.
I maintain that the parent comment is toxic and disappointing for the community.
Thanks for looking at those comments and getting them; you have no idea how much I appreciate that!
I agree that the GP comment was a shallow dismissal, and those often lead to generic subthreads, which tend to attract upvotes and replies and generally change the subject to a more generic topic, which is bad. Most of the damage is in the upvotes, actually, because the biggest problem comes from such a comment sitting at the top of a thread, accruing mass and choking out more specific and substantive discussion. That's a big problem on HN.
When we see generic subthreads or shallow dismissals or (worse) flamewar tangents at the top of an HN discussion, we downweight them. That has turned out to be a great solution, especially when the subthread isn't really violating the site guidelines. Its big weakness is that it requires us to know about it, and we don't come close to seeing everything that gets posted here. If you or anyone sees one of these discussion-choking subthreads sitting as the top comment, emailing hn@ycombinator.com a heads-up would be a valuable contribution. Those are some of the best heads-ups we get, especially when a thread is still live.
I think you are mistaking legal obligations for morality.
I believe what they are doing is probably fine. However, without properly stating their value-add, it may be misleading to users that do not understand there are also open source options with very similar functionality. I think I get the idea, but nonetheless.
Legality and whatnot aside, I do believe there is a spirit of open source. Like, if everyone in the world behaved the “worst” they could while fulfilling all legal obligations, nothing would be functional at all anywhere. Similarly open source depends on certain behaviors, like sharing, community, etc. I believe everyone that uses open source, especially those who benefit off of it, should behave in a way that if everyone behaved like them, things would continue to function. In that vein, I hope they do contribute upstream where it makes sense to, at the very minimum, like applicable bug fixes. There’s probably no legal obligation to do so (X11 is MIT license, right?), and of course it would help their “competition” to do so. But I do believe it is certainly in the spirit.
> I do believe there is a spirit of open source. Like, if everyone in the world behaved the “worst” they could while fulfilling all legal obligations, nothing would be functional at all anywhere.
Yeah, tell me about it, did I fail to mention I actually write widely used open source software, as opposed to the original complainer whose profile indicates little open source activity?
> In that vein, I hope they do contribute upstream where it makes sense to, at the very minimum, like applicable bug fixes.
And where’s the evidence that they aren’t already doing so? Where’s even the evidence that X410 is repackaging? I don’t know either way, but gp just started trashing the software because they sell licenses for 50 bucks a pop, which is not evidence for anything.
I never made an endorsement of gp, I just took your remarks at face value (but not out of context.) It’s all conjecture anyways, but if I were a user reading that page I wouldn’t have gotten the impression this was a fork of something I could get for free. We don’t really know anything. For all we know it could be written entirely from scratch; an X server from scratch is really not outside the realm of possibility (it would probably be pointless though.)
The only things defining open source and free software are the copyright hacks that are licenses such as GPL, MIT, BSD, etc. If someone wants their code to not be used a certain way, they can adapt their license it to avoid it.
With all due respect I find this view shallow and very incomplete. Open source is not a set of licenses, it’s people, companies, code, etc. The only reason to ever talk about open source in terms of just what the licenses say alone is if you are dealing with legal issues. The licenses themselves are nothing more than a tool used to facilitate open source within the copyright system.
Again... legal obligations and morality are two different things. Morality is subjective. You can’t encode morality or subjectivity to that degree into a license. You can’t legally enforce the spirit of a community or movement.
Obviously GPL strikes some kind of balance by trying to encode a legal provision that forces collaboration, and that’s cool. But GPL is a trade-off. It creates legal problems that don't hugely benefit anyone. ZFS on Linux is a perfect example of where GPL hinders a perfectly in-spirit action that would mostly be to everyone’s benefit.
Whether you prefer erring on the side of caution or on the side of flexibility is more of a personal thing. I tend to use a BSD license, and I don’t personally care what happens to my code. Still, that doesn’t mean that I think there aren’t ways to abuse that where someone benefits and open source loses.
>ZFS on Linux is a perfect example of where GPL hinders a perfectly in-spirit action that would mostly be to everyone’s benefit.
Sorry, I can see where the frustration comes from here, but from an outsider's view the CDDL is just as much to blame. It takes two for there to be a license incompatibility. If there is some piece of information missing here then let us know, although in my experience the lawyers don't like to make this sort of thing public.
>I tend to use a BSD license, and I don’t personally care what happens to my code. Still, that doesn’t mean that I think there aren’t ways to abuse that where someone benefits and open source loses.
I also use non-copyleft licenses a lot, but accepting that other parties are going to profit and not give anything back has always been a part of that. It's not a total loss -- it gives you an in to lobby them hard for donations, support payments, consulting fees, or some other kind of contribution.
you are swapping Free Software with open source everywhere.
open source was coined exactly to stride away from any spirit and ethical standings, focusing only on the code and its practical advantages when available to be shared. This way, enterprise can be more likely to accept it. (also because English-based enterprise is deemed too dumb to understand free can mean two different things)
Free Software is the thing that sees practical and ethical advantages as an indivisible unit. And it's fine to sell Free Software as long as you guarantee the buyer's right to acquire the source, in the case of the GPL for example.
That’s the FSF point of view, and I and others respectfully disagree. I don’t believe open source is better because of ethics, I do think open source would not work if everyone were as unethical as possible. I will continue to use the term “open source” to refer to the whole shebang, which has been best for communicating to most people who aren’t fighting over terminology semantics as a means to push ideology.
As a suggestion, be slightly more careful when stipulating sides. The FSF, mine and others interpretation contrasted with the OSI, yours and others would be a fairer statement. There are individuals using "Free Software", and there are organizations using "open source".
One of the key points of the creation of the term "open source" was the distancing from the ethical aspects of Free Software - to turn its face on it and "hope for the best". Yet, of course the ramifications of ethical creation, usage and sharing are usually still there on "open source" projects, since it's how things often tend to go when creating Free Software - _despite_ the new term, not _because_ of it.
> I will continue to use the term “open source” to refer to the whole shebang, which has been best for communicating to most people who aren’t fighting over terminology semantics as a means to push ideology.
By charging "open source" with the ethical+practical unity of Free Software, you are doing exactly what the very creators and advocates of the term wanted to avoid - "ideology". Therefore this point sounds so... weird?
On some Windows versions (Enterprise and Server) you can do that with RemoteApp, a Terminal Services RDP extension, easily managed with this tool: https://github.com/kimmknight/remoteapptool (or through registry)
I understand your request to be: Run Applications on Windows, and get the output over network to a Linux machine running a graphical window manager, without having to "transport" a desktop surrounding your program.
I run Windows applications that require USB hardware, and Wine does not support USB devices. so I was hoping for native Windows execution rendered to an X Server.
Has no one heard of moonlight? With an Nvidia card you can attach windows remote desktop - mstsc.exe to it and bam, nvenc encoded dynamic bitrate low latency remote desktop fully functional with audio!
That seems totally unrelated. This is primarily for running Linux GUI apps in WSL (i.e. locally), which is otherwise terminal only. Moonlight looks interesting but doesn't serve the same purpose at all.
I haven't used this Xserver, but I've used most (all?) of the free Xservers for Windows over time.
As background Windows is my preferred desktop environment for about the last ten years[1], but I do most of my "real work" on FreeBSD or Linux; having an Xserver on windows means I can do graphical work and have it mostly work.
Utilitywise, I can do things like running an image viewer to see what pictures I have in a directory.
I run mythtv; most of the administration can be done through the TV facing interface or the web interface, but some things need to be done with mythtv-setup; it runs terribly over remote X (for no good reason), but at least it runs.
I was writing a terrible NES emulator for fun, having an Xserver meant I could write it where I'm comfortable writing software, and display it where I'm comfortable with a desktop.
I'm writing a terrible operating system, which I run with QEMU for the time being; the VGA console is an X window (I support serial console and it's better than VGA, but I like to keep an eye on the VGA, because I'd like to run it on some of my home systems, and they don't all have serial ports).
[1] Although Microsoft seems to be trying to push people away again, running on the default platform has a lot of benefits.
What benefits do you see from running windows? I really see none as a software dev and os enthusiast. The only reason I kept windows so long was for a game that I stopped playing 2 years ago, and the only reason I have to use it now is because the company I currently work in has made us use it. WSL makes me embarrassed to show my work colleague how good linux/vim/tmux really is (but that might be because the laptop's 8gb is almost totally used up by invisible processes (whereas the wsl portion uses around 500mb!))
Well, you list one of the benefits of running Windows, you can keep working at your company :p. Many companies don't allow running Linux natively. For example, because Office and Outlook are considered mandatory tools. There is other software, which is only available on Windows or the Mac. Also, it is still not a trivial thing to buy a random laptop and get full hardware support, especially with very new hardware. Not even to mention NVidia...
As a consequence, Mac+VMware is my currently preferred way of running Linux, and Windows+WSL is an increasingly attractive alternative to this.
In some business sectors I see increasing demand for bottom-up-open-stack, going as far as inquiring about "Open-Firmware-no-BLOB" computing devices for all important tasks, including network and domain control, where "legacy client application systems like Windows/Outlook/Office" are relegated to isolated TS-Servers, and are being replaced by glorified thin-clients, with a local browser, media-decoder, and RDP-RemoteApp-client, all running open stack. Currently the problem here is the availability of ARM system with user-configurable TrustZone support.
But O.K., I admit, we also have a lot businesses wanting less paranoid data security practices for the sake of convenience, or other legacy Apps/Hardware.
I get to use the most tested version of all the cross platform software. Things that work for others, usually works for me. I can buy software off the shelf (games, TurboTax, whatever --- if they sell it at the store, it will run on Windows, unless I'm in the wrong store). Most desktop oriented open source is targetted towards Windows, unless it's specifically Mac focused.
When I was getting tired of my laptop running Linux was right around the release of Windows 7, which was a very nice release. I'm not sure I'll stick around with Windows 10, but at least for now, things mostly work, and I fight less with my computer than before.
There are lots of professional software that only runs on Windows. I don't understand why you can't run windows programs/OS and also still be an open source advocate/fan/user?
It's always bemuses me to see some Linux developers talk like there is literally no other option, and that all 'real' development is done on Linux.
Meanwhile, in the Real World(tm), something like 80% of all software is developed for Windows or other non-Linux operating systems.
Linux is just the most popular, at the moment, with a small subset of developers in a certain age-range. Mostly web-developers working outside of the enterprise environments, such as startups. These are people that think MySQL is a real database, PHP is a proper programming language, and Bash is the only shell.
I have the same reaction when I see some documentation with instructions on "how to set up Kerberos support" that doesn't even mention Active Directory. It's as if the authors came from some alternate reality, a parallel Earth where Windows Server isn't quite literally 99.9% of all deployed Kerberos authentication systems.
I'm a consultant that gets to visit many different types of organisations, big and small, many with on-site or outsourced development teams. Almost all of them use Windows, develop in C#, VB, or Java and deploy on IIS or various Java platforms, but still on Windows. There are a handful that use the LAMP stack or WordPress, but these are few and far between.
Try Visual Studio and C#, focusing on its strengths like the "async" keyword. Try writing a little web app using the latest .NET Core and MS SQL Server 2019. Try adding some ColumnStore indexes on your data and point PowerBI at it. The performance will blow your mind.
PS: All of the above are free, and/or free for developers:
Yes, the "desktop" is basically Windows with some traces of Macs :). For server-like systems, Linux has pretty much "won" though. Which probably is the reason why MS is working on WSL. There are also a lot of GUI applications, which run mostly on Linux because their work domain fits in a server-like setup - and be it even for data protection reasons where the applications are running on a server cluster accessed by a remote protocol like Citrix.
I use (free) equivalents of this software to view the GUIs of Linux applications running on workstations/servers on my desktop PC running Windows 10 (essentially a thin client here). Works great.
There are several free alternatives like vcxsrv (https://sourceforge.net/projects/vcxsrv/) that I used in the past in combination with WSL to work with a proper gnome shell instead of the WSL bash shell (that doesn’t have tabs and many other niceties). Works pretty well except maybe for high DPI environments.
Bought this after seeing the pretty solid reviews here on this thread. I've been using VcXsrv with no problems thus far. But I really like that this project's website has nice documentation. Also, this works with no configuration required (other than the 'DISPLAY' line in the WSL bash config), which is a nice convenience. I hope this product continues to evolve and receives constant updates.
I was convinced to buy this when I came across their article on a simple and fast setup for getting Linux gui apps to run along side my windows desktop
I wanted to buy this but MS Store asks me to 'associate an address with my profile', then shows a dialog where I can only select US addresses. I already have a non-US address assoc'd with my MS account, so I don't know what am I doing wrong.
Edit: nevermind, I had to change the store region on the web. I hate this :)
I've been using VcXsrv to run remmina on my desktop for a while now, but it's been having issues where windows will disappear and won't return without relaunching. I'm giving this a spin to see if it works; if it does, I'll happily fork over ten bucks for it. :)
I'm honestly really wondering how they got hidpi support, since, AFAIK, Xorg did not support hidpi (this one of the new things Wayland brought to the table).
There's absolutely no reason why Xorg "does not support hidpi". It even supports differing DPIs per screen. It does not support however _overriding_ the DPI individually per screen, but this would be trivially solved by standarizing toolkits on some other property (either a plain property or a fancy xrandr extension).
It is unfortunately more complicated than just the X server stuff. Xorg has a zoom parameter accessible via xrandr and lets you set the DPI. But that is not enough. Good discussion here:
It used to be the case that if zooming was enabled, every normal tap would have a 300ms delay on iOS Safari. Iirc they fixed that since (not sure how, can anyone recall?). But basically most mobile web apps built a few years ago would disable zoom so they got snappy interaction.
I stopped using Chrome in iOS 100% b/c it gratuitously honored every whim of any designer/developer to limit my ability to zoom into the screen. Safari has proven to be much less likely to prevent the same. On this x410.dev site I can zoom in on both, but I headed over to flickr to get that good chrome no zoom cortisol hitter.
I don't understand how this isn't an accessibility issue. My eyes aren't what they used to be and it's nearly impossible for me to see content some times. Yet enabling the actual accesibility features in iOS goes way overboard.
Is there even a doubt? Windows has a chance at supporting the open, documented interfaces of Linux. Linux has no chance at supported the closed, undocumented interfaces of Linux.
That might change with WSL drastically increasing the demand for such a thing. With enough resources, doing it as an X server is the better approach because it gives more flexibility - top-level windows can be shown directly on the host desktop etc. And with enough demand, there are resources for something like X410...
I've used both Xrdp and X410 for my WSL UI needs, and so far X140 has been a much better experience by far.
In terms of sheer number of active users, yeah, I'm fairly sure it is. There's lots and lots of developers who live in the Microsoft bubble, who might have never even heard of Cygwin - but who will hear about WSL from their routine conferences, training etc.
> I use Linux everyday. But misrepresenting the desktop experience isn't going to get people to switch.
I really enjoy the endless battle with tearing, which sometimes is fixed, other times not. I also enjoy the battle of multi-monitor setup with different DPIs and scaling issues, mixing 1440p and 4k monitors.
As for browser hardware acceleration, hell, even on Windows, Firefox (on my end, and for many others) have stopped being able to play Youtube 4K videos without stutter.
As for games, those who want to game from their Linux install without using Proton can always run a Windows VM with GPU passthrough, that should add fun for days (in terms of configuration).
I use Linux every day and your narrative doesn't add up.
I haven't done any configuration other than installing the GPU driver, that comes conveniently packaged in my distro. I don't have a Windows VM. I don't have a last generation video card or anything of the sort. This is my perspective:
1) HiDPI issues are indeed annoying, but in 2020 much of it is gone.
2) I don't have the video problem you are describing. 4K 60 fps YouTube videos play just fine on Firefox.
3) Some games are not compatible with Wine or Proton, sure. But the compatibility is getting better. See the list here: https://www.protondb.com/
For the people not familiar with Proton: everything you have to do is just open Steam, and open the game you want to play... that's all. Steam will run the game for you using Proton.
I haven't tried Doom eternal, but the previous Doom from 2016 runs out of the box with 60 fps, and I didn't have to touch any out-of-game configuration. Just installed it via Steam.
For Blizzard games like StarCraft II and Diablo run very well via WINE.
I have a fairly kick-ass Linux setup. Several 4k monitors. Two additional Linux VMs using virgl for host-based acceleration over virtio GPU to GTX 1060. It works rather well - I can play youtube videos with sound from a guest Linux vm.
I want to run current Lightroom/Photoshop (preferably also Premiere but I will take the first two). It should run in a window, whether the window is the entire Windows 10 desktop or just Lightroom/Photoshop is immaterial. I am not interested in adding a second video card and connecting it to a dedicated monitor for a Windows guest.
How do I do that? I'm not interested in hearing "Use GIMP"/etc
Even with an old Intel IGP it moves smoothly at 4k, framerate locked at 60fps of course. And this has nothing to do with "YouTube videos" which is a completely different animal.
Well here with 'Intel Corporation HD Graphics 620 (rev 02)' it's awful in Firefox and still has the odd hitch every few seconds with Chromium. Youtube videos are likewise not smooth.
You will be playing your favorite game with HDR enabled, and suddenly... it's auto update time! See you in 30 minutes.
I just watched a 4k60 fps YouTube video just fine.
I am surprised you didn't mention office suites. Softmaker Office/FreeOffice are very similar to MS Office, just 99.9% more responsive and less bloated.
> Really? What GPU? Free or non free driver? Wayland or Xorg? It ain't simple.
It is simple. Just use a mainstream distro, and use the default driver and the default display server. And that's it. That's what I use.
I really hate when people trash talk Linux as some masochistic experience full of rough edges that requires 1000 hours of work to tune. It is not.
On the other hand, with Windows: OEMs preinstall Windows in your computer. But that's not the only thing they install. They add unnecessary bloatware, and sometimes, even backdoors. If you decide to install it yourself, you have to download drivers. And luckily one of those drivers is not the Network card one.
https://looking-glass.hostfission.com