This is very simple, and it has more to do with the philosophy and marketing of operating systems than the technology of the operating systems themselves, though the technology does matter a great deal as well. First, lets have a look at how this ransomware attack was allowed to happen to begin with.

The vast majority of affected systems in this latest world wide cyber attack were Windows based computers that were not updated with recently available and easily deployed patch. The attack did not affect other operating systems, and Windows systems that had a recently released security patch were not affected. (I was going to put a link here to direct people to the Microsoft web page with info on what to do if you were attacked, but a minute or two of perusal on the Microsoft site mostly told me about Microsoft’s new products, and I did not find any such page. If you have a link, please place it in a snark free comment below.)

Why was the patch not deployed on so many computers? For several reasons.

Some of the operating systems were running under administrative policies that did not allow patching for some reason or another. I’ve only heard rumors of this but it sounds like a blind-future style pre-decision, in the same category of other bone-headed human processes like no tolerance policies for knives in schools and three strikes you are out sentencing policies. It works like this: You remove thinking from the process by making all decisions in advance, and then get the heck out of there with limited liability and whatever happens happens. If you do this you are probably a member of congress or a school board member planning on retiring soon. It never goes well. Telling security IT people in advance what they can and can’t do because of HR or personnel regulations is like going to a doctor and telling them what your diagnosis and treatment is going to be, in advance. You will die of something curable, eventually, if you do that regularly.

Some of the operating systems were running on computers that are, in theory, never supposed to be turned off. This is similar to the first reason in its stupidity level. For one thing, making it impossible to patch an OS ever is really not smart. For another thing, that computer you plan to never turn off is going to turn itself off now and then. But it is also bad at another level, the level of the operating system. Windows has operated, for years, under the principle that when enough stuff goes wrong, you turn off the computer and start again, and if that does not work you reinstall the operating system from scratch. Now, I know, you Windows lovers will jump in at this point and tell me that “Windows doesn’t work that way any more” but you know what? After decades of hearing how Windows Past is not Windows Present, when it really is, I don’t care what you say. Also, actual on the ground Windows users have been trained, by Microsoft policy, to reboot or reinstall for decades. Anyway, the point is, Windows can not be updated on the fly, and thus, the system utterly fails in a situation where updating is critical, which by the way is all the time and all machines, because even computers you use for nothing but curating recipes for muffins, if hooked to the Internet (where all the good muffin recipes are), can still be the platform for launching a secondary cyber attack.

Some of those operating systems were in health related fields (referring here to both of these first two excuses) and that is why so many health related facilities were hit initially.

Another reason, which is a bit tricky, is the problem with updating stolen software. If you stole the OS it might be hard to get an update or patch. It seems like a good idea for the company making the OS to do this, as it encourages buying the product and discourages stealing it. Yet, many tens of thousands of computers, maybe hundreds of thousands, are currently locked down by WannaCry because they were pirated, and not updated. This becomes a public health (cyber-health, eHealth) risk. It is like vaccination. We all suffer because so many others get the disease, even those of us who did not fail to do the right thing.

This is a moment when we look at something like computer operating systems and realize that they are actually a public good as much as, or more then, they are a commercial product. Think of roads and canals in the old days. Roads and canals were often privately owned (as were fire departments and police forces in many cases) and eventually it became apparent that these are all public goods, so they were essentially taken over by the government. Similarly, power companies and railroads. Not exactly taken over but made into quasi public entities through integration with public agencies and heavy regulation.

I’ve often argued that things like Google, Amazon.com, Facebook, Twitter, etc. have become the equivalent of public goods, like roads and the post office, etc., in a similar way. To some extent, this is also true of operating systems.

There is of course a solution to all of this. What we need is an operating system that is made by the public itself. If all interested parties simply became involved, and maybe large companies with a lot of stake in computers would put aside a meaningful amount of their own software development resources, and a few public and private agencies would provide some grants and bounties and stuff, we could have an operating system that was free, easily installed, updated every week with common updates (like, maybe, on Sunday evenings or something) with a very easy and easily automated system of updating, that would be great.

Ideally most software would come from well maintained and secure repositories that were checked for malicious code. There could be several different such repositories more or less redundant with each other but maybe tweaked to cater to different types of users. The added advantage of several different but similar repositories is this: even if some bad code gets into one repository, the fact that across users, many different repositories are used, would slow its spread.

By making the operating system free, easy, effective, powerful, flexible, and easily updated almost every one of the limitations in the way we do things that allowed WannCry to spread and ruin everything would simply not have happened. A few people would be hit, it would be a minor story.

On top of this, let’s make this new operating system have a few other security related features.

For instance, monitoring code. The way it works now with Windows, is that a finite number of paid and I’m sure brilliant individuals are in charge of coding and maintaining the operating system, and updated and patches, while a much larger number of criminal-minded nefarious but also brilliant individuals are focused on breaking the security. This means that there is an uneven arms race where day to day Microsoft will always be a step ahead of the bad guys, except every now and then when the bad guys jump ahead and make a huge mess.

I propose that this ratio be reversed, that the arms race between the good and the evil become totally one sided in the other direction. Have a very large number of individuals, a proportion of the above mentioned community of private individuals and interested corporations and agencies, working on security, swamping out the nefarious bad guys. There would be very few moments when the bad guys got very far ahead of the good guys.

In addition, the operating system itself could have other security related features. For example, the basic tools inside the operating system could be well maintained, highly traditional, really clean and neat code, and free to use. So, for example, basic tasks that any new software might use are figured out, so you don’t have to add your own new version of the code to do them. This means that new code will generally be fast, effective, clean, easier to maintain, and more secure.

Also, the operating system can work more like a prison than, say, a food court. In a food court, you do what you want to do (eat, meet your friends, hang out) in a rather chaotic environment where you can move freely from place to place. Someone puts their food down on a table to go back to the Azian Kuizine window to get the chopsticks they forgot, and you can grab their pot stickers, sit down at a nearby table, and no one can really figure out that you just sole their food. And so on.

In a prison, you can theoretically leave your cell and walk down the hall to the gym, then go to the cafeteria, then the law library. But, the entire route is blocked by a series of doors that only specific people have permission to open, at specific times, for specific reasons. Everything you do requires having permission at every step of of the way, and it is all constantly being carefully watched.

Life should be more like the food court. What happens inside computers should be more like the prison.

Of course, by now, most of you have figured out that I’m talking about Linux. Linux is an operating system that is already widely used when certain conditions pertain. Since the Android OS is based on Linux, and the majority of servers run Linux, and Linux is becoming the preferred desktop in China, it may well be that Linux is more widely deployed right now than any other operating system, though most Westerners think of it as nearly non-existent on desktops.

Critical tasks are often trusted to Linux or similar operating systems (Unix, BSD, etc.) because of reliability and security. When efficiency is required, Linux is often tapped because it can be deployed in a very efficient manner. Linux acts internally like the prison, not the food court. The system itself is constantly monitored open source code, and most of what runs on it is openly monitored as well. Software is usually distributed via secure repositories. The system is free and easily updated, there is no such thing as a pirated copy of Linux. There is a regular schedule of updates, they come out every Sunday.

Another important feature of Linux is the separation of the operating system and the surface appearance of the system. The operating system itself comes in a number of varieties, but most people use one of two: Red Hat or Debian (there are others). But the surface of the OS, the part the user sees, is not related to that at all. Most people use a “desktop” which provides the windows and stuff, the parts that you interface with, and there are several versions of this, from which users can more or less pick and chose.

Here is why this is important: The desktop provides the user experience, and the user experience sells the product. If you develop a proprietary operating system like Windows, many of your decisions, including when to produce major updates, etc. is driven by the marketing department. The development and deployment of the operating system is a complex process where designers and marketing gurus are at the same table, essentially, as security experts and developers concerned with efficiency.

In the Linux system, the security people and efficiency and functionality developers work most of the time independently from the equivalent of “marketers” or “designers” because of this two layer aspect of the system. It is quite interesting to visit the communities of desktop developers and hear what they are saying to each other, then visit the community of system developers and hear what they are saying to each other. They are pretty much two distinct conversations. There will never be a marketing or design decision about Linux that impacts security.

Linux is the female operating system in a patriarchic world. Refer to the appropriate John Lennon song for a starker analogy. It does a lot of the work, maybe most of the work, but is usually not recognized. When people make comparisons, Linux has to dance backwards and in high heels.

If I say, like I just said here, that “if Linux was widely in use, the WannaCry attack would have been much less severe” people will respond “Linux can be attacked too” and that will be taken by others, and possibly meant to begin with, as stating “Linux and Windows are the same, its just that attackers attack Windows and not Linux.” That is a pernicious falsehood that feels a lot like many sexist comments about the limitations of women. Yes, Linux could in theory be attacked. No, Linux is pretty much not attacked very often or ever, so your fantasy about how it can be attacked has no empirical back up. No, Linux and Windows are not the same in which they are developed, designed, maintained, deployed, updated, or secured, and every single one of those differences gives Linux a huge leg up on security and Windows one or more disadvantages.

If a cyber attack is a mugger, Windows is a physically small drunken person with wads of money sticking out of his pockets, staggering down a dark ally near the convention hall during a mugger’s conference, while Linux is a hundred sober and smart well trained Navy Seals each driving a separate armored car in undisclosed locations.

Yes, you can attack the Navy Seals. But if you do that, they’ll make you wanna cry.

We begin with the usual list of things you pretty much always do after installing every Linux OS. Why these things are not automatically done for you on installation is a bit mysterious, but down deep there are generally reasons (legal reasons) for some of these things. In fact, pretty much everything here, with some minor tweaking you can ignore, is the same as for Ubuntu 16. And 15, probably. If you’ve been upgrading to the latest Ubuntu on a regular basis, this might all be pretty automatic for you by now!

Anyway, after installing Ubuntu 17.04, consider these next moves:

Update and Patch Up

Update your operating system by opening a terminal and typing in these things (sudo will cause the terminal to ask for your password).

sudo apt update
sudo apt upgrade

Turn on the “Canonical Parter” repositories. Canonical is the company that makes and maintains Ubuntu. Go to Software & Updates and under the Other Software tab, check off Canonical Partners.

Go to “software and updates” and pick the tab for “Additional Drivers” and pick the graphics drivers that show up there as options, if necessary.

Most people will want to install media codecs so you can listen to, or better listen to, or watch, things.

It is easiest to do this from the command line (the terminal) by typing:

sudo apt-get install ubuntu-restricted-extras

Install Gdebi package installer, which I think is not already installed on this distro. This is a program that installed the contents of “.deb” packages, which you will occasionally (like, in a bout one minute from not likely) download in order to install some programs. Gdebi allows you to right click, or in some other easy way, deploy the package (which will be a folder with stuff in it) to have it all install automatically.

Find and learn to use the software installation system that comes with Ubuntu.

You will want to install the Unity Tweak tool because it allows you to … tweak Unity in ways the system configuration interface does not. Why are all the tweeky configury things not automatially in one place? I don’t know, and this to me is a major failing of the effort to get people to use the Linux Desktop.

Anyway, type this:

sudo apt-get install unity-tweak-tool

Since Unity is will never be deployed with a distribution again after 17.04, that will be the last time you do that!

Install your favorite additional software

The distribution comes with piles of software already, but there are a few things you may want to install because you use them. Use the software installer to do so, or go to the appropriate web site to download the deb file (which you’ll use gdebi to install).

I install Chrome Browser (others install Chromium, but I don’t think that is the best option). Go to the Google Chrome web site to find it.
I use Dropbox, and if you do, go to the Dropbox site and install the latest version.
Skype is installed from the Skype site as well.
I like GIMP image processing. That should be in your software installer center.
I like VLC as a media player. This should be in your software installer center.

______________________
Book suggestions:

Ubuntu Unleashed 2017 Edition (Includes Content Update Program): Covering 16.10, 17.04, 17.10 (12th Edition)

The Linux Command Line: A Complete Introduction

______________________

Refinements

The Unity Tweak tool lets you change how application windows are managed, including minimizing them. Play around with the tweak too.

Go to the configuration panel and select the theme you like, or leave the theme along. I’m kind of beyond changing my theme all the time but it is fun if you are into it, go for it!

Don’t bother

Many will suggest system cleaning and monitoring tools. I don’t think most of these tools do much or provide much information beyond what you can get by using the command line tools that have always been there. Linux is not Windows. It takes care of itself and is not a crybaby. It is much more like a Mac in this way, and for good reasons: Both are Xnix operating systems, in the same family.

A Zapus is a kind of jumping mouse. A Zesty Zapus is the new Ubuntu Linux operating system, 17.04.

It has just been released and has some important features. But Zesty Zapus is not as interesting at the Artful Aardvark, which I’ll discuss briefly below.

Support of 32 bit hardware is waning across the Linux world, and in this release the 32 pit PowerPC is not supported. The 64 bit PowerPC still is, but I would not be surprised if that support dropped in the not too distant future.

There are various other changes deep under the hood that the average desktop user may not care about, including the use of systemd-resolved for the DNS resolver for networking.

Of special interest is that Ubuntu is now not by default using a swap partition. Swap is a place in your hardware, normally on a drive, that the operating system uses as extra memory, so that when you don’t have enough physical memory, the swap can be used. There are two ways to make swap, one is by dedicating a hard drive or hard drive partition to it, the other is having the operating system use unused disk space on your computer for it. In the past it has been considered faster and more efficient to use a partition, but the non-partition option has always been in the background to use as needed and you didn’t have to have a swap partition. Now, Linux seems to be moving away from the partition and using the swap file instead, and Ubuntu will do this by default.

Zesty Zapus uses Linux 4.10. It has “driverless printing” which is a new thing and works for some printers. There are updates to various software included with the distribution, including LibraOffice (now version 5.3, a fairly significant upgrade).

Several if not all of the major “Ubuntu Flavors” are also updated, including the one I prefer, which is Mate (I’ll write about that elwsewhere).

Otherwise, this new release of Ubuntu will act a lot like the previous release.

But that will not be the case with the next release, 17.10, Artful Aardvark. As the alphabetical cycle of release names comes around full circle, so does the desktop paradigm. Ubuntu, controversially to some, not controversially to most, started out years ago using the Gnome desktop. Over time, Ubuntu created the “Unity Desktop” which was meant to unify the user experience across all devices including the as yet to exist and now never going to exist (I think) Ubuntu phone. In my view, Unity was a bad thing, I did not like the way it worked. On the other hand, the main Gnome people for reasons that are still mysterious to me, decided to copy Ubuntu and make Gnome look and act a lot like Unity.

Now, Ubuntu will kill Unity. The next release of Ubuntu will not included Unity, and will instead use Gnome.

So, to install Ubuntu 17.04, which you may not want to do (I’d wait until 17.10 if you want the Gnome interface) go HERE and follow the instructions. It is possible that you can upgrade your current installation to the new release, but if you have a non-Ubuntu OS or an older version, you may need to download an image and reinstall. Then, when you are done, you may want to do these things.

______________________
Book suggestions:

Ubuntu Unleashed 2017 Edition (Includes Content Update Program): Covering 16.10, 17.04, 17.10 (12th Edition)

The Linux Command Line: A Complete Introduction

______________________

There is really no better time to get a Raspberry Pi. The new Raspberry Pi 3 has features that make it much more useful and fun, including more speed, built in bluetooth, and built in wifi.

The Raspberry Pi is a small computer that, out of the box, lacks storage drive or device, a monitor, a screen, or a mouse, but is otherwise a fully functional computer that can run a normal operating system. It costs very little, so if you happen to have a TV or monitor that can use a component or HDMI hookup, a keyboard, a mouse, and an appropriate microSD card, then you have a computer for $39.99. If, on the other hand, you need to buy those parts and the cables and such, then you have a $200 computer (or more) that isn’t very fast but is still cool. Chances are, though, that you have at least some of these parts laying around.

I’ll make some suggestions below as to how to set yourself up (including the option of buying a kit) but first let me say a little more about why you might want to do this.

Why Pi reason one: A kid

Maybe you have a kid in the house who is old enough to start to play around with a computer, but not old enough to not gob all over it, drop it, or mistake it for a bath toy. With a Raspberry Pi, you are not taking a big risk. First, it is cheap and easily replaced, compared to, say, a laptop. Second, if it does end up in the bath, it is probably easier to dry out than a notebook or desktop computer.

When Huxley was about five, I set him up with a Raspberry Pi hooked to an old TV we had laying around. I bought a new keyboard and mouse for it, and that keyboard and mouse has done a lot of good work since. He learned the basics of turning a computer on, turning a computer off, using the mouse, running some basic apps (like Tux Paint), etc.

Over the next year he continued to use the Pi but also graduated to a laptop his grandfather had laying around. It was a Windows laptop, so I wiped it and installed Linux. Huxley is now able to install software using the command line, and he is about as good at word processing as any average person. He’s pretty good with graphics software as well. At school, he’s been learning a watered down version of the iMac, he can use Windows, and he knows more about the Android and iOS operating systems than most. He turned 7 last week. I owe much of his rapid development to the Raspberry Pi. Also, to Linux; If Linux is one of your first operating systems, you will understand more quickly the things you need to know to make computers bend to your will.

Why Pi reason two: impress your friends

So, here’s the scenario. A bunch of your friends get together now and then at a particular coffee shop, or the cafeteria, or perhaps your family gathers at the cabin, or at a favorite vacation spot. Pretty soon everyone pulls out a device. Most have phones, but here and there a laptop being used by someone who needs to get some real work done.

Well, you need to get some real work done too, so you pull out a box of Altoids, plug it into the nearest TV, sign in via your iPad and, using the iPad’s virtual keyboard, get to work.

A Raspberry Pi can be cobbled together with a number of different bits and pieces, including some interesting options for the computer’s case, to make what is essentially a laptop or a funky desktop. It can work as a “headless” server, so you use a different device to access it.

My most elaborate setup involved a super fast USB stick to run the operating system. The microSD is the usual boot device, but I hacked it to hand the boot process over to the faster USB stick and run the computer from there. An HDMI output ran to a small TV. The Pi was hooked directly into the internet via a LAN cord (there is a plug on the Pi). A powered USB hub allowed multiple additional possibilities. A bluetooth dongle gave the device that capability, and allowed use of a mouse and keyboard. Oh, and I overclocked it. That was a Raspberry Pi 2.

The Pi 3 comes with built in wireless and bluetooth, and is faster and thus not so much in need of overclocking.

Why Pi reasons three through infinity: Projects

The Raspberry Pi is, as noted, a basic computer, but it has a number of pins that give the hardware access to outside thingies. These GPIO pins let you hook sensors or actuators directly to the Pi, so you can build things with a brain. In addition, there is the usual serial (USB) interface.

There are two commonly used machines on which a very large number of Do It Yourself (DIY) projects have been based. A home media center. A garage door opener. A weather station. A personal web server. A remote control camera for security or to watch birds or game. A system for turning on and off all your things, including lights. A customized alarm clock. A bitcoin server. Any one of a number of different robots.

One device is the Arduino Uno R3 Microcontroller, or a related card, the other is the Raspberry Pi. If you look around you will find dozens of other circuit boards that do these things, but none of them have the huge support network, gazillion lines of pre-written code, and myriad bits of hardware designed to be added on to make things happen.

The Arduino controller is, frankly, the better choice of machine for many uses. If you need a smartish machine to do one thing, and only one thing, and that thing isn’t too complicated, a Raspberry Pi is probably overkill and might have some downsides. A controller might even be better designed as hardware goes, as it is real time. Say you are building a model airplane and you want a smart device inside it controlling the various things that make it fly. You will be sending signals via radio to the plane. A controller can be set to cycle rapidly through the communications module to see if there are any instructions coming in, then to various sensor or actuator circuits to acquire information or to set the actuators to do things (change speed, etc.). You can be confident in advance that the controller will focus on nothing other than these jobs, and check each of these inputs and outputs several times (a known number of times) a second.

If, on the other hand, you use a computer — any typical computer — with a normal operating system like Linux, OSX, or Windows, then you can’t be as sure. There can be a software based timer set up in the computer that will theoretically go from sensor or actuator to sensor or actuator, checking the communication module for commands every cycle. But those cycles are virtual. If somewhere along the way a backup program was installed to make a copy of a directory and put it on a USB stick every hour, then suddenly your computer is busy doing something else. If updates are automatic on your setup, same problem. Yes, you can configure a system to not do anything you don’t want it to do, but you might not be perfect in you efforts. In other words, having a Raspberry Pi carry out time sensitive mission critical rapid fire acts is like hiring a potentially recidivistic but reformed fox to guard the henhouse. Yeah, it probably works, but if any chickens are missing …

The Raspberry Pi, running a normal operating system, can do pretty much anything any other computer can do, and might in fact, do any of a number of different things while still carrying out the program you wrote to operate the air plane. But the Arduino controller can only do a few things, and you can’t really accidentally have it programmed to send out bulk emails or get your fur coat cleaned while you are trying to control your expensive model airplane.

So, let’s say I want a device in my garage that has a sensor that tells me if the garage door is open or closed, turning on a light on a second device in my house (connected by radio signal) if the door is open, and allowing me to open or close the garage door by pushing a button on that interior device. That would be easy using two Arduino boards, some sort of sensor, a cheap pair of radio communication thingies, and some lights and resistors. (Plus the appropriate way to close/open the door, for which there are several options.)

Say I want to have a device in the garage that senses if the door is open, has a camera that can be used to check out the garage, communicates the status of the door via the internet, and allows me to remotely open or close the door or look at the camera’s image remotely form anywhere on my smart phone. You can totally do that with an Arduino controller, but that will involve adding a lot of parts and raising the cost, and you may be limited in other ways. A Raspberry Pi would be better for this application.

Say I want the device in the garage to have a movable pointable camera, a temperature sensor, a “door open” sensor, a door close/open actuator, and a way to turn on and off the main garage light. But, I want to control all of those functions from the Internet, and I want the same internet interface to also give me the temperature in my house and provide a view from a camera pointing out the front door. I also want the same system to give me access to my Google calendar.

For that, I’d want the Raspberry Pi running the web server, hard wired, perhaps, into my home LAN, and fitted with a Camera Module and a temperature sensor. I the Garage would be an Arduino with a movable camera and all that other stuff, controlled via the Pi that sits in my house.

And so on.

Very elaborate home automation systems have been built using a combination of various Arduino controllers and a Raspberry Pi at the center of it all.

The Raspberry Pi can run any software that normally runs on Linux, if that is the operating system you install (which is probably the case). Most projects that use the Pi as the central brain use Python, which is an all purpose programming language. The Arduino controller uses a form of C, but it is easy to use and for most functions, there is already code ready to use out of the box or with minor changes. The Pi can have huge programs and handle massive amounts of data, if you have a large enough USB stick or microSD card. The Arduino is very limited in space and memory, though it can be attached, with some extra work, to various mass storage devices.

I think you get the idea.

What kind of Pi do you want?

There are four kinds of Raspberry Pi. The Zero, the One, the Two, and the Three. If you are getting a new one, just get the three. It replaces the one and the two. (The Zero is a whole different thing, for advanced users.)

There is also the A vs. B model within these categories. None of that is important. Get the Pi 3 B. THIS ONE: Raspberry Pi 3 Model B Motherboard.

In order to make a Raspberry Pi work, you will need things like a power adapter, a keyboard, etc. You might want to put it in a case. You will need a microSD card with the operating system on it. Since the Pi is a DIY device, the basic unit comes with none of this and you have to figure it all out yourself.

Or, you can buy any one of dozens of available kits that have some combination of some of the basic parts needed. Kits don’t have a monitor, keyboard, or mouse. The Raspberry Pi comes with the rarely used component jack (the yellow round thing on the back of your TV may work with it) and an HDMI output, for video, and several USB sockets. The PI 3 has bluetooth built in, so you can use a bluetooth mouse and keyboard if you want. The kits tend to have the Pi, an SD card often with the OS preloaded, an HDMI cable, a power supply, and a case. Most kits these days come with heat sinks, which are pretty much unnecessary but cool, that you can glue on to the Pi if you want.

I recently got the Vilros Raspberry Pi 3 Complete Starter Kit with Clear Case and 32GB SD Card, which came with the Pi 3 (with WiFi and Bluetooth, as mentioned), a power supply, a 32 GB Class 10 MicroSD card (you will want a class 10 card), a case, an HDMI cord, and two heat sinks. I think that normally lists for $90 but is perpetually on sale for much less.

For the more DIY oriented user, the CanaKit Raspberry Pi 3 Ultimate Starter Kit – 32 GB Edition comes with additional parts that will be helpful in building projects that exploit the Pi’s input/output pins, such as LED lights, hookup wires, and resistors, a breakout cable, and a breadboard. The way the Pi is set up, you will want a breakout system to allow you to mess with electronic components more easily and safely (safe for the Pi, that is, with its sensitive computer circuity). If I was going to give a kit to someone who I knew was going to mess around with the hardware, this is the kit I’d probably pick.

The Operating System, which you can download at the Raspberry Pi site and install on the microSD card, also allows for some options. And, it can be a little confusing.

There is a “system” called “noobs” (for Noobie, I assume) which is the easy way to install Raspbian. Or, you can get Rraspbian sans Noob, which is apparently the hard way to install Raspbian. I’ve done both, but I don’t remember if one is actually harder.

Raspbian is the basic OS for the Raspberry Pi, and it is a Linux distribution based on Debian (get it? Raspberry Pi Debian = Raspbian?)

The Raspbian distribution formerly used LXDE as the desktop, a lightweight, not very fancy, stable desktop. But, recently, the desktop was redesigned to be much sleeker and nicer (but still basic and efficient) and has been renamed Pixel. (Pixel as in Pi-something, but also, named in part after the author’s experiences as a young child playing peek-a-poke in Basic on his IBM clone.)

You can also install a version of Ubuntu Mate. I’ve done that. I don’t recommend it. The Pi is not meaty enough to pretend to be a normal desktop computer when saddled with the extra overhead. Pixel is the way to go. But it was fun to play around with. Another option is the OSMC, or Open Source Media Center, if you want to use the machine as a media center. There are others. I’ve no experience with them, so I can’t tell you much about them. But I can tell you this very cool thing: You put the OS on the microSD, and put the microSD in the Pi, and that is what determines what OS you are using. So, you can swap between operating systems but just swapping cards. How cool is that?

One especially advanced but seemingly widespread use of the Pi is to build a gaming device. You install some software. Then, you install the bios of one or more gaming systems. Then you install the games that go with that gaming system. Obviously, you will only install systems and games that you already own, and not find anyplace on the Internet to download them. Then, you have all those old console games on your Pi. You’d probably buy some game controllers to hook up to that device, and you’d probably run it on your TV.

All the information you need to make all of this work can be found either on the Raspberry Pi site, or at a destination linked to from that site.

fly713vhaq33le0-medium

Raspberry Pi Cases

As noted, you can use the Raspberry pi as a regular, low power but usable, computer and at the same time make a cool case for it. This is a bit like having a laptop that you carry around, but instead of a laptop, it is a box of Altoids. Or some LEGOS.

Instructions to make the Altoids Pi case are here.

Ready-made LEGO cases are here and here.

Strange and wonderful devices

There are a gazillion projects on line that use the Raspberry Pi. Here, I’ll give you just a few examples. Most of the examples use Raspberry Pi 1 or 2 (probably, 2 is the most common) and in most cases you’ll want to use a 3. So, the best way to get good instructions for a project is to look at a few examples and hopefully among them will be one that uses the Pi 3.

Here is a somewhat slow but a good start on a PIrsonal Assistant. You can make this run faster if you tweak it (and use the Pi 3):

Do you know what Tor is? If not, maybe find out. Given the current political climate, it may become more important. Anyway, you can make a Tor Router.

There are many picture frame projects out there. Just search for Raspberry Pi Picture Frame.

Here is a system that controls your lights using voice commands.

If it was me, I’d skip the voice feedback. The detailed instructions are HERE.

At first I thought this Pi controlled espresso machine would be dumb, because really, what can a computer to do make an espresso machine work better. Then I looked more closely at it and realized this is a thing.

Stratux looks interesting. I remember my uncle, a Franciscan missionary who would stop by now and then on his way to this or that remote place, invented something like this back in the 60s. Stratus is a device you use to identify aircraft in your vicinity, using the plane’s ADS-B broadcasts.

I’m not going to point to a particular media streaming project. There are many, many such projects and it all depends on what you want to do. Just do a search for using the OSMC system on Pi. Or, just a simple music streaming machine.

Same with console gaming projects.

People make Minecraft servers. Generally, if there is anything you might like to dedicate a computer to, that is on all the time, the Pi may be the way to go. It is very low power demanding, and cheap enough that you can dedicate this card to that one purpose, leave it running, and give it just enough maintenance to keep it from being coopted by nefarious hackers.

A print server, a file server, a local web server for your own uses, a system that puts your google calendar or other stuff on a TV screen (or other screen) for your convenience. Each of these idea has 20 or 30 iterations out there.

I hear someone is working on an “Election Converter” that runs on a Raspberry Pi 3. I’d send you a link but the instructions are written in Cyrillic.

Andy Lee Robinson started the recent trend of making compelling graphics about climate change that move. He did a version of the Arctic Ice Death Spiral (a term coined by Joe Romm), which was highly acclaimed but that did not go as viral as it should have at the time. Then, a version with additive ribbon graphs about three years ago. He called that the “waterfall diagram” and it was picked up and used by the BBC at the time. Not long after, he came up with the disappearing block of ice motif. And now, Andy has an updated version, here:

This is ice VOLUME, not the oft cited surface area. Surface ice will always reform and melt in the Arctic, but long term there used to be a lot of thick ice that never melted during the summer. This long term thick ice would survive the summer melt, and allow new winter time surface ice to form more easily each year. As that ice disappears from various coastal areas in the high Arctic, new winter surface ice takes longer to get going.

The first version of this graphic, using ice blocks, was requested by Joe Romm, for Think Progress, in 2013, and appears here. Joe just wanted two ice cubes, side by side, and that is what Andy provided.

But Andy got thinking about the presentation of this very important climate change related metric. “After a while I thought it would be a nice challenge to try to animate it,” he told me. “To accomplish this, I started from the same camera angle, zooming in, following the line to the minimum and then returning to the original location. This required a way to create hundreds of script files to describe each frame.”

Andy told me that he is fluent in Perl, so he used that to calculate parameters for the objects he wanted to manipulate and substitute them in a povray script template. “At a resolution of 1920×1080, it takes between 15 minutes and 2 hours to make one, depending on what computer is working on it. I wrote spline and easing routines to calculate the smooth motions of the camera and cube sizing, and to interpolate the progression of the graph series.” The MySQL is a shared database that each server has access to, in order to check out a frame, render and return the results over NFS to a shared directory.

“The same perl program is run on each server and therefore knows which frame to render next, and after a few days the finished frames can be assembled together using ffmpeg with music, in a wav file.”

Andy, who is a gifted musician, composed the music himself.

“This uses 8 machines in total, including a linux laptop at 2 hours per frame! It was very painstaking work, writing all the code and parameters, but once done the images can be replicated automatically as new data appears. If only it would pay the rent!”

The history of what we call “OpenOffice” is complex and confusing. It started as a project of Sun corporation, to develop an office suit that was not Microsoft Office, to use internally. Later, a version became more generally available known as Star Office, but also, a version called “OpenOffice” soon became available as well. The current histories say that Star Office was commercial, but my memory is that it never cost money to regular users. I think the idea was that large corporations would pay, individuals not. This was all back around 2000, plus or minus a year or two.

In any event, the Open Office project built two things of great importance. First, it made a set of software applications roughly comparable to the key elements in Microsoft’s Office Suite, including a word processor, a spreadsheet, a presentation app, and, depending, something that draws and something that relates to databases.

The second thing it did was to create and develop an important open source document format.

