Working remotely

Many of the labs and projects can be worked on remotely, outside of the EWS labs. There are two ways of doing this; by connecting remotely to EWS systems over the Internet, or using your own computer.

⛔️ Caution!
Technical difficulties encountered while trying to connect remotely are not acceptable as an excuse for failing to submit an assignment or for turning an assignment in late!

Please refer to EWS Remote Connections 🔗 for detailed instructions on how to access EWS lab machines remotely. Here we provide a brief overview of some of the options you may find suitable to your needs.

Connecting Remotely

There are two primary ways of connecting remotely, through SSH or through NX Client. SSH is simpler and more robust, but requires a little bit of learning to get used to since it's a command line based interface. NX Client is easier to use once working, but it requires some setup and is not as reliable due to the complexity of providing a virtual monitor, mouse, and keyboard

SSH

SSH stands for Secure SHell. When you connect to a machine with SSH, you get access to a terminal on that machine that allows you to work on the command line.

Mac OS X, Linux

On a Unix machine you can create a remote command line by opening up a terminal on your computer and running the "ssh" program like so:

ssh netid@linux.ews.illinois.edu

Where netid is your netid. To disconnect from the remote machine, simply run "exit". This will only give you terminal access, so you won't be able to launch GUI applications. This may not be as big of a problem as you might think, see "Dumping the GUI" section below.

If you can't live without a GUI, you can probably enable it with something called "X forwarding". Add the -Y flag to your ssh invocation like so:

ssh -Y netid@linux.ews.illinois.edu

If X forwarding is successful, you should be able to run GUI applications.

Windows

On a Windows machine, you can get an SSH client called PuTTY 🔗. When you run it, use your netid as your username, and "linux.ews.illinois.edu" as the hostname. If everything goes well, you'll have a terminal on an EWS machine. Type "exit" to disconnect. The default install of PuTTY only provides command line access but it can be extended to run GUI applications to handle X11 forwarding. This can be done by installing a program called XMing and following the instructions listed here 🔗. If you choose not to use XMing, the next section provides some alternatives to GUI applications.

Edit 2020: Windows 10 Powershell includes SSH capabilities natively. See Linux instructions above for this option.

Dumping the GUI

As you become more familiar with the command line, you'll discover that many of the things that you used to need a GUI for can be done on the command line. In fact, in this course, everything can be done on the command line since all the graphical tools you might use have command line equivalents. Using the command line has a number of advantages: more power, more flexibility, and simplicity.

FASTX

For the people that want the familiarity of the desktop environment, NXClient is an option for remote connection. When you run FASTX, it's like virtually sitting in front of a computer in the EWS lab. Instructions for setting it up can be found at Engineering IT's FASTX guide 🔗. This will only work inside the University network (presumably for security reasons). If you want to connect outside the University network, you will need to connect to the Cites VPN 🔗 (Virtual Private Network) first, so that you are virtually inside the network.

Visual Studio Code

VS code is a free text editor from Microsoft. This editor is recommended if you do not like the lag from the GUI text editor in FASTX.

Working on your own machine

Despite the high reliability of EWS systems, some people may want the independence that comes with working on your own machine. To do this, you'll need to install the programs that we use in this course on your own machine.

First of all, if you're running Windows, you'll find things a bit more challenging. This is because Windows likes to be different from all of the other operating systems, which means by itself, it won't be able to run the programs used in this class. Luckily, there's a program called Cygwin 🔗 which provides a Unix environment inside of Windows.

Text editing

Do not use MS Word, Notepad, Wordpad as these programs format text files in ways that can break programs used in this class. See Coding Conventions for more info.

In addition to the above GUI text editors, you can use command line editors on Unix/Cygwin:

lc3tools

You can run these on Unix-like systems (Mac OS X, Linux, and Cygwin). See Installing LC-3 tools on your machine.

clang

You can also build and run clang on Unix-like systems, but it's not for the faint of heart. If you're feeling savvy, you can give it a try by following the Clang getting started Guide 🔗

You can also gcc, which is a more standard compiler. You can use it just like you use clang, with the same compiler flags. On Cygwin you'll install it like you did svn.

ccons

Installing this is probably for 1337 h0x0rs 🔗 and requires building clang first. You'll want to checkout from their SVN repository by following the directions here: http://code.google.com/p/ccons/source/checkout 🔗.

Then follow the directions in README.txt

Comments

If you have any suggestions or tips about working remotely, post them on EdStem 🔗 so that others can benefit!

All rights reserved by ECE220@UIUC. Design by Asher Mai & Ivan Abraham.
Last modified: January 09, 2024. Website built with Franklin.jl and the Julia programming language.