Zajęcia zdalne w ramach konsoli tekstowej systemu Unix

Problem

Podgląd działań i interakcja ze studentami pracującymi zdalnie na konsoli tekstowej systemu Unix.

Rozwiązanie

Praca zdalna w ramach okna terminala tekstowego w systemach Unix może być ułatwiona dzięki multiplekserom typu GNU Screen. Zdecydowanie wygodniejszą i bogatszą wersją tego typu narzędzia jest program Tmux. Umożliwia on tworzenie wielu sesji, wielu okien terminala w ramach sesji oraz podział okien na panele (panes). Warto zainwestować w zapoznanie się z Tmuksem czytając np. dokument Getting Started. Sama multipleksacja terminala nie umożliwia jednak jeszcze możliwości współbieżnego dostępu do terminala przez 2 lub więcej osób (student i prowadzący). Z pomocą przychodzi jednak nakładka na Tmuksa o nazwie Wemux. Program ten wewnętrznie wykorzystuje Tmuksa, ale jednocześnie tworzy i zarządza lokalnym gniazdem komunikacyjnym, umożliwiając w ten sposób podpinanie się do sesji wielu użytkownikom. W praktyce wygląda to więc następująco:

  1. Student loguje się do serwera dydaktycznego protokołem SSH i…

  2. uruchamia Wemuksa (czyli w rzeczywistości Tmuksa), organizując sobie przestrzeń do pracy wg własnego uznania.

  3. Prowadzący loguje się do serwera dydaktycznego i na prośbę studenta dołącza się do aktywnej sesji, uzyskując pełnowymiarowy dostęp do zdalnego terminala. W trybie pair wszyscy dołączeni mają pełną kontrolę nad terminalem; w trybie mirror jest to tylko podgląd. Po konsultacji prowadzący może się odłączyć, nie przerywając pracy studentowi.

  4. Na koniec zajęć student może zamknąć sesję terminalową lub pozostawić ją na serwerze i wrócić do niej później.

Gniazda komunikacyjne tworzone przez program Wemux znajdują się w katalogu /tmp i zaczynają się od prefiksu wemux-. Modyfikując prawa dostępu do tych plików specjalnych studenci mogą umożliwić lub nie dołączanie się do swoich sesji. Domyślne ustawienia powodują, że dołączać się mogą prowadzący, ale nie studenci między sobą.