Некоторые сведения о физическом уровне и управлении виртуальными машинами
Носители данных
Две задачи:
Свойства среды передачи данных
- Коммутация каналов или данных?
- Аналоговый поток ⇒ разделяем каналы
- Цифровой поток ⇒ разделяем данные
- С помощью чего представляются данные
Например, витая пара: дифференциальный сигнал и фазовая манипуляция (отличная статья, кстати)
- А можно было бы и тупо есть напряжение-нет, но скорость была бы на несколько порядков ниже
- Параметры среды, условия эксплуатации
Та же витая пара: оплётка, шаг и направление скруток, расстояние до соседней пары и т. п. (тысячи их)
- Коммутация каналов или данных?
- Формат данных
- Кодирование
Синхронизация (NRZ → Manchester)
- Как отличить данные от не-данных? (преамбула/кадр)
- Обнаружение ошибок. Пример: чётность; сколько дополнительных битов, столько ошибок можно найти, но не исправить.
- Исправление ошибок (пример: линейный код 1 bit + 2 corr = 1 err )
- Скремблинг (в некоторых средах спасает от «накопления единицы»
- Адская математика и алгоритмы коррекции искажений среды (например, ADSL)
Пример: последовательный порт RS-232 (вспомогательные сигналы для управления потоком, но контроль чётности уровнем выше, UART)
- Кодирование
Работа с VirtualBox
Важно: Фиксация состояния (snapshot) и откат к этому состоянию
- Какие настройки можно крутить
- Клонирование машин
«Связное клонирование»
«Новые MAC-адреса для всех сетевых адаптеров»
Как делать Д/З
Программа (скрипт) report и файлы отчёта
report номер_задания название_хоста
получается файл report.номер_задания.название_хоста
- Просмотр отчёта
report файл_отчёта
Передача отчёта из виртуалки
- «Ленивый» вариант — scp
настраиваем сеть автоматически (должен заработать интерфейс eth0):
# dhcpcd
- Копируем файл на компьютер, где у вас есть ssh-аккаунт:
# scp отчёт имя_пользователя@адрес_компьютера:
- Например, для копирования в хост-систему можно использовать 10.0.2.2:
# scp report.01.base george@10.0.2.2:
У студентов ВМК есть логин на компьютере prac.cs.msu.ru
- «аппаратный вариант» — COM-порт в файл (как в лекции)
- выключите виртуалку
удалите файл port_logger (или как вы его назвали)
- Настройте эмуляцию ком-порта — перенаправление вывода в файл
- В виртуальной машине:
Настройте COM-порт (это режим, при котором ядро не считает его терминалом, и не обрабатывает/преобразует передаваемые байты; обратите внимание на то, что порт должен открываться на чтение, поэтому используется «<») # stty raw < /dev/ttyS0
- Вывалите отчёт в COM-порт (больше ничего с ним не делайте)
# cat report.01.base > /dev/ttyS0
Выключите виртуалку и переименуйте файл port_logger в report.01.base
«Аппаратно-сетевой вариант» — COM-порт в TCP + netcat (для система, в которых есть netcat)
- Настройте эмуляцию ком-порта — перенаправление ввода-вывода в поток TCP/IP например, на порт 2010
- После старта вируталки в хост-системе запустите
netcat localhost 2010 > report.01.base
- В виртуалке проделайте обе команды (перенастройку ttyS0 и перенаправление файла с отчётом)
На хост-системе скажите netcat-у ^D (Это control+D)
- Настройте эмуляцию ком-порта — перенаправление ввода-вывода в поток TCP/IP например, на порт 2010
Вариант с флоппи-диском. показанный на лекциях, не принимается
Отчёт — это tar-архив, можно проверить, что он не попортился при передаче, с помощью tar tvf report.01.base
Д/З
Удалить (переименовать, если жалко) старую виртуалку и проимпортировать чуть-чуть подновлённую версию образа
Задание 1
- Склонировать базовый образ
Настроить COM1 в двух образах на работу с сокетом («настройки ВМ → COM-порты» «Порт1 → хост-канал» + какое-нибудь имя, например, vboxport; см. подсказку VirtualBox-а, как это должно называться под Windows — там хитро)
На одном хосте поставить «подключаться к уже существующему каналу», на другом — нет (он-то будет открывать сокет)
- Отчёты:
На базовой машине (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