> ссылку на неприятную историюЕсть программист-любитель по имени Кон Коливас, для которого это не основная работа. Когда он писал свои первые программы на языке Си, то сообщество Open Source ему помогало, указая на ошибки, и это помогло ему со временем отточить свои навыки программирования. Со временем, он начинал писать хорошо, и переходил на новый, более сложный уровень, где всё повторялось.
Кон являлся сторонником использования Linux на десктопе, и начал отправлять патчи в ядро, улучшающие отзывчивость системы на десктопе. По логике, со временем его патчи должны были принимать активнее, ведь со временем он улучшал навыки программирования, и начинал писать код всё лучше. Так и происходило, но в какой-то момент его патчи перестали принимать вообще.
Я не знаю точной причины, и могу лишь предполагать. Может, это личная неприязнь: "а кто он такой? Вот мы - дипломированные спецы, выпускники Гарварда и MIT, а он кто?". Возможно что Кон был импульсивным и неприятным в общении, и разработчики ядра просто не могли терпеть ещё одного такого. Возможно, что Игно боялся увольнения и назначения вместо него Кона, если его планировщик всё-таки примут в ядро.
Планировщик Кона предназначался для десктопов, и был направлен на рост отзывчивости в ущерб производительности. Сначала его не приняли, направив на доработку, указав на ошибки в коде. Потом ошибки были исправлены. но разработчики ядра нашли новые - уже не такие явные. Потом ошибки кончились, и тогда Инго сказал, что 'fair scheduling' "не нyжeн". Мол, выгода от этого планировщика субъективна, и её невозможно померить в цифрах. Тогда попросили добавить его как опцию, и возможность выбора планировщика в make menuconfig, как это сделано для планировщика ввода/вывода. Но тут уже сам Торвальдс сказал, что по его мнению, это нe нyжно.
Несколько последующих лет, ситуация напоминала цирк. Кон бодался с разработчиками ядра, пытаясь протолкнуть в апстрим свои патчи, уже отполированные к этому моменту до блеска. Те придумывали красивые причины для отказа в приёме патчей. Юзеры над ситуацией потешались, а для популярных дистрибутивов Linux (таких как Ubuntu 6.06) были готовые сборки ядра с новым планировщиком (-ck (для Linux 2.4, -ck2 для Linux 2.6).
Всё закончилось тем, что Инго Молнар написал планировщик CFS. Это был 'fair scheduling' планировщик - такой же, как -ck2. https://lwn.net/Articles/230501/ Приятно, что Инго не стал замалчивать вклад Коливаса, а поблагодарил его за то, что он его убедил в полезности 'fair scheduling'.
Коливас заявил, что CFS повторяет его планировщик, просто написан полностью "с нуля" и без оглядки на его код. Так было некрасиво поступать. И тем не менее, теперь а апстриме есть 'fair scheduling' планировщик, а значит, Коливас больше не нужен. И он принял решение уйти из разработки ядра.
Спустя 2 года он вернулся, выпустив BFS. BFS это пропатченный CFS для большей отзывчивости на десктопе. Она по-идее и так должна была быть хорошей, но Коливас заметил, что CFS имеет проблемы. В первые годы, BFS жёг напалмом, но впоследствие работу CFS подтянули до уровня BFS. Сейчас Коливас разрабатывает MyQSS