Linux Problems on the Desktop (2018)
itvision.altervista.org
itvision.altervista.org
These days, as many others have pointed out, choose the right hardware and everything just works.
At my company, we are currently in the middle of upgrading aging Windows 10 desktops in the Customer Service department to Ubuntu LTS. So far the feedback is universally positive from the CS agents. Ubuntu runs faster on the existing hardware and that's about all they notice. Chrome is still chrome and that's what they use for all the CS apps, including voip calling.
I use linux myself, but when people I know try it out, they immediately leave after encountering problems with audio, dpi scaling, etc
But here’s the thing. Linux has won. Desktop is a dying market. Linux is literally the most used operating system on phone and in the data center, which is where it counts.
The DE has gotten much better transitively from all the work that’s gone into those other use cases. But we still have a gamer market that is incredibly proprietary holding up the middle finger to those of us who think proprietary drivers and codecs are evil relics of a less open world.
If you really want to see Linux on the DE, boycott NVIDIA, or write them a letter.
Actually, tablets are a dying market.[1] Laptops are a declining market. Fewer desktops are being sold, but they're lasting longer because there's no reason to replace them.
[1] https://www.statista.com/statistics/272595/global-shipments-...
What makes this such a victory? The fact that Android uses a Linux kernel is totally meaningless to the overwhelming majority of Android users. The bootloaders on their phones are almost always locked down and even if that weren't the case, if their kernels were swapped out with something BSD derived how many people would actually notice?
What is the objective with promoting Linux? Adoption for the sake of adoption? Getting the Linux kernel onto the largest number of CPUs, just to make that number go higher and higher? Is pursuit of some number the real goal, or is the goal actually something to do with user empowerment and liberation/freedom? A billion tivoized smartphones with linux kernels certainly optimizes for that number of CPUs, but from a user liberation/freedom standpoint Linux/Android is virtually moot.
That Android gives the user more freedom than iOS is completely incidental to what kernel it uses. Android could be a platform open to third party app stores and sideloading that ran on a BSD kernel or even something completely different. To the average Android user, their Android phone is actually less open than Microsoft Windows, which also allows third party 'app stores' (e.g. Steam) and 'sideloading' (so normalized on Windows that it doesn't even use a special term like that.) Whether a system will be open to third party developers without any gatekeeper is a matter of company politics, not something that's emergent from what kernel is chosen.
So yeah, pop open the champagne. Linux won and I'm going to need a lot of champagne to enjoy this hollow victory.
It "counts" for whom? It sure doesn't count for me as an end user who wants to run some bloody programs on my laptop.
Also whether it's Linux or anything else on the phone it's totally irrelevant to the end users. The actual layers the users see are the Google stuff and the Google Java etc APIs. By porting these they could -- and will -- move Android to Fuchsia tomorrow and nobody will even notice.
When we wanted Linux to "win" in the 90s it was the whole desktop Linux (or, if that was there at the time, a mobile phone Linux), complete with desktop environment, userland, etc.
Not as a backend that might or might not be Linux for all the user's care.
I was watching a video on youtube (can't find it now) about gaming on Linux, and it suggested to update the PPA and install the latest drivers. (this was after I refreshed my desktop to be Ubuntu Budgie)
So I did that, installed latest NVidia Drivers. Tried out some steam games, and went to bed. Next day I couldn't boot into the desktop, got stuck in a loop, couldn't remove the drivers and get into desktop at all. It completely bunged my computer. Apparently alot of people had similar issues.
So what happens if/when Google switches to Fuchsia on their phones?
Android might run on Linux kernel, but that is a minor detail to userspace, and might be on the roadmap to be replaced by Zirkon.
So no, it wasn't won anything besides server room.
Since phones are completly locked down, and Linux is the symbol of freedom by software, I'm not sure of that.
Besides, companies still needs desktops (or laptops) to work. Nobody is going to do accounting on Android or iOS. And I'm certainly not going to dev on something else than Ubuntu.
Do you have any stats on this? As far as I know Windows and Linux are very competitive on the server and depending on the analysis Windows comes ahead.
I have a Dell XPS15, specifically chosen because the XPS line is supposed to work well with Linux. Numerous problems, all related to drivers. But the main problem is that every time Windows updates it wipes out GRUB.
I figured that my problem is that every laptop I've bought has been designed for a non-Linux OS. So I've ordered a Purism laptop, which should arrive any day now. Hopefully actually buying a laptop designed and built to run Linux will provide a better experience.
It really does feel like a OSX level premium feel. The only bit I am missing is fractional dpi scaling which is apparently on the way but turning on big text in accessibility mode works well enough for now.
From my experience, this issue is from trying to use an MBR on Linux while Windows uses an EFI. I've never seen Windows mess with another EFI on the ESP. This issue is made worse by programs like unetbootin being terrible at using EFI.
The only think that doesn't 100% is the fingerprint reader, apparently you need to setup your fingerprint on Windows first.
I am swearing much less now I don't use Windows so much (even though Windows was in a VM).
If your problem is dual-booting Windows, then why would you dual boot? For games, get a gamer PC. For work, use a VM.
It seems a little harsh to blame Linux for Windows killing your boot ;-)
From the moment I bought a Dell Developer Edition that was built specifically for compatibility, the experience had been fantastic.
IMHO, Ubuntu is particularly bad about this. All I can say is what I use everyday with no problems.
So, no. It does not have "the best" hardware support and no distro has "by far" more hardware support than all other distros.
Disagree. At least traditionally package choice and configuration by distro maintainers made a huge difference, as proven by the fact that problems could be solved by just fixing a config file or adding a package from the standard repo.
The issue isn't even remotely just poor hardware support.
I think many of the points raised in the article affect people making desktop software for Linux rather than end-users of desktop Linux. It seems like a global list of issues for the entire desktop Linux ecosystem - which is totally valid but I think a more accurate title of the article might be "Why developing desktop software on Linux sucks" or "Why creating a desktop Linux distribution sucks" because I think my desktop Linux setup rocks!
Some features I'd like:
- Being able to open the context menu for the current folder, even if there are enough files to fill the view, without going up a level - Being able to jump to files/folders in the current directory by name without opening search results - Being able to add functionality to the context menu
You can, the windows context menu key/Shift-f10 work. If you have something selected, deselect it with Ctrl-Space before.
Some items in the context menu have shortcuts of their own (new folder: Ctrl+Shift+N, file/folder properties: Alt+Enter or Ctrl+I, rename: F2, etc).
> Being able to jump to files/folders in the current directory by name without opening search results
Not a solution, but a workaround: disable recursive search, and treat search as filtered down list. (I consider this one annoying too).
> Being able to add functionality to the context menu
Extensions can add menu items into context menu; for example, syncthing-gtk does exactly that.
At the kernel level and close to it, the areas that consistently give trouble are video/GPU support and audio support. GPUs are hard, but there's no excuse for the mess in audio persisting for a decade. Video/GPU support is tough, but the current situation, where you have a choice of five different NVidia drivers for the same board, all with different bugs, is not good.
As the author points out, regression failures are a big problem. The sheer bloat of Linux has made it unmaintainable. And who wants that job? Big chunks of important code are abandonware.
That's not right. We all know support for some hardware is spotty and we all have learned to avoid that. My laptops tend to use Intel GPUs, for instance, because I want to work on them, not fix them.
I'm eyeing that new Lenovo thingie with an epaper keyboard, but I know it'll run Windows and probably never be upgraded because nobody will write the drivers to keep that thing alive past Windows 12.
> you have a choice of five different NVidia drivers for the same board, all with different bugs
Stop buying NVidia hardware. They actively sabotage Linux development. AMD is much better in that regard. Buy AMD instead (https://www.phoronix.com/scan.php?page=news_item&px=AMD-Hiri...).
> The sheer bloat of Linux has made it unmaintainable.
Nope. It's still moving forward and it's still quite reliable. All my workloads run on it (except my pets that run on FreeBSD and OpenIndiana because I get a kick out of managing different OSs).
> Big chunks of important code are abandonware.
There is a process to move obsolete codebases out of the kernel. That's why you can't use one of those half-IDE CD-ROMs that came with "multimedia kits" of the early 90's.
That's the denial there.
I'm a Linux guy. I post this from a linux distrib.
But realistically, we do have a huge amount of technical debt, and less and less incentive to work on them.
Case in point: every time we touch something to improve it, we break things for one year or two. Pulse audio ? Took 4 years to be stable. Systemd ? 3 years at least. Network manager crashed for 6 good years, and still can't work decently with sleep mode.
We manage to provide features because the linux kernel devs are incredibly competent. They also limited the bloat to a manageable stack on their side. But around that it's the far west.
Though non-intel graphics are still shit on it afaik.
Honestly, it seems to me like what you're complaining about is the nature of FLOSS development i.e. we do it in the open and collect feedback from users rather than spending billions we don't have on focus groups.
Also, I remember early PA days and it certainly did not take 4 years to be usable, but it did took Ubuntu about that time to get it right. That's however a problem of holding Ubuntu as the Linux disto, which is honestly a whole separate rant I could get into.
As for systemd and 3 years, I am honestly not sure what you're talking about. I've been on it since 2012 and it has been mostly smooth sailing since the beginning.
Sadly if you work with Deep Learning buying AMD is a surefire way to make most of the work published by others unusable without serious effort.
I made that mistake... https://bugzilla.redhat.com/show_bug.cgi?id=1562530
If people want linux on the desktop to offer a more polished experience the only way about it is for everyone to put their money where their mouth is.
If "Linux" were a company we would be justified in demanding a fully finished product before buying but free software is a resource that already benefits billions even if they only interact with it via android, or web services.
"As the author points out, regression failures are a big problem. The sheer bloat of Linux has made it unmaintainable. And who wants that job? Big chunks of important code are abandonware."
This seems to be unsupported supposition that we are supposed to take as received wisdom.
Lack of hardware support happens mostly on the other end of the spectrum, with very high-end graphics cards no kernel developer has ever seen from up close and multi-card setups that are essentially unique. I feel sorry for the people who need that but unless hardware manufacturers start to properly document their stuff, make it available to Linux kernel developers and START PAYING MONEY to have drivers developed (like vendors do with Windows) it'll not improve.
You mean people with economical pressure to be profitable ?
As a Linux user, I know I represent a fraction of the market. I'm grateful when people invest in us, because I know it's a great move in principle, but it's not always one money-wise.
Building hardware is HARD. Selling is HARD.
Being dismissive to the people not being able to provide linux support is not going to win them to our cause.
Selling more hardware is usually good for a hardware manufacturer. So is having fewer people returning their equipment because it doesn't work.
> not being able to provide linux support
Most kernel developers would be ecstatic just with proper documentation of the hardware being sold.
It all depends of the ROI. In hardware the economy at scale is at play, and it doesn't go well with niches.
> Most kernel developers would be ecstatic just with proper documentation of the hardware being sold.
I agree. That's mostly a matter of culture. Many companies won't publish docs, because they are either afraid of competition, pirating, or looking stupid.
If people so desire a 'unified experience', you have Windows/macOS. I came to Linux as a refugee from these and am tired of the attempts to pull it in the same direction. Not everything has to be the same, in fact that's a terrible world to live in.
I am also tired of people saying things on Linux are "broken", they aren't any more broken than on macOS/Windows. Granted, you may have to get compatible hardware, which is only fair considering that's what you're doing when purchasing a Win/macOS machine and yet on Linux there's somehow this grand expectation that any random cram HW should just work. You don't expect anything not designed with macOS in mind to work there, so why Linux?
I use macOS at work and experience not so rare kernel panics. There was also just a bug in Premiere blowing up speakers on the MBP, being allowed to log in without a password, APFS logging encryption password in plain text etc. Yet somehow no-one is as strict on that as insisting on Linux somehow 'not working' even as am sitting here being productive on it for over a decade.
Just look at Windows land, where they do have one implementation to rule them all, more or less (Windows 10). Everyone who dislikes its telemetry or almost touch-only interface is either stuck with Windows 7, which won't be an option for much longer, or is stuck venting against Microsoft and grumpily installing hacks like ClassicShell to make things a little more bearable.
When Gnome 3 came up, everyone who liked the new direction kept using it, everyone else moved to Cinnamon or Mate (or XFCE, KDE...)
It's not just about competition, it's about being able to pursue different visions and different objectives.
Users only see this in terms of choice, but there's a great deal of value about it for developers as well.
... is this true? As a long time desktop Linux end user, whatever these lower level issues are, they've not been visible to me in at least a decade.
I use Linux in a VM for very hobbyist level embedded development (think Arduino and the like). Driver problems are non-existent, all of the technical problems are non-issues in this environment. The problems that I see are all to do with the lack of a common set of services for building a GUI application.
Why do my text editor and Arduino IDE use different file pickers? It's because my text editor uses the KDE API, but the Arduino IDE uses something else. GIMP uses yet a different file picker from the other two. LibreOffice uses yet another file picker, that's similar to Kate's but slightly different. I'm sure that installing Atom and VS Code would introduce me to two more file pickers.
The reason for this is that each of these programs uses a different GUI toolkit and, as a result, has a different concept of what a file picker needs to look like. Some of them don't even agree on which order the Open and Cancel buttons should be.
Network transparency is another thing that suffers from this. On Windows, you can basically use a UNC path (\\server\share\path\to\file.txt) almost anywhere because the entire system from the file picker all the way down to the file APIs knows about UNC paths. In Linux, KDE apps do this one way, GNOME apps do it a different way, and command line tools need you to somehow mount the target server before you can even think about it. I last seriously used Windows about 14 years ago and I still miss this greatly.
None of these are insurmountable problems, but it needs someone to make a decision about the one true way to do things.
Things don't really work this way in free and open source development. There is no one person to make decisions, consensus is reached when the quality of something raises "above the bar" and actually improves things for all involved parties. If someone wants there to be an über-library that serves everyone's use case then it's up to them to go and do the work to build that.
And it has been getting better in this regard. For example KDE and GNOME used to have their own IPC, multimedia & audio mixing backends, but now both have converged on DBus, GStreamer and PulseAudio, in part because these were intentionally built to be flexible low-level solutions. I'm sure there are more examples of this too but those are the first that come to mind.
With the assumption that the goal is for "vi //server/share/file.txt" to work the same as "notepad.exe \\server\share\file.txt" does on Windows, here are my thoughts.
First off, notepad.exe doesn't really care about the fact that it's a UNC path. It just opens the file with CreateFile (either CreateFileW or CreateFileA).
There would need to be replacements for the libc file functions. These could be a shim in front of libc, or baked right into libc. Note, there's a LOT more needed than "just" new file functions - any functions that do anything with paths need to be looked at. Shells would likely need some changes to work properly, though it's not like the Windows shell can truly do much with UNC paths - copying files to/from works, but you can't cd into them.
How does it ask for credentials? If it's via DBus, a desktop environment provide the authentication prompts, but what about a pure-commandline system? Maybe the transport is just SSH and relies on the existing public key authentication? But what if you're just doing a one-off thing and don't want to set that up? Using SSH is probably a decent idea since it's got authentication, security, and a file transfer protocol, already built in.
On top of all of this, when you open //server/share/file.txt for writing, what does that actually mean? Is there a file descriptor? How does that work with the kernel? Does libc now manage all file descriptors with only a subset corresponding to kernel file descriptors? Could a pure user-space solution fake this well enough to actually work? Would this need to be a FUSE filesystem along with some daemon to automatically unmount the remote servers when the mount is no longer needed? Would it be something like the automounter, just a lot better? Does a kernel need changes for any of this to work?
This is one of those things that touches so many layers and potentially interacts with so many parts of the system, potentially all the way down to the kernel.
My guess, and I don't actually think this will happen, is that Apple will do something like this on Mac OS X and have a reasonable mapping to the BSD world underneath, then someone in the Linux community will come along and do something similar in a way that's better suited for Linux. As a parallel, Apple came out with launchd in 2005 to replace init scripts, systemd made an appearance in 2010 - both do very similar jobs, with launchd tailored to the needs of MacOS and systemd tailored to the needs of Linux. Maybe something similar could happen with UNC-like file sharing.
For the more complicated stuff it can be done but not everything is available via a simple GUI. GNOME and KDE have their own virtual filesystem layers in userspace, GVfs and KIO, I don't know what KIO does but GVfs supports a bunch of network backends and has a FUSE driver that can mount its own virtual filesystems and expose them to outside applications. So the features are there but I don't think they are well-presented right now, maybe someone can prove me wrong though.
It would have been nice if the kernel had better support for fine-grained control over filesystems like HURD or Plan 9 do. But instead it was decided that it was better to handle those things with userspace daemons, so that's where we are now.
Being able to mount a CIFS filesystem is fine, but it's not the same thing. In Windows, you can basically use a UNC path anywhere because CreateFile knows how to deal with it. The point is that you don't need to mount the remote filesystem (the Windows-equivalent being mapping a network drive).
What I'm really looking for is the user experience, not the underlying protocol. On Windows, I can just go "notepad.exe \\server\share\file.txt" and edit the file, on Linux I need to either use a KDE application or go through the ceremony of mounting the remote filesystem. It's the fact that the feature is silo'd into GNOME and KDE (and the fact that it doesn't even exist on Mac OS, but that's another issue) that bugs me.
For the dbus/polkit authentication prompts, I've seen it work on the command line but have no idea how it works. If anyone wants to donate, I'll spend a day and half a bottle of good whiskey and come out with a blog post.
Having just checked, both Atom & VS Code use the GTK/Gnome file picker. LibreOffice is also using the GTK/Gnome file picker.
How about NFS in Linux? It's a lot more transparent than SMB will ever be in Windows. SMB is and will remain a Windows feature.
In Windows, you can basically use a UNC path anywhere because CreateFile knows how to deal with it. The point is that you don't need to mount the remote filesystem (the Windows-equivalent being mapping a network drive).
I just use NFS and autofs. Sure, it's a few seconds more effort to set it up, but it's a once-off cost.
Both KDE and GNOME have user interface guidelines. If Software doesn't follow it, well...
It makes me sad. Years ago programs written for either operating system tended to follow the UI standards pretty well, with the main exception being games. Microsoft started to try new things with Office, so if you wanted to see where the standard was going you just had to look at where Office was.
If your motive is to sell lots of copies to lots of people and make lots of money to it, investing energy into UI refinement makes total sense.
If you just have to scratch an itch, maybe it doesn't.
I’m sure they will both use the same one.
I don’t like Electron because slow and consumes too much RAM, but I have to admit they do have that unified API. It’s quite high-level, and relatively stable because there’s only a single implementation.
I've been using Linux on the desktop for nearly 20 years and I'll have to say it's fantastic, despite the occasional headache, which seems to be at a far less frequency than other major desktop operating systems.
IMO Linux on the desktop is in a remarkably fantastic state. There’s A LOT of really great distros and software that just works. My daily driver is 7 year old Chromebook with xubuntu 18.04, I do java development on this thing!!!
It doesn't work for people who:
- need a locally installed copy of MS Office or other Windows only software
- IT admins that stopped learning a long time ago
- etc
As others point out, for som of us using Windows or Mac is a hassle. They're slow (30% longer compile cycles, don't even get me started on git), missing important customizability,m no built in universal package management etc.
Funnily enough the main reason is probably that compiling the Linux kernel is one of the most filesystem taxing workloads and also one of those kernel developers care most about.
And for me, I find I have way more trouble doing things on Windows/Mac than Linux. I think it's really more a way of thinking about how a "desktop OS" is supposed to work. People coming from Windows expect things to work the same, and that's just not the case.
Likewise, when I unluckily find myself on some closed-source box, _very little works how I expect_. And man is troubleshooting harder, because there are so many "surprises."
My point is, I think blaming the operating system is not the answer - users need to adjust their expectations and open their mind a little.
This is a somewhat poor analogy, but it's sort of like a Chinese citizen (closed-source user) becoming a citizen of a democracy (open-source user). The government is going to work differently, and you can't claim democracy is broken just because it's so different from authoritarianism.
I like that analogy (even though I am still looking for that pure democracy/open source government). In Linux you have the freedom to do allmost anything with the system, but you have to know what you are doing, as the system usually does not stop you, when you are about to do anything stupid. Windows makes me mad, when it tries to manage me. Like "Yes I really want to use this computer without firewall or antivirus, because it is not connected to the internet and never will be because it serves another purpurse." To do this you need to mess with obscure registry settings, the default behavior of windows is enforcing it and nowdays also updates, because most users don't know or care what they are doing and are used to be told what to do.
So I believe it is good that I can do anything with my system, but everybody started as a newb once so a more beginnerfriendly version could be helpful.
But Linux main problem is hardware support, and fixing broken audio/graphic/wifi driver is something which can drive away very experienced people. (it drove me to ChromeOS for my laptop)
I definitely do agree that "onboarding" could be improved. How I dunno. To me at least, it seems like I hear a lot of success stories from the tails of the spectrum - power users and developers on one side / the complete opposite on the other. And then for everybody in the middle, there's no other way to put it than it's almost a shit show:
On the software side there a million and a half different ways to do everything, and often an insane amount of "noise"/outdated info that needs filtering through to find what's relevant to your specific needs. Even at the lowest levels of the stack there is no "the one way", and I think all that uncertainty (especially from the beginner perspective) can make it feel like climbing a mountain.
Hardware, as you mention, is tricky if you don't know what to look for (and why would most people). At least from a longtime Linux user's perspective, it's incredible how much better things have gotten (since the 2.2 days in my case). But there's a ways yet to go, and it's by far the roughest where it's the most visible (ie the trendy bleeding edge). Part of that is just the nature of "lag" in open source development between code getting written, released, and finally showing up in your distro. That cycle can sometimes take 6 or 8 months, especially for hardware :(
Not that this helps users with existing hardware, but
* definitely always google before you buy (model name + "linux" and read the first page or two of results)
* stick with a non-high-DPI resolution screen
* WiFi, I've had the best luck with Qualcomm/Atheros, Intel, and Realtek (in that order)
* Graphics, get AMD. NVidia cards can work well enough with their proprietary driver, but the out-of-the-box experience is crap. Intel works great too, as long as you don't need it for anything heavy.
* Audio, for me the last time I had trouble was with one of the earlier Sound Blaster Audigy cards. Have stuck with onboard codecs since and honestly never had a problem.
The only thing that ever crashes is the web browser. I keep my computers no less than five years and they run just as fast as new, usually physically failing rather than becoming computationally incapable due to anti-virus and bloat slowing a system down.
The main thing a non-tech savvy user needs to worry about when considering Linux is to generally understand that hardware support lags a bit. So they should do a few web searches on the make/model of hardware they want to use + 'Linux support' before they dive in. If they don't see page after page of glowing success stories, they have their answer and should steer clear of that configuration for the time being. If they do see lots of success stories, read a few of them to see if their eyes glaze over at what is written or if it seems pretty straight-forward and they can follow what's being said. No tech savvy required.
Many, many years ago a decision regarding Window's software management was made and ever since it means that updates take sodding ages and sometimes require multiple reboots and are generally unpleasant. One day that will be fixed - it is not normal.
If you want someone to select the hardware for linux compatibility consider buying hardware that comes with linux.
So, the crap that sucked in 1998 is the same stuff that sucks today. Inconsistent clipboards, graphic driver/X11 support, multi monitor support and debugging/positioning issues, poorly documented or improperly configured out of the box network management tools, firewall, etc. tools. Boot loader failures, and (more significantly recovery). Inconsistencies between Qt, Gnome, Kde apps, graphic sub system freezes. Pulse or whatever sound system of the month suddenly failing one day. DVD playback, MDADM failures, Drive partitioning and resizing difficulties, File system corruption (is it disk based sure but windows is less prone to it on the older file system types, ZFS, XFS, etc. are nicer).
If you want to compile an application, run a server, etc. nix beats out windows any day. If you want to be able to install this great new linux thing you heard about on your existing computer, surf the web, manage your photo collection, hook up your scanner to copy in those old pictures of your kids, setup your Nvidia card and play some games on Steam, find and install the latest or a specific version of an app with out hitting the command line and typing things out like madison, then Linux is not the desktop for you.
edit and don't get me started on high end xeon and intel chip support/speed step handling, or version upgrades running successfully.
This could be a long rant, so I'll keep it short... but someday I'm just going to rip the concept of users out of Linux and see what it looks like. Oh no, you say, malware will get you! Unlikely. Malware running as my user can fuck over my life just as easily as malware running as root. So why even pretend that that's a good isolation model? It doesn't prevent any attacks.
(As for how Linux in 2019 is doing... I recently switched back to Ubuntu for a desktop. Whenever I lock the screen and have DPMS enabled, it forgets that I have two monitors and that I want 200% DPI scaling when it wakes back up. What? Back in my day you had to hard-code the resolution and monitor configuration in the X11R6 config and there was no way to change it without restarting the X server. May I please have those days back? At least once it started working, it kept working.)
Mobile OSs got this right: on a personal device, the permissions model should be applied to the applications.
True for home users; not necessarily true for corporate users-- where computers are IT-managed (i.e. "don't let end users fuck them up") and may be shared (which is highly situational-- the degree to which computers are shared varies highly from company to company, or even deployment to deployment).
Heck, it's not even unheard of to end up with multiple "simultaneous" users on a single-seat desktop machine-- every major OS these days supports some form of fast user switching, which will leave one user's programs running while another user's physically sitting at the machine.
We managed to share home desktop computers in the 90s without significant problems, even though the OSs we used didn't support multiple user accounts at all. And there's no reason you need user accounts to accomplish what you're describing. You can still have profiles (preferences, application configs, etc), and you can encrypt them with a passphrase if you have any reason not to trust others using the same device.
> Heck, it's not even unheard of to end up with multiple "simultaneous" users on a single-seat desktop machine
A vanishingly small use case inside an already vanishingly small use case.
I believe there is now an option (or maybe it's the default) in Windows to run IE under a hypervisor, to totally isolate it from the local machine. This is moving in the direction of providing something useful.
Though to be fair protecting the OS doesn't make much sense to me. I guess it's nice to guarantee that your computer will boot no matter what you do to it, but again, that is not the problem people are actually facing.
The corporate threat model involves things like protecting people from getting an email that says "click this OAuth button to give this malware access to your email". None of the critical software is running on a user's workstation, so whatever is going on there doesn't matter.
I cannot agree. If I want to run another browser instance, I cannot do that on a mobile system. Maybe it would possible to do with some support from browser's developers but with multiuser system I need no support from developers, I can create new user and run another browser that would believe that it is the only browser instance running.
It is not just browsers. I can easily experiment with program configs, for example. Something doesn't work, I want to check is it due to some application configs or it's installed plugins. All I need is to create one more user and to start program instance from that user.
Android relies on SELinux, and SELinux allows much more than old user system, but SELinux is much bigger headache when you are trying to use it in a way that was not supposed by Google. So in reality SELinux on Android allow me to do nothing, I even cannot run app that requires access to a contact list without allowing it to access a contact list. It would be nice to create one more user on Android with empty contact list and to run this program from that user. Moreover I'd like to create user with faked contact list, faked browser history, with faked all the private information, and to run most of the apps from that user.
> "We managed to share home desktop computers in the 90s without significant problems, even though the OSs we used didn't support multiple user accounts at all."
That's not true. Window 9x series had user accounts (with no security between them.) This was beneficial to users because computers were expensive (and still are to most people..) so personal computers very often weren't personal. Having separate accounts, even without security, allowed individual users to configure the system to their personal preference and helped with file organization.
Your hypothesis that XP somehow forced the concept of separate accounts on regular home users because NT was used on servers is just bizarre. People who wanted separate accounts were doing it on 98, and people who didn't simply ignored it and all shared one account. The UX for different family members sharing a single computer by signing into it existed before the NT kernel was in use around the home. The implementation changed when Windows went to NT, but the UX did not. And given that the UX of separate accounts was already appreciated by users, the more robust implementation made possible by NT was a no brainer.
>Mobile OSs got this right: on a personal device,
When it comes to a PC, "personal" is a misnomer. Failure to understand that is the root of your confusion. You are presumably at a place in life where your computer is your computer, not shared with others, like your cell phone. But when it comes to PCs, that perspective is a privileged one. It's evidently not important to you that numerous people be able to use your computer, but it is important to others. The UX of the device that lives in your pocket needs to be different from the UX of a device that sits in the middle of your living room for the whole family to use, like a television.
Huh? Those 134 vulnerabilities were found because people can see the code. If it were closed source, they would probably still be there today.
Linux is administered by ssh therefore administrators don't know how to check so therefore they don't bother to update systems because "they're afraid that something will break." C'mon.
But could designing good desktops need more than just good code?
Good kernels successfully run code. Good desktops successfully help users. I guess different goals require different designs?
Edit: to clarify, I didn't mean desktops don't require well designed software. Just had in mind that a desktop also have to take human psychology and human limitations into account.
Linux is powering servers and high performance computing because it is good at these things: mostly static hardware configuration, set up once during system installation high performance, modularity and the ability to inspect a deeply running system of you are an expert. It ticks all the boxes for these specidic environments.
On the desktop, not so much. For example, the concept of device files is hindering use cases that should "just work". When I plug in USB headphones, a new audio device is created. Fine. But I need to enter the device file name or ALSA device string onto half a dozen programs to use it. All I would want is to have the audio rerouted automatically. Pulseaudio was touted as the solution to that problem, but ar what cost? We're now literally stacking audio systems on top of audio systems and sacrifice to arcane gods to have it work.
When I plug in a USB drive, I now have to look up its device file name in order to mount it manually. The software stack required to automount it from a desktop environment is atrociously complex, because it requires root privileges to mount a device not listed in /etc/fstab with a user flag. And because any number of drives can be connected in any possible order, no entries in fstab can be made.
This clash of UNIX-like concepts and modern user expectations is what is holding Linux back. The underpinnings are not bad. They were just designed for a different task.
So, yes, you can build a user friendly OS. Yes, it can have a clean design. But it won't be called Linux anymore.
It did not stop OSX from achieving exactly what you're talking about, and if you look closely, its core is very explicit about its Unix underpinnings.
In my opinion it's not a "Unix" problem, but a bazaar/scale problem. In the bazaar world, ideally multiple competing solutions would pop up, ideas would be merged and which one or a few would end up top. The problem is that to implement even a single a good desktop system - and I mean top to bottom, not just a DE - would require a staggering amount of resources under a single unified goal and vision. The Linux desktop market is simply not big enough to support even one, never mind multiple competing systems. In the server space, Linux is absolutely massive, and doesn't have this problem.
I disagree with the phrasing. I'd say that good desktops enable users. One of my big peeves about Linux Desktop culture is that they see users as beneath them. They want to "help" users by wrapping them in straight jackets to keep them from hurting themselves and shining a laser pointer on the wall to entertain them. Have a problem with the Linux Desktop? Well, "normal users" don't do whatever it is you're trying to do, and you're not a C graybeard or you'd fix it yourself, so you don't exist according to their model of the universe.
A good desktop needs to run code successful, otherwise every small bug can make a big annoying glitch.
I guess it is more a question of optimizing.
The hardcore linux user uses the terminal and a text editor mainly and kind of despise GUIs. Linux seems to be optimized for them as they are the most active ones using it. And this use case works perfectly.
GUIs are mostly a thing that was added because of the "newbs" but does not get used so much by the core - so they suck as the core group are the ones who know how to fix things. This was the situation when I started to explore the linux world and some things changed, but not much.
But Linux main problems are hardware issues, which is partly because of linux enforced OpenSource nature which wants drivers to be opensource and included in the kernel. And traditional industry does not like that approach. And given the small marketshare of linux desktop ... they don't really have to.
Like if you want to install a new software, you usually don’t get .exe or .dmg. If you are lucky, the developer or some fans took the time to package it. Then you can do ‘apt-get’ ‘yum’ or ‘pacman’. However, packages got stalled and sometimes don’t match the original author intent. You can also build from sources, but it takes time and you have to know a bit of CLI. It never felt true freedom to me. But more like whatever the community feels make sense for whatever distribution weird dictactorship. Just a feeling and I still love and support Linux.
I can understand trying to resolve dependencies can be a royal pain, espescially trying to find the distro's specific naming conventions, like libpq-dev vs postgresql-libs
As far as solutions goes, this problem is solved. They just need to be better known by software distributors.
AppImage can do that too, since it is a lot less over-engineered, but sadly very few developers use AppImage and it even distributions like Nitriux that claim to support AppImages don't display icons for them. Could be trivially solved with a standard for embedding icons in ELF, but the unix world hates the very concept of a program that isn't spread all over the file hierarchy and isn't full of hard-coded paths so it'll never happen.
But, it works, especially for the use case of the "I need the latest and greatest versions of two packages".
> AppImage can do that too, since it is a lot less over-engineered, but sadly very few developers use AppImage and it even distributions like Nitriux that claim to support AppImages don't display icons for them.
So, use one of the other 20 distros where AppImages just work, perfectly, out-the-box.
The OS should give you only some essential end user applications (a bare-bones text editor, a terminal, a browser) and then the user should get their specific use applications (DAW, 3D modelling software, game engine, etc) from the application developer, not the OS maker.
It's just less convenient.
I think you just haven't used it enough to understand the advantages. If you don't need the lastest-and-greatest released last week versions, the package system is much more efficient that individually downloading hundreds of packages.
While Mac OS X has homebrew, it is still deficient in my opinion compared to most distros (because casks don't get upgraded by default).
> Like if you want to install a new software, you usually don’t get .exe or .dmg.
Why would I want either? Both have lots of issues. For example, by default: * No auto-update * Duplication of libraries and other files I already have * Spotty updates (e.g. who can be sure whether all libraries used have been patched by the latest version you have)?
> If you are lucky, the developer or some fans took the time to package it.
This is the case for > 99% of the software I use, even obscure stuff. For the other < 1%, I package it for the distro I use, and submit it so it is available by default in future releases.
These days, many popular packages also provide .appimage files (similar to .app files on Mac OS X) or publish Flatpak's (including Slack, Spotify, VS Code, Skype etc. etc.), and these can be used on any recent distro.
> Then you can do ‘apt-get’ ‘yum’ or ‘pacman’. However, packages got stalled and sometimes don’t match the original author intent.
Sometimes the original author doesn't know best ... in most cases packagers upstream their changes or discuss them with upstream.
> You can also build from sources, but it takes time and you have to know a bit of CLI. It never felt true freedom to me. But more like whatever the community feels make sense for whatever distribution weird dictactorship. Just a feeling and I still love and support Linux.
It seems like you never exercised your ability to vote, and think that everyone else is dictating to you ...
If I wanted to not get any work done I would be using Windows instead.
However, one strength they all share is: "you usually don't get .exe or .dmg"! Absolutely! Apps are integrated and not simply add-ons as they are in Windows or Apple land. When I want to install say libreoffice or wireshark I simply ask the system to install them. I absolutely do not browse the internet and download something, extract it and run some "installer". When I update my system, all apps and the OS are updated in one go.
My system is curated for me, end to end, to a greater or lesser extent. When I update, all my system is updated - OS, apps and all.
I don't think yours is (whatever it is).
Can you please edit out personal swipes from your comments here? This one would be fine without that first sentence.
c.f. apt-get upgrade or similar, which takes a few seconds.
Ignoring feature enhancements and bug fixes for a moment, do you really think it improbable that there are security issues in a piece of software whose entire job is to sit on the network and record everything that it sees and then translate and interpret it?
Except for when the distro "gods" don't bother updating a package for years, so you always get the "stable" 5-year old version.
Yes, you can install software using tarballs, but it's not usable for 90% of users, and not because of the distribution model, but because of the lack of standardization in a good, easy to use application-installing API.
tarball installs is pretty much close to the state of Windows app installations. You have to find the bloody things, download them each time and hope you have found the right one and not a trojaned one. Each one needs its own update routine and will not be updated when the rest of the system is updated.
The Windows and Apple software distribution model is archaic compared to all Linux/BSD etc distros.
You don't. Yes, but if you don't take advantage of the freedom, that's not freedom's fault.
> Yes, you can install software using tarballs, but it's not usable for 90% of users, and not because of the distribution model, but because of the lack of standardization in a good, easy to use application-installing API.
See Flatpak. Go look at what software is available at https://flathub.org/apps , but both GNOME and KDE have application managers that can install from Flatpak repos (configured to use Flathub by default), and possibly the distro's native package manager as well (via PackageKit).
Or you can also use AppImage files.
I think a lot of this is learned, or conditioned behavior ... there are a great many UNIX packages that could very easily (and very nicely and conveniently) exist as static linked, single file executables.
This is how a lot of software distribution worked in the 90s - for say, some Solaris tool or whatever. Granted, the distribution mechanism (some .edu FTP site somewhere) was totally insecure, but the packaging mechanism was great.
And it doesn't matter. For a large bunch of people Windows has been crap for its whole existence, but it works with X, or is the only thing compatible with Y, or because no one demonstrated anything better. I.e. exactly how the iPhone got such traction (also with the marketing).
Linux is [i]just as good[/i] as Windows and vice-versa, where the use case is compatible...
The ChromeOS "Crostini" project allows you to run a full Debian instance in a container, but with the other benefits of a Chromebook and ChromeOS. Each new release of ChromeOS brings better enhancements to Crostini, e.g. right now backups are manual but a native "one click" backup is coming soon - https://www.aboutchromebooks.com/news/crostini-linux-backup-... . FWIW some of the tools I run are the IntelliJ suite, Atom, postgres, Docker, etc.
IMO Linux on the desktop is awesome, it just happens to be running in a container on ChromeOS.
I took my out of warranty 2017 mob and had no issues getting a repair.
This is a sticking point I just cannot get behind. When you're purchasing a computer running Windows, it is optimized for Windows. When you're purchasing a Mac, it is optimized to run macOS.
So it should logically follow that if you want hardware optimized to run Linux, you should purchase that specifically. Expecting Linux to work flawlessly on any random junk is a feat you're not expecting of any other OS.
Therefore by that logic, for Linux to be good enough on the desktop, it has to ascend to places no other OS does.
Well this battle is lost. There was always the RPM/DEB/PKGBUILD split. But rather than unifying the standards, we now have Flatpak vs Snap split.
It is seriously frustrating that when distros can agree on core infrastructure stuff like systemd-vs-upstart and wayland-vs-mir ... we still have a software distribution split that is more political than technical.
This ultimately hurts linux - because there's never going to be that clear monopoly in the packaging space. Someone or the other is going to say "I can only package for X. All others can go figure it out themselves".
I dont know... maybe APK (android) has won as the predominant linux packaging format ? I'm kind of waiting for ChromeOS as the true Linux distro.
Switching to RPM/DEB/PKGBUILD is not a simple problem, because the problem isn't really which packaging infrastructure is used.
Snap and Flatpak is already incompatible with what came before. They chose to not come to a a middle ground quite deliberately.
Probably because nobody expects much from MacOS anyway?
One relevant part of the Apple world is, that it works within it's narrow world of Hard- and Software. This is how they sell it.
There is much much more Win-certified hardware out there. Much of it isn't used (for Win) anymore and therefore cheap as hell for excample. This is the hardware you'd expect your software to work with. This is where it's worth to invest time in.
Given how most people complaining about Linux hold macOS as the desktop, I'd say OP's complain is extremely valid.
You already figured out, why people enjoy using Macs. It works and I don't need to cycle through three different system compositions before graphics, audio and WiFi work.
But yeah, thanks for the ad. I guess... ;)
What I would love to know is why linux isn't equal or superior to Apple and Msft in power management.
nVidia/ATI had the power to stabilize the Windows desktop too about a decade ago but didn't. (https://www.engadget.com/2008/03/27/nvidia-drivers-responsib...) IIRC, Microsoft had to move to the entirely new WDDM video driver model and its TDR mechanism (https://docs.microsoft.com/en-us/windows-hardware/drivers/di...) to finally put an end to video driver BSODs.
The odds of nVidia getting motivated enough to bring their Linux support up to par with Windows is nil.
Not that that necessarily has anything to do with the differences you're seeing in particular, just worth noting. Wrong browser, 20-30% worse battery life. Wrong site open in some tab in the background, 30-60% worse battery life. The overwhelming majority of what takes my Mac battery life from 8+ hours to 4 or less is Javascript or some heavy Java IDE or something. User software that gives a damn about how much power it uses makes a huge difference, well outside of just "don't run video games on battery power" and other obvious stuff.
> So it's possible, but it will never be without the friction of open source running along side signed proprietary binaries.
AMD are proving otherwise.
> What I would love to know is why linux isn't equal or superior to Apple and Msft in power management.
I think it has now, my old dell laptop now get's a lot more life running ubuntu than it ever did on windows. I get 3-4 hours or more out of it and used to only get a couple under windows.
Like LTS not being suitable is complete nonsense. You can easily add a repo to have up to date GPU drivers and never have to worry about it.
Steam having only indies games misses completely the Proton era.
I could go on and on. It seems like a hit piece from someone who is out to prevent people from considering switching.
It's not without any truths, but there's a clearly demonstrated preference for divisive negativity over communicating facts.
The horror...
Though I wonder why users would be confused since this only really applies to the command line and there were (multiple) other points complaining about users having to use the command line.
user: cd Foo
bash: cd: Foo: No such file or directory
user: wget https://www.microsoft.com/en-us/software-download/windows10/win10.iso && echo "screw you linux!1!"The main issue for me is RDP-like (not VNC-like) remote desktop experience. Without that I'm not even gonna try.
I mean the kind where I check my desktop before I leave for work, resume the session remotely from work (when compiling or whatever), and pick up when I get home. With performance which makes one forget it's a remote session, and bidir clipboard sharing.
So until then, Windows on the desktop it is. I can always run Linux on the NUC or in a VM.
I'll check it out from work tomorrow, but so far it's usable but not exactly great when compared to RDP.
I have one Windows machine and it doesn't have a monitor attached. All of my access to it is via RDP. It's actually incredible how well it works. Resizing the RDP window works as you'd expect, it automatically adapts when I connect from a HiDPI device vs a non-HiDPI device, it's fairly bandwidth-friendly, sharing local folders with the remote machine is easy and works well, etc.
VNC, even Apple's Screen Sharing implementation of it, is an incredibly poor substitute.
Disclaimer: I work for Apple, but nothing related to VNC.
Though I'll confess that I created the rdp file on a Windows machine, all I do is xfreerdp foo.rdp.
So most people do that with ssh+tmux
Uhm, no. Not really. With hacks by the user (or OS) maybe, but if hacks are allowed then most of that list can be deleted.
Edit: http://www.ecsis.net/pub/netuser/ftp.html
tried Rftp, worked with Windows 10. At least 22 years of compatibility.
Where can I download it?
Once you go past that hurdle though (and it is often very easy to do that since almost all of them tend to use InstallShield and there are workarounds for it... or in some cases, you can just copy the files manually :-P) the applications themselves tend to run just fine. For example here is Visual Studio 6 running on my Win10 machine (with a demo from DirectX 7 SDK) [0] - all i had to do was to edit an .ini file to disable the Java VM setup. Similarly here is Borland C++ 5 compiling my C engine [1] - BC5 works just fine (and i actually use it very often since it compiles the code instantly and offers an ok debugger). Outside of compilers, here is Wally [2], a texture editor/painter/manager for Quake, Quake 2 and similar games - the program is from around 1998 but works perfectly fine in Windows 10.
I use and run a lot of old applications for Windows and generally i almost never have issues getting them to work in Windows 10.
One notable exception is games (of which i also have A LOT of older titles) that have a combination of DirectX abuse and memory bugs that in 9x weren't noticed due to looser checking. My go-to solution is to drop dgVoodoo2's dlls in the game folder and run RTSS to limit the framerate at 60fps - this solves 99% of the issues.
Interestingly (but expectedly, considering the issues mentioned in the article) the situation is reversed with Linux. I tried recently to play several older game demos (i have around 30 of them) made for Linux around late 90s, early 2000s. Most of them worked fine (after installing a missing .so or two and an OSS-to-ALSA bridge), with the main exception being Shogo which relied on Gtk1 that i just couldn't figure out how to make work in Debian (which doesn't ship Gtk1 at all).
This last part is what reverses the situation for Linux: older applications relying on older versions of Gtk, Qt, etc just do not work at all and often you can't just grab the older .so files and drop them in, as they have big webs of dependencies that often go outside just libraries (like scripts, data files, etc). Which is also why i really dislike both Qt and Gtk - the former, being a C++ API, cannot guarantee a stable ABI even if they wanted to, while the latter being written in C could provide a stable ABI but the developers just don't care at all about stability.
Ironic that the most stable (API-wise) and backwards compatible desktop tech in Linux is Wine.
[0] https://i.imgur.com/Qz4GoJk.png [1] https://i.imgur.com/M6TXWFu.png [2] https://i.imgur.com/ggX9Ybq.png
Hacking around in the installer is using hacks.. which was my point.
https://www.engadget.com/2019/02/19/linux-gaming-steam-valve...
that's because crossfire has been abandoned for proper mGPU support in the new Vulkan API. which is 100% supported on Linux. this is total FUD
The year of the Linux on desktop is always 10 years from now ;-)
Ps.
I'm a Linux user and I quite like it on a desktop, wouldn't bother on a Laptop anymore, getting things like suspend to RAM or hibernate, bluetooth, wifi to work reliablly is just too much effort.
Not sure what he is speaking about.
$ touch $(printf 'a%.0s' {1..255})
$ touch $(printf 'a%.0s' {1..256})
touch: cannot touch 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa': File name too long
(on ext4 and ZFS anyway)Windows, on the other hand, has problems when the full path to the file (eg. C:\folder\file) is more than 259 UTF-16 code units, but it's getting better at this, and newer Windows apps normally handle longer paths just fine.
Maybe I'm not understanding that limit correctly but it looks like the whole path cannot be longer than 260 characters. I've hit that limit when transferring files from linux to windows.
As you mention, the linux limit is in bytes, so the issue could appear in some character sets, but it still looks like the path limits are a lot more drastic under windows.
example of a function that uses it- https://docs.microsoft.com/en-us/windows/desktop/api/fileapi...
I had updates rendering my computer unbootable by messing up the MBR at least twice.
So far the only thing that really bugs me is that I have to apply fixes in the terminal. Like installing a printer only to find the scanner function was installed but wasn't configured - and the only way to get it to work is read a few forums until you can figure out which of the myriad installed utilities will actually return the info you need to configure the driver, etc. It's often a few, because the first half dozen results are wrong!
Strangely enough, I don't find anything in Linux to rival Notepad++, WinSCP, or AutoHotKey - just the type of thing I was expecting to find new and improved. Those programs just have a better UI, and great functionality, to get things done without going full command line commando or buying into a the resource bloat of full ide. Right now I am using both sublimetext and visual studio code, because they both have things the other lacks. I could just use np++ for everything before. Doubling my ram made that less painful than it would have been otherwise. Obviously a very personal itch, but one I suspect a number of people who are on the cusp of accepting a Linux desktop might have.
But I trust Linux's stability since I have had zero issues in decades of administering my servers, and don't worry about updates the way I do on a less informative OS. Specifically, once you are used to apt, the list of packages that will be installed tells you a lot about what might break or not on your system. And there will always be a way to revert to older libs if necessary, which might not be true on a locked OS.
Notepadqq is notepad++!
OTOH, getting help for windows issues is often more difficult, if you visit windows forums, often the suggestions, solutions talked about are pretty generic, since one can't peek under the hood the amount of diagnostics possible is limited. Even if a problem solved in windows by reinstalling/restoring from backup etc, most often one does not what exactly caused the problem.
I've cross-compiled a Linux system from scratch for PowerPC once and it worked great. It worked up until I needed to recompile glibc because of some bugs threatening system security. Then everything went to hell. My prime interest in Linux and Open Source ceased to exist at this very moment. The dependency system in Linux is a nightmare, because basically there is none that guarantees consistency. How are cross- and circular dependencies even possible? And that's the price for freedom - chaos. It's great that anything works somehow. But there is no future to build upon.
IMHO the monolithic kitchen sink approach of systemd should be applied to wayland. Not the other way around.
And as of right now I have an Acer Swift with an AMD Ryzen/Vega API which is running Ubuntu completely flawlessly. As in, everything works, all the time - WiFi, suspend, function keys, plugging in external monitors, etc...
It could be better, but I can say that about every product I've ever owned (and yes I've had an iPhone, it's the reason I never bought another Apple product ever again).
Gigantic enterprises have functioning systems, but the people that wrote them eventually leave, and the complexity of the systems is such that when they need to be updated, they are just rewritten from the ground up, with the usual mixed bag of new bugs, new features, and missing features from the previous regime.
This just seems what Wayland and system.d are, especially reading the list.
The number of distros is really really counterproductive.
Linux also DESPERATELY needs a massive hardware support information site with graphical matrices, to help guide purchases. This alone might shame hardware providers into sponsoring device drivers.
But realistically the window of Linux desktop adoption passed with Nadella taking over Microsoft and starting to right the ship on Windows, even if it is still utter garbage. There was a solid five years where Windows was being utterly insane and that was the time to strike.
Linux probably should just concentrate the resources of desktop into a near-perfect clone of OSX so they can at least unite forces with the macintosh people in usability / interface familiarity.
If you view the problem as, "I have to enumerate all the [Linux on Desktop] problems, and if I enumerate enough problems and fix all the ones I enumerated in the right order, then I've solved [Linux on Desktop]," then "Main Linux problems on the desktop" is, by virtue of having done exactly that, and not being the first or last iteration of that, part of the problem!
Not that I begrudge Linus Torvalds for saying things sort of like, Linux is evolved, not designed. It just shows that one of the big holes it has is its use on the desktop, and the major Linux designed product (Android) isn't really libre, and that Linus is a brilliant guy but he doesn't have answers to everything nor claims to.
Meanwhile take a look at elementaryOS, which I think has a lot of opinions you'd never find in an evolved or engineering-rational platform (like their own UI programming language). I think if they had the resources of a giant corporation they could make a meaningful impact on the desktop market.
I'd say it's very similar to a debate I heard from head of an architecture school attached to a university better known for its engineering. "When we looked at expanding the campus, decisions were made in terms of parking spaces per square foot, and whichever had the most parking spaces per square foot is where we would build the building." It's not that he's going around arguing his ambitious and less efficient designs are better, just because he's coming in with qualitative or emotional impacts incalculable by an enumerative cost-benefit analysis.
He's just saying enumerating all the considerations, and then solving, is a really reductive way of thinking about things.
We just have to accept that Linux will never be a mainstream desktop environment.
A desktop environment needs a well polished experience. And this experience can only be created by centralized organizations with extensive resources, like developers, QA, designers, ergonomist, user's behavior studies and a common and consistent vision of what the experience should look.
In the Linux DE world, a project can consider itself lucky if it has enough developers.
Yet, these developpers are doing a wonderful job, specially given the lack of resources, with applications that are more than usable and can solve 90% of use cases.
Yes, Linux DEs are sometimes a little clunky, and the overall experience might encounter issues not solvable by the average user. But that's Ok, having a well polished experience would require an order of magnitude more resources, and an organization far more vertical than the existing array of communities.
Diverting so much resources for the DE goal would be a mistake. Even if by some miracle we manage to solve all the issues mentioned, we would be "X but different/better", and this business model doesn't generally do so well, it will not displace Windows/Mac OS.
Linux and the OSS ecosytem should remain what it is today: a powerful and rich toolbox to build things from giant web services or phones to Vacuum cleaners, cars or milking machines, and this toolbox should keep improving.
It doesn't mean we should not look around and see what is happening around us in the DE world, but it should not be the absolute priority. Building a Linux desktop should not jeopardize the use cases that made Linux a success.
Linux is a clunky Desktop Environment, yes, but this clunky environment has enabled me to build software reaching thousands of people.
Thank you to all the devs who have built this (mostly) working experience.
That said it is still not quite at the level I would use it as my main OS. If my laptop stops working when I'm away from my desk I really don't want to have to fix something broken. I need it to just work. And for all the many shortcomings of Windows it has been hammered on and written for a complete idiot to keep it just working a lot easier.
I will keep monitoring the situation of course and the second I feel comfortable enough will make the switch. Until then I'll just keep using a vm.
1) Is (obviously) hardware support. While one or two vendors will produce a small number of Linux-compatible drivers, they don't do QC testing of all their products on Linux, whereas they almost certainly do for Windows or Mac.
Distros, and OSS devs in general, have to support a wide range of software and hardware in every possible configuration. This includes not only individual components on a system, but how they are tied together, and the proprietary extensions (keyboard buttons) that allow the user to operate them. But there's no way any company could possibly test all software with all hardware. Even if they did such insane amounts of testing, they'd need to pay someone to fix all the bugs that would come out of it. No OSS company I'm aware of has the bankroll of an Apple or Microsoft, to say nothing of all the hardware vendors' investments.
Trying to support OSS on proprietary platforms is like trying to become the development and support for every such product in existence, and those products are often black boxes. The only reliable option is to pick a distro, then find hardware which has been explicitly certified for that distro. This is usually a short list, and becomes shorter as you try to find something that fits your needs and budget.
2) Is an even more intractible problem: limitations of the software.
Do I need some software which is platform-dependent? Then I should use that platform. Trying to shoehorn it into Linux is just a recipe for frustration and support calls to your cousin's son Eddie who you heard is really good with this Linux thing.
Then there's the difficulty of operating a system which is only designed to work in a particular way. Want to use some software which doesn't have an official package? Good luck figuring out how to install it. Have some problem on the system? Good luck figuring out what magical combination of "console commands" might make it work again. And don't even bother telling your ISP or work that you use Linux when you call with a support problem, because they'll just tell you to get bent.
Really, it all comes down to money. Nobody is spending the money on Linux to become an officially supported Desktop, because it would be unaffordable. Linux will always be a hobbyist OS as long as nobody supports it.
Anyhow, the article touches a lot of the problem zones and it would be great if companies profiting from Linux would start investing in the desktop.
Regarding security Linux has some advantages, like being open source and not being an attractive target for malware.
I remember there was a Blackhat talk a few years back, detailing the security features of windows. I'd love to see a comparision with Ubuntu or Fedora.
That's the only real problem. Given popularity, everything else would quickly stop being an issue.
Right... on desktops, Windows is far worse with updates as far as breaking things goes. We have to deactivate the internet on Windows 10 machines so the updates don't break everything.
Microsoft do not care about breaking stuff with their updates at all. Ubuntu is the stellar opposite.
> ! X.org architecture is inherently insecure - even if you run a desktop GUI application under a different user in your desktop session, e.g. using sudo and xhost, then that "foreign" application can grab any input events and also make screenshots of the entire screen.
A linux user would say, "So that's not a bug, that's the power of the root user. Don't do that or lock down your root access."
Then this one:
> ! The kernel cannot recover from video, sound and network drivers' crashes (I'm very sorry for drawing a comparison with Windows Vista/7/8 where this feature is implemented and works beautifully in a lot of cases).
To be fair, if you google "Nvidia BSOD" and you'll get something like this from four months ago:
https://www.eteknix.com/nvidia-release-new-2080ti-drivers-st...
And if you think the mac's are awesome, (which the software might be, I don't know) the hardware has some serious issues which has turned me off from buying one.
https://www.youtube.com/results?search_query=louis+rossmann
Also to be fair, it's possible that Dell laptops have similar issues, but Apple hardware failures make a lot of noise in the media.
>A linux user would say, "So that's not a bug, that's the power of the root user. Don't do that or lock down your root access."
It's actually recognized as a huge problem and one of the driving forces behind Wayland.
(!) With "Linux" I mean GNU/Linux distros.
I really, _really_ hate this statement. Android meets the only definition of 'linux' that matters IMO: it runs on a linux kernel. That's linux, full stop.
That said, I do find myself agreeing with most of the points listed there. I just not sure I'd call them 'linux on the desktop' issues per se. They're wayland/xorg issues, deb/rpm/flatpack/snap issues, pulseaudio/alsa issues, gtk/qt issues, etc. None of which are tied to the linux kernel. The fact that all of those technologies can and do run on bsd kernels (er, maybe not alsa).
Android is linux. Chromeos is linux. The issues above are really issues with the free/libre desktop distributions, mostly not linux per se.
....maybe I'm just a pedant on this issue.
Many computer users run a modified version of the GNU system every day, without realizing it. Through a peculiar turn of events, the version of GNU which is widely used today is often called Linux, and many of its users are not aware that it is basically the GNU system, developed by the GNU Project.
There really is a Linux, and these people are using it, but it is just a part of the system they use. Linux is the kernel: the program in the system that allocates the machine's resources to the other programs that you run. The kernel is an essential part of an operating system, but useless by itself; it can only function in the context of a complete operating system. Linux is normally used in combination with the GNU operating system: the whole system is basically GNU with Linux added, or GNU/Linux. All the so-called Linux distributions are really distributions of GNU/Linux!
So what do you think of WSL ? It has all the things of an Ubuntu, but it does not run a Linux kernel.
I think the _real_ edge case that I'm not sure on are the l4 kernels that run linux kernels for drivers.
That's some deep irony.
Their original product lines at any rate. Newer wireless models don't specify.
Aws and Google alone make hundreds of billions on the back of Linux and give back almost nothing.
It’s cool for servers though
Linux is very user friendly, it's just picky about its friends.
P.S. Exclusive home linux user for 3 years and counting.
"Pulseaudio is unsuitable for multiuser mode - yes, many people share their PCs (an untested solution can be found here)."
This would lead one to believe that multiple graphical logins playing sound doesn't work in actuality Pulseaudio runs as a process per user and the observed behavior is the same as switching users on a windows machine. When you switch to a users graphical session that users sound comes out of your speakers. Further this allows it to be configured per user and for it to run without super user privileges. The only thing you can't do is say play music as one user and switch to another users desktop and listen to said tunes while hearing your users applications.
In most cases you actually don't want random apps you can't by design effect or shut up playing over your desktop. So this is the right decision in every possibly way.
"No reliable sound system, no reliable unified software audio mixing (implemented in all modern OSes except Linux), many old or/and proprietary applications still open audio output exclusively causing major user problems and headaches."
The last application that I recall that I had an issue with grabbing the sound device directly was a 15 year old version of Skype. Pulseaudio does all of the above and as it is and has been the standard desktop apps are expected to integrate with it and by and large that has been the case for about a decade now. The fact that somewhere out there old broken non compliant apps exist isn't a compelling argument. All popular platforms have a mixture of crappy and useful apps. People generally deal with this by using their favorite search engine to find good applications for their task.
"What if the user decides to switch from Windows to Linux when he/she already has some hardware? When people purchase a Windows PC do they research anything? No, they rightly assume everything will work out of the box right from the get-go."
They "rightly" expect hardware that the manufacturer doesn't want to support on Linux will be reverse engineered by volunteers because they already invested their money in a manufacturer that only supports windows. When the kind of person that could help you out makes 200k at Google it turns out that 50k of their time is not available to protect your $99 investment in your printer.
If you pay $15 a month for hulu + hbo, 10 a month for spotify, $14 a month for netlfix, $150 for cable in the next 5 years you will pay.
$900 for hulu $600 for spotify $840 for netflix $9000 for cable
If you paid for all 4 you bought a halfway OK used car. Perhaps a fraction of that might buy a more polished experience you don't need to piss and moan about.
Ultimately everyone will eventually upgrade their machine. Almost all hardware that a consumer would encounter or consider could also run windows. If you are considering switching to Linux and your current machine consider making Linux a part of your NEXT purchase. If you don't like it you can easily turn around and put Windows on it or hey put both.
> Most distros don't allow you to easily set up a server with e.g. such a configuration: Samba, SMTP/POP3, Apache HTTP Auth and FTP where all users are virtual. LDAP is a PITA. Authentication against MySQL/any other DB is also a PITA.
Just thinking about it gives me ptsd, I do not want a thousand users or folders on my system, they're a pain to migrate, it's really a PITA to make everything virtual. Please someone give me a nice short guide how to set up dovecot so that it stores all e-mails in postgresql?
> KDE is spiralling out of control (besides, its code quality is beyond horrible - several crucial parts of the KDE SC, like KMail/akonadi, are barely functional): people refuse to maintain literally hundreds of KDE packages.
KMail has had so many bugs for me, I should report but man, it's such a pain in the ass. Such ridiculous bugs as well (e.g. connection loss spawning 1000 error boxes that my GPU can't handle the layered transparency.
> ! Linux security/permissions management is a bloody mess: PAM, SeLinux, Udev, HAL (replaced with udisk/upower/libudev), PolicyKit, ConsoleKit and usual Unix permissions (/etc/passwd, /etc/group) all have their separate incompatible permissions management systems spread all over the file system. Quite often people cannot use their digital devices unless they switch to a super user.
In theory they're all separate things, but they interleave so much, there has to be a better system.
> ! No equivalent of some hardcore Windows software like ArchiCAD/3ds Max/Adobe Premier/Adobe Photoshop/Corel Draw/DVD authoring applications/etc. Home and enterprise users just won't bother installing Linux until they can get their work done.
I really miss Solidworks/Fusion 360, there's no effort at all to port those :(
> ! Open source drivers have certain, sometimes very serious problems (Intel-!, NVIDIA and AMD):
Flickering windows, low FPS, laggy videos, everyday struggle :( Changing compositor OpenGL mode fixes it though.
> ! An insane number of regressions in the Linux kernel, when with every new kernel release some hardware can stop working inexplicably. I have personally reported two serious audio playback regressions, which have been consequently resolved, however most users don't know how to file bugs, how to bisect regressions, how to identify faulty components.
I was affected by this too, qemu was broken for me for almost half a year.
There's one thing that's very subjective in the article, even if the author claims otherwise. I like to call it the Winduslexia, it doesn't occur for anyone other than previous Windows users:
> All native Linux filesystems are case sensitive about filenames which utterly confuses most users. This wonderful peculiarity doesn't have any sensible rationale. Less than 0.01% of users in the Linux world depend on this feature.
old, but sadly still valid: