# Using C++ and heterogeneous lookup to develop a driver for a microkernel operating system

DevFeed: [Using C++ and heterogeneous lookup to develop a driver for a microkernel operating system](<https://devfeed.tech/articles/lookup-c-c-23091.md>)

Original publisher: [Read original article](<https://habr.com/ru/companies/kaspersky/articles/1074722/>)

Author: THE\_GABBER ("Лаборатория Касперского")

Published: 2026-09-04T10:26:06Z

Content type: article

Language: ru

Sources: ["Лаборатория Касперского" RU](<https://devfeed.tech/sources/ru-2.md>)

Topics: [C++](<https://devfeed.tech/topics/c-plus-plus.md>), [Kernel](<https://devfeed.tech/topics/kernel.md>), [Hardware](<https://devfeed.tech/topics/hardware.md>)

Tags: [c-plus-plus](<https://devfeed.tech/tags/c-plus-plus.md>), [kasperskyos](<https://devfeed.tech/tags/kasperskyos.md>), [stl](<https://devfeed.tech/tags/stl.md>), [stl-containers](<https://devfeed.tech/tags/stl-containers.md>), [tag-6a561fc81855](<https://devfeed.tech/tags/tag-6a561fc81855.md>), [tag-755e20708909](<https://devfeed.tech/tags/tag-755e20708909.md>), [tag-9d72402955ce](<https://devfeed.tech/tags/tag-9d72402955ce.md>), [tag-a7f27c878c10](<https://devfeed.tech/tags/tag-a7f27c878c10.md>)

## AI overview

The article describes using C++ to develop a driver for a microkernel operating system. It focuses on heterogeneous lookup and explains how C++ features can support data-structure handling and more reliable low-level code.

## Source excerpt

Нужен драйвер -- пиши на C. Нужно что-то рядом с ядром -- тем более пиши на C. В низкоуровневой разработке этот подход воспринимается почти как правило по умолчанию. Но иногда задача требует большей выразительности, больше удобной работы со структурами данных и дополнительных гарантий со стороны языка. Меня зовут Женя Ерохин, у меня около 15 лет опыта разработки драйверов на C++ под macOS. Сейчас я старший разработчик в Kaspersky Lab, занимаюсь операционной системой KasperskyOS. Много всего создал в ее микроядре, а теперь знакомлю нашу ось со всяким железом на мобильных устройствах. Под катом я покажу, как мы использовали C++ при разработке драйвера для микроядерной ОС. В том числе разберу гетерогенный lookup -- возможность выполнять поиск по разным типам аргументов без лишних преобразований. На практике такая фича хорошо показывает, почему C++ может быть полезен даже там, где обычно ждут C. Я расскажу, почему драйверы на C++ для микроядерной ОС -- вполне рабочее инженерное решение. Покажу, где именно плюсы помогают писать более аккуратный и надежный код, как они упрощают работу со структурами данных и почему в нашей задаче такой выбор оказался естественным. Читать далее