В то время как крупные проекты программного обеспечения с открытым исходным кодом выигрывают от участия тысяч людей, эта открытость также оставляет их открытыми для проблем, как показывает недавняя волна исправлений для ядра Linux.
Ядро Linux является прародителем открытых программных проектов; это крупнейший программный проект, написанный совместно, и над его улучшением работают тысячи добросовестных разработчиков. Хитрость заключается в том, что происходит, если кто-то не пытается быть полезным, а активно (или, возможно, некомпетентно) вредит ему.
В последнее время этот случай вызывает проблемы. Разработчик по имени Ник Краузе присылает множество патчей; к сожалению, ни один из них не работает. Сначала другие разработчики предположили, что он просто не очень хороший программист, но тот факт, что он игнорировал все, что говорили ему другие более опытные разработчики, делает все более вероятным, что его мотив злонамерен.
Основные разработчики ядра были удивительно терпеливы с патчами Краузе, но их терпение все больше и больше иссякает; в ответ на то, что Краузе “извинился” за еще один нерабочий патч с комментарием «Кажется, мне нужно сначала протестировать этот код», Дэйв Эрли ответил:
— Ради всего святого, ОСТАНОВИСЬ.
Идите и сделайте что-нибудь еще, вы тратите драгоценное время людей,
Не отправляйте никаких патчей, которые вы никогда не тестировали. Если вы не можете настроить виртуальную машину для запуска сжатых томов btrfs, что заставляет вас думать, что вы можете исправить код.”
Более поздние ответы были более гневными, и мотивы автора все чаще ставятся под сомнение. Дэйв Эйрли предположил, что Краузе “посылает случайные сломанные патчи случайным подсистемам в надежде, что один из них проскользнет мимо сонного сопровождающего и окажется в ядре.”
В недавней теме на lkml.org Теодор Цо отметил, что Краузе пытался вставить нерабочий код в подсистемы ext4, btrfs, scsi и usb и попытался найти объяснение своему поведению. Среди предложений есть одно от Эйрли, что Краузе пытается написать университетскую диссертацию о троллинге процесса разработки ядра. Другие теории заключаются в том, что он плохо написанный чат-бот с искусственным интеллектом или просто невежественный ученик средней школы с большим упорством, чем обычно ожидают в этом возрасте. Или, может быть, он пытается выиграть пари, или пытается получить дополнительный кредит, или выполнить какое-то задание курса, вставив патч в ядро.
Или, может быть, это просто вселенная, пытающаяся точно продемонстрировать, насколько верен эффект Даннинга-Крюгера на самом деле.
Каковы бы ни были мотивы, проблема замедляет работу разработки и показывает, что открытый исходный код не обязательно означает ангельских разработчиков, работающих на общее благо. Тот факт, что код Краузе просто не работает, делает его проблемы очевидными; но возникает вопрос — будет ли лучше написанный, но на самом деле вредоносный код так же легко обнаружить команде ядра?