TGViewer
KasperskyOS KasperskyOS @kosdevs · 1.21K subscribers
Post #747 156
🖱 Гетерогенный поиск (lookup) в C++ позволяет искать объект в контейнере по другому типу без промежуточного преобразования и создания временного объекта

Для std::set и std::map такая возможность появилась еще в C++14, а для std::unordered_set и std::unordered_map — только в C++20.

В новой статье на Хабре Евгений Ерохин, старший разработчик «Лаборатории Касперского», показывает, как эту возможность можно применить в разработке на примере драйвера VirtIO Vsock для KasperskyOS. Изначально драйвер начали писать на C, но по мере усложнения работы с соединениями, списками и счетчиками ссылок перешли на C++. В микроядерной архитектуре KasperskyOS драйвер работает как отдельный процесс, поэтому при его разработке можно использовать возможности стандартной библиотеки C++, включая контейнеры и shared_ptr.

В статье автор показывает, почему двусвязные списки оказались неудобны для этой задачи, как unordered_set и shared_ptr упростили работу с соединениями и как is_transparent позволил искать нужное соединение прямо по заголовку входящего пакета. Заодно разбирается, почему такой подход помогает сократить количество лишних преобразований и сделать код компактнее и понятнее.

➡️Как гетерогенный поиск C++ повлиял на устройство драйвера для KasperskyOS — читайте в полном разборе на Хабре.
  • 🔥 4
  • 👍 2
More from @kosdevs
  1. Sep 17, 2026Почему виртуальной машине можно выделить больше «ядер», чем физически есть у сервера? Вирт…
  2. Sep 15, 2026📣 Как расследовать киберинцидент внутри автомобиля до отдельных CAN-сообщений? 18 сентябр…
  3. Sep 10, 2026❕ Когда говорят о киберрисках в транспорте, чаще всего вспоминают сценарии с вмешательство…
  4. Sep 8, 2026📌 Два новых патента для безопасности подключенного транспорта Современный автомобиль обме…
  5. Sep 3, 2026⚡️ Что произошло в августе на рынке операционных систем? 🟣Counterpoint Research опубликов…
  6. Sep 1, 2026Собрали в одном посте все серии микросериала о микроядерной архитектуре KasperskyOS «Много…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →