In this lesson, we're going to discuss the role of Linux distributions and how we use them in this course. There are many Linux distributions, literally hundreds or even thousands of them, though there's only a small number that are used in large numbers, and they vary by the usage, the hardware, the audience and what kind of support that you have. So, what does the distribution do? Well, it packages up all the software you could need in a convenient way that makes it easy to install, upgrade, remove, etc. It makes sure that all the different components of the software work well together. It's a bridge between the upstream developers, the people who actually write the code, and the end users. It makes sure that information flows in both directions. Distributions test the software under far more varied conditions that the upstream developers can do or any particular user can do, and they try to find things that are wrong and also resolve any conflicts between different software packages. Distributions also employ a lot of people to do significant work on the individual components within the distribution, the packages, the software packages, as well as the general functioning of the operating system, and even the Linux kernel itself. In this class, we try to keep our material what we call distribution-agnostic, or even better distribution-flexible. We try to make sure everything will work for all the major distributions that are available today. Some of the more specialized distributions will present problems, but that shouldn't be any problem for the audience of this class. If the distribution matters, we will comment either where a specific file is actually located or how it's named, how software packages are actually named, etc. These are actually not major differences, and once you get used to it, they're not hard at all to straighten out. We have tested the material here on 64-bit versions of the three major families of Linux distribution: Red Hat, which includes CentOS, Scientific Linux, Fedora, and Oracle Linux; Debian, which includes Ubuntu and Linux Mint; and SUSE, which includes openSUSE. We haven't tried really to do things on a 32-bit system anymore, but everything will probably work acceptably. If you have any of the last two versions of these distributions, things should be fine. Older versions may or may not work, but we don't try to keep too much backward compatibility. Software is installed or removed and controlled through package management systems, and there are two major ones: RPM and Debian. RPM is used in all Red Hat and SUSE-derived systems and Debian in all Debian-derived systems, not surprisingly. So, whenever we have to talk about packaging, we will give instructions for both these two families. There are other distributions which have their own packaging systems that we briefly mention, both GENTOO and Arch Linux, both of which are geared towards more advanced users. If you have one of those systems, you probably already understand its packaging system. We won't talk specifically about them. One option is to do your work on a Linux system in the cloud. There are a number of different cloud providers you can use. AWS, Amazon Web Services, has something called a free tier, where you can get an account for up to a year, and one of the small accounts is more than capable of doing anything you need to do for this course from the command line. You don't really have a graphical interface, so if you're really interested in using graphical utilities, etc., you can't really do that. At the beginning of this course there are a lot of materials and we give a lot of suggestions for how to do installation. So, we won't get into that in particular here, but we just want to point out that this is a choice that you can investigate. So, that's a brief discussion of the role that distributions play and what the major ones are.