1.3. The OS and Unix

../_images/operating_system_placement.png

The Operating System is the system of interacting programs which provides the interface between the ” appications ” such as Word, Excel, Safari, iTunes, etc. (also programs) that the user wants to run, and the hardware of the computer, as shown in the figure below. The hardware encompasses many different parts, of course. There are the user interface devices: the mouse, keyboard, screen, and sometimes others, as well as the computer’s memory, CPU, data buses, etc. We don’t need to worry about these complicated low level hardware devices, because the OS controls them in a convenient way for us. For example, if you have an iPad or iPhone, you probably use the iOS OS. That OS has no mouse interface, but does rely heavily on touch- screen input.

While there are many different OS’s, you are likely familiar with the top three: Microsoft‘s Windows , Apple‘s OSX , and possibly you have heard of Linux–a version of Unix .

1.3.1. Unix: The Scientific Operating System

THE operating system used at ALL supercomputing centers around the world is some variant of Unix . While there are some recent experimental machines at certain supercomputing centers which are testing new ideas (like clusters of NVidia Graphics/Gaming Cards– called GPUs), all high performance computer scientific systems run Unix. Why?

Advantages and Disadvantages of Unix From: `http://pangea.stanford .edu/computerinfo/unix/overview/advantages.html`_

Advantages

  • Full multitasking with protected memory. Multiple users can run

multiple programs, each at the same time without interfering with each other or crashing the system. + Very efficient virtual memory; many programs can run with a modest amount of physical memory. + Access controls and security. All users must be authenticated by a valid account and password to use the system at all. All files are owned by particular accounts. The owner can decide whether others have read or write access to her files. + A rich set of small commands and utilities that do specific tasks well – not cluttered up with lots of special options. Unix is a well- stocked toolbox (with amazing gadgets), not a giant menu-driven Swiss Army Knife. + Ability to string commands and utilities together in unlimited ways to accomplish even more complicated tasks – not limited to preconfigured combinations or menus, as in personal computer systems. + A powerfully unified file system. Everything is a file: data, programs, and all physical devices. Entire file system appears as a single large tree of nested directories, regardless of how many different physical devices (disks) are included. + A lean kernel that does the basics for you but doesn’t get in the way when you try to do the unusual. + Available on a very wide variety of machines - the most portable operating system. + **Optimized for program development and file manipulation, and thus

for the unusual and new circumstances that are the rule in scientific research.**

Disadvantages

  • The traditional command line shell interface is designed for the

programmer, not the casual user. + Commands often have cryptic names and give very little response to tell the user what they are doing. Much use of special keyboard characters - little typos have unexpected results. + To use Unix well, you need to understand some of the main design features. Its power comes from knowing how to make commands and programs interact with each other, not just from treating each as a fixed black box. + Richness of utilities (over 400 standard ones) often overwhelms

novices. Documentation is short on examples and tutorials to help you figure out how to use the many tools provided to accomplish various kinds of tasks.

So, What is Unix? The unix operating system was developed before both Windows and Mac OS for large computers called “Mainframes” of the 1970s ( i.e. ” back in the Day! ). One interacted with these machines by “logging on” via a text terminal, usually in another office, at a place like a bank or an airport where there were {it many people working simultaneously}. These mainframes managed the simultaneous users–they were the original ” servers ”. Thus the unix operating system, developed at Bell Laboratories, was originally designed to be `”multitasking”`_ from the beginning, something that personal computers only developed in the very late 1980s, after the appearance of the 80386 Intel processor (this is the precursor to the Pentium, the 80586). A cpu that can multi-task requires some advanced architecture. It must be able to be interupted from it’s current task, save the state of that task, and start working on someone else’s job. Also in the 1980s, unix workstations became quite popular among scientists and engineers, and a number of tools were developed for to aid scientists in their work. Many different computer vendors such as IBM, Sun Microsystems, Silicon Graphics, and Hewlett-Packard have developed their own forms of unix to run on their specific hardware. These versions of unix go by the names: AIX, Solaris [*], Ultrix, and HPUX. The development history, evolution, and relationship of these different versions is shown below.

../_images/Unix.png

1.3.2. Unix running natively on a PC: = Linux

With the introduction of the 80386 CPU chip by Intel in the 1980s, PCs became able to multitask allowing the development of a form of unix which would run on the PC architecture. This version was developed by Linus Torvalds, a Finnish graduate student and the GNU Free Software Foundation developed by Richard Stallman. The name of this version is Linux which is extremely popular, powerful, and FREE

For this course, I am recommending the Fedora Scientific Spin of Linux, running on a Virtual Machine on your computer.

A screenshot is below.

../_images/fedoraSciSpin.png

Footnotes

[*]I’ve always thought “Solaris” was an odd name for an operating system. It originates in the classic scifi novel “Solaris” by Stanislaw Lem, where a sentient ocean covering a distant planet drives explorers mad who are sent to study it.