Леннарт Пёттеринг (родился 15 октября 1980 г.) — немецкий инженер-программист , работающий в Microsoft и первоначальный автор PulseAudio , Avahi и systemd .
Пёттеринг родился в Гватемале , но вырос в Рио-де-Жанейро , Бразилия , и Гамбурге , Германия . [1] Поеттеринг работал в Red Hat с 2008 по 2022 год. [2] [3] Затем он присоединился к Microsoft . [4] [5] [6] [7]
С 2003 года Пёттеринг работал над более чем 40 проектами, в основном написанными на C. Он является разработчиком и сопровождающим нескольких проектов бесплатного программного обеспечения , которые получили широкое распространение в дистрибутивах Linux , включая звуковой сервер PulseAudio (2004 г.), [2] [8] реализацию Avahi Zeroconf [9] [10] (2005 г.) и systemd init. система (2010). [11]
Пёттеринг известен своими противоречивыми техническими и архитектурными позициями в отношении экосистемы Linux. [12] [13] [14]
Его стиль вызвал обвинения в том, что он работает против давней философии Unix , [15] о которой он рассказал в своем блоге The Biggest Myths. [16] Например, Поеттеринг выступает за ускорение разработки Linux за счет нарушения совместимости с POSIX и другими Unix-подобными операционными системами , такими как BSD . [17] [18] Он занял эту должность из-за своего опыта написания некоторых других низкоуровневых компонентов в стеке настольных компьютеров. [12] Он предлагает другим разработчикам сделать то же самое. [19] Поеттеринг рекомендует также прочитать «Интерфейс программирования Linux» , но игнорировать части, специфичные для POSIX. [13]
В 2011 году Поеттеринг, один из основных разработчиков PulseAudio , похвалил аудиостеки Windows и macOS как «более продвинутые» и назвал Open Sound System «упрощенным аудиостеком в стиле 90-х», не имеющим отношения к современному настольному компьютеру. [13]
Также в 2011 году, когда его спросили, почему настольная система Linux не получила широкого распространения среди основных пользователей, он ответил: «Linux все еще слишком фрагментирован… [и] нуждается в оптимизации…». [20] В 2014 году Поеттеринг опубликовал эссе, в котором критиковал то, как обычно упаковывается, обновляется и развертывается программное обеспечение в дистрибутивах Linux; и изложил предложения, которые он, Кей Сиверс , Харальд Хойер , Дэниел Мак, Том Гундерсен и Дэвид Херрманн, высказали по поводу того, как следует изменить архитектуру. [21]
Споры вокруг systemd достигли кульминации в личных нападках и предполагаемых угрозах смертью в адрес Поеттеринга. [22] [23] Поеттеринг возложил вину на Линуса Торвальдса и других разработчиков ядра за то, что они являются плохими образцами для подражания и поощряют оскорбительную культуру обсуждения технических разногласий. [22] [24]
В 2017 году Поеттеринг получил премию Pwnie Award за самую отстойную реакцию поставщиков на уязвимости , обнаруженные в systemd. [25]
Многие из моих предыдущих проектов (включая PulseAudio и Avahi) были портативными.
Освобождение от цепей, которые налагает на вас требование портативности, весьма освобождает.
Хотя обеспечение переносимости при работе над высокоуровневыми приложениями не обязательно является сложной задачей, она становится еще сложнее, если вы работаете с системным компонентом (к которым относятся systemd, PulseAudio и Avahi).
мы до сих пор не можем полностью соответствовать конкурирующим аудиостекам, таким как CoreAudio [...] И Windows, и macOS имеют гораздо лучшие интегрированные аудиостеки, чем мы.
[...] в целом стек CoreAudio определенно более продвинутый, чем наш.
[...] нет никаких сомнений в том, что он [аудиостек Windows], вероятно, по-прежнему является лучшим интегрированным опытом взлома звука, который можно разработать для Windows.
[...] OSS — это упрощенный аудиостек в стиле 90-х.
На самом деле я не имею никакого отношения к тому, что вам нужно для современного рабочего стола.
POSIX на самом деле представляет собой инкапсуляцию некоторых решений, которые различные системы Unix сделали на своем пути, а не текст, который был стандартизирован, а затем реализован.
По мнению Поеттеринга, Linux следует использовать свое положение «лидера рынка» (на рынке бесплатных Unix-подобных операционных систем) и попробовать что-то новое.
Если разработчики не будут навязывать себе ограничения POSIX API, они смогут разработать действительно инновационное программное обеспечение, как показывает systemd.
Когда эти новые разработки окажутся действительно интересными, другие операционные системы в конечном итоге смогут их перенять.
Отсутствие необходимости заботиться о переносимости имеет два больших преимущества: мы можем максимально использовать возможности современного ядра Linux без головной боли. Linux — одно из самых мощных существующих ядер, но многие из его функций не использовался предыдущими решениями.
А во-вторых, это значительно упрощает и делает наш код короче: поскольку нам никогда не нужно абстрагировать интерфейсы ОС, объем связующего кода минимален, и, следовательно, мы получаем меньший шанс создать ошибки, меньший шанс запутать читателя. код (следовательно, лучшая ремонтопригодность) и меньший размер.
Фактически, с моей точки зрения,
Linux API
взял на себя роль
POSIX API
, а Linux является центром всей разработки свободного программного обеспечения.
В связи с этим я могу только порекомендовать разработчикам попытаться взломать, имея в виду только Linux, и ощутить свободу и возможности, которые это вам предлагает.
Итак, приобретите себе копию
The Linux Programming Interface
, игнорируйте все, что там говорится о совместимости
с POSIX
, и взломайте свое удивительное программное обеспечение для Linux.
Это очень облегчает!
Я думаю, что мы не были достаточно инновационными в интерфейсе, и у нас не было убедительного послания и четкой платформы.
Если вы принимаете MacOS в качестве эталона пользовательских интерфейсов, то мы на самом деле не сопоставляем ее, а в лучшем случае копируем ее.
Я думаю, что сейчас ситуация меняется с выходом GNOME 3, который является большим шагом вперед в качестве интерфейса для Linux и впервые был разработан строго в соответствии с
рекомендациями по проектированию пользовательского интерфейса
.
Итак, теперь у нас есть лучший интерфейс, оставляет сообщение и понятную платформу.
Linux по-прежнему слишком фрагментирован, и разработчику, ориентированному на Linux, придется выбирать из множества API — базара частично совпадающих, но по большей части просто хаотичных вариантов, которые будут работать на одних системах, но не на других.
Я думаю, что в наших величайших интересах было бы оптимизировать платформу сверху донизу и, таким образом, иметь четкое представление о том, что такое ОС Linux.
И, конечно же, я считаю, что моя работа по очистке нижних уровней нашего стека пользовательского пространства помогает работать в этом направлении.
Получение четкого представления о том, каким должен быть Linux, определенно является социальной проблемой, но для этого сначала необходимо оптимизировать платформу Linux, а это техническая задача, которая еще не решена.