Web Resources for CS U380, Section 2
(Computer Organization)
Instructor:
Gene Cooperman
Fall, 2008
FINAL EXAM: The final
exam is scheduled for Wednesday, Dec. 17, at 1:00 p.m.
in room 153 SN (153 Snell Engineering Center). The final
exam is open book, open notes, and cumulative for the whole semester.
Course basics:
Here are some immediate resources in the course for doing homework, following
the readings, etc.
- The course directory contains all course homework,
handouts, and the syllabus.
The syllabus contains the required
readings in the textbook. The course directory is also available
from our Linux/UNIX machines as /course/csu380gc/.
-
The course directory includes a help directory.
-
Please also note the directory for
UNIX editors.
You will need to login to a UNIX machine to use these.
They are in /course/csu380-gc/unix-editors.
-
Appendix A from the text Appendix A is also online
(requires CCIS UNIX password).
It is the manual for
MIPS Assembly language. Read it, and re-read it.
- Portions of the rest of
the text CD are also available online
(requires CCIS password).
-
Some help files for UNIX and its compilers,
editors, etc. are also available.
As you use UNIX, please look into using gdb
(GNU debugger), which will help you greatly in debugging. This will
help when you test your homeworks on our UNIX machines.
-
If you use Windows, there is a free, open-source IDE (Integrated
Development Environment) for C/C++,
Dev-C++.
Homeworks must be handed in using C, but this is a subset of C++.
When your code works, you must still test it under UNIX:
gcc myfile.c; ./a.out
If it doesn't work on our UNIX (Solaris) system, it will be graded
as not working.
MIPS Simulator for Assembly Language homework:
- There is a
MIPS Assembly language simulator with
free downloads available and
online documentation.
- The syntax of the assembly language is intended to be compatible
with Appendix A of our textbook (also
available online
(requires CCIS password).
- The software is distributed as a Java .jar file. It requires
Java J2SE 1.4.2 or later. Depending on your configuration,
you may be able to directly open it from the download menu.
If you have trouble, or if you prefer to run from the
command line, the Java SDK is is also available
for free download from the same download page. The instructions
for running it from Windows or DOS should work equally well
on UNIX/Linux/Solaris. The CCIS machines should already have
the necessary Java SDK installed.
- GOTCHAS: There are several important things to watch out for.
- When you hit the "Assemble" menu item, any error messages about
failure to assemble are in the
bottom window pane, tab: "Mars Messages".
Input/Output is in the bottom window pane, tab: "Run I/O"
- If you paste assembly code into the edit window pane, you must
save that code to a file before Mars will let you assemble it.
- If you have selected a box with your mouse (e.g. "Value" box in
the data window pane, or "Register" box; then Mars will not
update the value in that box. Mars assumes you prefer to write
your own value into that box, and not to allow the assembly
program to use that box.
- If your program stops at an error, read the "Mars Messages" for
the cause of the error, and then hit the "Backstep" menu item
to see what caused that error. Continue hitting "Backstep"
or "Singlestep" in order to identify the error.
- Your main routine must call the "exit" system call to terminate.
It may not simply call return ("jr $ra"). Note that page A-43
of Appendix A of the text (third edition) has a table of
"system services" (system calls). These allow you to do "exit"
and also I/O.
- One of the nicer features of this software is a limited
backstep capability (opposite of single-step) for debugging.
In addition, the help menu includes a short summary
of the MIPS assembly instructions.
In general, I like this IDE for assembly even better than some
of the IDEs that I have seen for C/C++/Java.
(The one feature that I found
a little unintuitive is that if you want to look at the
stack (for example) instead of data, you must go to the
Data Segment window pane, and use the drop-down menu at the
bottom of that pane to choose "current $sp" instead of ".data".)
- Please note the
three sample assembly programs, along with an accompanying
tutorial on the same web page.
- This is the first year that the College is using this simulator.
(We used the SPIM simulator mentioned in Appendix A of the
text in the past.) It seems to be very well designed.
However, I'd still appreciate if if you could be on the lookout
for any unusual issues, and report them promptly (along with
possible workarounds), so the rest of the class can benefit.
Thanks very much for your help on this.
How to Install a temporary Linux on top of your Windows O/S:
You are not required to install Linux on your computer. CCIS makes
avaiable many Linux machines. For example, you can do:
ssh pacman.ccs.neu.edu
OR:
ssh galaga.ccs.neu.edu
However, if you wish to do hw5 and hw6 locally on your computer, you can
easily install a temporary Linux through any of the following three
methods:
- Wubi-Ubuntu
Go to Installing Wubi/Ubuntu, and
follow the instructions there. The advantage of Wubi is that
you can boot into a full Ubuntu Linux that uses the full resources
of your machine. Yet, when you no longer want it, you delete
a Windows file (containg wubi), and it's gone. Wubi does
not modify the partitions of your PC, as a more permanent
Linux install might do.
- andLinux
Go to andLinux and follow the
instructions. This creates a "merger" of the Linux kernel with Windows
allowing you to run Linux applications on the Windows desktop.
- vmplayer (VMware)
- Go to the VMware
page for vmplayer and download the player according to the
instructions on that page.
- Go to
the virtual appliances page of VMware and download one of
the Linux operating systems into your vmplayer. A popular choice
might be
Ubuntu 8.10 Desktop, which has two users giving it
5 stars as of Nov. 7, 2008. It will expand to 3 GB
on disk. As a VMware guest operating
system it is assigned only 512 MB of RAM by default (can
be modified). The advantage is that it allows you to use both
Linux and Windows in the same environment. The disadvantage is that
it gives 512 MB of RAM to Linux, and it takes 512 MB
away from Windows when you are running Linux alongside Windows.
(When you exit the vmplayer, the 512 MB RAM is returned
to Windows.
Linux (further information):
(Some of this information is out-of-date. But this may help guide
you if you are looking for other ways to gain experience with Linux.)
Linux is fast becoming a popular choice for a desktop operating system
alongside Microsoft Windows and Apple MacOSX. Here are some pointers
to Linux. I also have
a Linux web page,
with basic information.
You can easily try it out without having to partition your disk, via
the three options below. (See additional information on vmplayers and
wubi/wubuntu above.):
- a LiveCD (requires re-boot, but doesn't touch your hard disk)
- VMplayer (runs Linux as virtual (guest) operating system on
top of your host operating system, Windows. (Unfortunately,
the free vmplayers are currently available only for Windows
and Linux. One installs the vmplayer, and then downloads
a "virtual application". VMware has several
Linux virtual machines to choose from.
- Wubuntu (Ubuntu distribution inside your Windows distribution)
The most popular permanent version of Linux today
is Ubuntu. You can download it
and install it. It will lead you through partitioning your hard
disk to create a dual-boot PC (booting Windows and Linux --- you choose
the default O/S, and you can choose the non-default at boot time.
This remaining information is becoming more out-of-date, but is left here
in case it is useful:
If you decide you want Linux available permanently, the simplest thing
to do is to get the Ubuntu .iso image or create an Ubuntu LiveCD,
and then follow their instructions for installing Ubuntu permanently.
(Ubuntu is the most widely used Linux distribution, but you are welcome
to alternatively install any of the many other Linux distributions.)
For those who are interested further, we will:
- provide
pointers to scripts that install the LiveCDs to hard disk;
- provide
pointers to full Linux
distributions that install to hard
disk (harder to configure properly than LiveCDs, but much more
software)
- provide pointers to help with Linux issues (e.g.
Crew
and in-class volunteers)
(This portion has not been updated for a long while. For example,
the question about 64-bit CPUs
has now become an absolute standard, and dual-core processors
are now the latest thing. Nevertheless, the information in these
articles is still highly relevant to today's CPUs.)
- Intel chips
- AMD chips
- IBM POWER4 and POWER5