Sunday, February 10, 2013

Personal computers and the software that runs them has evolved greatly over the years. In the process, motherboards (the guts of the computer) have become smaller and more functional as the number of transistors in a chip has risen from thousand to hundreds of millions and clock speeds have increased thousands of times. In the process, software has changed from simple monitors controlled by serial links to complex operating systems with hundreds of processes running and GUIs (Graphical User-Interfaces). For many years the GUI has followed the "desktop" paradigm, a virtual space where "documents" and images and multi-media "files" lay about or were placed in "folders" and a user pointed and clicked to start processes, usually starting a new application or a new process (usually seen by the user in a window). There are many personal computers these days leaving the "desktop" paradigm for a new style or out of necessity, being on tiny screens like smartphones. There just isn't enough space on the tiny screen for much of anything to point and click and fingers are fumbly pointing devices anyway.

Wherever the screen of a computer is large enough there will be a use for a "desktop" operating system so they will be around for awhile yet, probably until they can listen to us or read our minds and not need to be pointed and clicked... This is about the GNU/Linux desktop which is in use by more than 100 million people but may be totally unknown by the user either because the name never appears anywhere on the screen or the operating system stays out of the way and merely operates a single application, such as a web-browser or a bank-teller's application. This year, Canonical expects to ship Ubuntu, a GNU/Linux operating system, on 5% of the world's PCs being produced by OEMs (Original End-user Manufacturers, folks like HP, Lenovo, Dell, Acer, to name a few). There's also Android/Linux on even more smartphones and tablets. Android is like GNU but different. The "Linux" part is the same however. That's the part that interacts directly with the hardware and ultimately controls resources of processes. Android is more suitable for tiny touch-screens and battery-operated devices because it requires few processes to run.

Linux is a huge part of GNU/Linux. It's a cooperative product of the world started by a single student about 1991 in Finland. A few years later hundreds of developers were contributing to it and large corporations like IBM began to use it mostly on servers, databases and the Internet. Others began to use it on desktop personal computers. Linux is wonderful. It's quite modular and efficient and so will run well on the smallest computers to large networks of the largest computers. The means by which the whole world contributes to Linux is that the software is covered by the GNU GPL v2 licence. Anyone can download the source code and examine and modify it and distribute it in such a way that it will run a smartphone or a PC with an Intel or AMD or VIA or ARM CPU. That's just the beginning. Because Linux had from the beginning the concept of being a networked OS similar to UNIX, Linux operating systems are great for client computers, server computers, gadgets small enough to fit in the pocket or huge networks used by the largest corporations. Linux is well-designed from the beginning using the latest techniques of computer science according to what works best. Every few weeks major upgrades are released for Linux and I or you can take the source code and build a working heart for my operating systems. It just takes a few minutes on a modern PC.