But, believe it or not, in the world of software development and programming, even in the happy fuzzy world of OpenSource, there can be fights. And, not just the fun and tongue in cheek fights over which religion you are (vi vs. Linux). These fights often involve differences in points of view between megacorporations that get involved in OpenSource projects, and the unwashed masses of programmers contributing to such things. The majority of code is written and maintained by corporations, much of that in the hands of a very small number, but the contributions from individuals not linked to corporations is extremely important.

In the case of OpenOffice, the tensions were between the broader Office-interested development community and big corporations shifted in 2010 when Sun corporation which had always been involved in OO development, was purchased by Oracle Corporation. Oracle has not been friendly to OpenSource in the past, so the wider community freaked. There is a side plot here involving Java, which we will ignore. Oracle didn’t end up doing anything clearly bad against the OpenOffice project. But, they also ended up not doing anything good, either, which is essentially a death sentence for a project like this. Later in the same year, an organization called The Document Foundation was created and took on the job of forking OpenOffice.

Forking is where a given lineage of software is split to create an alternative. Sometimes this is to bring some software in a different direction, perhaps for a more specialized use. Sometimes it is a way of resolving conflict, much as hunter gatherers undergo fission and fusion in their settlement patterns, by separating antagonists or putting a distinct wall between antagonistic goals. In this case, while the latter is probably part of it, the main reason for the fork and its main effect was to get the project under the control of an active development community so work could be continued before the project stagnated.

That fork became known as LibreOffice. For some time now, it has been recommended that if you are going to install an OpenSource office suite on your Windows, Linux, or Apple Computer, it should be LibreOffice.

One could argue that the OpenOffice suit or its analog (earlier, Star office, later the LibreOffice fork) is the most important single project in OpenSource, because an office suite is a key part of almost all desktop computer configurations. Of course, most servers don’t need or require an office suite, and there, web servers and database servers, and a few other things, are more important. But to the average end user (in business or private life) being able to open up a “Word Document” (a term misapplied to the category of “wordprocessor document”), or to run a spreadsheet, or to make a presentation, etc. is essential, and that is what an office suit provides. OpenOffice was comparable to Microsoft Office, and now, LibreOffice is comparable to Microsoft Office. By some accounts, better, though many Microsoft Office users have, well, a different religion.

Now, it is being reported that the mostly ignored, maligned by some, historically important yet now out of date OpenOffice project is about to byte the dust. As it were.

Dennis Hamilton, VP of the group that runs OpenOffice, “… proposed a shutdown of OpenOffice as one option if the project could not meet the goals it had set. ‘My concern is that the project could end with a bang or a whimper. My interest is in seeing any retirement happen gracefully. That means we need to consider it as a contingency. For contingency plans, no time is a good time, but earlier is always better than later.'” [Source]

Approximately 160 million copies of LibreOffice have been downloaded to date. The closing of the OpenOffice project, should that happen, will probably have little effect on LibreOffice, since most people had already walked away from the venerable old but flawed grandaddy of OO Suites.

This is one of four related posts:

Should You Install Ubuntu Linux?
Installing Ubuntu 16.04 LTS
How to use Ubuntu Unity
Things To Do After Installing Ubuntu 16.04 LTS

Some Linux/Ubuntu related books:
Ubuntu Unleashed 2016 Edition: Covering 15.10 and 16.04 (11th Edition)
Ubuntu 16.04 LTS Desktop: Applications and Administration
The Linux Command Line: A Complete Introduction

If you have already considered your options for installing Linux, done the installation, and learned your way around the Unity Desktop, then you are ready to tweak your system. This will be easiest if you use the terminal for several of the steps. Just copy and paste the lines I give you here. Note that in Linux, unless you change it, to paste into a terminal you hit shift-control-v, not just control-v.

Most of these commands start with the word “sudo.” This is because these tweaks change the software or the operating system, and Linux needs to know that the person in charge of the computer is doing that. Start a command with “sudo” and after you enter the command, you will be asked for your password. Enter the password, hit Enter, and you are good to go. If the next time you use “sudo” is soon enough, you won’t be asked for your password.

There is one other thing you might want to know so the rest of this makes sense.

Software, applications, apps (three words for the same thing) typically come in “packages.” A package is a bunch of stuff that includes information on what needs to be installed to make a piece of software work, what needs to be done to let the system know it is there, etc.

Packages live in repositories, and they live on the internet. (They can also live on a DVD but that is rarely done for the average user … there were in fact packages on your installation DVD but that’s the last time you’ll probably use DVD or USB stick based packages.)

Your computer, after installation, is set up to know about certain repositories. This is the great advantage of using Ubuntu or many of the other major distributions. You get that distribution’s repository, and the packages stored there are carefully maintained and secured. Installing off a major repository like this means no viruses, malware, “freeware” or other junk will get onto your computer. It also means that when you issue a general update command, your computer visits the repository and updates all of your installed software based on whatever is new or changed in the repository.

During the following process, you will likely add some new repositories to your computer’s database of repositories. Just follow the instructions. But note, in order for an added repository to be known about, you add it, then you update the package system. Again, just follow the instructions.

It is also possible to install software using a downloaded package. In the case of Ubuntu (or any debian based Linux distribution), these are files with the “deb” extention. If you have the right software installed, you should be able to just double click on a deb file and pick an option to install it. I include an example or two of that process in with the tweaks below.

Finally, as you will see, there are several different software interfaces to this installation system. For the most part, you can install anything from the available repositories using the Ubuntu software center. But the Ubuntu software center is one crappy piece of software, in my opinion. It looks slick, but is slow and clunky and frustrating.

There is a system that works better (it is more responsive) but harder to use (because it does not hold your hand much) called synaptic.


Check out:

<li><a href="http://gregladen.com/blog/2017/03/ubuntu-linux-books/">UBUNTU AND LINUX BOOKS</a></li>

<li><a href="http://gregladen.com/blog/2017/03/books-computer-programming-computers/">BOOKS ON COMPUTER PROGRAMMING AND COMPUTERS</a></li>

___________________

But generally, the smoothest, quickest, easiest way to install most software from the repositories that your computer is aware of is with the command line, using the command “sudo apt-get install bla-bla-bla.” As shown below many times.

So, now, on to the tweaking.

1. Make the terminal program handy

First, open a terminal. You may have already placed an icon for the terminal on the Task Panel; if so, click that. If not, hit the “super” key (the Key Formerly Known as the Windows Key) to bring up the Unity dash. Then, type in “terminal” and choose the icon for the terminal program.

Now that the terminal program is running, you’ll see it in the Task Panel. If you’ve not already locked the terminal icon to the Task Panel, right click on that icon, and opt to have the terminal icon always be in “the launcher” even if it is not running.

2. Update the software and operating system you just installed

Even if the system was updating while installing (that was an option you had during the install), there are probably still some things that need updating. If you have not done so yet, type or copy/paste this into the terminal (shift-ctrl-v to paste in a terminal) and hit enter:

sudo apt-get update

You will be asked for your password. Type it in and hit “enter.”

If you are asked a question with a “Y/n” answer, type in “y” and otherwise follow any obvious instructions.

The updated command is a quick and dirty way of making sure that the software you have installed is updated. Chances are that when you do this after install, almost nothing will happen because little or no software will be ready for an upgrade.

When all the gobbledygook is done in the terminal, type in:

sudo apt-get dist-upgrade

The dist-upgrade command will, in short, do a more thorough job of updating the things that are installed on your sy stem (it does not upgrade you to a new distribution, it just updates the software with more awareness of what the distribution specifies in terms of packages and interrelations between packages). The details are not too important. What you need to know is that “apt-get update” is quick and useful, and “apt-get dist-upgrade” will take much longer to run, but do a much better job of updating things and cleaning up after itself, and should be done now and then.

If you are asked a question with a “Y/n” answer, type in “y” and otherwise follow any obvious instructions.

These steps can be fast or slow, depending.

3. Make installing software easier

First, enable the Canonical Partners’ Repository. This will allow you easier access to some software. A repository is where software lives, and your installation programs know about only certain repositories, and ignore others.

Open System Settings (on the Task Panel, the gear and wrench icon)
Click on “Software and Updates”
Go to Other Software tab.
Click the check box for “Canonical Partners”
You may be asked for your password.
You will be asked to “reload” the repository info. Do that.

There are a couple of applications for installing and updating software, and you can have fun with them, but two tools that are really helpful that Ubuntu mysteriously does not install by default should be installed now. One is called “synaptic” and it is a menu drive graphical interface to your repositories, the other is gdebi, which allows you to install software that comes to you via download in a “deb” package.

sudo apt install synaptic
sudo apt install gdebi

If asked to choose Y/n at any point, choose Y

4. Install Linux graphics drivers

This may not be important, or it may be, depending on your hardware. So just do it and see what happens!

Unity Dash >>> Software & Updates >>> Additional Drivers

Do whatever it says there to install any graphics drivers that may be available.

5. Allow Workspaces To Work

I have no idea why a Linux distribution would not have work spaces right there in your face by default, but Unity seems not to. Workspaces is one of those desktop things that makes non-Linux users go “wow, that’s cool, now I want Linux!”

A workspace is a desktop, and multiple workspaces are multiple desktops, on which one or more applications are running. Macs have something like this now (stolen from Linux, but implemented poorly). The Linux implementation is better. You smoothly sail between desktops with Ctrl Alt Arrow Keys, and Linux does not randomly make new desktops for you like a Mac does.

System Settings >>> Appearance >>> Behavior

Check the box to enable workspaces, and the box to Add show desktop icon to the launcher.

6. Install Java

Java is required for running many application’s on Linux platform, So should install java using these three commands in sequence (one at a time).

sudo apt-get install default-jre

7. Fix app menu problem

One of the bad things about Unity was to cause application menus to become invisible and to not be on the application. If you want to see the menus where they belong, you can fix that.

System Settings >>> Appearance >>> Behavior tab >> ‘Show the Menus for a Window’

Check ‘In the window’s title bar’
Check ‘Always displayed’

8. Classic Menu

One of the things I miss most from an old fashioned Gnome 2.0 style desktop is a simple menu, with submenus, that includes all the software installed on my system. To me, this is really important.

And, solvable. We can add a Gnome 2.0 style menu thingie to the app panel in Unity.

sudo apt-get update
sudo apt-get install classicmenu-indicator

You will have to log out and back in again for the menu to show up. Use the gear icon in the far upper right of the screen to log out/shut down, etc.

9. Show Your User Name On The Top Menu Bar

It may be useful to show your user name on the Top Menu Bar (the strip along the top of your screen). Here is one way to do that, using the terminal.

gsettings set com.canonical.indicator.session show-real-name-on-panel true

If you want to turn this back off, do this:

gsettings set com.canonical.indicator.session show-real-name-on-panel false

