Как вы относитесь к исследовательским задачам по реализации проброса системы локального компьютера на удаленный?
Что проверяют
Два слоя сразу: как вы относитесь к задачам без готового ответа и понимаете ли вы предметную область. Под «пробросом» обычно имеют в виду перенаправление локальных устройств и ресурсов в удалённую сессию: USB, диски, принтеры, смарт-карты, звук, буфер обмена. Следом спросят, как вы поймёте, что исследование пора заканчивать.
Как отвечать
Ответ строится на личном опыте, с вашими примерами и цифрами. Каркас:
- отношение: честно скажите, какая доля исследовательской работы вам комфортна. «Люблю» без примера ничего не весит;
- как вы ведёте исследование: уточняете цель (что именно пробрасываем и с какими требованиями к задержке и безопасности), изучаете существующие решения, ограничиваете время, делаете прототип, замеряете и пишете вывод с рекомендацией, даже если он отрицательный;
- опорные технологии: виртуальные каналы RDP и перенаправление устройств, открытая реализация FreeRDP (написана на C), SPICE с
usbredirв экосистеме KVM, USB/IP в ядре Linux, для сетевых портовssh -Lиssh -R. Для C++ части: асинхронная сеть на Boost.Asio, TLS через OpenSSL, а для виртуальных устройств драйверы режима ядра (Windows Driver Kit, модули ядра Linux); - результат: что получилось в итоге, какую задержку или пропускную способность вы намерили, пошло ли решение в продукт.
Если такого опыта не было, возьмите ближайшую исследовательскую задачу из своей практики и расскажите её по этому каркасу, а затем коротко опишите, с чего начали бы здесь: с разбора FreeRDP и выбора, на каком уровне перехватывать устройство. Такой ответ честнее и сильнее придуманного проекта.
Где спотыкаются
Отвечают «да, интересно» и замолкают. Интервьюеру нужен пример и способ работы, а не настроение.
Не уточняют, о каком пробросе речь, и путают трансляцию экрана через VNC с перенаправлением устройств.
Описывают исследование без ограничения по времени и без вывода. Ещё одна частая дыра: ни слова о безопасности, хотя проброшенное устройство или порт открывает удалённой стороне доступ к локальной машине.