User:ScotXW/Linux as home computer platform

Linux as home computer platform or Linux kernel-based family of operating systems on home computers, that comprises desktop computers and single-board computers, and also embedded or mobile stuff: tablet computers.

Technical documentation
For rants from a technical perspective, please visit User:ScotXW/Linux as platform. For a technical documentation forget about the Wikipedia, and go somewhere else. ;-)

The idea for this article-like in my user-space, will be to focus on the various tasks people perform on their home computers. I hope people bamboozled by all the "marketing speak" are not overstrained by it.

Stationary-mobile convergence
Convergence will come, because it makes sense. Mobile devices have much more RAM and computational power than a PC in the year 2000 had. Things that are different is the human-machine interface and the form-factor. To account for that, we simply utilize KDE Plasma Workspaces to write different UIs. The design of GNOME 3 also suits both, INPUT via Keyboard and Mouse as well as Touchscreen.

Convergence is not only possible, but actually it is being worked on since a couple of years.
 * Android is ruling the Smartphones, and Android is from my perspective not well documented. It differs in binder, ashmem and pmem from the vanilla kernel, and additionally in bionic from any other Linux OSes.
 * Tizen, Sailfish OS, Ubuntu Touch, Firefox OS are all build on the vanilla kernel (and device drivers as binary blobs) and the glibc so convergence should be easier.

System administration
Almost any Linux distribution is build around one of the free and open-source package management system (PMS). This can have some downsides, see User:ScotXW/Linux as platform but does not have to, and it will remain the way to administer the operating system.

Though the responsible administration of a LAMP system does require some knowledge and probably involves no software with a graphical user interface, the administration of a Linux OS running on a home computer can be as simple as eating pancakes. Have a quick look at GNOME Software and take it from there.

Installing software
Switching from the Microsoft Windows family of operating system to Linux kernel-based family of operating system, the very first problem you are going to encounter is "installing software."


 * 1) When you want to do a task on a computer, you have to previously find out, with which software this task can be done.
 * 2) To find that software, you start your web browser, go to your favorite search engine and search.
 * 3) On Windows, most sites you find will offer a Windows-package for immediate download; you are supposed to download this package, install it, and use the software. Done.
 * 4) On Linux, this procedure is possible but frowned upon and not wide-spread. On Linux, for reasons such as system stability, consistency and security, we prefer using the PMS exclusively. This introduces a major paper cut bug to people coming from Windows.
 * 5) On Linux, you will software and description to use this software, but most probably find no package for download. Instead, have start you PMS, and search for these names found previously in the package repositories of your Linux distribution. Often the names are identical, but sometimes their are not, in that case you have to find the corresponding name. Now install the found package(s) using the PMS. Done.


 * 1) certain software packages, are or could be, encumbered by patents, so they may be present for download on various sites in the Internet not caring about this risk of litigation, but they are most likely not present in the official software repositories, to avoid even the risk of litigation. But usually they are being maintained in some third party repositories suited for your Linux distribution. As a beginner, you have to configure your PMS, to use these repos additionally to the official repos. Find out the names of the packages you want or need, and install with the PMS. Done.


 * 1) For wide-spread Linux distributions, such as Fedora, Debian or Ubuntu, it is very unlikely that a software is not available as install-able package (install-able with the PMS, not by downloading manually) and the user has to compile sources.

In case the PMS does not offer some graphical front-end, the CLI must be used. This is simple and not complicated at all, the problem lies in knowing what to type. ;-)

Some Linux distributions risk litigation based on software patents, and offer codecs and such in their official repos or even install them from the beginning on. AFAIK an example is Linux Mint. Sadly they also pre-install Adobe flash and other crap, that the world would be better without.

Updating your system
Start you PMS, click on update or upgrade. Done. Fedora 20 automatically installs software updates to keep the OS as safe and bug-free as possible. Since we manage ALL packages with the PMS, this keeps the entire OS up-to-date! This is awesome for lazy people and for all the morons out there, who would otherwise require a "driver's license for the Internet". For professional users, it saves time and is simply conformable.

Video playback

 * Videos are available as compressed video files. They contain the result, of applying a compression algorithms (called CODEC) such as MPEG-2, HEVC or Daala.
 * In order to watch them, they have to be decompressed.
 * Video files can additionally be encrypted by the encryption algorithms Content Scramble System (CSS) on DVDs or Advanced Access Content System (AACS) on BluRays.
 * They have to be de-crypted first, and then the result has to be decompressed into a bit-stream, and this bit-stream is sent directly to the screen.
 * Though, this bit-stream, found between DVD-Player and Screen/TV, usually is again encrypted with the encryption algorithm High-bandwidth Digital Content Protection (HDCP).

