Linux

From TheAlmightyGuru
Jump to: navigation, search
"Tux," the mascot and logo of Linux.

Linux is a family of free open source operating systems based on the Linux kernel designed by Linus Torvalds and first released on 1991-09-17. Popular operating systems built around the Linux kernel include Ubuntu, Fedora, Gentoo, Debian, and Mint, but there are hundreds of others.

Personal

My familiarity of Linux systems is limited because I use Windows for my home computer and primary work computer. I only use Linux operating systems when coding web pages and doing maintenance on my Web server, but, because Linux is so stable, maintenance is rarely needed. In an effort to leave Microsoft entirely, particularly because I despise all versions of Windows past version XP, I tried to get used to a variety of desktop distributions of Linux. I tried Ubuntu Desktop and Kubuntu, but found their UIs to be considerably worse than Windows. I eventually settled on Ubuntu Mate as my favorite, and I use it on my more recent web-based work projects. However, I still have almost nothing good to say about it. Basically, the entire OS feels like it was created by nerd gatekeepers who purposely make it hard to use to prevent the average computer user from wanting to use Linux. Check my review for more detailed complaints.

Software

This is Linux software that is important to me.

Applications

Most Windows software can be emulated in Linux by using the program Wine.

See all Linux software.

Games

Most games are developed primarily for Windows, then ported to Linux later. I don't use Linux for gaming, but here are some of my favorite games which have a Linux port.

See all Linux games.

Review

I haven't really used Linux enough to give it a proper review, but these are my preliminary opinions.

Good

  • Linux offers one of the most stable kernels available. It can even keep running if your hard disk is 100% full and programs can rarely inadvertently destroy the OS.
  • A lot of server software is first written, updated, and fixed for Linux before being ported to other platforms.

Bad

  • Linux was designed for the multi-user enterprise market, not a single home user. Because of this, you frequently have to do obnoxious stuff like enter your administrative password, set user permissions, and store files in a user folder rather than where you want. As far as I know, there isn't any way to have the OS run in single-user admin mode.
  • Although Linux is often described as being "bullet proof" and very difficult to corrupt, I have not found this to be true. Over the years I've used it, various programs have become unstable, stop working all together, or disrupted the UI. I've also had programs interfere with other programs. Fixing these issues usually involves hours of online searching and trying very cryptic command-line commands.
  • Pretty much all of the file systems Linux can use are case-sensitive which is inferior to case-preserving.

Ugly

  • The general Linux user interface mindset is to hold onto an antiquated text and keyboard interface instead of vastly superior graphical user interfaces. This means the bulk of software written for the OS is not even remotely user-friendly, requiring the user to remember a large variety of abbreviated command line switches and esoteric key-combinations which are different in every program. And, without much interest in UI philosophy, those few programs that do have a GUI are typically poorly designed. Most mid-level software and lower still requires the user to use text UIs, guaranteeing Linux will never be user-friendly and, therefore, useless to the home market. For example, I wanted to switch the clock on my main status panel from a 12-hour to 24-hour display in Ubuntu Mate. I searched all the internal settings, but couldn't find out how to do this, so I searched online, and discovered it did not have UI setting for this. After trying a variety of things that didn't work for about 20 minutes, I finally found an answer. I had to type the following text into the terminal: gsettings set org.ayatana.indicator.datetime time-format 12-hour. Of course, this solution only works for certain versions of certain flavors. This is a staggeringly complex solution to such a trivial request, but, sadly, this ridiculousness is all too common.
  • With so many flavors and versions of Linux, it's often difficult to find help for a specific problem. You will frequently search for the solution and think you've found the answer, only to realize the solution is for an incompatible flavor or version.
  • Although some software is updated through package managers, when an error occurs, or you have to update manually, the manual update process is difficult. For example, GitHub Desktop only updates automatically if it can load, however, it was once distributed with a faulty version which prevented it from loading on some machines. Those users had to upgrade it manually, however, because it is expected that it will always be update through a package manager, the web page for GitHub Desktop doesn't have a simple download for Linux. Instead, the update process must be manually run in the terminal, the commands for which are not listed on their web site. I searched online for a long time, but every set of instructions I could find online was set to download older outdated versions. I eventually solved the problem by running a series of cryptic commands in the terminal where I guessed at future version numbers until one finally worked. From viewing online forums about this problem, my experience was not uncommon.
  • The file system is a mess.
    • Rather than keep all relevant files of a program grouped together, they are scattered all over the drive, often in different places from one program to another. For example, the program Firefox has its main program files located in ./usr/lib/firefox, global preferences are located in ./etc/firefox/pref, documentation is located in ./usr/share/doc/firefox, the user data is located in ./home/account/.mozilla/firefox, temporary files are located in ./tmp/firefox_account, and there are still other files located elsewhere around the drive. And, since there isn't any easy way to know which files are located in which folders, you just have to guess at them until you find the file you're looking for.
    • The default directory structure has a bunch of folders with abbreviated esoteric names like "mnt," "proc," and "var," instead of names like "Users" and "Programs." Since their names are not intuitive, you'll have to read a poorly-written manual for most of them, and, even then, some of them appear to have been purposely given confusing names. For example, "usr" doesn't hold user files, but programs, and "etc" doesn't hold miscellaneous files, but configuration files. Some of the directory choices are very strange, for example, the "var" directory exists solely to hold files which are modified more frequently that others. This is an arbitrary definition, and you just sort of have to know how frequently all files are updated to determine if it warrants being in the folder, something only those experienced with the inner-workings of the software would know.
    • Because so much Linux software is typically distributed as source code, there will always be an obscene number of small files on your drive; well over a million even on a fresh install. Because of this, anything that requires iterating through many directories (copying, searching, backing up, etc.) is very slow.
    • It's very difficult to clean up after a program when you remove it. Since programs store their files all over the drive, you'll never be sure where it created files. This results in a lot of wasted space. You just have to hope the installers or package manager cleans up after itself properly.
    • Many versions of Linux don't use file extensions to signify a file's contents, and even the more user-friendly versions don't do so consistently. Even if you give a file an extension, the OS identifies files based on their contents, not their extension. This has several downsides:
      • There is no quick way to identify the contents of a file. In order for the OS or a user to identify a file, it must first be opened, which is a considerably slower process than using the extension, especially when needing to identify many files at once, like in a directory with a lot of files.
      • Both the user and OS can easily falsely identify a file when the contents look similar to a different format. For example, a user might save some example script code in a text file because they don't mean for it to be executed, but Linux will see the script code and identify the file as a script that can be executed. This can be dangerous.

See Also

Links

Link-Wikipedia.png  Link-MobyGames.png  Link-VGMPF.png