1.1. Introduction

Unix is a family of computer operating systems that derive from work performed in the 1970s at the Bell Labs research center by Ken Thompson, Dennis Ritchie, and others. In this course, we use the term Unix to refer to systems that are Unix-like; i.e., their user interface and basic set of utilities are reminiscent of a Unix system.

In the next section, you will set up your environment to allow you to log in to our departmental Unix server, Odin. However, before we log in, it’s important to understand some basic terminology.

You will access the Odin system using a program called a terminal emulator. If you are using a Windows machine in 1302, your terminal emulator will be MobaXterm which you will install in the next section. If you are on a Mac, your terminal emulator will be the built-in Terminal program on MacOS. The terminal emulator is run directly from the operating system on your computer.

In Unix, the primary end-user, command-line interface to the system is a program called the shell. The shell is just another way to interact with the computer. Think of it as an interface that allows you to type your commands on the keyboard instead of clicking icons on the screen. After you type a command, the shell program is responsible for interpreting the command and executing it.

When you login to a Unix system like Odin, the shell presents you with a prompt where you will type out commands for the system to perform.

Note

In CSCI 1302, we will use the bash shell on Odin. There are other shell programs available, but bash is popular and used by default on our system. As soon as you log into Odin, you are interacting with bash.

Both graphical and command-like interfaces allow you to do the same things, just in a different way. These days, all students are familiar with the point-and-click graphical windowing systems provided in operating systems like Windows, macOS, and even phones. However, only some realize that the windowing system they’re used to is only one way to interact with a computer.

Important

Whether you are interacting with the computer through a graphical (windows-like) interface or a terminal interface, the underlying system and files are the same. The only difference is how they are presented to you, the user.

As an example, consider the figure below:

Terminal output on the left corresponding to the visual interface on the right.

In the figure, two different interfaces to the same computer running the Unix-like macOS operating system are presented. On the left, the window of a terminal emulator (or a “terminal window,” for short) is displayed containing the output of the commands ls and tree (discussed later). On the right, the graphical Finder app is displayed containing some of the same information. Take a moment to convince yourself that both images display roughly the same information in two different ways. On the left, the output of the tree command looks very similar to the output on the right. The only difference is that the user typed the command with the keyboard instead of double-clicking a folder icon as they would on the right.

Rapid Fire Review
  1. What is the name of the Unix server used in the CSCI 1302 course?

    1. thor

    2. odin

    3. loki

    4. zeus

  2. What is the purpose of the shell?

    1. to interpret and execute commands entered by the user.

    2. to provide a graphical interface for interacting with the computer.

    3. to allow access to the Unix system from the operating system on your computer.

    4. to display icons and folders for navigation.

  3. What is the key difference between interacting with a Unix-like system through a shell and a graphical interface?

    1. the graphical interface provides more features than the shell.

    2. the underlying system and files differ between the two interfaces.

    3. the shell relies on typing commands, while the graphical interface uses point-and-click actions.

    4. the shell is used only for programming tasks, while the graphical interface is used for all other tasks.

  4. Consider the example in the text where terminal output and the Finder app display similar information. What conclusion can you draw about these interfaces?

    1. terminal emulators are faster than graphical interfaces for all tasks.

    2. both interfaces access and display the same underlying system and files in different ways.

    3. graphical interfaces cannot display file structures like terminal emulators can.

    4. terminal interfaces are exclusive to Unix-based operating systems.