Video acceleration
Nvidia PureVideo, Unified Video Decoder, Intel Quick Sync Video, the "TI Ducati Sub System" on OMAP SoCs are supported by the proprietary drivers as well as the free and open-source device drivers. Each driver provides some APIs for end-user software to make use of the "video acceleration module".


 * AMD Unified Video Decoder: on 2014-06-28 Phoronix published some benchmarks utilizing Unified Video Decoder through the VDPAU interface running MPlayer on Ubuntu 14.04 with Mesa 3D 10.3-testing.
 * Nvidia PureVideo: on 2014-06-24 Phoronix published some benchmarks, comprising the whole range of Nvidia's graphics cards, Tesla, Fermi, Kepler and Maxwell, utilizing PureVideo through the VDPAU interface running MPlayer on Ubuntu 14.04 with Nvidia's proprietary drivers version 337.25. Tegra K1 or nouveau were not tested.
 * Intel Quick Sync Video: supported, some benchmarks would be nice
 * Broadcom Crystal HD: supported, some benchmarks would be nice
 * Texas Instruments Ducati: supported, see Texas Instruments Ducati
 * CedarX: Linux support? benchmarks?
 * RK3288: Linux support? benchmarks? reported to decode High Efficiency Video Coding (HECS, H.265)

Optical discs
Videos are available on some kind of optical disc. You the disc into the disk drive, and watch the content on it with the help of some video player software. Alternatively you can also copy the content to your hard disk with the help of a ripper software, e.g. CD ripper.

CD
Yes, you can listen to CDs on Linux. See also Extended Copy Protection

DVD

 * Yes, you can watch DVDs on Linux, the encryption algorithm Content Scramble System (CSS) does not pose an impediment. E.g. with VLC media player.
 * Yes, of course, you need to jump through some hoops first: e.g. when running Debian follow https://wiki.debian.org/CDDVD

HD DVD
?

Blu-ray
Yes, it is possible to watch a Blu-ray Discs on Linux, the encryption algorithms Advanced Access Content System (AACS) and BD+ pose some problems.
 * http://negativo17.org/bluray-playback-and-ripping-on-fedora-aacs-bd-bd-j/ most up-to-date as of 2015-08-29
 * http://www.linuxjournal.com/content/blu-ray-encryption%E2%80%94why-most-people-pirate-movies
 * http://www.phoronix.com/scan.php?page=news_item&px=MTU1ODc
 * On ArchLinux, do https://wiki.archlinux.org/index.php/BluRay
 * etc.
 * 2013-12-24 Jean-Baptiste Kempf: The state of the open Blu-Ray playback in 2013
 * 2014-07-13 Jean-Baptiste Kempf: Blu-Ray playback libraries updates (BD-J)
 * 0.6.0
 * 0.7.1
 * 0.1.1
 * Raspberry Pi + USB BD-drive + some Linux OS + VLC media player 2.2.0 with hardware video acceleration for decoding

China Blue High-definition Disc
Only distributed in the People's Republic of China. I do not know, whether you can watch/rip the content.

Multi-monitor
Yes, multi-monitor setup is supported on Linux at least by AMD Eyefinity & AMD Catalyst, Xinerama and RandR on both X11 and Wayland.

A software platform for home computer

 * runs on home computers
 * features of a "good" software platform: ...


 * The instruction set of choice has been for a long time x86/x86-64. Maybe this will be augmented by ARM and/or MIPS, maybe inside the TV or inside some mobile device, with interfaces like USB and HDMI to the classic "Human-machine interface devices" described above. For Motherboards other form-factors than ATX are available and have gained some ground. The so called Steam Machines are actually PCs.
 * What do people do on their home computers?
 * Even though many people do not play 3D games that require a high-performance CPU and GPU, most people do play a little bit.

Linux as home computer platform
Linux as home computer platform consists of the Linux kernel and other components !

Peripherals – a chicken or the egg dilemma
The lack of support of all peripherals available for the PC for purchase has been described as one of the more serious obstacles for Linux to gain a wider user adoption. Support for Sony's DualShock 4 was mainlined in 3.15 but support for peripherals should be better, especially for printers and image scanners. It is a chicken or the egg problem: hardware vendors won't bother to support device drivers for OSes with a low user base, and users won't adopt OSes, for which device drivers are missing for their favorite hardware.

Read my rant: the computer user axiomaticly interacts with the peripheral. The peripheral is the Human–machine interface, not some software. But yes, there are the GUI and the CLI (and the TUI and the SUI) that – through the kernel – access the peripheral and react to user input.

