Hacker News new | ask | show | jobs
Is Linux ready for desktop? tl;dr – NO (itvision.altervista.org)
21 points by maximveksler 3824 days ago
12 comments

Interesting how people editorialize the title.
That's against the site rules, which ask people to use the original title unless it is misleading or linkbait. Submitters: note how that does not say "add more linkbait".

https://news.ycombinator.com/newsguidelines.html

I am using Debian as my main desktop (laptop in this case) for the last 8 years... sure I am not the only one.

I have suspend/hibernate, great Gnome experience, no issues to run presentations or use public printers, really stable and very fast experience, and I did not configure any system aspect to make it work, just installed the distribution and that works out of box.

Well, I am very happy with Linux desktop. Just presenting a contra-example :)

Probably about 15 years in my case. :)

I've been running Arch Linux for about 8 years, Slackware for several years before that. But I think it was Mandrake that I originally ran as my desktop - way back at the turn of the century (albeit not as my primary desktop)

My Linux experience hasn't been without it's problems. But I really hated the direction Microsoft took with XP and, back then, I couldn't afford a Mac. So Linux was more a case of "the lesser of 3 evils" - particularly since my previous favourite OS, BeOS, was pretty much dead by that point. But over the years I've come to appreciate and depend on the POSIX / Linux paradigm so much that I feel completely handicapped when presented with a Windows desktop.

Which brings me to the crux of the issues with any Windows desktop vs Linux desktop debates: the two paradigms are vastly different yet many of the "Linux isn't ready for the desktop" conclusions are derived from authors approaching Linux like a Windows clone and then wondering why things don't behave like they'd expect.

What laptop are you using to get such great compatibility match?
In my case, a Lenovo ThinkPad, but there are other lines of laptops that are well supported. If you're buying a laptop to use with Linux, you really ought to do some research first because not all vendors make provide enough documentation for drivers to be developed. If you go to install Linux on random hardware, there's a chance you'll uncover weird driver bugs like wireless or audio not working after resume from sleep. Even so, there may be a workaround (eg. reloading kernel modules) if you expend some effort.

If you're buying something new, you should use Linux's 1% or whatever puny desktop market share to reward hardware vendors that support open source. If you're installing Linux on whatever's lying around, be prepared to spend some time tracking down strange bugs.

