There are restrictions on the use of the Lab facilities:
Note: I strongly encourage you to subscribe with your Stony Brook CS account. This will ensure that mail will arrive to you more quickly, and that you are less likely to run out of your mail quota than if you were using some other ISP's mail service. If I post an important message to the class list, and you don't get it because your mail quota has exceeded, I may get a bounce back saying so, but I will have no way to communicate back with you. It is therefore your responsibility to ensure that you can always read the class mailing list and to stay current with what I post there.
Please do not set your list subscription mode to Digest because digests can take several days to get emailed to you.
Please note that you will get an OSLAB account that will allow you to log into several machines and possibly also a UG lab account. Do not send email to the TA or the instructor from these machines, nor should you expect to get email sent to you on these machines; they are not configured for email processing. Please do all your email communication through whatever email means and email ID you were using outside these labs. It is particularly important that you follow these instructions to ensure that you could communicate with the teaching staff promptly.
Note that if you use DHCP at the source (say, a DSL line at home), then your IP address may change over time. In that case, you will have to re-visit the above link periodically to re-enable your access for your new IP address Similarly, if you tend to ssh from multiple locations (home, work, etc.), then please revisit the above URL as many times as needed.
Be aware, however, that some times, the reason you cannot ssh into the OSLAB is due to a bad network connection somewhere outside campus, or outside the CS department: those situations are beyond my control. You are advised to start working on your homework early, and to ensure that you will always have a place to work on your assignments, even if much of the campus network is down (e.g., use the UG Lab).
I apologize in advance for this inconvenience. It was made necessary due to numerous break-in attempts daily through my lab SSH servers.
BTW, sometimes, to help minimize network traffic over the SSH tunnel (especially. if you're working from home over a slow ISP), you can use use "ssh -C". The "C" is for "Compress" -- it tends to improve performance when you tunnel a X11 session (b/c the X11 protocol is a network hog :-)
| No. | Host Name | Running Operating System |
| 1 | a-centos5.fsl.cs.sunysb.edu | CentOS 5, Linux (x86_64) |
| 2 | a-solaris10s.fsl.cs.sunysb.edu | Sun Solaris 10 (SPARC v9) |
| 3 | a-hpux11.fsl.cs.sunysb.edu | HP-UX 11.23 (Itanium) |
| 4 | a-aix53p.fsl.cs.sunysb.edu | IBM AIX 5.3L (PPC64) |
| 5 | a-solaris8.fsl.cs.sunysb.edu | Sun Solaris 8 (SPARC Ultra-5) |
| 6 | a-rh9.fsl.cs.sunysb.edu | Red Hat Linux 9 (i386) |
| 7 | a-freebsd53.fsl.cs.sunysb.edu | FreeBSD 5.3 (i386) |
| 8 | a-irix.fsl.cs.sunysb.edu | SGI IRIX 6.5 (MIPS 64-bit) |
| 9 | a-osx.fsl.cs.sunysb.edu | Apple MacOS-X 8.5.0 (PPC) |
| 10 | a-rh73.fsl.cs.sunysb.edu | Red Hat Linux 7.3 (i386) |
| 11 | a-suse93.fsl.cs.sunysb.edu | SuSE Linux 9.3 (i386) |
| 12 | a-netbsd20.fsl.cs.sunysb.edu | NetBSD 2.0.2 (i386) |
| 13 | a-openbsd37.fsl.cs.sunysb.edu | OpenBSD 3.7 (i386) |
To login to one of these machines (say, a-centos5):
ssh user@a-centos5.fsl.cs.sunysb.eduWhere user is your username for the account that was given to you on the oslab server. If you are using the same username, you can omit the "user@" part.
Once you get into your one of the work machines machine, you can start editing source files and compiling as needed. Your home directory is shared using NFS across all of the aforementioned machines.
Do not wait until the last minute before submission time to figure out how to submit your homework assignment. Learn these procedures well ahead of time, experiment with them, and try and try again. You can submit your assignment as many times as you'd like, but we will consider the last set of files you've submitted as the ones you want us to grade. Don't be late because we won't accept late submission excuses such as "CVS didn't work for me."
To simplify matters for you we've set up CVS repositories for everyone.
Warning: protect your homework from accidental loss! All of the files you have in your home directories are not being backed-up. That means that if you remove your files my mistake (happens a lot, often right before a due date), you will lose all of your data and won't have anything to submit. Using CVS you can make a copy of your files and more: record each version of your files as you change them. It is your responsibility to use CVS often. The graders will not accept excuses such as "I just removed all my files and can't submit my homework."
ssh user@a-centos5.fsl.cs.sunysb.eduwhere user is your oslab/FSL Unix login name.
cd export CVS_RSH=ssh cvs -d user@cvs.fsl.cs.sunysb.edu:/home/cvsroot checkout cse376/userWhen this step is done, you will have four subdirectories created: cse376/user/hw1, cse376/user/hw2, cse376/user/hw3, and cse376/user/hw4: one for each homework assignment. Note again that this checkout procedure must be done only once: repeating it can confuse CVS into using recursive repositories, and your homework could be lost.
cd ~/hw1-template cp Makefile README *.c ~/cse376/user/hw1/
cd ~/cse376/user/hw1/ cvs add Makefile README *.cIf you have other files to include in your submission, you should "cvs add" them as well. But, do not submit or add/commit binaries or other object files: those can be produced easily by running "make."
cd ~/cse376/user/hw1/ mkdir test cvs add testThe last command is crucial to tell CVS that "test" should now be version controlled. After that you can create new new files in test/ and "cvs add" them.
cvs commit -m"message"Replace message with a descriptive message that will help you and us know what was the purpose of your commit. For example:
cvs commit -m"saving initial hw1 files"At this point you have committed the first version of your files. This committal is in fact a submission method: we get an email notification each time you commit files, so we know which files were committed and when.
Now you can go ahead and edit your sources, add new ones, compile your code, etc. In fact, from this point on, you should not continue to work in your older ~/hw1-template/ directory. Instead, work in the ~/cse376/user/hw1/ directory, where you can add new files and safely commit them to CVS for backup and submission purposes.
cvs commit -m"add support for encryption"It's perfectly OK for you to commit (read: submit) your files as many times as you'd like. If you submit many times, we will grade the very last version of your files which you've submitted.
cvs -n update -dAny file listed as a result of the above command, and which has a "?" symbol in front of it, is a file which the CVS server doesn't know about (meaning it does not get committed by default). You may see object files and other temporary editor files listed as unknown. That's OK, because they are not supposed to be committed anyway. But any other file, especially a source file, must be "cvs add"ed and committed.
Second, you can check out a second, temporary version of your own committed files and verify that they compile and run as you expect them to:
mkdir ~/tmp cd ~/tmp export CVS_RSH=ssh cvs -d user@cvs.fsl.cs.sunysb.edu:/home/cvsroot checkout cse376/user/hw1 cd ~/tmp/cse376/user/hw1 makeIf the above "make" command succeeds, you know for example that the code you've committed indeed compiles. You may now test that code inside VMware to ensure that it works (just because it compiles doesn't mean that it works).
cd ~ rm -fr ~/tmp/cse376/user/hw1
cd ~/cse376/user/hw1 rm -f READMEWell, you can easily restore that file from your committed files as follows:
cvs update -dCVS will check back out any files that were committed into the CVS repository but are now no longer in your checked out copy. (If you're going to try this, be careful not to remove a file that you haven't really committed, or it'll be lost forever.)
cvs status foo.cYou can get a detailed history using the log command:
cvs log foo.cThe latter will show you your log messages and version numbers of foo.c. You could then, for example, check what changes you've made between version 1.2 and 1.3:
cvs diff -u -r1.2 -r1.3 foo.c