Introduction and History
  1. Development of Unix
    1. Early computing used a batch model.
      1. Submit a complete job to the computer.
      2. Get results later.
      3. No interaction.
    2. First interactive systems are called time-sharing.
      1. Multiple users connect to one computer.
      2. Users are nearby, using a terminal device connected by a simple cable. Not computer networking.
      3. Compatible Timesharing System (CTSS) is usually given as the first important example.
        1. Part of project MAC at MIT
        2. First released 1961.
    3. Multics.
      1. Started in 1964.
      2. Joint project of ATT, MIT and GE (which then made computers).
      3. Intended to create a computer utility.
        1. Users would have terminals in their homes, much as they had phones.
          1. It's 1964. Phones are land-lines, and they come from ATT.
          2. Users would have a teletypewriter as well.
          3. Anticipated uses included online commerce and information searches.
        2. Fell behind schedule and ATT withdrew from the project in 1969.
    4. ATT Bell Labs
      1. Bell labs was the well-funded research lab of ATT. Multics was being pursued there.
      2. Some researchers at Bell Labs, no longer working on Multics, wanted to apply some of what they learned to build something small. (Multics was a huge and complex system.)
      3. Ken Thompson wrote an experimental file system on a discarded PDP 7
      4. The rest of the system sort of grew from there.
      5. From this, the group was able to purchase a PDP 11/40, and later an 11/45.
      6. The C language was invented after 1970, and Unix was re-written in C by 1973.
    5. Technological imperative.
      1. Shared system supporting multiple users.
      2. Communication by text command.
      3. Memory and disks were small, and magnetic tapes were important.
    6. Leaving Bell.
      1. Paper presented in 1973 in ACM Symposium on Operating Systems Principles. Revised version in the Communications of the ACM, July 1974. Well received.
      2. Until 1982, ATT had status as a legal monopoly for long-distance phone service in the US, but was forbidden to enter other businesses, so it gave Unix away rather than sell it.
      3. Very popular with major universities. One of particular importance was UC Berkeley.
    7. Fragmentation.
      1. When ATT was giving away Unix, it was largely non-commercial.
      2. Some companies offered support for a fee (ATT could not).
      3. The ATT monopoly was broken up in 1982. This freed ATT to sell Unix commercially.
        1. They started charging significant license fees; before it was just a handling fee.
        2. Third party versions still circulated, but users had to pay ATT to license its underlying code.
      4. While there were many versions, two primary streams.
        1. The ATT commercial stream, starting with System V Unix.
        2. The Berkeley stream, BSD for Berkeley Software Distribution.
        3. Use of either required paying fees to ATT for their code.
      5. Berkeley's Escape.
        1. Berkeley attempted to replace all ATT code and released versions free of ATT license fees. First release, BSD Net 1 in 1988.
        2. ATT sued them in 1992.
        3. The matter was settled in 1994. Generally considered a win for Berkeley.
      6. Linus Torvalds first started creating a clone of Unix in the summer of 1991. This becomes the Linux OS.
      7. If ATT hadn't sued BSD, Linus Torvalds would probably not be famous. The suit delayed the growth of the free BSDs and gave Linux a chance.
      8. Various versions of BSD (which is a Unix descendant), and Linux (which is a clone) are available for free.
  2. Linux
    1. Strictly, “Linux” refers to the operating system kernel. A usable system requires much more in the way of utilities and applications.
    2. The software in a Linux distribution is collected from many sources.
    3. A complete and usable system is a distribution. There are many.
      1. Some popular distributions (“distros:”)
        1. Ubuntu, Fedora and Mint.
        2. Major Distros” according to Distro Watch.
      2. Software usually included in a full distro:
        1. The Linux kernel, built to some configuration. The kernel developers live at kernel.org.
        2. Basic commands, including the shell (command interpreter) and the basic utilities.
          1. Most distros use tools from the Free Software Foundation GNU project. This particularly includes the gcc compiler project, which is probably used to build most of the software whether you install the compiler or not.
          2. Embedded distros often use Busybox as a lighter alternative to some of the FSF tools.
        3. Some sort of GUI support
          1. Display service from X.org or Wayland. Probably both.
          2. Desktop environment. Some leading ones are Gnome and KDE, but there are many. This guy lists his best seven, but this other site claims to tell us the best 22.
          3. There's also something called a window manager that serves as glue between the above two layers.
          4. A server or embedded distro might omit GUI support entirely.
          5. FWIW, I like Xfce, and detest the modern trend which mistakes a PC for a giant phone.
        4. Applications.
          1. Some collection of web browsers, from different producers.
            1. Usual choices are Chrome and FireFox.
            2. Here is a listing of 13 available for the Ubuntu distro.
          2. Linux distros usually come with LibreOffice for word processing. Or maybe you like AbiWord, in case you don't need time to get a cup of coffee every time you open something.
          3. Multimedia applications usually come from several different creators. Who wants to be without VLC?
          4. And networking utilities, printing and scanning, image editing, an email reader for old people like me, security tools, programming languages and development, etc.
        5. Package management to keep track of what's installed (see below).
      3. Distinctives.
        1. Most distros are the same in the large things, but differ in the details.
        2. Default desktop environment.
          1. Usually, you can choose whichever you you want
          2. But the default is always easiest.
        3. Special purpose or concentration.
          1. Often, the main distinction is what is installed be default. Same software could be installed anywhere.
          2. Specialized as server, desktop or embedded.
          3. Some target special hardware, usually meaning not Intel.
          4. More here.
        4. Package management.
          1. All distributions must keep track of what software is installed.
          2. The collection of files that support a program, including its executable, specialized libraries, scripts and extensions, configuration and data files comprise a package.
          3. The package manager installs and removes packages, and keeps track of which are installed, and which packages are needed by others.
          4. The package manager can get packages to install from a repository, which just a web site specialized for that purpose.
          5. Different systems are used, but there are a few main ones.
            1. The Debian distribution and derivatives, including Ubuntu and Mint, use the Aptitude system and Debian packages.
            2. The Red Hat commercial products and related free distros (Fedora, CentOS) use the Red-Hat Package Manger (RPM).
            3. Arch Linux uses something called pacman.
            4. Slackware packages (when anyone gets around to releasing any) are standard Unix compressed Tar archives with a specially-named meta-data file.
            5. The Gentoo distribution installs everything by building from source instead of pre-compiled binaries. It's emerge system downloads and compiles source code for packages when you install them.
          6. The package manager choice is one thing that's hard to change.
            1. Other features are mostly controlled by which packages are installed.
            2. But all the packages are formatted for the type of manager. You can only change that be replacing all the packages.
        5. Policies against certain types of software.
          1. Debian avoids software which is not open-source. This can be a problem with certain kinds of hardware, particularly wireless and graphics.
          2. Fedora avoids certain software for what it believes are legal risks. This particularly impacts multimedia software.
          3. Ubuntu is pretty catholic in this regard.
        6. Extra packages may be available from third parties.
          1. Developers may offer a package file for download.
          2. Developers may actually provide a specialized repository to distribute their software. Google Products VirtualBox
          3. The RPM Fusion project provides RPM repositories which extend Red Hat based distros.
    4. What we cover here. (This is a one hour course, which means we're pretty limited.)
      1. A bit about installation.
      2. A lot about using the command shell utilities.
        1. Manipulate files and process data.
        2. Collect data about the system.
        3. Manage running processes.
        4. Automating tasks using shell scripts.
      3. We'll do most things without one of those namby-pamby GUIs.

Unix history reference: Salus, Peter, A Quarter Century of Unix, Addison-Wesley, 1994.

Images licences: CC-SA-1.0 CC-BY-SA-3.0