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, connected by a simple cable. Not computer network.
      3. Compatible Timesharing System (CTSS) is usually given as the first important one.
        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/20, 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 the Communications of the ACM, July 1974.
      2. Well received.
      3. Until 1982, ATT had status as a legal monopoly for long-distance phone service in the US, but was forbidden to enter other businesses.
      4. So it gave Unix away rather than sell it.
      5. 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. Many versions were developed and sold.
      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. Settled in 1994.
      6. Linus Torvalds first started creating a clone on Unix in the summer of 1991. This becomes the Linux OS.
      7. Various versions of BSD (which is a Unix descendant), and Linux (which is a clone) are available for free.
  2. Linux
    1. What's there?
      1. The kernel is the part properly called Linux.
        1. The kernel is the primary component of the OS.
        2. It provides the primary abstractions, such as processes, file system, device drivers and network protocols.
        3. Linux is produced by a team of developers headed by Linus Torvalds.
      2. Basic utilities, including the command shell.
        1. Basic text-based programs for working with files, text and configuring the system.
        2. Some written by the kernel developers.
        3. Most written by the Free Software Foundation.
        4. We'll spend a lot of time with these.
      3. GUI support.
        1. The basic GUI support in most Linux systems is X-Windows, originally from MIT.
        2. Usual versions are from the X.Org foundation.
      4. There are several suppliers of desktops. (X-Windows supports driving the screen and the interface devices; doesn't do much with them.)
      5. General applications from many sources.
    2. Distributions.
      1. Distributors collect these parts and offer an install-able system.
      2. There are many. Some biggies:
        1. Ubuntu
        2. Fedora
        3. Debian
      3. Some distinctives.
        1. Package management.
          1. All distributions must keep track of what software is installed.
          2. Different systems are used. The details are beyond this course.
        2. Policies against certain types of software.
          1. Debian avoids software which is not open-source. This can be a problem getting wireless to work.
          2. Fedora avoids certain software for what it believes are legal risks. This particularly impacts multimedia software.
          3. Generally, the packages are available from third parties anyway, but that's more work.
    3. Installation.
      1. Distributions generally provide a bootable CD/DVD image which can be written to a disk.
      2. Boot the CD and you'll see an install icon.
      3. Procedures vary from there.
        1. Some are very automatic. Watch the progress bar and hope nothing breaks.
        2. Some require the user to execute the steps, so you can easily break it yourself.
      4. Tasks. A Linux install must somehow perform the following feats.
        1. Create a partition for the Linux file system.
          1. Partitions are divisions of a hard drive which can be used for different OS's.
          2. On a running system, the existing partitions usually use up all the the available disk.
            1. Even if your Windows file system has plenty of free space.
            2. The file system is inside the partition, and fills it.
          3. Generally, you must make space for the new partitions.
            1. Delete (destructively) an existing partition.
              1. Of course, your existing OS is toast.
              2. But if it just screwed up for th 487th time, it can feel great!
              3. A good option if you have an old computer around that's not serving any other purpose. (Also provides a good excuse for why your spouse shouldn't throw it out.)
            2. Shrink (non-destructively) an existing partition to free up disk space.
              1. There are free tools for this.
              2. Some installers offer it as an option.
              3. Always a risk that it will go sideways and trash the partition instead of shrink it. I've never seen this happen, but there's always a first time.
            3. Add a disk.
              1. Install an additional internal hard drive, if possible. Not so common an option these days.
              2. Use a USB disk, including possibly a thumb drive.
              3. Installers which offer this often seem to treat the installation as permanent; you'll always have to use it on that machine.
        2. Format the new partition (or partitions) and write the software there.
        3. Install the boot loader.
          1. The boot loader is the software that initially loads the operating system into memory and starts it running.
          2. If there are multiple operating systems installed, the boot-loader will let you select which one to boot.
          3. The usual boot-loader for Linux is called grub.
            1. Grub is installed on one of your bootable hard drives.
            2. It can boot any Windows partitions as well as Linux.
  3. Random Links.
    1. Putty ssh client.
    2. Knoppix live CD.

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