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