Lab 1: Exploring Computers

due 11:59PM September 29


Tue Sep 5 17:03:15 EDT 2017

 

Important: Lab session schedule, location, and other useful information

 

By the end of this lab, you will be able to:

There are 6 parts to this lab:

Part 1: Introduction
Part 2: Operating Systems
Part 3: File Systems
Part 4: Using Unix
Part 5: Moving Files
Part 6: Submitting Your Work
In this lab, we will highlight instructions for what you have to submit in a yellow box like this one.

Part 1: Introduction

Welcome to the first lab for COS 109. In the next few hours, you'll learn how to explore and find things in the file system on your computer, how to access a different operating system to run programs there, and how to transfer files from your computer to another. At the end, you'll be asked to submit answers to some questions that will be asked along the way.

You can do this lab on your own computer or in a cluster, where the computers run Windows and/or MacOSX. If you are not at a lab session, however, you won't be able to ask questions of the lab TAs: when things don't work or you can't figure out what's wrong, you're on your own.  You are welcome to bring your own laptop to a lab session to get help.

Since software and hardware change every year, often in subtle ways, inevitably something won't work exactly as described here. There are so many versions of Windows and MacOSX that it's not possible for us to catch all the differences and to spell out the steps as clearly as we would like. If you find something wrong with the instructions, the lab TAs should be able to help. If not, do what you can and don't worry about it. In any case, please let us know. Thanks. If you haven't previously set up Duo authentication, some parts of this lab will not work for you. To learn more about Duo authentication, visit this website .


Part 2: Operating Systems

Windows, Mac OSX, and Unix are operating systems, which are programs that manage the physical hardware of a computer for you. An operating system lets you run programs like browsers and word processors and iTunes; it lets you access information on disks; it lets you use attached devices like printers and scanners; and it lets you communicate with other computers via a network.

"Windows 10" and "MacOSX" are families of operating systems from Microsoft and Apple respectively. Window 10 is the latest version of Windows and was released in May, 2015. if your computer is older, you might be running Windows 8.1. Sierra (Version 10.12 of MacOSX) was released in September 2016 but you may be running an earlier version of this operating system (perhaps El Capitan (Version 10.11) or Yosemite (Version 10.10)) Similarly, "iOS" and "Android" are operating system from Apple and Google respectively that are designed for mobile devices. Unix and Linux are also operating systems, not from Microsoft, Apple or Google, that run on a wide variety of hardware, including phones, tablets and e-book readers. All operating systems perform the same basic functions, though with myriad differences in style, philosophy, and details.

Operating systems allow you to run several programs at once, switching your attention from one to another at will. Some, like Unix, are mostly controlled by typing on the keyboard. Others have a more graphical interface and are mostly controlled with a mouse. Mobile operating systems are typically controlled using fingers as pointing devices. There is a lot of commonality among operating systems. For example, MacOSX has a glossy graphical interface but is actually a Unix system underneath. And, Android is built on top of Linux.

Text Files

Word processing is one of the most frequent computer tasks, and most people have used Microsoft Word to process documents. But there are plenty of times when you don't want a formatted document nor the proprietary Word format, so every system has text editors that let you create plain ASCII text with no formatting or extraneous content.

On Windows, you can use Notepad or Textpad, or you can use Wordpad if you save your files as ".txt" format. You can find these programs from the Start menu in places like All Programs | Accessories or All Programs | Basic Applications. Do not use Word to edit plain text files.

On a Mac, you can use TextEdit (in Go | Applications). Unfortunately TextEdit is sometimes too smart for its own good. Under the pulldown menu marked TextEdit, use Preferences | New Document to set "Plain Text". Do not use "rich text format" (.rtf). Under Open and Save, uncheck the box that says "Add '.txt' extension to plain text files".

For the rest of this lab, you will record your work in a plain ASCII text file called lab1.txt as you go along, then submit it at the end.

Getting Started