10. What about Adobe Flash? And Therefore, Chrome?

This is complicated. Flash turns out to be something of a nightmare. Perhaps it was a good idea at the time, but increasingly developers and such are avoiding using it. But you probably need Flash now and then, but almost always in a browser window. So, the way to handle this is to use Google Chrome as your browser. Not Chromium.

The Firefox browser is installed by default in most Linux distributions. This is cultural, maybe even political. Firefox as a piece of software, and an organization, has been central to the development of OpenSource software, so it is sort of worshiped. I recommend ignoring it. So, when you get to the part below about installing Chrome, do that.

If you google “how to install Google Chrome on Linux” you get this:

  • Click Download Chrome. Go here to do that.
  • Choose either 32 bit .deb (for 32bit Ubuntu) or 64 bit .deb (for 64bit Ubuntu)
  • Click Accept and Install.
  • Download .deb file to a folder (Downloads is the default folder)
  • Open up your Downloads folder.
  • Double-click the .deb file you just downloaded.
  • This should launch Ubuntu Software Centre.

NOTE: Google often updates its method of installing. I just installed Chrome and it took fewer steps than indicate above. If you’ve already installed gdebi (as suggested above) this will be very quick and automatic.

You will be asked if you want to make Chrome your default browser. I recommend doing this. Then, run Chrome and lock the icon to the Task Panel, because you will probably be using it a lot.

11. Install Dropbox…

… if you use Dropbox.

sudo apt install nautilus-dropbox

Then simply launch Dropbox from Unity Dash and follow the instructions.

An alternative method for installing Dropbox:

wget https://linux.dropbox.com/packages/ubuntu/dropbox_2015.10.28_amd64.deb

This uses the wget command to go on the internet and download a part of a web site, in this case, a file on the web site. This may not work if they changed the name of the file, but this is currently the correct name.

After downloading the package, install it using the previously installed deb package application:

sudo dpkg -i dropbox_2015.10.28_amd64.deb

12. Install VLC

Linux, and in this case, Ubuntu, comes with various multimedia playing software, but generally not with VLC, which is a very good piece of software. If you want, you can install it this way:

sudo apt-get install vlc browser-plugin-vlc

13. Install Gimp Image Editor

GIMP stands for “GNU Image Manipulation Program.” It is an OpenSource pixel-based image manipulation program for photographs, drawings, etc. In the old days, it was included in most Linux distributions but no longer is. If you want to install it:

sudo apt-get install gimp gimp-data gimp-plugin-registry gimp-data-extras

14. Install A Junk Cleaner (Bleachbit):

I’ve not used Bleachbit. But everyone seems to like it, and you might want to try it out. It cleans up internet histories, destroys temporary files, and other junk that tends to accumulate on your system.

Linux is not like Windows (or at least, like Windows was in the days I used it). It does not accumulate a lot of junk to the point where it slows down and stops. But it can accumulate some junk, and apparently, Bleachbit helps take care of this.

I’ve decided to remove the recommendation to install bleachbit. As I already suggested, Linux is designed in such a way that the things a clean-up program like bleachbit does are unnecessary. I suspect bleachbit is a bit like Linux based ant-virus software, something that former Windows users want to see, because such kludges are necessary in Windows.

So skip this step (I deleted the code for installing it anyway).

15. Install Skype…

… if you use it.

sudo apt-get install skype

16. Install the Unity Tweak Tool

You can configure, tweak, and generally mess around with your Unity Desktop using the installed System Settings and various esoteric bits of software, but if you install the Unity Tweak Tool you will probably find most of what you want to do, and more, there.

sudo apt install unity-tweak-tool

In the unlikely event that you end up messing up Unity with all your crazy tweaking….

…you can reset unity like this:

sudo apt-get install dconf-tools
dconf reset -f /org/compiz/
setsid unity
unity --reset-icons

Have Fun

Now, you know how to install software in Ubuntu, and generally, in debian based distributions, and you have some experience with the command line.

What you can do now is explore all the software that was automatically installed on your system, such as Libra Office (which stands in for Word, Excel, Power Point, etc) and all sorts of other cool stuff. If you installed the traditional style menu applet as described above, that is a good way to explore around among the available software offerings.

From now on, every now and then, run

sudo apt-get update

and

sudo apt-get upgrade

Also, on the standard Ubuntu distribution, there is a semi-automatic software updater that will remind you to update software now and then, or that can be set to do it automatically. I don’t like setting it for automatic on a laptop, but maybe on a desktop.

This is one of four related posts:

Should You Install Ubuntu Linux?
Installing Ubuntu 16.04 LTS
How to use Ubuntu Unity
Things To Do After Installing Ubuntu 16.04 LTS

Some Linux/Ubuntu related books:
Ubuntu Unleashed 2016 Edition: Covering 15.10 and 16.04 (11th Edition)
Ubuntu 16.04 LTS Desktop: Applications and Administration
The Linux Command Line: A Complete Introduction

If you have installed Ubuntu with the Unity desktop, you’ll learn how to use it mainly by playing around with it. Discoverability of its various functions is more or less built into the design. But there are a few things you will want to know right away in order to get up to speed efficiently.

The first thing you need to know about the Unity desktop is that the words people use for the various parts are all over the map. I’ll try to be consistent in my own use of terms, but if you read about Unity in other places, you may need to know, for example, that the “Task Panel” and the “Launcher” and the “Dock” are the same thing.

Task Panel (Launcher, Dock)

So, let’s start with the Task Panel (aka Launcher, or Doc). This works much like the doc on a Mac, but placed by default on the left side of your screen, which makes sense for wide screens. The Task Panel has a bunch of icons on it by default. You can remove or add icons as you wish. Most or all of these icons represent software you can run but that is not running now. This is your handy dandy way of running your most commonly used software (apps, applications). Just click on it and it will go.

Once an application is running, it will have a little thingie on the icon indicating that this is an active application. More than one instance (window, etc.) of an application running will cause the icon to have a slightly different look, and when you click on it you will see small versions of all the windows that are open, so you can pick the one you want to use.

You can quickly switch between applications by clicking on the icons of running applications.

If you start an application from somewhere other than the Task Panel, an icon for that application will normally be added to the Task Panel. This is your chance, using right clicking, to tell Unity to keep that icon on the Task Panel, for easy access, even after you shut that application down. Obviously, there is only so much room on the task panel for icons, but you can scroll up and down. You can also make the icons smaller, which will allow more to fit. But really, you should only keep the half dozen or so applications you use most of the time on the task bar.

Right clicking on an icon, as noted, gives you the option to lock it to, or unlock it from the Task Panel (but that menu item will call it a “launcher.”) But depending on the application, you may have a number of other choices. For example, clicking on the file manager will give you a list of commonly used (according to Unity’s designers) folders you may want to open.

The Dash

The top icon on the Task Panel opens the Dash. You can also open the Dash by pressing the Super Key (the key formally known as the Windows Key).

The Dash is a big giant square thing that comes flying out of the Dash Icon. there is a space on the top that is clearly for searching for things. A common use of the Dash is to open it, and then you start to type in the name of an application. The Dash will show you an ever-narrowing set of choices which you can pick, or, when you end up with only one choice, you just hit enter and that application runs.

If you have just installed Ubuntu and haven’t done any of the recommended tweaks, try this: Open the dash, and start typing in “terminal”. Once you see the terminal application as your choice, hit enter (or click on it). Now, the Terminal icon is on your Task Panel. Right click on the Terminal icon and lock it to your Task Panel. Once you are set up and using Ubuntu a lot, you may find that you rarely use the terminal, but when you are first installing and tweaking the system, you’ll find it handy to have this icon readily available.

The Dash has many other powers. It can show you recent files, recent downloads, recently used apps, etc. Searching for apps is pretty smart. Terms that are not in the name of the application but that suggest the application might (depending) show you an icon for the application. For example, the search term “Network” will get you several choices including the “System Monitor,” because the System Monitor monitors, among other things, the network.

The Dash has what are called “Lenses.” See the bottom of the Dash to find the “home” lens, the “applications” lens, etc. If you select the “music” lens, you see, and search will search among, the music files in your music directory.

Workspaces

Workspaces are one of those features of early Linux desktops (before Unity) that makes you look at Linux and go “I want that!!!” This idea has been implemented over the ages in Windows and other systems, with varying degrees of success or longevity, but it was originally implemented in Linux in a way that really works. It is now part of the Mac operating system, though that implementation is rather poor, in my opinion. But it was always there in Linux.

See this post on tweaks if your workspaces are not turned on. But if they are, there should be an icon in the Task Panel, near the bottom, which is a workspace switcher.

Here is what a workspace is. Imagine that you open three or four applications and have the windows all visible. That is a workspace. Now, you switch to a different workspace, and those windows are now not visible, because they were on the other workspace. You now have a clean workspace. You can now open other applications (or more instance of the same ones) on this clean workspace. Switching between workspaces allows you to have a handful of applications running and organized on the screen like you want them, but then, you can go to a different workspace and do entirely different work.

For example, I might have a file manager opened to a particular subdirectory, and a text editor or two, for a writing project, on one workspace. On a different workspace, I have an email client, and a web browser with a tab showing Facebook and another tab showing Twitter. I can ignore the email and social networking while I write, but now and then take a break and go over to the other workspace and screw around on social media and check my email.

Workspaces are a great way to pretend you are being very efficient!

When you hit the Workspace Switcher button you get a view of all your workspaces, and can chose among them. You can even drag open applications between workspaces. (And, by the way, you can configure a particular application to always be visible on all workspaces, and otherwise tweak the whole workspace thing quite a bit.)

But, there is a better way to switch between workspaces …

Hotkeys and shortcuts

This is a good point to talk for a moment about hot keys and shortcuts. There is a lot here but I’ll only mention a few features, starting with workspaces.

In Linux, generally (most desktops) including Unity, you usually move between workspaces by holding down the Alt and Control keys and then manipulating the arrow keys. Also, Alt-Tab moves between windows open on a given workspace. Try alt-tab then hold those keys down for a bit longer, and even more magic happens. So, between these two sets of shortcuts, you can move between all your different work thingies really efficiently.

There are a lot of shortcut keys available in Unity. To find a cheat sheet of these keys, press the Super Key and hold it down for a moment. The cheat sheet will appear in the middle of the screen.

All hotkeys and shortcuts can be changed and reconfigured, and you can add shortcuts that don’t exist until you think them up and figure out how to implement them. This is beyond the scope of this post, but you can play around with it later.

Top Menu bar and Application and System Indicators

Unless you’ve been living in a command line cave, you already know about Application and System indicators. In Unity, they are located on the Top Menu Bar. Just play around with them. If you click the time/date, you get a little calendar popout. You can see if you are connected to the internet, and what your volume is turned to. Depending on what software is installed, you may see the temperature at your local weather station, or an indicator telling you that you have new mail.

