История изменений
Исправление bugs-bunny, (текущая версия) :
для всяких таких вещей нужны RTOS, чем линупс не является
Наверное да, но посмотрите например на идею DPDK в сетевых драйверах. Там на каждый пакет не вызывается IRQ, а только на их кучку по таймеру или превышении threshold-а, а далее поллингом, что оказывается быстрее «правильной» синхронизации на всяких мутексах и семафорах. +Кернел буферы не копируются, а маппируются в юзерспейс. А весь сетевой стек заменяет либа, слинкованная с приложением. И все это для сетевух, работающих на 10Gb/40Gb, вроде уже есть и 800Gb в планах. Например драйвер ixgbe от intel. И это не для ширпотреба, а для систем работающих в датацентрах. И c DPDK это уже как бы и не совсем Linux ядро и приложение.
Да, и в таких рещениях часть функций файрволов например перекладывается на карту. Как дропнуть, форварднуть пакеты с одного интерфейса на другой, зарулить на встроенный криптоускоритель для IPSec пакетов. В разы разгружает драйвер.
Исправление bugs-bunny, :
для всяких таких вещей нужны RTOS, чем линупс не является
Наверное да, но посмотрите например на идею DPDK в сетевых драйверах. Там на каждый пакет не вызывается IRQ, а только на их кучку по таймеру или превышении threshold-а, а далее поллингом, что оказывается быстрее «правильной» синхронизации на всяких мутексах и семафорах. +Кернел буферы не копируются, а маппируются в юзерспейс. А весь сетевой стек заменяет либа, слинкованная с приложением. И все это для сетевух, работающих на 10Gb/40Gb, вроде уже есть и 800Gb в планах. Например драйвер ixgbe от intel. И это не для ширпотреба, а для систем работающих в датацентрах и ЦОДах. И c DPDK это уже как бы и не совсем Linux.
Да, и в таких рещениях часть функций файрволов например перекладывается на карту. Как дропнуть, форварднуть пакеты с одного интерфейса на другой, зарулить на встроенный криптоускоритель для IPSec пакетов.
Исходная версия bugs-bunny, :
для всяких таких вещей нужны RTOS, чем линупс не является
Наверное да, но посмотрите например на идею DPDK в сетевых драйверах. Там на каждый пакет не вызывается IRQ, а только на их кучку по таймеру или превышении threshold-а, а далее поллингом, что оказывается быстрее «правильной» синхронизации на всяких мутексах и семафорах. +Кернел буферы не копируются, а маппируются в юзерспейс. А весь сетевой стек заменяет либа, слинкованная с приложением. И все это для сетевух, работающих на 10Gb/40Gb, вроде уже есть и 800Gb в планах. Например драйвер ixgbe от intel. И это не для ширпотреба, а для систем работающих в датацентрах и ЦОДах. И c DPDK это уже как бы и не совсем Linux.