Start your chosen editor. Do this to begin collecting data for submission:

  • Type a line with your name and netid.
  • Type a second line naming the operating system and version you are using for this lab (e.g., Windows 8.1 or MacOSX 10.8 or whatever).
  • Save the file as lab1.txt on the Desktop.

Leave your editor running. You will be adding content to this file for the rest of the lab. Each time you add something, save the file; this (usually) protects you in case something goes awry, and is always a good idea.


Part 3: File Systems

A file system is a part of the operating system that manages all the data stored on the computer; it lets users save information, organize it, and retrieve it as needed. The same organizing principles that are useful for the information on a disk are also useful for removable media like USB drives, DVDs, and even for information physically stored on other computers and accessed over a network, so these are packaged as file systems as well. Although the physical structures vary greatly, the operating system makes them all look the same to users, a good example of implementing the same logical organization with different physical mechanisms.

Information in a file system is organized hierarchically: at the top level is a set of folders (often equivalently called directories) and files. A folder contains the names of files and folders that are grouped together for some purpose. A file holds specific information, such as a Word document, a spreadsheet, a mail message, a picture, a song, or a program like Word or TextEdit.

On Windows, the usual organization creates a file system on the computer's hard drive, in a folder called (for ancient historical reasons) "C:". If there is a CD or DVD drive, it takes the next letter, and is thus often "D:". Other plug-in devices take up the next free letters, so if you plug in a USB drive, it will probably be called "E:".

Other "drives", like network connections, have even more arbitrary letter names; at Princeton, student files can be stored in a big file system on a central OIT computer and your part of that file system is accessible from a PC or Mac as your "H:" (for "home") drive. On cluster computers, this should already be set up for you; for instance, on Windows the Personal Files icon accesses your H: drive, and on MacOSX, there's a disk icon labeled with your netid that leads to your H: drive.

For your own computer, this OIT page explains how to make your part of the OIT Unix file system visible on a Windows PC, and this OIT page explains how to make your part of the OIT Unix file system visible on a Mac.

There are a variety of ways to explore the contents of these file systems. The simplest, though not the most flexible, is to double-click on something and see what happens. If you double-click on a folder, it will list whatever is contained therein: each double-click on a folder expands its contents.

A double-click on a file, however, typically executes a program that is associated with the presumed type of information that the file contains, as indicated by the suffix of the name. For instance, filenames ending in .doc or .docx are assumed to be Word files, and clicking on such a file will cause Word to be started up to process that file. Filenames ending in .txt are usually associated with Notepad or TextEdit, so another way to start an editor is to click on a file like lab1.txt. You should be cautious about this mechanism if you don't know what you're doing, however. Files of type .exe on Windows are "executable" files -- programs that do something -- and you don't want to run them unless you know exactly what will happen.

Although a Mac .app is actually a folder, double-clicking on it runs the executable program hidden within, so the same cautions apply.

Now do one of the two sections below according to the operating system you're using.

For Windows people: Using Windows Explorer

You can look through folders and find files with your personal folder icon reachable from the Start menu (or My Computer on older versions of Windows) and the Save (and Save As... or Open) dialog box. If you want to move files around or find a program and start it, however, then Windows Explorer (not to be confused with the Internet Explorer browser) is convenient.

Start Windows Explorer; it will usually be under Programs or All Programs | Accessories, and is an icon on the task bar on the cluster computers.

Explorer gives a split-screen view of the file system. To the left is a folder hierarchy. When you click on a folder, its contents will be displayed on the right. Notice that some folders have  little triangles next to them. This means that the folder has subfolders. By clicking on the triangles, you can flip between the condensed view and the expanded view.

Find the file lab1.txt by clicking "Desktop".

You should see all of the Desktop contents displayed at the right, including your file if you saved it there. (The names will roughly correspond to what you actually see on the Windows Desktop.)  Now look through the menus at the top.  Try left-clicking and right-clicking "File", "Edit", "View", "Tools" and "Help" on this upper menu to see what options are available. Don't choose any of these options yet! To move a file, click on it once, then drag it to its new location on the left. You can also right-click on it and select "Cut" to remove it completely, or "Copy" to make a copy of it. Then you can click on a different folder and select "Paste" to put the copy there.

