# Учебный сервер для студентов

Данный сервер поднят для выполнения студентами их [индивидуального задания](../Labs/04.%20Primitive%20programmable%20device#индивидуальные-задания), а также для тех студентов, кому не хватило места в учебной аудитории. На сервере установлены: `Vivado`, `VSCode`, `gcc`, `git`. Поскольку сервер имеет ограниченные ресурсы, а студенты не имеют привычки закрывать за собой программы при завершении сессии, тут не установлен браузер. Имейте в виду, что если вы закрыли сессию, не закрыв Vivado и там остались несохраненные файлы, то вы рискуете потерять свои изменения.

## Правила работы на сервере
Есть некоторые правила, которых необходимо придерживаться:
 * Не хулиганить на сервере, не распаковывать zip-бомбы, не забивать преднамеренно всю оперативную память, не майнить, не выполнять любые противоправные действия и действия, которые нельзя назвать "работой на сервере". За нарушение перманентный бан без возможности восстановления доступа.
 * Если вы очень долго не пользуетесь удаленным рабочим столом, закрывайте открытые программы и окна. Ресурсы сервера ограничены и одни на всех, уважайте своих коллег.
 * Нельзя передавать другим данные своей учетной записи.
 * Всегда сохраняйте все файлы после работы. Мы не гарантируем того, что сервер не будет перезагружен с потерей несохраненных данных в редакторах кода.
 * В конце семестра учетные записи и все данные удаляются для всех групп, поэтому не забывайте сохранить данные "на память".


## Разные учётные записи

На этом месте необходимо разобраться, какие существуют учетные записи и для чего они предназначены:
1. При поступлении в МИЭТ, каждому студенту выдаётся учетная запись, с помощью которой он может пользоваться внутренними сервисами ВУЗа. Например, вы используете эту учетную запись, чтобы войти в ОРИОКС. Эту учетную запись мы будем называть **"Учётной записью МИЭТ"**. В этом документе мы используем данную учетную запись только для подключения к VPN МИЭТ.
2. Для прохождения курса АПС каждому студенту создаётся учетная запись на сервере и преподавателем вам выдаются её данные: логин/пароль. Эту учетную запись мы называем **"Учетной записью сервера АПС"**. Её мы используем для подключения к серверу через программы x2go и WinSCP.

## VPN МИЭТ

Подключение к серверу осуществляется из миэтовской сети. Это значит, что для подключения нужно либо подключиться к общажной сети (которая является частью миэтовской), либо воспользоваться [миэтовским VPN](https://vpn.miet.ru/).

Существует несколько важных замечаний касательно VPN МИЭТ:
 * Для подключения к VPN МИЭТ необходимо использовать данные **учётной записи МИЭТ**.
 * Одновременно к VPN с одной учетной записи может быть подключено только одно устройство. Из-за этого могут возникать забавные ситуации, когда дома вышел из сна компьютер и пытается подключиться к VPN, из-за чего постоянно рвется VPN-соединение вашего ноутбука на лабораторной.
 * Чтобы подключиться к VPN, вам обязательно надо хотя-бы один раз поменять пароль учетной записи МИЭТ со стандартного (дата вашего дня рождения) на свой. Большинство людей делают это на первом курсе и забывают на всю оставшуюся жизнь.
 * Авторы курса и преподаватели не поддерживают и не отвечают за работоспособность VPN. Если у вас не работает VPN, и вы уверены в том, что всё делаете правильно, то стоит обращаться к администраторам VPN в аудиторию 4100.

## Порядок подключения к серверу

Для подключения, необходимо скачать и установить программу [`X2Go client`](http://code.x2go.org/releases/X2GoClient_latest_mswin32-setup.exe). Во время установки можно оставить все опции без изменений.

При первом запуске, появится окно настройки подключения (если окно не появилось, нажмите `Ctrl+N` или выберите в меню `Session -> New Session`). Вам необходимо заполнить поля:

- Хост (вводим `82.179.178.13`)
- Пользователь (вводим логин **учетной записи сервера АПС**, который вам выдал преподаватель)
- SSH порт (вводим `2222`)
- Тип сессии (выбираем `XFCE`)

Опционально можно настроить `имя сессии` и её `значок`.

<details>
  <summary>Пример заполненных настроек</summary>

  ![../.pic/Other/Students%20server/x2goclient_config.png](../.pic/Other/Students%20server/x2goclient_config.png)

</details>

После создания сессии, она отобразится в правой части программы. Двойной клик по сессии создаст подключение, в процессе которого от вас потребуется ввести пароль от выданной вам **учетной записи сервера АПС**. После небольшого ожидания, откроется окно с удаленным рабочим столом.

Можно менять размер окна, размер рабочего стола подстроится автоматически. Также работает копи-паст текста между компьютером и удаленным рабочим столом.

В случае возникновения проблем с удаленным рабочим столом, рекомендуется первым делом попробовать перезапустить сессию на сервере нажатием кнопки «Terminate».

<details>
  <summary>Где найти кнопку Terminate</summary>

  ![../.pic/Other/Students%20server/x2goclient_config.png](../.pic/Other/Students%20server/x2go_terminate.jpg)

</details>

## Как работать на сервере

Запуск `Vivado` осуществляется двумя путями: через `Applications->Development->Vivado`, либо через запуск команды `vivado` в терминале.

Для копирования своего проекта на сервер можно воспользоваться несколькими путями: клонирование репозитория посредством git, использование утилиты scp, однако для простоты инструкции будет предложено воспользоваться программой с графическим интерфейсом `WinSCP`.

WinSCP — это программа для Windows с графическим интерфейсом, реализующая передачу файлов между компьютерами поверх инструмента scp (secure copy).

Руководство по установке и запуску схоже с установкой X2Go:

1. Необходимо [скачать](https://winscp.net/eng/downloads.php) и установить программу (при установке можно выбрать рекомендованные настройки, можно их кастомизировать под себя).
2. При запуске вам предложат ввести данные для подключения. Заполняете поля аналогично тому, как вы делали для X2Go. Выпадающий список `File Protocol` можете оставить без изменений.
3. В данной программе вы можете сохранить так же и пароль. Вообще говоря, это не безопасно и так делать обычно не рекомендуется.
4. Через `Advanced...->Advanced->Directories->Local Directory`, можно настроить папку на вашем компьютере с данными в которой вы сможете взаимодействовать через WinSCP.
5. Интерфейс перемещения данных предельно интуитивен: файлы и папки можно перетаскивать, копировать и вставлять, скачивать и загружать, удалять, перемещать и переименовывать. Делайте как вам удобно. В процессе могут появляться подтверждающие всплывающие окна.
