USB4STREAM для Linux в ядре 7.2: передача «raw data» через Thunderbolt без участия сети

Usb4stream Linux 7.2 Thunderbolt ядро передача данных techtimes.com

Протокол USB4STREAM от Intel был объединен с ядром Linux 7.2 22 июня, предоставив нативной поддержкой в ядре для передачи данных peer-to-peer в Linux через USB4. Это позволяет любому приложению, использующему стандартные вызовы read-write, передавать необработанные данные по кабелям Thunderbolt со скоростью до 80 Гбит/с без сетевого стека, IP-адреса и промежуточного ПО.

USB4STREAM для Linux в ядре 7.2: передача «raw data» через Thunderbolt без участия сети
На этой фотографии, сделанной 14 сентября 2023 года, изображен штекер USB-C, отражающийся в логотипе Apple в Бресте, на западе Франции.
Fred TANNEAU/AFP via Getty Images

22 июня 2026 года протокол USB4STREAM от Intel — новый механизм для прямой передачи необработанных данных между двумя машинами по кабелю USB4 или Thunderbolt — был объединен с официальным деревом ядра Linux 7.2 Линусом Торвальдсом без каких-либо возражений в ходе обзора окна слияния. Любой разработчик, имеющий порт USB4 или Thunderbolt и Linux 7.2, теперь может передавать данные между машинами со скоростью до 40–80 Гбит/с без настройки сетевого интерфейса, без стека IP и без изменения единого существующего приложения.

Это слияние завершает дугу разработки, которую мейнтейнер Intel Thunderbolt Мика Вестерберг и инженер Intel Алан Борзешковский начали в начале мая 2026 года, когда они отправили первые патчи USB4STREAM на публичный обзор. Драйвер был объединен без возражений в рамках более широкого запроса на включение изменений USB/Thunderbolt, представленного мейнтейнером подсистемы Грегом Кроа-Хартманом.

Что такое USB4STREAM и чем он не является

USB4STREAM — это не более быстрая версия сетевого взаимодействия Thunderbolt. Она уже существует: драйвер thunderbolt_net присутствует в ядре Linux уже много лет, создавая виртуальный интерфейс Ethernet поверх соединений по кабелю Thunderbolt и обеспечивая реальную пропускную способность около 13–14 Гбит/с при аппаратной связи 40 Гбит/с. USB4STREAM — это принципиально иная абстракция. Вместо создания сетевого интерфейса он создает символьное устройство по адресу /dev/tbstreamX — файлоподобный интерфейс Unix, который приложения открывают с помощью стандартных системных вызовов open(), read() и write().

Практическое различие заключается в архитектуре: сетевое соединение Thunderbolt требует IP-адресов, сетевой конфигурации и программного стека, который накладывает накладные расходы на кадрирование. Соединение USB4STREAM не требует ни того, ни другого. Две машины, один кабель, одна команда dd.

Любое приложение для чтения/записи работает: Философия устройств Unix на скорости 40 Гбит/с

Поскольку USB4STREAM предоставляет символьное устройство — ту же абстракцию, которую Linux использует для последовательных портов, звуковых карт и фреймбуферов — любое приложение Unix, которое уже использует системные вызовы read() и write(), работает с ним без изменений. Это не дополнительная функция; это прямое следствие философии дизайна Unix «всё есть файл», примененной к физическому соединению 40–80 Гбит/с.

Мика Вестерберг описал протокол в своей отправке в основную ветку как способ передачи данных «через символьное устройство без необходимости проходить через сетевой стек. Любое приложение, которое в той или иной форме поддерживает read(2) и write(2), должно иметь возможность использовать устройство без изменений».

Это означает, что tar, gzip, dd, rsync и GStreamer работают сразу из коробки. Примеры документации самого Вестерберга демонстрируют резервное копирование диска NVMe по кабелю Thunderbolt одной командой dd, сжатие и извлечение дерева каталогов с помощью конвейера tar | gzip, направленного на устройство и с него, а также совместное использование веб-камеры ноутбука с подключенным настольным компьютером через GStreamer — и всё это без сети, SSH или каких-либо дополнительных инструментов.

Как архитектура туннелирования USB4 обеспечивает это

Базовая конструкция USB4 представляет собой систему туннелирования: физический кабель несет несколько независимых «путей», каждый из которых идентифицируется записью HopID в таблице маршрутизации фабрики USB4. Существующие пути несут видео DisplayPort, трафик PCIe и данные USB 3.x. USB4STREAM создает новый класс пути для необработанных пакетов наряду с этими установленными туннелями.

Модуль ядра thunderbolt_stream — который поставляется как загружаемый модуль, требующий включения USB4_CONFIGFS — управляет жизненным циклом соединения. Прежде чем данные начнут передаваться, обе машины настраивают потоки через интерфейс ConfigFS ядра по адресу /sys/kernel/config/thunderbolt/stream/. Каждый поток — это именованный канал; когда одна машина объявляет об активном потоке через протокол свойств XDomain USB4 (механизм, который USB4 использует для рекламирования возможностей хоста подключенным узлам), другая машина может сопоставить его автоматически по имени без ручного назначения HopID.

Поддерживается несколько одновременных потоков. Верхний предел зависит от количества колец DMA и доступных HopID в аппаратном обеспечении контроллера Thunderbolt системы — это аппаратное ограничение, а не программное. Один поток поддерживает двунаправленный трафик.

Настройка требует конфигурации, а не программирования