The various programs for displaying directories normally give an almost worthless visual display of icons. You can see much more useful information by selecting View from the menu, then Details. (In Windows, view is also an icon below the Search Desktop bar at the upper right.) You can also sort the items in order by date or size or type, either by selecting View, then Arrange Icons, or by clicking on the corresponding column heading. Experiment with them to see what happens.

In spite of its name, Explorer is most useful when you already know approximately where you're going in the file system. If you know even part of the name of a folder or file, however, you can often find it most easily with a different program: Search. Unfortunately, the ways to access Search have changed with each version of Windows. Consider searching C: (Cluster_HD) for all files containing ".exe" in their names. Try to open Start, then double-click Computer. When the computer window opens, double-click the "C:" icon and enter "name:.exe" in the Search box at the upper right. Or you can just type name:.exe in the search box on the Start menu, then click "Search Everywhere" to bring up a search window; then select Advanced.

You are now going to try to find some interesting files (and some boring ones too, but that's life). Do the following operations.

Find out the full real name of the folder that holds your file lab1.txt and enter it in lab1.txt on a single line. (You might find multiple versions in the automatic backup system; give us one name.) If you are using a computer in a public cluster, starting from Start, search in the folder with your name on it (in the right column of the start window).

As mentioned above, executable programs are stored in files whose names end in .exe. Find all files on the C: drive or Cluster_HD whose names contain the sequence ".exe". How many are there? Add a line to lab1.txt with the number of such files. (The list may include some names that contain "exe" but are not executable .exe files, and it may include folders that happen to contain "exe". It's ok to include those in the total; it's too hard to filter them out.)

Find the executable file for some major application program that you might use, like Word, Excel, Chrome or Firefox. The best place to look is in Program Files if you didn't see it in the list above. Add one line with the full name (that is, the name including all of the folders above it) of that file and its size as reported by the system.

Save each time, so in case something bad happens, you still have the information.

At the end of this part you should have 5 lines in lab1.txt.

For Mac people: Using Finder

Finder is the all-purpose program for exploring the Mac file system; it's the first item on the task bar. If you double-click on the icon for a hard drive (HD) or the icon for any folder, Finder will display the contents.

Finder gives a multi-screen view of the file system that can be formatted as large useless icons (the default), or a list with details, or multiple columns. These alternate views are selected at the top left of the Finder window. Select the multi-column view. To the left is a folder hierarchy. When you click on a folder, its contents will be displayed to the right. Now select the list view. Notice that some folders have right-pointing or down-pointing triangles next to them. This means that the folder has sub-folders, and you can expand or contract the view by clicking on the triangle. If you double-click on a folder, its contents will be displayed in the Finder window.

From the multi-column view of the hard drive, find the file lab1.txt by clicking on Desktop.

You should see all of the Desktop contents displayed at the right, including your file. (These should correspond to what you actually see on the Desktop, except disk icons may be missing on a cluster computer.) Now look through the menus at the top and try clicking on various things to see what options are available. Don't choose any of these options yet! To move a file, click on it and drag it to its new location on the left. You can also click on it and select File / Move to Trash to remove it completely, or Edit | Copy to make a copy of it. Then you can click on a different folder and select Edit | Paste to put the copy there. Some of these options are also available if you right-click on the file (or equivalently Cntl-click, that is, click while pressing the Control key -- good for a one-button mouse).

As mentioned above, a Mac .app is really a folder, with an executable file several levels down. As an experiment, right-click on the name of an application (reached by Finder | Applications),  then Show Package Contents to expand the folder; look in Contents and then in MacOS.

Each Finder window has a search box at the top right corner. However, to get more search options, select Find from the File menu at the top left of the display. A Finder search window with a set of options will open. For example, select This Mac, File Name, name, contains and type "image" to find all file whose names contain "image".

You are now going to use Finder search to find some interesting files (and some boring ones too, but that's life). Do the following operations.

The "Desktop" is really a folder in the file system somewhere. Find out the full real name of the folder that holds your file lab1.txt and enter it in lab1.txt on a single line.   (Click on the file once you've found it and select File | Get Info.)

As mentioned above, a Mac application is stored in a folder with extension .app, with the executable file stored within the folder. Add a line to lab1.txt with the number of applications that you were able to find on your computer.

Find the executable file for some major application program that you might use, like Word, Excel, Safari or iTunes. Add one line with the full name (that is, the name including all of the folders above it) of that file and its size as reported by the system.

Save each time, so in case something bad happens, you still have the information.

At the end of this part you should have 5 lines in lab1.txt.


Part 4: Using Unix

Unix is an operating system; like Windows and MacOSX, it controls the resources of a computer on your behalf. Unix has been around a lot longer than other systems, and runs on many more different kinds of computers. The Linux operating system is a variant of Unix, so anything you learn about Unix will apply to Linux as well; indeed, you will use OIT's Linux systems for this lab. We will lump Linux and variants under the generic term "Unix", since for our purposes they are all the same.

Many of the Internet and Web services that you use run on Unix computers, and most of the central computing services at Princeton are based on Unix. The web pages that you will create in the next few labs are also stored in files on Unix systems, so it will help you to understand at least the rudiments of how to access and use the campus Unix systems.

MacOSX is also a Unix variant. Although the Mac has a glitzy graphical interface, underneath is the full power of Unix, a nice combination. If you're using a Mac, start Terminal (in Applications / Utilities) and all of the Unix commands described here will run the same.

Windows is dominant in offices and homes, but Unix is often used to support infrastructure functions (the back office); familiar sites like Google, Amazon and Facebook all use Unix or Linux.

Why use Unix? It largely depends on what task you are trying to accomplish. For example, Windows has an enormous collection of useful programs, many of which have no Unix equivalent. Unix is a good environment for writing programs, however, especially programs that are meant to work on more than one kind of computer, so it is often preferred by programmers. It supports a bunch of users on one computer, which Windows does not. Meanwhile, don't worry if Unix seems strange at first. You won't need to use it very often, but it is helpful to know how to move around in it. And if you own a Mac, knowing Unix will give you a new way to use your computer and let you do operations that aren't possible with the point and click interface.

Using the Webserver Search at netcraft.com (on the right side, "What's that site running?"), find a major web site that uses Unix or Linux. (Ignore load balancers and content distribution systems like F5-Big-IP, Netscaler and Akamai.) Add a line to lab1.txt with the site name and the name of the specific Unix variant.

Find a web site (other than microsoft.com) that uses Windows Server. Add a line to lab1.txt with the site name and the operating system name.

Using PuTTY or SSH

In this part of the lab, you will see how to connect to a Unix computer provided by OIT. You will also see how Unix provides for the permanent storage of your files.

OIT has set up a Unix command for you with your netid as your login. They have also created a public_html folder for you which will be relevant in the next lab. You will need to create a Unix shell. Refer to this site for instructions on how to do so. Any of the shells they support will work fine for this course. Personally, I am a fan of /bin/csh .

If you are using a public cluster computer, you can't save files on it. The Desktop you see is not stored on the hard drive of the computer at which you are sitting; it is stored in a Unix system run by OIT. Files are stored there, and backed up onto other systems as well so you can recover them in case of a disaster.

Most of the time you can save and retrieve files from the central system without using Unix directly; the Windows or Mac H: folder that you saw earlier gives you most of the access you need. And you can read mail just fine from your own computer or phone.

But sometimes you simply have to get to the place where the information really is. For this, you have to use a program that lets a user on one computer use another computer over a network connection. There are a variety of options. One common choice is a program called SSH, which stands for "Secure Shell". The important word here is "secure" -- information that travels between your computer and the other system is encrypted, so it can't be eavesdropped on by anyone along the way. This is nice if you're exchanging intimate messages with a significant other, and it's even nicer if you're sending your password to the other computer.

Another choice, which is encouraged by OIT on Windows cluster computers, is a program called PuTTY, which does much the same thing. The cluster computers have PuTTY, and you can download it for your own computer from here; use putty.exe for Windows on Intel x86. If you got the standard software distribution, it's already installed. (In spite of its name, PuTTY has nothing to do with Princeton University; it's an open-source program from England.)

To make PuTTY work on your laptop, you will first have to have enrolled with Duo (a two-factor authentication system that makes your access to Princeton systems secure). Instructions on enrolling in Duo are given here .

On a Mac, you can use the Terminal application to run SSH and access your OIT account.

Follow these instructions to connect to Arizona, which is a pair of OIT computers (names yuma and phoenix) running Linux. We'll just say "Unix" from now on, since things are mostly exactly the same.

Connecting to Unix

Start by opening SSH or PuTTY. This process will be different depending on which program you use and what operating system you have. Instructions for Mac OS X and Windows are provided below. In either case, if you get a message that says something like

The authenticity of host 'arizona.princeton.edu (128.112.128.42)' can't be established.
RSA key fingerprint is ab:62:85:30:20:81:68:a2:7b:df:a2:72:6e:8f:92:a0.
Are you sure you want to continue connecting (yes/no)?
answer yes. You may also be asked whether you want to save the host key to the local database; "no" is fine in all cases, but you can also say "yes" if you're on your own computer.

For Windows users:

Run PuTTY by selecting it from the Start menu. It will likely be listed under "(All) Programs | ..." If that fails, consult a TA.

You may need to provide Duo authentication. After this, if there were no problems you will be asked for your password. Enter it and push Enter. You can ignore (No or Cancel) anything else that happens first.

Note: Your password may not be echoed with asterisks as is common on PCs and Macs; there may be no response at all. Just type and push Enter when you're done.

For MacOSX users:

If you are running MacOSX start the Terminal application, which is in Applications | Utilities.

Once you have Terminal running, type the following line:

      	ssh your_netid@arizona.princeton.edu

Replace your_netid with your own netid. For example, if your netid is jcollege, you should type ssh jcollege@arizona.princeton.edu. After you have typed this line, press Enter or Return.  You will be asked for your password.  Enter it at the appropriate time, then push Enter or Return.

Note: Your password may not be echoed with asterisks as is common on PCs and Macs; there may be no response at all. Just type and push Enter when you're done.

Welcome To Unix

You should see a flood of text lines that finally ends with a "prompt" that probably looks like this:

        phoenix.Princeton.EDU%
The prompt says that you are now connected to one of the computers in the Arizona cluster (phoenix or yuma) and it's ready to do your bidding.

Basic Unix Commands

As seen here, Unix has a very different flavor from Windows. Rather than running a program by clicking on an icon or selecting a menu item, you type the name of the program in a window where a prompt is displayed. Keyboard commands with cryptic names like "ls" and "cd" run programs to help you navigate Unix and can be typed in whenever you see a command prompt like

        yuma.Princeton.EDU%

Behind the scenes, Unix, like Windows and Mac OSX, maintains a file system with files and folders (though it calls folders "directories"). When you first log in, you should be in a directory called your "home" directory. This is loosely like C: on Windows or Home on a Mac; it holds all of your files, most of which cannot be read or even seen by other users. And it's the same directory that is set up as the H: drive from a PC or a Mac.

Before you start typing Unix commands, familiarize yourself with the way the commands will be written in these lab instructions. Whenever you are told to type something, what you should type will be in this computer-like font. Similarly you will sometimes have to substitute information of your own; we will use this italic computer-like font, as in your_netid. In all of these, pay attention to case -- Unix distinguishes between lower and upper case letters -- and to spacing.

Note: When logged into UNIX, you may have to use the "DEL" or "Delete" key instead of "Backspace" to delete a character.

Try the following commands. For each, type the command name, then push Enter or Return.

Add a line to lab1.txt telling us which specific OIT cluster computer (Yuma, Phoenix) you wound up logging in to.

Run the command ls -l on your home Unix directory, and copy the first two lines of the result into lab1.txt by Copy and Paste. (Don't include the line that says "total ..."; it's boring. Copy the next two lines.)

Type the command who | wc. (That character is the vertical bar, not the letter i or ell; it is often above the Enter key and may look like two short dashed lines.) This will tell you how many users are logged into the Unix system (in the first of the three numbers it prints). Add a line to lab1.txt giving the number of users logged in.

At this point, you should have 12 lines in lab1.txt. You can log out of Unix with the logout command.


Part 5: Transferring Files

You will now return to working within your Windows or Mac operating system. If you are working on your own computer, make sure your H: drive is visible as explained in Part 3.

There are a variety of ways to copy files from one place in a file system to another, or from one file system to another. In Windows, the clearest and most uniform way is to select the file of interest by a single mouse click in a program like Explorer (so it is highlighted), select Copy from the Edit menu or by right-clicking on the filename, then select the folder where you want the copy to appear (so the folder name is highlighted), then select Paste from the Edit menu or by right-clicking.

There are shortcut keyboard actions:  for Copy,  use Ctrl-C or, on a Mac, Command-C, and for Paste use Ctrl-V or, on a Mac, Command-V. Those shortcuts are well worth learning. In some situations you can "drag and drop" the file to make a copy, which is very graphical and intuitive. But be cautious with drag and drop, since in some contexts, it means "copy" and in others it means "move", and these are not the same operation: "move" means to remove the file from the place it was and put it into a new place, leaving you with a single instance, while "copy" leaves you with two instances.

Copy the file lab1.txt that you are building up on the Desktop to your Unix cos109 directory as seen through the H: drive, Personal Files, or the Mac equivalent.

After the file is copied (it should take no time at all) verify that it seems to be correct: the file exists in both places, and it has the same size and sensible modification times.

Somewhat irritatingly, Windows Explorer does not always update the display of a folder when a change is made, or it may put the entry at the end instead of in order. To be sure you have a consistent and up to date display you may need to use View | Refresh. Finder does this better, though it can be slow to notice a change.

Verifying the transfer and moving the file with Unix

Here is a chance for you to use your newfound Unix skill to see if the file was copied correctly.

Connect to Arizona again if you closed the PuTTY/SSH window or logged out already. As always when you first log in you will be in your home directory. This is the same directory as your H: drive. In your PuTTY/SSH or Terminal window type

cd cos109
ls -l
to verify that the file you just transferred is there and about the right size. It should be the same size as in Desktop, though some operating systems report the size only to the nearest KB. The file size in bytes is the number just before the date.

Add a line to lab1.txt with the size reported by Unix and the size reported by Explorer or Finder (e.g., Unix 395, Windows 1KB).

The last two things that you did, changing to a directory with cd, and listing the contents of the directory with ls, are much the same as double-clicking on a folder. When you double-click you're telling the operating system "I want to move to this directory, and I want to be shown what's in it."


Part 6: Submitting your work

At the end of most labs, you will be asked to submit your results by uploading some files.

Upload lab1.txt (which should now contain about 12 lines) to the CS dropbox for Lab 1 at https://dropbox.cs.princeton.edu/COS109_F2017/Lab-1.

Be sure to save your work

If you are working on a cluster computer, mail the file to yourself as well. This is a good check on whether you really sent the right stuff. Paranoids will make sure that this mail arrives and looks right before they leave the lab or turn off their computer.

Files on a public computer are routinely erased, so they won't be there for long after you stop using it. This won't matter if you're using your H: drive, as you normally would, which includes using your cluster Desktop.   If you're working on your own computer, it's wise to back up your work on your H: drive or a flash drive as well. Backing up frequently is a good habit to get into.

If you've completed the lab, uploaded your file, and made a backup copy of your work, you're all done.