By default, in Unity, application menus, the menus that go with a specific program, are invisible unless you approach them with the mouse, and then they appear. But they are not located on the application itself, but rather, on the Top Menu Bar. See this post for instructions as to how to move them to the applications and make them not invisible.

Also, at that link, you’ll find instructions for installing a very cool applet to the Top Menu Bar which will give you an old fashioned menu showing, organized hierarchically, all the software that you have installed on your computer. This is how I usually run software that is not on the Task Panel.

Now, play

That’s all the important stuff you need to know right away. There’s more, but you’ll discover it over time. You can go to system settings, and to the various system setting tools suggested here to do things like moving the Task Panel to the bottom of the screen, changing your wallpaper (the image on the desktop) and choosing whether to show icons for hard drives or plugged in devices, the trash can, etc.

This is one of four related posts:

Should You Install Ubuntu Linux?
Installing Ubuntu 16.04 LTS
How to use Ubuntu Unity
Things To Do After Installing Ubuntu 16.04 LTS

Some Linux/Ubuntu related books:
Ubuntu Unleashed 2016 Edition: Covering 15.10 and 16.04 (11th Edition)
Ubuntu 16.04 LTS Desktop: Applications and Administration
The Linux Command Line: A Complete Introduction

Linux isn’t for everyone, so I’m not going to try to talk you into using this superior operating system if you have some reason to not do so. But if you have a computer that runs Windows, it isn’t that hard to install Ubuntu. The main advantages of doing so are 1) You get to have a Linux computer and b) you get to not have a Windows computer.

Here, I have some advice on installing Ubuntu (this is general advice and applies across many versions).

How to install Ubuntu

If you are going to try Linux, I recommend installing Ubuntu’s latest version, which is Ubuntu 16.04 LTS Xenial Xerus.

A Linux distro (the specific version of Linux you install) includes a specific “desktop,” which is your user interface and a bunch of tools and stuff. The default Ubuntu desktop is called Unity. If you’ve never used Linux before, you’ll find the Unity desktop to be very good, especially if you tweak it a bit. If you have used Linux before, you may prefer a different style desktop. For me, I preferred the older style “Gnome 2.0” style desktop. The differences are cosmetic, but I happen to like the cosmeticology of the Gnome style better.


Check out:

<li><a href="http://gregladen.com/blog/2017/03/ubuntu-linux-books/">UBUNTU AND LINUX BOOKS</a></li>

<li><a href="http://gregladen.com/blog/2017/03/books-computer-programming-computers/">BOOKS ON COMPUTER PROGRAMMING AND COMPUTERS</a></li>

___________________

What I liked most about the older style desktop is the presence of a menu that had submenus that organized all the applications (software, apps) installed on the system. I also prefer the synaptic system for installing new software over the Ubuntu “Software Center.” But, there is a menu that can be installed in Unity that serves this purpose, and it is easy to install synaptic installation software as well. So, even as an old time Gnome 2.0 guy, I have decided to go with Unity.

There are many forms of Linux out there, and one of the best maintained and well done versions is called debian. Ubuntu bases its distribution on debian, but modifies it in ways that are good. The most current version of Ubuntu is therefore the version of Linux that is most up to date but at the same time stable, and the best supported. This situation has developed to the extent that people are now often using, incorrectly but harmlessly, the term “Ubuntu” to mean “Linux” with the assumption that the Unity desktop is the primary desktop for Linux.

So, how do you install Linux, in the form of Ubuntu, on your computer?

Should you install Linux along side Windows (dual boot)?

If you just want to install Linux on a computer, where Linux will be the only operating system, skip this section.

The first thing you need to decide if if you want a dual boot system or not. Say you have Windows installed on your computer. If you make this a dual boot computer, you install Linux along side Windows. Then, when you fire up your computer you chose which operating system you want to use.

This may sound like a good idea, but I strongly recommend against it. It adds a significant layer of complexity to the process of installing the system. Also, things can go wrong. A normal single-boot installation of Linux will usually give you no problems, and it will be more stable as an operating system than any other operating system out there. But things can go wrong with dual booting which could drive you crazy and, depending on your hardware and a few other things, may cause you to unexpectedly lose the ability to use your computer.

Dual booting and partitioning are related operations, because in order to dual boot you will have to mess around with partitioning. How you do this will depend on whether or not Windows is already installed on your computer.

There are people who will tell you differently, that dual booting is harmless and fun and good. Those individuals are unique, special individuals with the ability to solve complex problems on their computers. They may have good reasons to have dual boot systems. In fact, many of them may have several different operating systems installed on one computer. This is because, as a hobby or for professional reasons, they need to have a lot of different operating systems. Good for them.

I recommend that if you are not sure if you want to use Linux, don’t install it along side Windows, but rather, find an extra computer (or buy a cheap used one somewhere), install Linux on it, and if you find yourself liking Linux more than you like Windows, go ahead and install Linux on your main, higher-end computer and be done with it.

Using two partitions is a good idea for some

As with dual booting, I recommend that the first time Linux user skip this idea entirely, but here are some thoughts on it in case you are interested.

One of the great things about Linux is that it uses the concept of a home directory. The home directory is a directory associated with a particular user, one for each user of the system. In most cases, a desktop or laptop computer has just one user, you. But you still get the home directory. (Apple’s OSX uses this system as well.)

This means that your data, configuration files for software, and all that stuff, ends up in one single directory. So, in theory, if you decide to install a whole new version of Linux, all you have to do is copy all of the contents of your home directory somewhere, install an entirely new system, then copy all that stuff into the new home directory and it is like you never left.

This also means that you only have to back up your home directory. Installing software on Linux is so easy that you really don’t have to back any of that up. By backing up your home directory, you are also backing up your settings and preferences for most of that software, so if you reinstall it, the software will figure out how to behave properly.

One method people use is to make a partition for their home directory and a separate partition for the system. You can think of a partition as roughly equivalent to a hard drive. On a simple system, the hard drive has one petition (that you need to know about … there are other specialized partitions that you don’t interact with). But you can divide (partition) the hard drive into multiple parts, put your operating system on one, and your data (home) on the other. The operating system, if you are running Linux, can be fairly small, while your data directory, in order to hold all those videos you take with your smart phone and your collection of cat picture, needs to be larger.

There is also a third partition you can make, called the swap partition. This is a separate dedicated part of your hard drive that the operating system uses to put stuff that won’t fit in RAM (memory). If you don’t have a dedicated swap partition, Linux will use another parittion for this purpose. It is probably slightly more efficient to have a dedicated swap partition, but with a reasonably fast computer with a good amount of ram, you probably won’t know the difference.

You can totally skip the separate partition thing and have Ubuntu put everything on one partition. The advantage of separate partitions are not worth the effort if you are not comfortable playing around with partitions. But, if you do, 10 gigabytes will comfortably hold the operating system, and the swap partition should be something like 5 or 6 gigabytes. The rest should be your home directory.

Simply installing Ubuntu on a computer.

There are two major divisions of operating systems for regular computers: 32 bit and 64 bit. If your computer can run a 64 bit operating system, and most made any time recently can, then you should install the 64 bit version of Ubuntu. You need to know that 32 bit operating systems are becoming a thing of the past, so, in fact, some software is no longer developed to run on such systems.

Due to an historical quirk, the 32 bit version of Linux is often has the word “Intel” in it, while the 64 bit version of Linux generally has the word “AMD” (a competitor of Intel) in it. This does not mean that you have to have an AMD processor in your computer to run the 64 bit system.

There are other forms of Linux that run on other processors. I’m assuming you have a typical run of the mill desktop that normally would run Windows, so it is probably an Intel or AMD 64 bit machine.

You should have three things handy in order to install Unbutu on a computer where it will be the only operating system.

1) The computer

2) Installation media that will fit in your computer, such as a CD, DVD, or a thumb drive

3) An internet connection that works

You can get the installation media by going to the Ubuntu site and downloading a file from Ubuntu and putting it on a medium of some sort.

When you are looking for the file, look for “Ubuntu Desktop.” There are other versions of Ubuntu, don’t use those. The current version is Ubuntu 16.04 LTS.

This page has the download materials and provides good guidance.

To do a clean install with a DVD, download the operating system from that link. The file will be called something like “ubuntu-16.04-desktop-amd64.iso”. The “iso” part means that it is a disk image that you will want to burn onto a DVD using a working computer.

This download took be about five minutes on a medium-fast Internet connection.

You then burn the iso image onto a DVD or USB stick.

Using a DVD

In Windows, you right click on the iso file and pick “burn disk image” and follow the instructions.

On a Mac, use “Disk Utility.” Insert the blank DVD and drag/drop the .iso file onto the left pane of the Disk Utility. Select it, and click the “Burn” button. Follow the instructions.

In Linux, insert the DVD or CD into your computer and if you are lucky a window will pop up asking if you want to burn the disk. Otherwise, run Brasero and follow the instructions to put the iso image on the disk.

Now, here comes the slightly tricky part. You want your computer to boot off of the DVD/CD drive. (Which, by the way, can be an external USB device if that is what you have.)

So, first, put the CD or DVD into the computer, turn the computer off properly, then turn it on. It might just boot off that disk and you are good to go.

But, just in case, watch your computer screen as the computer is booting up. Note any message that gives the name of a function key and tells you what it does. It may say something like “F2 = boot order” or “F9 = configure bla bla bla” or words to that effect.

If the computer did not actually boot off of the disk you inserted, turn it off again, and start it again, but as it is booting up press the function key that should get you to either boot sequence or configuration.

Using the arrow keys (the screen will give you info on what keys to use) find the part that shows the boot order. If your computer ignored the boot disk you inserted, you probably have “Internal Hard Drive” as the first place to boot from. But you should see other options down below. Using the arrow keys and other keys as suggested by the instruction on the screen to move the DVD drive, or whatever device you want to boot from, to the top of the list. Then save the configuration (i.e., with F10, or some other method … it will tell you on the screen) and exit out of the configuration thingie.

You may then have to restart one more time, but your computer will boot from the DVD and will actually start to run a mini version of Linux set up to help you install the operating system on this computer.

Using a USB

You can also boot from a USB thumb drive. You may have to make your computer boot first from the USB drive instead of an internal hard drive (see above) and, of course, you will have to make a bootable USB stick.

You need a USB stick with at least 2 gigs of space and that doesn’t hold anything important.

Then, if you are using Windows, install the Rufus USB installer. Run that program and follow the instructions to make a bootable USB drive. You’ll be using the same iso image you previously downloaded.

If you are using a Mac, install the UNetbootin utility and use that to make the bootable USB stick.

Insert the USB drive before you run UNetbootin, or UNertbootin may not recognize the USB you insert later.