not strictly "chicken-or-the-egg-dilemma": obviously users won't adopt Linux in case they require support for something that is not supported. Linux will only be adopted by users, whose needs are entirely satisfied. Such users will grow Linux installed base/market share, a bigger "installed base"/"market share", creates a bigger incentive to support your hardware in Linux!
 * Office users want Printers and Scanners to just work => at least bigger and more expensive Office Printers are well supported, projects like LiMux, … show this. So more Linux in the office. But that also pulls in LibreOffice, KDE Plasma 5, etc. and should lead to better software.
 * Computer players want games to just run games. => After marginalizing the competition by evangelizing DirectX, Microsoft happened to change the open-ness of their Windows platform. That motivated Valve Inc. to invest into an alternative OS for themselves. More and more games have been ported to Linux, and Vulkan + SLD audio + SDL input could do away with the unique selling proposition of Windows. Besides Valve, Sony could have interest in that.
 * etc.

Keyboard and pointing device, e.g. mouse
The classic form-factor of the home-computer has been the desktop and later the tower PC. But relevant is the "hardware interface" to the user, and that is a non-touch screen with a diameter of 17-27 inches coupled with stereo boxes for OUTPUT and with mouse, keyboard and microphone for INPUT. A ton of other Human-machine interface devices exist for the PC: joysticks and gamepads, especially with Force feedback-stuff, drive wheels, etc.

Touchscreens
Are supported. Middleware, such as e.g. Maliit or uTouch, is available, furthermore graphical shells and GUIs are being designed with support for touchscreens in mind.
 * GNOME Shell and GTK+, KDE Plasma Workspaces, etc.

Refreshable braille displays
Are supported.

Voice input: Speech recognition
Available. Whether some special DSP is supported, is a different question. There are GCC and LLVM/Clang with excellent industry support.

Voice output: Screen readers
Available. E.g. Orca (assistive technology).

Multi-monitor
Yes, multi-monitor setup is supported on Linux at least by AMD Eyefinity & AMD Catalyst; there are Xinerama and RandR on both X11 and Wayland.

HiDPI displays
Due to lack of available affordable "HiDPI"-computer monitors support for such is supposed to be late on desktop (Windows and Linux alike).
 * Alexander Larsson: HiDPI support in GNOME
 * GNOME 2.x worked fine with a 150 dpi monitor. Their ridiculous nonsense with forcing 96 dpi didn't do anything useful and it is incredibly hard to turn off.
 * KDE3 and KDE4 SC have settings to adjust the font-DPI and it is reported to work just fine with Retina Displays. It is a single setting and while a spinbox instead of a slider, it works.
 * Of course, there is more to HiDPI than fonts. Being able to drag a window from a standard DPI to an HiDPI monitor wont "work" (the lower resolution 1080p display has 2 cm high letters all over it). There is also the problems with pixmaps and custom QPainter widgets that also stay in pixel rather than units. While those problems are important and need a solution, the current situation is good enough for most people.
 * The issue with dragging a window from a normal monitor to a HiDPI -monitor cannot be solved using current X11 window managers. In theory, one could write a compositor that automatically scales windows depending on the monitor they are displayed in, but noone is really interested in doing that work. With Wayland this will become a non-issue!

There are computer monitors, that properly report their "physical size", so the software can make adjustments based on the "current resolution-to-diameter" ratio. For hardware that does not report, the user could be asked actively. 13" 1920×1080, a 30" 2560×1600 and a 28" 3840×2160 (16:9, 1,7:1). NONE of those is 96 dpi.

Linux for the office

 * 1) in "The Office"
 * 2) * http://caesar.acc.umu.se/pub/debian-meetings/2015/debconf15/Linux_in_the_City_of_Munich_AKA_LiMux.webm
 * 3) * all the advantages of the PMS plus even the disadvantages are not merely suffered but instead decisively wanted
 * 4) * some printers and image scanners have excellent Linux support, and the people who purchase the hardware for "The Office" ignore the ones that do not, so we are golden
 * 5) * people do not want to connect exotic hardware to the PC and expect it to be supported with device drivers by the operating system; I do not mean a refreshable braille display or some Amateur radio hardware, these are quite well supported, but really exotic shit from China: no user guide, no documentation, no nothing
 * 6) * people usually do not try to watch a Blu-rays
 * 7) * you get the point


 * 1) So why isn't Linux dominating the office desktops?
 * 2) Why did LiMux arrive in the year 2006, and GendBuntu in 2008 and not earlier?
 * 3) There are many Linux adopters, and the list is getting longer by the day. See List of Linux adopters or de:Open-Source-Software in öffentlichen Einrichtungen.