I'm not the parent, but I have the same experience with Ubuntu 15.10 on a Lenovo T440s. And I know, I know, Lenovo and their spyware are awful. All the more reason to dump their stock Windows install for linux ;)
Thinkpad 750 ('95), dell something(until 2000) and then thinkpad x24, x31, t42, x200 tablet, x230 (not good), x220

Basically with various forms of linux - Mandrake, Redhat and then Ubuntu for the past decade. Rule of thumb is to pick thinkpads (or business class laptops) and pick Intel hardware where possible.

http://www.thinkwiki.org/wiki/ThinkWiki

I bought the new Dell Precision 5510 (Business version of the new XPS 15) this week.

With a 4.4 kernel, Everything seems to work more-or-less fine. There's one or two issues with the graphics stack (HiDPI display, Nvidia Card), but these have workable solutions.

Heck, my last laptop (Sony Vaio Z), more-or-less worked too.

I think you've just got to follow one rule: Intel, Intel, Intel.

"more-or-less worked" is the story of my 15+ year history with Linux as a desktop. Unfortunately these is always one or two small but important thing which doesn't quite work which always eventually sends me back to windows/OS X.
Not trying to troll here, but in my experience this is true as well. You know what the culprit usually is? PULSEAUDIO ... oh my. I appreciate that audio is a complex solution, but it seems that even suspend issues often come back to, "oh, well pulseaudio isn't letting it ..." sigh
Funny you should say that. Pulseaudio, and not getting it to work reliably with Skype, was what one the main things that drove me away from Linux on my latest attempt to switch.
What are the chances your system will survive the next upgrade?
Given my experiences with Debian (and I believe crncosta has the same), the chances are very, very high. I've never had any problems at all on my desktops, and just once or twice on my servers.
> Computing-wise that three week vacation turned out to be very relaxing. Machine would suspend and resume without problem, Wi-Fi just worked, audio did not stop working, I spend three weeks without having to recompile the kernel to adjust this or that, nor fighting the video drivers, or deal with the bizarre and random speed degradation that my ThinkPad suffered

For three weeks every system works. After six months every system breaks. Even Windows 10 and Mac OSX developed various strange bugs (or annoying idiosyncrasies) after few months of my use.

You seem to be doing something strange. The (Linux,Windows,Android) systems under my control (mine+family) seem to be working rather well for years, without any special sauce on my part, or the users'.
I don't do anything beyond installing, uninstalling and upgrading software. I don't tamper with the system itself, don't use any automatic system cleaners, decrapifiers and such.

For example my Windows 10 now got stuck on some system upgrade and periodically informs me about that with fullscreen message box and sound gets stuck for fraction of a second from time to time when I watch movies and games I'm playing get stuck from time to time for few seconds when I'm running them from one SSD but not the other.

My Mac OSX gets stuck on accessing network share and refuses to continue until I restart finder, also prefers WiFi when cable connection is available despite wifi being lower on "set service order".

Haven't run Linux for last few years as a main system but I'd surely find some stuff that stopped working after few months or in some circumstances.

Most of points there make sense for power users only. If you need just basic internet station (no gaming, professional video/audio editing etc) then linux works almost perfectly.
Just by skimming the article:

> Serious bugs which impede normal workflow can take years to be resolved. A lot of crucial hardware (e.g. GPUs, Wi-Fi cards) isn't properly supported.

> Both Linux 4.1.9/4.1.10, which are considered "stable" (moreover this kernel series is also LTS(!)), crash under any network load.

> Under Linux many devices and devices features are still poorly supported or not supported at all. Some hardware (e.g. Broadcom Wi-Fi adapters) cannot be used unless you already have a working Internet connection.

> you are constantly bombarded with changes you don't expect or don't want.

> Another show-stopping problem for LTS distros is that LTS kernels often do not support new hardware.

> Neither Adobe Flash, nor Mozilla Firefox or Google Chrome use video decoding and output acceleration in Linux, thus youtube clips will drain your laptop battery a lot faster than e.g. in Windows. Adobe says they are fed up with video decoding acceleration bugs under Linux and refuse to re-add support for this feature

> Keyboard shortcuts handling for people using local keyboard layouts is broken

> Keyboard handling in X.org is broken by design - when you have a pop up or an open menu, global keyboard shortcuts/keybindings don't (GTK) work (QT).

> Too many things in Linux require manual configuration using text files: (...) USB 3G/LTE modems, (...) to name a few.

Unless you're on a laptop and need the touchpad to work correctly (including gestures, palm rejection, etc.).
Any OS is good for a "basic internet station". Today, a school-age hacker can probably hack together a rudimentary desktop OS for running Chrome and Firefox with no advanced audio/video codecs. But Linux is no school project, in fact as an OS it's almost as mature as Windows in terms of their age. And we all know Linux is quite good, almost unbeatable on the server side.

But for the desktop side, there is no excuse for not having your video, audio and networking sorted and polished to death. Improving your battery life or saving internet traffic while on cellular data is not "professional video/audio", it has become pretty much standard computer experience today.

I've a HP Windows 8.1 machine, added an Intel wireless card with Bluetooth. Bluetooth pretty much disappears after a suspend. And networking can sometimes die and only recover after a reboot. The control panels/diagnostics for both networking and bluetooth are also really sucky (and admin in general on 8.1 is pretty horrible). So don't be under the illusion that Windows is any better.

Bluetooth, how it works, how to use it on Linux is also an Enigma. And that's been patchy on my Thinkpad, but I haven't had that much of a joyous experience using Bluetooth on any device.

In short: 'they' could all try harder.

Well, to be fair Bluetooth itself is incredibly difficult to deal with on all levels, just like any other committee-driven thing out there. It's a mess that I doubt can ever be fixed.

As for WiFi, my experience with Apple devices is mostly positive, or definitely better than on any other platform. So WiFi is quite possible to get right.

As a consumer you still get that sinking feeling of something that doesn't quite work. it's all glitchy.

Has Bluetooth been bettered? I was hoping V4 would iron out wrinks. Wireless applications that are simple to use could be really, really great. That's what I thought the initial promise of Bluetooth was. I have some simple wants, like file exchange, control a media player remotely etc. Send audio output to another device etc.

The last office I worked in, a colleague had a modern Apple laptop, and he had connection issues with the wireless router. It wouldn't connect. Lots of fudging about with it. A fix was falling back to a slower speed to get it to work. There are issues with most hardware and software.

The wireless issues/fixes suggested for my HP are pretty ridiculous, removing drivers, installing in a certain order, barring updates etc. Very technical.

I don't think I've ever owned a machine/OS that hasn't had some problem, including an old Apple.

If only that were true. Everytime I go to flash a fresh install, the next few weeks are invariably spent fixing trivial inconsistencies or plain defects in the UX (looking at you x/k/l-ubuntu) or trying to patch up library xyz only to fall into dependency hell. This goes for Arch, Debian... I'm not complaining about doing these things, mind you, I love tinkering and bricking my install. It's just that somedays you'd like X to behave, your packet manager to understand what you want to do... Without spending the afternoon scouring forums for why the audio jack isn't recognized or the touchscreen [x1.2 y1.5]s your inputs
"Android contains the only Linux component - the kernel"

Well, only the kernel IS actually Linux. A Linux-kernel based *nix OS in itself, which is usually wrongly assumed as Linux, is not in fact Linux (or not quite). In this regard Android is just like a lot of other Linux-kernel based distributions, no mater that it runs on an older/modified kernel.

That's not entirely correct. Linux kernel is Linux kernel; what we call "Linux" usually also includes the GNU userland. And then there are "Linux flavours" that only differ in the way they screw up packaging and updates of the kernel and the userland.
What you call “flavors”, most people call “distributions”. And you are wrong; “Linux” is the name of the kernel.
ChromeOS uses the Linux kernel and works rather well. There is a paragraph dismissing Android as a desktop OS, but ChromeOS (including the Chromebox) is very close to a classic desktop experience, especially if you consider typical consumer use cases.
Based on the number of issues I've had with either OS, Windows 10 is much less ready for desktop than Ubuntu.

In fact, using Windows 8.1 or 10 I can't get 1080p video over HDMI without screen tearing.

With Ubuntu, I can.

I'm not sure it's even "ready for the server".

I have a server without a monitor I'd like to VNC to. Unfortunately X doesn't start without a physical monitor plugged in because it uses it for autodetection. It's such a silly problem that you can even buy fake "monitor" dongles to plug in to trick X into thinking that there is one.

I don't feel like spending money on a software problem so I followed the standard workaround - create a static xorg.conf file. This is very suboptimal because what happens if I later plug in a real monitor?

Ok so now X starts. Sort of. Actually lightdm starts and I still can't get X11vnc to connect to the `:0` display. Apparently there is a workaround involving the MIT magic cookie but at this point I've given up.

In fact does X even support monitor hot-plugging?

Oh and also, if the wifi connection goes down and X isn't running it doesn't automatically reconnect! Wtf? I assume this is because the thing that does the reconnecting is a GUI tool of some sort.

Madness.

All that sounds more like PEBKAC than anything else. I've had multiple VNC servers running on headless machines for longer than I can remember.

Using x11vnc to connect to a VNC server is like SSHing into localhost instead of just opening up a terminal. You're approaching the task the wrong way around.

Wifi not reconnecting sounds like your system has a graphical widget handling the network connections. No X = no graphical programs = no network connections.

In fairness to Linux, you're not actually building a "server" there. A typical server would be running on over ethernet rather than WiFi and on server board with support for remote management (eg IPMI or iLO) which would have mitigated the VNC issues you were having (though anecdotally I've never had any problems running X + VNC on a headless Linux box on the rare occasions I've needed to)

But arguments about VNC aside, the vast majority of the time you don't want nor need a GUI running on a server to begin with. Aside maybe some game servers, any Linux server daemon is command line configurable so you're better off saving your RAM and managing your server via SSH (or better yet, Vagrant / Puppet / equivalent)

In my experience, Linux is actually very good on servers. But by this I mean "proper" servers. Personally I'd still rather run FreeBSD, but many of the same arguments for and against Linux are applicable for FreeBSD as well.

Who says a server can't use wifi? A server is just a computer that primarily provides services to other computers.

And who says I don't want to run a GUI? I don't live in the 70s.

> I have a server without a monitor I'd like to VNC to.

That’s your problem right there. You can’t (or, rather, don’t) “VNC” to Unix servers. For normal remote access, you use SSH. If you really need to run a graphical X program continuously on a server, you run a virtual X server program like “Xvfb”, and point your graphical X program to that. You can then “VNC” all you like to this virtual X server. All without a monitor or even a graphics card or a mouse on the actual server.

This thinking – the idea that a server has something one can refer to as “the” screen, or “the” mouse – is completely and utterly wrong, and betrays a thinking born from Microsoft Windows and other desktop-only-oriented operating systems.

> the idea that a server has something one can refer to as “the” screen, or “the” mouse – is completely and utterly wrong

I don't disagree with your point per se but the reality is a little more nuanced that you suggest. For example, UNIX provided green screens to null terminals long before Windows Server was a thing. And mouse enabled Linux / UNIX terminal tools (eg elinks or aptitude) support mouse input even over SSH.

Though I do appreciate you were referring to "monitors" specifically when you discussed "screens", it's still worth noting that the old thin client model of computing has come back into trend again with Windows desktops available in the cloud (typically aimed at organisations that want a managed deployment of workstations - akin to a hosted Windows Terminal Services).

So it really depends on your workloads and what your definition of "screens" are :)

