LINUX.ORG.RU
ФорумJob

Вакансия Linux Kernel Engineer в Москве или Казани

 , ,


2

1

Дружественная компания ищет специалиста по драйверной модели Linux.

https://cyberprotect.ru/career/linux-kernel-engineer

Ему предстоит проектирование, разработка и сопровождение драйверов для Linux как части специального агента Data Loss Prevention и связанных с контролем различных потоков данных: запись на внешние устройства, передача данных по сети, печать на физические и виртуальные принтеры, копирование данных через буфер обмена. Команда там очень сильная и есть драйверисты под разные платформы, команду расширяют активно. Mid/senior человек нужен Нужно: отличное владение языком С/C++; знание архитектуры и принципов работы ядра Linux; практический опыт написания и поддержки драйверов Linux; знание технологий отладки ядра; умение писать понятный код в userspace.

Денег платят хорошо, соцпакет замечательный, задачи интересные, коллектив бодрый


отличное владение языком С/C++

Зачем нужно отличное владение столь разными языками? Особенно учитывая, что дрова под линукс пишут на Си.

x-signal ★★
()
Ответ на: комментарий от x-signal

Особенно учитывая, что дрова под линукс пишут на Си

Не скажите, я знаю образчик на C++ ;) Уж не могу сказать насколько это распространно, но такое имеет место быть.

imb ★★
()
Ответ на: комментарий от XMs

Я могу судить только по тому на каких машинах ездят коллеги в этой группе. думаю, что где-то полляма + плюшки и прочее

PTO
() автор топика
Ответ на: комментарий от x-signal

там куча драйверов под Windows уже понаписано и надо понимать, чего там внутри под другой платформой и что можно перенести, а что писать с нуля

PTO
() автор топика
Ответ на: комментарий от x-signal

Зачем нужно отличное владение столь разными языками?

Чтобы понимать, что написали другие.

UVV ★★★★★
()
Ответ на: комментарий от imb

Модуль ядра на C++? User-space драйвера, работающие через fuse, /dev/i2c. /dev/spi и т.п. не считаем. Покажите мне? :)

ЗЫ я сам прототипы хреначил, которые в том числе DMA из user-space рулили и регистры замапленные настраивали. Но это только прототип.

hatred ★★★
()
Ответ на: комментарий от PTO

Почти всё, если изначально не ставилась задача слоем абстракции отстроится от платформы. У нас Windows/Linux драйвера были… (есть, но продукт всё, как и в целом направление HW разработки), там это ставилось. Поэтому процентов 90% кода as-is используется и там и там. Остальное - специфика платформы.

Для референса, что когда и в какой последовательности программировать, то там особо знаний C++ именно и не нужно. А вот нюансов работы всяких mini drivers - нужно :)

hatred ★★★
()
Последнее исправление: hatred (всего исправлений: 1)

Интересно, да. Жаль, не подхожу.

sparkie ★★★★
()
Последнее исправление: sparkie (всего исправлений: 1)
Ответ на: комментарий от hatred

Модуль ядра на C++?

В Windows они на плюсах, да. Вероятно для работы нужно уметь в них разбираться.

UVV ★★★★★
()
Ответ на: комментарий от UVV

Там такие плюсы… Но мой вопрос относился к Linux. Как я понял автора комментария, к которому я вопрошал, то он видел модуль ядра Linux на C++. И вот это мне бы очень хотелось посмотреть, как это устроено.

hatred ★★★
()
Последнее исправление: hatred (всего исправлений: 1)
Ответ на: комментарий от hatred

то он видел модуль ядра Linux на C++. И вот это мне бы очень хотелось посмотреть, как это устроено

EXTRA_CXXFLAGS := -fno-rtti -fno-exceptions -std=c++98 -Wno-c++11-compat

вот как-то так, драйвер работы с framebuffer

никто же не говорил что там «полноценный» C++ ;)

imb ★★
()
Ответ на: комментарий от imb

никто же не говорил что там «полноценный» C++ ;)

Без rtti и исключений жить вполне можно. Но помимо этого, ещё есть рантайм: как минимум компилятору совместно с линковщиком нужно знать, куда положить вызовы конструкторов и деструкторов глобальных статичных объектов, вызвать их (когда они вызываться будут при загрузке модуля? кто их будет вызывать?). Ещё в ядре есть макросы, конфликтующие с ключевыми словами в C++.

hatred ★★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.