About Classes


Intro

The Classes server is a Linux server. Linux (more properly GNU/Linux) is a combination of the Linux operating system kernel and GNU utilities. When you login via an SSH client such as Putty, the system starts up a text-based "shell" which allows you to navigate the file system and run programs.


Hardware

The Classes server runs on an x86_64 CPU. Fundamentally, the hardware is not really different from a typical desktop computer except it is a lot more reliable, has more memory, and more CPU cores. The CPU is an Intel Xeon instead of a consumer model such as an Intel i7. However, the Classes software could be installed on any normal desktop computer.


Software

The software running on Classes is a Debian distribution of GNU\Linux configured as a server. Desktop and Server versions of Linux are fundamentally the same they use the same kernel to manage hardware and software. You could install and run typical server services on a Desktop version of Linux and vice versa. The primary difference is in the user software they come prepackaged with.


Linux as Server

Servers, by definition, should run at least one network service that listens on network ports and provide services to remote users working on other computers (things like email, websites and so on). The Linux kernel (like any OS kernel) manages the services just like any other software making sure that they share hardware resources safely, fairly and efficiently (for example, both email and web services share the same physical network connection).

The primary network service on Classes.csc is the SSH (secure shell) service which listens for incoming users who need a connection. The server also has many ordinary software programs installed so that those users, once logged in, can run basic things like compilers and text editors. Those are normal programs no different than programs on a Windows PC such as Microsoft Word, only a bit more primitive looking due to using a text interface instead of graphics. Don't let the look fool you: terminal programs are often more featured and powerful than GUI programs as they're designed by and used by power-users. The downside is that there is usually a steep learning curve.


Linux as Desktop

Unix (on which Linux is based) was originally designed and optimized for running services and terminal programs. A Linux desktop computer is still a server at heart. It runs a graphics service in addition to, or instead of other services. The graphics service is very complex. It uses a lot of resources and is considered to be a security risk, hence it is often not installed (or is disabled) on important Linux servers. In contrast, graphics are a fundamental part of Microsoft Windows systems, and Windows Server variants always come with the desktop software built-in.

If you use a Linux desktop computer, you can access a terminal environment very similar to the one on the Classes server by using your search/finder to find and open a terminal program. Mac OS began life as Unix and also comes installed with a terminal that has many of the same features found in a GNU/Linux shell. On Windows, you can get a Linux style terminal by installing Cygwin or installing WSL (Windows Subsystem for Linux). The Linux command line is universially available and well worth learning in detail.