Microsoft is going to ship a headless version of Windows Server:

https://technet.microsoft.com/en-us/library/mt126167.aspx

I had a play with the headless Windows 2016 TP3 on Azure late last year and blogged my experience here [1]. You can even run GUI programs on it; I found it useful to run Sys Internals Process Explorer to track what was really happening with the Containers. Obviously there's no desktop with file explorer etc.

[1] https://etrading.wordpress.com/2015/10/13/windows-containers...

Microsoft started down the headless server route quite a while back with the Server Core [0] installations (started with server 2008)

IIRC starting with server 2012 or 2012 R2, all configuration and management functionality was exposed via powershell commandlets, as Server Core was the default installation type and server management was meant to be done via winRM/remote powershell sessions.

[0]: https://en.wikipedia.org/wiki/Server_Core

The problem is that all server software written with Windows in mind already assume that their interface is a screen and a mouse, and will try to create a main window, dock icon, and show popups when something happens. How will they work on a headless Windows server?
Not all software will work, but plenty of Windows Server services can be controlled via remote procedure calls. Even Active Directory has supported remote administration via LDAP. These protocols can be wrapped around GUI applications or run via Powershell - either of which would obviously run from your client workstation like PuTTY / xterm would when SSHing into Linux.
Confused: remote desktop makes any server not headless.
So, if I understand you correctly, Windows’ new “headless” servers are not actually headless, they simply have an invisible head – it’s still there, you just can’t see it.
You may not VNC to servers. I would like to. I also use SSH.

This is a clear flaw in Linux/X - don't try to excuse it with the tired old "why would you want to do that?" refrain.

> In fact does X even support monitor hot-plugging?

Yes, it does. It's called XRandR.

Not sure how your desktop system handles it, is there a pretty graphical widget or how you configure it, I don't use a desktop GUI, I set it up with the xrandr command line tool (which is more easily repeatable than a GUI, albeit less discoverable).

> I assume this is because the thing that does the reconnecting is a GUI tool of some sort.

You're probably using network-manager, which is a graphical widget in Gnome (KDE has something similar). There are other methods of setting up Wifi (I use wifi-menu on Arch Linux).

dang, the title is editorialized (and in bad taste).

It was discussed a few days ago with a lots of comments: https://news.ycombinator.com/item?id=10812214

I've been running Linux Mint on my private desktop exclusively for 3 years, and Ubuntu for one year on my laptop (HP EliteBook 8530p). I use Windows 7 at work. The only thing I miss from Linux is MS Excel.
Chromebooks don't count?
Its a great dev desktop.