The GNU part of GNU/Linux is similar but it began much earlier, around 1984. UNIX operating systems at that time were being controlled by corporations who restricted access and demanded huge payments for the privilege of using working copies and even larger amounts for seeing the source-code. UNIX had started humbly with code being shared around but when it became popular, the powers that be began to seek ways of making money from it. GNU and GNU/Linux permit people to make money from it but the licence requires changes to be available to all so there is Software Freedom and it cannot be revoked. That is, the GNU GPL (GNU Public Licence) permits running the software, examining the source code, changing the source code and distributing it under the same conditions. Thus, with each modification and public distribution, GNU/Linux gets better and the work is shared by the whole world. It's a beautiful system. Each person or organization contributes what they can or want to contribute and they get to use everyone's contributions. No one has to pay for all of it and everyone gets to use all of it. This feature of GNU/Linux (and Android/Linux, mostly) mean OEMs can produce PCs for lower cost (they don't have to pay for software-licences) and the product is state-of-the-art.

GNU was intended to be a duplication of the great features of UNIX operating systems. By 1991 it was still missing a kernel, the hardware/resources manager, and Linus Torvalds stepped up by starting Linux. Many thousands of developers and hundreds of corporations large and small have contributed code to Linux. Torvalds used Minix to get his Linux kernel going but soon used more GNU tools and eventually had a GNU/Linux working. By about 1994 it began to be used by many ordinary users and has been growing in usage ever since. Unfortunately, GNU/Linux was not owned by any single corporation so little funding was available for salesmen/advertising and Microsoft worked out exclusive deals with OEMs and retailers to exclude GNU/Linux from retail shelves. That has changed with the advent of Android/Linux. The world, seeing that there was a better/cheaper alternative on small cheap computers began to see that GNU/Linux was viable. As the price of computers dropped the advantages of $0 licensing and the good design resulting in little or no malware caused many OEMs to shift to producing more GNU/Linux PCs. Governments, schools and some businesses use GNU/Linux widely on servers (web-sites, databases etc.) and desktops. Students who were exposed to GNU/Linux in schools are now seeking GNU/Linux PCs on retail shelves.

If you are not in Brazil, Cuba, India or China, you may have trouble finding GNU/Linux desktops on retail shelves but fear not, if you have a PC which runs that other OS and annoys you with malware, slowing down and re-re-reboots, you can install GNU/Linux on it and get better use of your hardware. There are many suppliers of GNU/Linux. Some are commercial entities like Novell, Oracle, RedHat, Linpus and Canonical but many are organizations formed for the purpose of distributing GNU/Linux systems, usually for little or no cost to users. You can find hundreds of distributors at Distrowatch. A few have been around for nearly two decades like Debian GNU/Linux. You can download a few hundred megabytes of software in a CD or USB-drive image and boot your PC from it. The slickest installation is to visit Goodbye-Microsoft from Microsoft's OS and download an installer and reboot your computer. There must be 50 ways to install GNU/Linux and I have used many different methods on computers old and new. It gets difficult to install GNU/Linux in a computer more than about ten years old mostly because memory may be too small. The smallest installations of GNU/Linux need 64MB to run and may need several hundred GB of disc storage. The installer probably wants more memory.

GNU/Linux XFCE Desktop

The simplest installations of GNU/Linux will have a text-based user-interface, not even a GUI. They can still be useful to run databases, routers and servers. The GUI is much more interesting these days. Almost anyone can use the GUI immediately, with very little training or practice. You point at something and click on it to see what it does. There are icons and words appearing so you know what everything does just by looking at it. Simple. Unlike operating systems developed by single companies, GNU/Linux has a rich panoply of GUIs. I like clean simple ones like XFCE4. Others like fancy ones with 3D-ness and bouncing/shaking/floating things all over. Still others want a clean desktop with the operating system holding their hand all the time with helpful hints, searching for applications or data and so forth. I find that mind-numbing. I have one wife. I don't need my operating system to be another.

Anyway, GNU/Linux is perfect for everyone. Most GNU/Linux distros (distributions of software) have a system of applications for package management. Instead of installing the whole thing and having to like or lump it, you can choose to install this or that and get a system that suits you. You do that by installing a minimal system and then adding what you want. The user asks the installer to install a few packages and all the other packages that are needed to get things to work are automatically pulled in. Of course a novice can take the default installation and customize it later after they learn more about the package-manager. Debian GNU/Linux helps by having pseudo packages that do nothing but call in packages needed to get some typical configurations. For instance, installing,

xfce4 brings in

xfwm4, a window manager, you know, controlling those rectangular regions of the screen,

xfconf, a set of configurations,

xfce4-settings, widgets for setting up everything on your desktop,

xfce4-panel, a rectangular region of the screen to keep your widgets,

xfdesktop4, a set of packages most desktops will need,

thunar, a file-manager,

xfce4-utils, more stuff,

gtk2-engines-xfce, ways for your applications to communicate with your windows,

xfce4-session, a login,

xfce4-appfinder, a means of finding applications,

xfce4-mixer, a controller for sounds,

orage, calendar and scheduling, and

other suggestions.

That doesn't actually give you a system with a GUI because that's all high-level stuff. To handle your monitor, keyboard and mouse you need to install another package, xorg, which pulls in all of that.

That gives you a minimal system with a GUI but very few applications. In GNU/Linux you usually will have a choice of multimedia players and creators, office suites, games, Internet applications like browsers, graphics applications like drawing programmes and editors. Your package manager may have both graphical and text-based applications for package selection and installation. In Debian GNU/Linux, synaptic is the GUI, and aptitude, apt-get, dpkg and apt-cache are the usual packages that help.

Applications that I usually install in GNU/Linux include

LibreOffice, an office suite,

chromium, a web browser,

vlc, and mplayer media players,

gimp, and imagemagick, image editors,

xfce4-goodies, neat stuff like screen snapshots, weather reports and network monitors you can place in the panel,

When you get your PC with GNU/Linux at the store or installed by you or your buddy, what will it look like? Whatever you want. Here's a collection. Thanks to the millions of developers who have contributed to this rich environment for information technology.

The best way to learn about the possibilities of GNU/Linux is to obtain a PC running GNU/Linux or to make one. Text documents like this will just slow you down. Use GNU/Linux and love it. Join many millions of users experiencing the benefits of Free Software whether as Android/Linux or GNU/Linux. It's all good but don't think the desktop stuff is obsolete. Apple sells Mac OS X which is based on BSD UNIX and it's going strong. GNU/Linux however has been more popular than MacOS for many years. At the time Ballmer made that statement, Apple was selling about 2.7 million PCs with MacOS per quarter while the world made ~90 million PCs. Apple sells 4million per quarter these days.

Convinced? This is only the beginning. With GNU/Linux a modern PC makes a good server and database as well as a desktop. There's no limit to what you can do except your imagination. Give it a try. It has worked for me for over a decade. -- Robert Pogson

About the Author

Robert Pogson is an old man in his sixth career, retirement. That leaves time for writing about GNU/Linux in his spare time between gardening, hunting, grandfathering, and walking around.
GNU/Linux found him in the Arctic of Canada trying to keep five PCs running for one class at a time in his classroom. That other OS did not work. GNU/Linux did. Since then he has introduced thousands of students and teachers to GNU/Linux and they have enjoyed increased reliability and performance for very little cost.

10 comments:

Linux is amazing - on servers, embedded devices, mobile devices, etc. Even on some desktops it can be the best choice - and I think you covered those well: schools and businesses where the needs are focused and generally fairly limited. It is also a great choice when funds are important; as you note it is free.

One big challenge with it, though, is that with all of these different people and groups working on it, there is no common distro where the system truly works as a system: simple things such as menu names like Quit and Exit are not the same, nor Preferences or Options... and there placement is different and often even the hot keys are different. Even with cut and paste, on most distros, the functions differ from program to program (sometimes the clipboard is lost when you quit the program and sometimes it is not). There is also a weakness in a lack of many types of software: there is no screencasting software (though there are plenty of screen recorders), there is nothing like Electric Quilt for quilters, there is nothing like Photoshop or Dreamweaver or like any of the niche tools used by dentists and chiropractors and schools and so many other groups.

The good news is that much of this is changing - even if slowly. I recently compared a several year old version of PCLOS to a current version and the difference is night and day: the modern system acts much more as a system. This is good - doing so benefits productivity, efficiency, and error reduction. But desktop Linux still has a way to go to catch up to the competition.

Both MS and Apple have had some big shake-ups with their managers in charge of their OSs... they may both be struggling for a while. This gives desktop Linux a chance to play catchup. And then there is ChromeOS: yes, it is made by Google which has a business model of profiting from your personal info, but the OS and devices which run ChromeOS are more focused and much of what they run is handled by one company. The systems, from what I have seen, act and feel more like unified systems. Canonical with its mobile Ubuntu is looking to do this as as Mozilla.

The next few years will be an interesting time to see how far Linux can go on the desktop and other consumer devices. I think we are about to see an explosion of Linux in that area. This, in my mind, is a very good thing.

Well Michael, that's fine. There is an estimated 20 million Google-branded Notebooks on order which will turn the status quo on their collective ears when it arrives. Quite spectacular. Easy to use, hard to break. Chromebook is truly an Internet Appliance and OEMs are happy to have a 'plan B' to offset the lackluster Windows 8 driven hardware sales. By the time Google is done, Apple will have to lower prices to follow suit or watch their sales recede.

As I said, Google is doing things well - they have a limited (though growing) scope to their OS, they have control over much of the UI so it can be coordinated (they have put a lot of work into this), etc.

It is a good example of how the idea that some boogieman has been holding desktop Linux back is likely (again) to be shown to be wrong. I think Chrome OS will do well, as Android has done well.

Snit wrote, "schools and businesses where the needs are focused and generally fairly limited".

Last time I worked in a school, folks were finding, creating, storing and presenting tons of diverse kinds of information. What focus? In the last school where I worked, Internet access was quite slow so I provided 100gB of data and local web-applications so what most people do on the Internet could be done right in the school, a local copy of Wikipedia, databases, search engines for documents, messaging, on top of the usual desktop applications. I had students running Blender and Hugin doing amazing graphics. What "focus"? Our network server had every byte of RAM over-committed doing all this stuff but we had a fantastic SCSI RAID array which made the web-applications faster than many local applications. It's file-caching meant everyone got to share very effectively applications and data. When I arrived at that school, it was using XP on 40PCs and only half of the PCs were usable because of malware. No one was very concerned because they mostly did not use those PCs for anything. When I left they had 80 PCs running GNU/Linux and all of them worked crisply. Students were using 8 year old PCs that were faster than brand new PCs that came with that other OS. We installed GNU/Linux immediately on the new batch of PCs. It was no contest in side-by-side tests.

In a dozen schools where I worked, only two did not welcome GNU/Linux and that was a top-down decision. In one of those a lab of old PCs could not be kept running. There were seats at 17 PCs but only 14 worked at all and usually within a day or two they would be lucky to have half of them working. I converted that lab to GNU/Linux using one old PC with some resources as a terminal server. I added PCs gleaned from storage to make a complement of 24 machines. So, with 24 students running everything on a single PC they had crisp and trouble-free IT for $0. That lab performed better than the "new" lab with 24 machines running XP. In one new school, GNU/Linux was welcomed because PCs cost half as much with GNU/Linux as that other OS and the installation is still in use 5 years later with virtually no problems relating to software. They could afford PCs all over the place whereas other schools using that other OS barely were able to afford a lab and one PC per classroom. GNU/Linux is not a stop-gap in schools. GNU/Linux is perfectly suitable.

I have set up many school labs and taught classes at the K-12 level, colleges, classes for seniors, tutoring at a blind center, and more. I certainly have a lot of experience in this area.

In these schools I have set up Mac labs, Linux labs, and Windows labs. Right now I have a set of computers from a K-8 school which I am setting up with Linux. I am very familiar with the pros and cons of each. And I, too, have started jobs at schools where they were using Windows machines which had been poorly managed and maintained and many were not working when I started.

While I am happy you had "8 year old PCs that were faster than brand new PCs", speed is hardly the only consideration. Curious: what distro were you using?

You also talk about working in schools where here where only 14 of 17 machines working. My goodness... they clearly had clueless support (and I am not saying you are lying - I have seen such as well).

But as I said, in schools and businesses desktop Linux is often a good choice - if not for all machines for some. In schools with multiple labs I usually have each lab use a different OS: generally Ubuntu (or Mint) in one lab and OS X in the other. I let the students and teachers decide which works best for them and their needs. Teacher rooms and admin offices generally have Windows or OS X - the software needed for the school administrative stuff does not have a native Linux version.

So the idea that desktop Linux is "perfectly suitable" is correct - for some needs of schools, businesses, and more. SchoolMaster, for example, has a Linux server version but not a Linux client version (at least it did not in the past). More than that, though, if you are teaching advanced image editing and other topics you are "stuck" without Photoshop, AutoCAD, Dreamweaver, and many other such programs. This is a limitation, even though there is GIMP and other half-way solutions.

There is also the problem of training: on Linux there is no good screencasting solution. I do a lot of online teaching as well and unlike most online classes mine are excellent. One of the things that makes them so is I use excellent video tutorials. I can point you to some if you wish. There are screen recording programs on Linux and video editing programs, but there is no full featured screencasting solution. This means when I make anything but fairly simple screencasts for Linux I end up running Linux in a VM and using ScreenFlow. This allows post production changing of the cursor (changing the size, what it looks like, showing when you are clicking), shows keys pressed, allows you to highlight individual windows and expand them and/or blur or dim the "background", allows for zooming following the mouse, etc. There simply is no good way to do this on Linux.

I note this and folks such as Deitrich claim I am being anti-Linux. I note how desktop Linux is "stuck" at the percentage Linus Torvalds has stated it is (and that he is frustrated by this) and I am told these numbers are lies (because, surely, Linus Torvalds is easily fooled by these lies, right?).

I am not anti-Linux: I am for using the best tool for the job. Sometimes that tool is Linux. Every one of my websites (and those of my clients) is running on Linux server. My choice (or suggestion in the case of my clients). My old router had Linux on it (my new one is not so easily rooted, I wish it was). I use Linux on the desktop. There are many places it is an excellent solution. Many places it is the best solution. But anyone who tries to push that it is the best solution in all cases is showing a strong bias.

Yes: seriously, nothing like Photoshop. GIMP is great but it is far from Photoshop. While it now has finally added layer sets (though just one level deep, so still far behind Photoshop), and it has made big improvements to its UI, I believe it still lacks adjustment layers, smart objects / layers, 3D tools, quick select, multiple mask types, multiple masks on an image, etc. These are things I use and my high school students use. And, yes, they are also given exposure to GIMP, though I do not focus on it as much.

As far as Blender? Who said that was not on Linux? Not I. Dietrich notes that Google is your friend - so is careful reading. :) We all make mistakes - but with yours you assumed I am spreading some anti-Linux/Unix propaganda based on your own errors. I am doing no such thing. As I have said, I use Linux, OS X, and Windows. I have spoken about some of the good and bad of each (with the focus being on Linux, given the focus of the original post and the forum). I am in no way against Linux. That is just a silly claim.

In addition to your fabrication of my saying Blender is not on Linux, you ignored much of what I did so: no Photoshop, no AutoCAD, no Dreamweaver... and no good screen casting tools (before you give a list of screen recording software, please read what I said). All of these things are correct. If you disagree with me that is fine, but let Google be your friend... let evidence and reason and logic be your friend. Your response was based on emotion and nothing you said countered what I said... and you were clearly wrong about my views (on Blender and on Linux / UNIX in general).

The idea I am against Linux is absurd. If I was why would I be setting up Linux labs in schools? Why would I be using Linux for my web server needs? Why would I root my old router and run DD-WRT (Linux) on it? Why would I note the massive improvements that have happened with the open source ecosystem over the last few years?

So, yes, Google is my friend: as are reason and logic and evidence and experience. If you disagree with my comments that is fine - reasonable people can disagree. But please try to remain civil and drop the false accusations. Thank you.

Just a side note: Dietrich, I know you disagree with some of my views and have been inundated with accusations about me from some of the regulars from another forum. I appreciate you still posting my comments here. I did post in that other forum that you had not done so but my post was premature and I have now posted a public apology there as well.

I do sincerely appreciate you allowing different views on your blog. Obviously this is your choice and it is your right not to. You are showing great character here.