Запуск USB4STREAM требует настройки через ConfigFS, что является ручным, но не сложным процессом. Принимающая машина создает каталог в дереве ConfigFS, задает имя потоку и запрашивает автоматическое выделение HopID, записывая -1 в конфигурационные файлы HopID. Отправляющая машина делает то же самое. После завершения рукопожатия XDomain на обоих хостах появляется /dev/tbstreamX, и данные начинают передаваться.

Важно отметить, что этот шаг конфигурации может быть автоматизирован. Документация Вестерберга указывает, что резервное копирование диска на основе initramfs является основным сценарием использования именно потому, что USB4STREAM не требует работающей сети, демона SSH или сетевой конфигурации в среде ранней загрузки.

Длина кабеля — реальное ограничение

Пассивные кабели USB4 поддерживают примерно 0,5–0,8 метра, после чего целостность сигнала становится пограничной. Активные кабели USB4 увеличивают это расстояние примерно до двух метров. Это не ограничение USB4STREAM — это фундаментальное физическое ограничение самого стандарта USB4, унаследованное от его происхождения в Thunderbolt 3. Инженерам, строящим рабочие процессы USB4STREAM вокруг резервного копирования от рабочей станции к рабочей станции или промышленных сенсорных конвейеров, необходимо соответствующим образом планировать расположение стоек и столов.

Что вошло в тот же запрос на включение изменений

Запрос на включение изменений USB/Thunderbolt, который принес USB4STREAM в ядро, также включал другие улучшения для выделения туннелей DisplayPort с несколькими дисплеями через Thunderbolt, а также новый драйвер мониторинга температуры для контроллера xHCI на чипсете AMD Promontory 21 — примечательно, что этот драйвер был частично разработан кодирующим агентом OpenAI, Codex GPT-5.5.

Место USB4STREAM в развитии Thunderbolt в Linux

Linux поддерживает оборудование Thunderbolt с ядра 5.6, которое представило базовую поддержку устройств USB4 в начале 2020 года. Каждый последующий цикл расширял возможности этого оборудования в программном обеспечении. USB4STREAM — новейший пример повторяющейся редакционной линии в ядре Linux: устранение разрыва между тем, что физически способно оборудование USB4 и Thunderbolt, и тем, что программная экосистема Linux фактически позволяет разработчикам с ним делать.

USB4STREAM не делает драйвер сетевого взаимодействия Thunderbolt в Linux устаревшим. Сетевое взаимодействие Thunderbolt создает обычный сетевой интерфейс, пригодный для использования со стандартными инструментами TCP/IP; USB4STREAM создает необработанный поток байтов, пригодный для использования со всеми существующими инструментами Unix. Они решают разные задачи. Значимость USB4STREAM заключается в том, что проблема необработанного потока — передача байтов из одной машины в другую с максимальной скоростью и минимальными накладными расходами — теперь имеет нативно поддерживаемое ядром, официально одобренное решение в Linux.

Linux 7.2 все еще находится в окне слияния. Стабильный выпуск ожидается примерно в конце августа 2026 года.


Часто задаваемые вопросы

Что такое USB4STREAM и чем он отличается от сетевого взаимодействия USB4 в Linux?

И USB4STREAM, и существующий драйвер thunderbolt_net передают данные по кабелям USB4 или Thunderbolt, но они работают на разных уровнях абстракции. Драйвер thunderbolt_net создает виртуальный интерфейс сети Ethernet: вы назначаете IP-адреса, запускаете стандартные инструменты TCP/IP и получаете реальную пропускную способность около 13–14 Гбит/с на оборудовании 40 Гбит/с из-за накладных расходов на кадрирование Ethernet. Вместо этого USB4STREAM создает символьное устройство /dev/tbstreamX — необработанный поток байтов без уровня IP, без накладных расходов на кадрирование и без задействования сетевого стека. Любое приложение, использующее стандартные системные вызовы Unix read() и write(), работает с ним напрямую.

Какие реальные задачи USB4STREAM упрощает для разработчиков Linux?

Основные задокументированные сценарии использования включают резервное копирование диска через dd по кабелю Thunderbolt без сети или демона SSH в среде загрузки, передачу файловой системы с использованием стандартных инструментов конвейера Unix (tar, gzip), совместное использование камеры ноутбука с подключенным настольным компьютером через GStreamer, а также высокоскоростные конвейеры данных с датчиков или вычислений, где минимизация задержки и избегание стека IP имеют значение. Протокол поддерживает несколько одновременных потоков, ограниченных доступными аппаратными кольцами DMA и HopID.

Требует ли USB4STREAM кабель Thunderbolt, или подойдет любой кабель USB-C?

USB4STREAM требует кабель USB4 или Thunderbolt — не все кабели USB-C обеспечивают пропускную способность USB4. Требуется кабель с рейтингом USB4 Gen 2×2 (40 Гбит/с) или Thunderbolt 3/4/5. Стандартные кабели USB 3.x, использующие разъемы USB-C, не обеспечат скорости USB4. Пассивные кабели USB4 физически ограничены примерно 0,8 метрами; активные кабели увеличивают это расстояние примерно до 2 метров.

Когда USB4STREAM будет доступен в стабильном выпуске Linux?

USB4STREAM был объединен с деревом ядра Linux 7.2 22 июня 2026 года. Ожидается, что стабильный выпуск Linux 7.2 состоится примерно в конце августа 2026 года после стандартного цикла окна слияния и кандидатов на выпуск.

Всегда имейте в виду, что редакции могут придерживаться предвзятых взглядов в освещении новостей.

Похожие новости: