1 VirtualSandbox


1.1 What kind of computer should I buy/have for this class?

ITextras/ComputerRecommendations.html

1.2 Virtual working environment for technical assignments

So you can have a working environment, I provide:
1. a container and its build scripts,
2. scripts and dotfiles for full VMs,
3. help with your own bare-metal installs
4. instructions about using Mill-Desktop

1.2.1 Pre-reading

General details on Linux and VMs I very strongly suggest you read and review for every class!
../Classes/CompSciTools/Content/LinuxBash.html
../Classes/ComputationalThinking/Content/18-InputOutput.html
../Classes/CompSciTools/Content/VirtualMachines.html
../Classes/Security/Content/Virtualization.html

Develop, test, and submit your assignments using the class-supported virtual sandbox.
We grade in this environment (on the Gitlab CI/CD), and your code must run there.
If you write your code on your Windows or Mac install,
test it on the class environment, where it was designed.

1.2.2 Class container

This is essentially guaranteed to work.
https://git.mst.edu/os/container

I maintain a simple container for running with podman, docker, or singularity:
It can be run via podman or docker on Windows, Mac, Linux,
or via singularity / apptainer on Mill-Desktop.
The container documentation and build files are included in the template for each grade.sh repo:
ClassroomCode.html
This terminal runs a fully configured Linux environment to run your auto-grader, test, etc.
It shares a folder with the current directory (your git repository),
so that you can edit in your host, and run in the container.

Typically, you are given a git repository for each assignment.
In that repository are some files for running a container.
This system allows you to launch a working terminal.
It is a fully configured Linux environment to run your auto-grader, test, etc.
It shares a folder with the current directory (your repository).
This folder sharing allows you to edit in your host,
and actually execute tests and code in the container.

1.2.3 Full virtual machine

This is essentially guaranteed to work,
though may take a bit more setup effort.

I recommend using a Fedora with XFCE desktop.
I provide scripts to install and configure:
https://git.mst.edu/os/linux_config

1.2.4 Your own bare-metal Linux installation

This will likely to work,
though may take a bit more setup effort.

If you are already running Linux on your own machine, bare metal:
The class environment is likely similar enough.
If you want to skip the VM (and are not in Security), you can do so.
If it breaks an assignment grading, talk to me after, and we can fix your grade.
I am always willing to help you figure this option out!

Security note:
This exception does not apply for Security,
which you really should sometimes NOT execute our class scripts in your host;
they will break things.

1.2.5 Campus Linux machines: Mill desktop

In addition to HPC batch-job processing capabilities,
the Mill offers a full virtual desktop running Linux (Fedora/Red-Hat) with the XFCE desktop,
available from within the web browser, either on or off campus.

In general, to use the Mill as a student, you can request access here:
https://itrss.mst.edu/cluster/mill/
https://docs.itrss.umsystem.edu/pub/hpc/mill

If you are in a class that uses the Mill,
which has submitted your account information,
then use your campus Single Sign-On (SSO) to authenticate:
https://mill-classes.mst.edu/
For a full login here to be sucessful, you need to both:
1. Be part of a netgroup for a particuar class using mill-classes.
2. Have an account setup at mill-classes by requesting access.

If when logging in, you get a:

400 error, your authentication might be stale
(either open an incognito browser instance or restart your browser, etc.).

500 error, your account might not be setup and attached to a course
(verify with your instructor that you have been added to a Mill Classes Netgroup).

You can easily run Singularity/Apptainer/Docker/Podman/OCI containers using this interface.
The specific commands shown at the class container link above!