Некоторые сведения о физическом уровне и управлении виртуальными машинами

Носители данных

Две задачи:

  1. Свойства среды передачи данных

    • Коммутация каналов или данных?
      • Аналоговый поток ⇒ разделяем каналы
      • Цифровой поток ⇒ разделяем данные
    • С помощью чего представляются данные
    • Параметры среды, условия эксплуатации
      • Та же витая пара: оплётка, шаг и направление скруток, расстояние до соседней пары и т. п. (тысячи их)

  2. Формат данных
    • Кодирование
      • Синхронизация (NRZ → Manchester)

      • Как отличить данные от не-данных? (преамбула/кадр)
      • Обнаружение ошибок. Пример: чётность; сколько дополнительных битов, столько ошибок можно найти, но не исправить.
      • Исправление ошибок (пример: линейный код 1 bit + 2 corr = 1 err )
      • Скремблинг (в некоторых средах спасает от «накопления единицы»
      • Адская математика и алгоритмы коррекции искажений среды (например, ADSL)
    • Пример: последовательный порт RS-232 (вспомогательные сигналы для управления потоком, но контроль чётности уровнем выше, UART)

Работа с VirtualBox

Как делать Д/З

Программа (скрипт) report и файлы отчёта

Передача отчёта из виртуалки

  1. «Ленивый» вариант — scp
    • настраиваем сеть автоматически (должен заработать интерфейс eth0):

      • # dhcpcd

    • Копируем файл на компьютер, где у вас есть ssh-аккаунт:
      • # scp отчёт имя_пользователя@адрес_компьютера:

      • Например, для копирования в хост-систему можно использовать 10.0.2.2:

        # scp report.01.base george@10.0.2.2:

      • У студентов ВМК есть логин на компьютере prac.cs.msu.ru

  2. «аппаратный вариант» — COM-порт в файл (как в лекции)
    • выключите виртуалку
    • удалите файл port_logger (или как вы его назвали)

    • Настройте эмуляцию ком-порта — перенаправление вывода в файл

      com_file.png

    • В виртуальной машине:
      • Настройте COM-порт (это режим, при котором ядро не считает его терминалом, и не обрабатывает/преобразует передаваемые байты; обратите внимание на то, что порт должен открываться на чтение, поэтому используется «<») # stty raw < /dev/ttyS0

      • Вывалите отчёт в COM-порт (больше ничего с ним не делайте)

        # cat report.01.base > /dev/ttyS0

    • Выключите виртуалку и переименуйте файл port_logger в report.01.base

  3. «Аппаратно-сетевой вариант» — COM-порт в TCP + netcat (для система, в которых есть netcat)

    • Настройте эмуляцию ком-порта — перенаправление ввода-вывода в поток TCP/IP например, на порт 2010

      com_tcp.png

    • После старта вируталки в хост-системе запустите

      netcat localhost 2010 > report.01.base

    • В виртуалке проделайте обе команды (перенастройку ttyS0 и перенаправление файла с отчётом)
    • На хост-системе скажите netcat-у ^D (Это control+D)

  4. Вариант с флоппи-диском. показанный на лекциях, не принимается

Отчёт — это tar-архив, можно проверить, что он не попортился при передаче, с помощью tar tvf report.01.base

Д/З

Удалить (переименовать, если жалко) старую виртуалку и проимпортировать чуть-чуть подновлённую версию образа

Задание 1

  1. Склонировать базовый образ
  2. Настроить COM1 в двух образах на работу с сокетом («настройки ВМ → COM-порты» «Порт1 → хост-канал» + какое-нибудь имя, например, vboxport; см. подсказку VirtualBox-а, как это должно называться под Windows — там хитро)

    • На одном хосте поставить (./) «подключаться к уже существующему каналу», на другом — нет (он-то будет открывать сокет)

  3. Отчёты:
    • На базовой машине (report 1 base)

      • stty -a < /dev/ttyS0

      • cat /dev/ttyS0

      • после получения текста нажать ^C (Это control+C)

      • (не забыть ^D для остановки отчёта)
    • На клоне (report 1 clone)

      • stty -a < /dev/ttyS0

      • date > /dev/ttyS0

      • (не забыть ^D для остановки отчёта)

Оба отчёта (report.01.base и report.01.clone) именно с такими названиями переслать одним письмом в качестве приложений на uneexlectures@cs.msu.ru

LecturesCMC/LinuxNetwork2022/01_HardwareAndCommandline (последним исправлял пользователь Veniamin 2022-03-24 17:36:54)