Since this will be “unconfirmed software” open it by finding it in the finder (the actual finder, not a finder replacement or any other method), control-click on the icon for the software, and select “open.” You will then be asked to confirm that you want to open it. Say yes. You will likely be asked for your password. Enter it.

Also, no matter what system you are using, make sure to “eject” the USB stick properly.

The installation process.

Note: It is possible that your computer will give you some sort of text-based menu when you boot off the USB or DVD drive. Just go with the default, and let the process continue until you get what looks like a normal graphical user interface that is, actually, a temporary Linux operating system running on your computer.

Also note, that during the install process, if you need to enter any numbers, there is a good chance the “numlock” button is turned off. You can, of course, turn it on.

If, as recommended, you are going to make your computer a Linux computer and not bother with a separate petition for home, swap, etc., then the rest is simple. I assume you have no data on this computer that needs to be backed up or saved. Indeed, you may have installed a new clean hard drive which is empty anyway.

You have inserted the boot medium, you taught your computer to boot off of it, you’ve restarted your computer, and now you are looking at a welcome screen that gives you two options: Try Ubuntu and Install Ubuntu.

If you pick “Try” then you now have a Linux operating system temporarily running on your computer and you can play with it. I’m not sure why you would bother with this.

If you pick “Install Ubuntu” then you have a series of easy tasks to perform, mostly picking the defaults.

Make sure to pick “Download updates while installing” and “Install third-party software for graphics and Wi-Fi hardware, etc. etc.”

If your computer is not currently logged into a network, you will have the option of doing so. Do so. You want to be hooked up to the network in order to download updates and stuff during installation.

Logging into the network may not be obvious. It isn’t an option on the install screen, but rather on the desktop that is currently running on your computer. Click on the blank triangular thingie on the top menu bar — this is the network applet. Pick your network, enter your password, etc.

Then you get to allocate drive space. For the simple, recommended, install, pick “Erase disk and install Ubuntu.” Pick “encrypt the new Ubuntu install” if you like. If you don’t know what LVM is, don’t bother with it.

Or, pick “something else” if you want to define different partitions for home directory, dual boot, swap files, etc. Then, good luck with that. For your first Linux install on a fresh machine, you don’t need to go down that rabbit hole. While such endeavors are not that difficult to do, you should probably make that the project for your next Linux install.

How to set up separate Root, Home and Swap paritions

Skip this part if you are doing the recommended default install. This will destroy everything on your hard drive. If it does not go well, you can always do a new fresh install and pick the default.

At this point you have booted off the DVD or USB and you have clicked the icon to “install Ubuntu.” You are now looking at several options, including “something else.”

Select “something else”

Accept (hit Continue) with the scary message “You have selected an entire device to partition. If you proceed with creating a new partition table on the device, then all current partitions will be removed…”

(But do note that you are about to blotto your computer, so there better not be anything you want to keep on it!)

Make the first partition for the Ubuntu install as a primary partition.

Put it at the beginning of this space

Use EXT4journalingfilesystem (unless you have some reason to use some other file system) … this will be the default already chosen.

Set the “mount point” as /

This is the partition in which your operating system will be placed, and is known as the root partition.

How big should it be? Ubuntu needs a minimum of 20 gb. I would make it larger. I used 50 gigs when I did this.

Hit OK

Make a swap partition

This is the partition your computer will use as “extra memory.”

Now select “free space” and set up a “logical” petition (at the beginning of this space) that is twice the size of your installed RAM.

If you don’t know how much RAM your computer has, open a terminal right there on the computer you are working with (The upper left button with the Ubuntu symbol on it, type in “terminal” and hit enter). In the terminal, type in

free -h

That will give you a total number (and other numbers) Round up to the nearest gigabyte and multiply by two.

Enter that number into “size” (if you want 16 gigs, it will be 16000 mb).

Select from the dropdown list “swap” to make this a swap file. Hit OK

Install the home directory (where all your stuff goes)

Select the free space again.

Just take for size whatever is left on your computer (hopefully a lot). Pick logical, beginning of this space, and EXT4journalingfilesystem again.

For mount point, enter

/home

This will be your home directory. Hit OK

Now, you’ll see a nice table with a graphic bar on the top showing you what you’ve set up. If it all looks OK to you, a small but not too small root directory, a smaller swap file (probably), and the rest a huge home file, hit “Install Now”

You’ll get another warning, but we don’t care about not stinking warnings.

Later, if you need to change any of these size requirements, run a live USB/DVD (like you did to make this install) and run “gparted” to change the partition sizes. (You can’t change the partition sizes from within an operating system. That would be like changing the fundemental fabric of the universe while you are actually in the universe. Not even The Doctor can do that)

And now, go back to the normal install.

Continuing with the default normal install…


If you have Windows installed, you may then get the option to Install Linux along side Windows. Pick that if you want, and chose how much hard drive space to allocate to each system.

After that are a few screens that are simple and self explanatory. Give the installation system a location, choose the kind of keyboard you want to use.

Then you get to chose your login and password details. Here you have to decide how simple vs. secure you want your system to be. You should make sure you never forget your user name and password or you will be locked out of your system.

So, enter your name, then pick a name for this computer for identification on networks, etc, then enter your user name which will contain no spaces or strange symbols, and be all lower case.

Then enter your password twice. The system will complain if your password is lower security, feel free to ignore this if you don’t care, pay attention to it if you want a more secure system. You are going to be using this password a lot. Just sayin’.

Check “require my password to log in” for most installations. You can also chose at this point to encrypt your home folder to limit access to your data if someone gets physical access to your computer.

Then, the system will install while you get to see some info about Ubuntu.

Then you are “done” in that you have a Linux computer. You may or may not have been prompted to remove the DVD or USB. If you restart the computer and fail to do so, you’ll be back in the installation system. Just remove the DVD/USB and restart the computer.

Once the computer is restarted, you’ll have to re-establish your network connection one more time. (This is your new system, it doesn’t know about your networks or network password yet.)

At this point, go right to this post and start tweaking your computer. If you don’t do that now, at least do the things noted below.

But there is something else you should do right away. Open a terminal (hit the super key, aka windows key, and start typing “terminal” and the terminal option will come up. Click it).

Then, type in:

sudo apt-get updates

You will be asked for your password, which hopefully you will remember. The computer will then go on the internet and find updates for stuff that was installed during the installation. Even though you told it to do something like this during installation, it probably didn’t do it for all the software that is now on your computer.

Following all this, you do now have a Linux computer. There are several things you can do after installing Ubuntu 16.04. First, go to this post to find out how to navigate around on your new Unity desktop, and then, see this post for how to tweak and refine your Linux installation in useful and important ways.

Have a good time using your Linux computer!

This is one of four related posts:

Should You Install Ubuntu Linux?
Installing Ubuntu 16.04 LTS
How to use Ubuntu Unity
Things To Do After Installing Ubuntu 16.04 LTS

Some Linux/Ubuntu related books:
Ubuntu Unleashed 2016 Edition: Covering 15.10 and 16.04 (11th Edition)
Ubuntu 16.04 LTS Desktop: Applications and Administration
The Linux Command Line: A Complete Introduction

Why you should install Linux

Linux is an operating system, as are Windows and Apple’s OSX. It is the operating system that is used on the majority of computing devices. Linux is the basis for the Android operating system, so if you have a smart phone that is not an iPhone, then you are probably already using Linux. The majority of servers, such as computers that run cloud services and internet nodes, etc. run on Linux. Your wireless router probably runs on Linux. Many devices in the “internet of things” use Linux. Supercomputers often run on Linux.

There are a few reasons you might want your desktop (or laptop) to run on Linux. Perhaps you are annoyed with your current operating system. If, for example, you find yourself frequently having to reinstall Windows, you might want to switch to Linux, because reinstalling is almost never a solution to something being broken on a Linux machine. Perhaps you have an older computer and the newer version of Windows runs really slowly for you. Linux runs better on older hardware.

For the most part, for most things most people do, it really doesn’t matter much which operating system you chose among the main players (Windows, Linux, and Apple’s OSX). What matters most is what software you use (applications, apps). If a particular application that you need to use runs only on one operating system, pick that operating system. But first, check to see if you are right about what software runs on what systems.

Indeed, most of the commonly used applications have a version or equivilant that runs on each of the three main operating systems, or at least two of them. Microsoft Office runs on Windows and, somewhat less smoothly, on a Mac. You can also run MS Office software on Linux, but I don’t recommend it for the non-expert user. But all of the applications that make up Office have equivalent software that is designed just for the Mac (and won’t run on anything else) as well as equivalent (and some would say superior) software that is not only designed to run on Linux, but that will run on any computer.

Indeed, from a user’s point of view, getting used to some software on a particular operating system and then being forced by circumstances to switch to another operating system is hardest for Mac users (if you are using, say, Pages, Numbers, and Keynote … you are stuck with the Mac), less hard for Windows users (as noted, Office runs on a Mac but not really on Linux) and trivially easy for a Linux user, since the Libra Office suit, with a word processor, spreadsheet, presentation software, drawing software, etc. runs the same on Linux, Windows, or a Mac.

In the old days it was said that you needed to use Microsoft Office on Windows or you would not be compatible with other people. That was never actually true. The compatibility issue was much more complex. There were instances where two people using Windows, and running Office, could not reliably exchange documents because they were using different versions of Office that did not play well with each other, but one of those individuals could easily exchange documents with someone using Open Office Writer (a word processor) on Linux.

But now, that falsehood is even less true than it ever was, and document formats are much more sensible and interchangeable today than they ever were in the past. So the compatibility issue is largely gone, even if it ever was semi-true but mostly misunderstood.

There are pieces of software that people love that require a particular operating system. The big fancy expensive Adobe products don’t run on Linux. Scrivener, a great writing application, is mainly Mac but will run on Windows and not really (but sort of) on Linux.

But it is also true that most software that most people use has an equivalent version on each of the other operating system. So, it really depends on what you want and need to do with your computer, and how much money you want to spend on hardware and software.

If you have an “extra” computer in your possession, and would like to have it usable for basic functions, such as using Google Chrome or Chromium to access the internet, basic text editing, advanced word processing, advanced spreadsheet and presentation work, etc. then installing Linux on that computer is a really good idea. It is probably an older computer, and as such will run much better with Linux than any other operating system, because Linux is so much more efficient. It will be free to do so. It will be relatively easy. Then, you’ll have a Linux computer that you will use now and then, and over time, you may decide that you like the operating system itself so much that you’ll totally switch to it. Or not. There is no problem with having more than one OS in your life.

Linux History and Background

