Тебе kernel hacker'ом или системным программистом? Второму учат, первому - находишь интересную тебе проблему в ядре, решаешь ее, шлешь патч в lkml, и, если у тебя достаточно толстая шкура, может быть, его примут :)
>Тебе kernel hacker'ом или системным программистом? Второму учат, первому - находишь интересную тебе проблему в ядре, решаешь ее, шлешь патч в lkml, и, если у тебя достаточно толстая шкура, может быть, его примут :)
покажи, где в РФ учат второму? Те, которые выучились второму - они на работе не решают проблем и не шлют патчи? в lkml?
seiken, практика, в принципе, проста. Начать можно 3мя способами:
1) вписаться в проект kernel-janitors, и чистить код ядра от всякого говна в виде мелких варнингов и неверного кодинг-стайла. После некоторого времени такого копания в ядре рано или поздно вы сможете фиксить баги.
2) стянуть гит последнего ядрышка, можно ветку Линуса, можно ветку -mm от Эндрю, попробовать собрать. Обязательно выскочит куча варнигов, ероров и багов. Если вы в состоянии их поправить самостоятельно, правьте, шлите патч мейнтейнеру данного драйвера или подсистемы, указав в CC lkml. Если не можете, сообщите о баге.
3) заняться оптимизацией и добавлением фичей в определённые подсистемы ядра. Только в этом случае вам придётся тестами и здравыми аргументами доказывать, что ваш мегапатч даёт существенный бенефит.
ах, да, совсем забыл. есть ещё проект kernel-drivers, которым руковдит небезызвестный Greg-KH. У него есть отдельное гит-дерево, где он мейнтейнет всё это драйверное добро. Если у вас есть какая-то железяка, которая хреново работает под *nix, вы можете попробовать заняться разработкой/доработкой/фиксами в драйвере этой железяки.
Честно говоря, не знаю. Думаю, что специальность "ПО ВТ и АСУ" вполне подойдет.
> Те, которые выучились второму - они на работе не решают проблем и не шлют патчи? в lkml?
Я не уверен, что правильно понял вопрос, но значительная часть kernel hacker'ов сегодня - профессионалы, работа которых заключается в развитии ядра. Так что они решают проблемы и шлют патчи.
Кстати, анонимный брат дал тебе хорошие советы.
Могу подарить тебе классную тему (она слишком сложна для тебя, но всё же) - перенос драйверов в userspace %). Работа была начата проектом Gelato, но, к сожалению, заброшена.
>Если у вас есть какая-то железяка, которая хреново работает под *nix, вы можете попробовать заняться разработкой/доработкой/фиксами в драйвере этой железяки.
вот этот момент не очень понятен. Как можно писать драйвер к железке, о которой ничего не известно кроме того, что она работает в венде?
> Могу подарить тебе классную тему (она слишком сложна для тебя, но всё же) - перенос драйверов в userspace %). Работа была начата проектом Gelato, но, к сожалению, заброшена.
> В смысле, этим кто-нибудь занимается (ну кроме спецслужб)?
львиная доля wifi драйверов написанна именно такой методой. или вспомните стары-добрые времена, когда не было толстых каналов, и все сидели на модемах. Не каждый мог себе тогда позволить какой-нибуть понтовый роботикс, зато кастрированных вин-модемов была тьма. И они более-менее работали под linux и даже под freebsd. Думаете на них были отрыты спеки? (::
хм, а какие бенефиты вы вообще хотите извлечь из драйверов в юзерспейсе? Например то, для чего я их иногда использую(повышение надёжности embedded систем, засчёт вынесения некритических драйверов в userpace) вполне может сделать uio. Других бенефитов у drivers in userspace я просто не вижу.
> хм, а какие бенефиты вы вообще хотите извлечь из драйверов в юзерспейсе?
Удобство отладки, надежность, и, возможно, стабильный API. Да, и возможность писать драйверы на Питоне :D
> Например то, для чего я их иногда использую(повышение надёжности embedded систем, засчёт вынесения некритических драйверов в userpace) вполне может сделать uio.
Для простых устройств без прерываний - да. Когда начинаются прерывания и, не дай ТНБ, DMA, uio уже не поможет.
стабильный драйверный API суть зло - таково мнение многих ядерных разрабов
>надежность
я конечно понимаю, что если в юзерспейсе драйвер вдруг повис, то его можно будет выкинуть по kill'у. но, если драйвер начал общаться с чипами и чип тупо ожидает следующий байт и не может/не умеет отрезетится - что тогда?