This section is not really necessary if you are trying to decide whether to try out Linux, and you can skip it, though the background and history of Linux are interesting and may help you understand Linux a bit better. Also, this is a very brief version and there is much left out. Readers are welcome to identify important parts I’ve ignored and put them in the comments! In any event, be warned: I oversimplify here.

Many years ago, an operating system known as “Unix” was developed to address certain growing needs, especially the requirement that many users could hook into one machine and treat that machine as their own, keeping their stuff separate from that of all the other users.

Unix was also designed to run on several different machines. Previously, most operating systems were designed for a specific piece of hardware.

In 1983, Richard Stallman of MIT began a project called “GNU.” GNU stands for “GNU is Not Unix.” GNU was in fact not Unix, but it was meant to work just like UNIX.

At the same time, Stallman and his associates created a licensing system for software called the GNU General Public License, or GPL. This license was designed to guarantee that work carried out on the GNU project would be available for anyone else to use, as long as they followed the rules of the license, which essentially required that any new work based on GPL licensed work also had the GPL license attached to it.

This was the origin of the Open Source movement. The idea of this movement is simple. Instead of creating and selling proprietary operating systems and software, sold for a profit and protected by a user agreement, people would create software that users could obtain and use for free (free as in FREE beer) and this software would be free to modify and apply by anyone anywhere (free as in FREEdom).

The GPL project involved developing a large number of tools that could be used while operating a computer. For example, when using a computer with a command prompt (there were very few computers that used graphical user interfaces at the time) one might enter a command to list the files in the current directory, create a file, create a directory, move a file, search through a file for certain contents, etc. The GNU collection of tools eventually grew to include a large percentage of similar tools ever developed for proprietary computers, and much more, but under the GPL license. There were tools created back in the 80s and developed through the 90s that are still at the heart of many computer operations today.

In 1991, the Finnish computer science graduate student Linus Torvalds started to develop a “kernel” that would interface between certain hardware and the larger operating system. The details are a bit complex, but eventually, Torvald’s kernel and Stallman’s GNU tools were combined into a single operating system that would be called “GNU Linux.” Today we often say just “Linux” but the longer name better reflects what the operating system contains and how it came to be.

All of that history is interesting, but probably more relevant to you, is how Linux is maintained and deployed today.

Linux is maintained and developed by a community of thousands of programmers and other experts, globally. Each part of the project is maintained by a “maintainer” and different programmers send their work to that maintainer for approval. Most of these developers work for a company that is involved in computing somehow, committing part of their time to Linux development. All the work is done in the open and subject to comment and critique by everyone else.

This project makes sense, and is valuable to companies involved in computing, because the operating system itself is free for them (and everyone) to use, and direct involvement (by the larger community) means that the functions the operating system serves, and how this is done, is determined by a large scale very open conversation, rather than the more limited ideas of a smaller group of designers within a corporate and proprietary system.

Even more important is the simple fact that for most of the uses required by these companies, Linux is a superior operating system.

Also, and I’ll expand on this a bit below, the process does not involve marketing. Nobody is directing the work on the basis of perceived value on the market, or in relation to any profit motive. It is all about getting computers to do things effectively and efficiently, with security and usability firmly in mind.

When the first version of this operating system was released in 1991, it included 10,000 lines of computer code. Linux currently has just under 20,000,000 lines of code.

But, here is the important part. The developers of Linux are focused on certain principles. I can characterize those principles from my own observation, but much has been written and spoken about this, and you should seek more expert sources if you want the richest and most detailed story. The operating system needs to be small and efficient, and every aspect of it has to work as flawlessly as possible. The kernel, the deep inside part of the operating system, needs to be very stable and to only contain what is necessary for the kernel to run. There is a great deal of discussion as to what functions should be moved into the kernel vs. left out and treated more as a tool that may or may not be included in a particular installation. This is why the Linux Kernel can sit comfortably inside your cell phone and be amazing, and at the same time, manage a complex super computer with hundreds of processors.

One of the outcomes of this sort of careful curation of Linux is that sometimes changes made in the guts of the operating system require that related changes be propagated outward into other software. Since changes at this level can affect a lot of other things, they are carefully considered and avoided until necessary. But, once they occur, maintainers of the various parts of the operating system, as well as some of the software that runs on it, have to make the appropriate changes. The result is a bit more work than other methods might produce, but continuation of efficiency and stability of the operating system and its parts.

There was a lot of competition and bad feelings between the dominant desktop operating system’s developer, Microsoft, and Linux, several years ago. In my view, Linux has long been a superior operating system, measured in terms of how well it works, how adaptable it is, how quickly development responds to security threats, new application requirements, and so on. Also, by and large, Linux has run on a larger range of hardware. Most importantly, perhaps, as Microsoft’s Windows developed over time, it required more and more advanced hardware to operate. So, keeping your computer updated required not only adopting the newer versions of the operating system (and often paying for that) but also replacing old hardware with newer hardware now and then. Linux, by contrast, runs on most (nearly all) of the older computers.

Eventually the competition and fighting between the Windows and Linux camps died down, and now Microsoft not only uses Linux in many settings, but has become one of the top contributors of code to the Linux project, and supports OpenSource in many ways. For its part, Apple adopted an operating system very similar to Linux as the basis of OSX.

I suspect that eventually Microsoft will also adopt a Linux like underpinning for its own operating system.

The most important differences between Windows and Linux

There are a lot of differences between these operating systems that are internal and often esoteric. As implied above, Windows tends to be bloated (lots of code) and relatively inefficient, requiring fancier and more powerful hardware to run, while Linux is leaner and will run on nearly anything. This also means that installing Linux is usually easier and faster. Linux takes up less space on your hard drive, as do most of the different software applications that run on Linux.

The Windows operating system appears to the average user as a single entity, a whole thing, that runs your computer and peripherals and at the same time interfaces with the user using a fancy and occasionally redesigned graphical user interface. Everybody gets the same user interface.

Linux is distinctly different from Windows in that it can be thought of as having two parts (from the average desktop user’s perspective). The basic system, that runs everything, is the Linux kernel and the GNU tools and a few other things, down under the hood. If just this stuff is installed on your computer, you interface with it using a command line. Computers that are used as web servers or to do certain other work operate this way, since the computer’s work is being done without much direct human involvement except by experts who are comfortable using the command line. This saves resources and makes the computer run very efficiently. Indeed, many of these computers are “headless,” meaning they don’t even have a monitor. Since only the command line is being used, an expert can sign into the computer over a network and mess around with it easily in a terminal program that gives them access to the command line. Such computers, most of the time, run themselves and nobody has to look at what they are doing.

The second part of a desktop Linux system, one that you as a regular person would use, is called the “Desktop.” The word “desktop” is confusing and messy in the computer world. Here, we mean the set of tools and stuff that give you a graphical user interface for the entire system, and that runs your software in windows, like Microsoft Windows and Apple’s operating systems do.

Unlike Microsoft Windows or Apple’s OSX, there are many different desktops that function on Linux. Any individual or group of experts can design a new desktop and make it available for Linux users to use. When you sign on to a Linux computer, there is a moment when you have a choice to pick among the various desktops that are installed on that computer (if there is more than one). Most people have a preferred desktop and use that as the default. Some people like to collect and play around with different desktops.

Then, there is the concept of the “Distribution.” When you “get” Linux, you are actually getting a particular distribution (aka “distro”). The structure, history, and dynamics of distributions is actually very complex, but you don’t need to know any of it . All you really need to know is a simple definition of what a distribution is most of the time, and which distribution you should chose to install.

A distribution is the package of stuff that is needed for Linux to run on your computer. You can think of it simply as a system, like Microsoft gives you Windows, Apple gives you OSX, Linux gives you a particular distribution and that is the thing you install.

A typical Linux distribution of the kind you might install is in some ways similar and in some, very important ways, different from a products from Microsoft or Apple.

Like the other systems, a Linux Distro (short for distribution) includes the installer. So you get a CD, DVD, or thumb drive, boot from it, and the installer takes over, asks you some questions, and installs the Linux operating system on your computer.

A Linux distro has a single desktop that is automatically installed. To the user, this is the most important difference between distros. You pick a distro in part on the basis of what desktop you like. You can install other desktops later, of course. But most likely, you will simply pick a distro with a certain desktop and that will be your desktop.

A Linux distro includes a whole pile of other software and installs that at the same time that it installs your operating system. Typically, you get a web browser; an email program; an office suit with a word processor, spread sheet, presentation software, etc.; a text editor; calculator; music player; some graphics software; etc. This sounds like it might be annoying because it would take forever to install all that software, but software that runs on Linux is very efficient and takes up less space than for, say, Windows, so it does not really take all that long.

A Linux distro has a particular way to install, update, and maintain software. If you use a Mac, you are familiar with the paradigm, because Apple copied the Linux method. There will be one or more user interfaces that you can use to search for, pick out, and install software. Every now and then you can issue an update command and all of the installed software will be inspected and updated. Typically, your distro will install and set up at installation time, a program that initiates this automatically and gives you a message saying that you should update your software. You can opt to have this done in the background automatically, or you can do it yourself. Any of this can be done from the command line if you like.

A modern Mac does this as well. That is because down deep a Mac is running a Linux like operating system. Traditionally, Windows did not do this, though maybe Microsoft has learned to follow the Linux pattern of updating software. I’ve not had to update a Windows computer in a while.

Here’s a key point that distinguishes Linux from both Apple OSX and Windows. The Linux operating system itself is updated a little bit pretty much every week. And, it is updated more or less flawlessly. Your distro will probably be conservative. The basic Linux OS is updated, and that update is tested out and incorporated into a distro. That distro may have two versions, a bleeding edge version and a more stable version. So the change goes into the bleeding edge version then later into the stable version. Chances are your distro will actually be based on one of those distros, and there is yet another level of checking out the changes. Then it comes to your desktop.

When Microsoft updates its system, it test the update internally (maybe using beta testers). When Linux updates the system, it is tested by all those thousands of Linux experts who are involved in the project. This means that Microsoft has to do its updates differently, because an update is a major and costly project, just to test. So a typical Microsoft update (and Apple is similar) has more changes, more fixes, more tweaking, and this is why the first version of those updates is almost always at least a little broken or problematic for a good number of users.

Since Linux updates in smaller increments, and the increments are very widely tested, there is virtually never a problem with such an update. They just happen, everything works, and nothing goes wrong. And, it is lighting fast. The update is just several seconds to a few minutes long.

So, you want to install Linux?

The best way for a noob (a first timer) to try out Linux is to get a hold of that extra computer, make sure there is nothing on the hard drive that you need to save, and do a fresh install of the Ubuntu operating system on that hard drive. Ubuntu is one of many different distros, but it is the most user friendly and the best supported. There are actually several versions of Ubuntu, but you will want to install the standard mainstream version, which uses the “Unity Desktop.”

Click through to THIS POST to see an overview of how you might do this,