Сучасна диджитал-освіта для дітей — безоплатне заняття в GoITeens ×
Mazda CX 30
×

Торвальдс vs Fedora, кто прав?

Підписуйтеся на Telegram-канал «DOU #tech», щоб не пропустити нові технічні статті

Эпичный баг, в котором Линус Торвальдс спорит с мейнтейнерами Федора.

В чем суть? Оптимизация в коде memcpy из libc привели к тому, что некоторые «неправильные» приложения перестали работать т.к. зависели от недокументированной и нестандартной реализации функции.

Как я понял точку зрения Линуса, это 1) ломать бинарную совместимость без причины это плохо 2) в данном случае хорошей причины он не видит. Т.е. есть downside — нерабочий флеш-плеер и нет upside.

Разработчики Федоры утверждают, что код работает в рамках стандарта C/POSIX (это правда) и «проблемы приложений это проблемы приложений».

Кто прав?

Лично я на стороне Линуса — меня не интересует абстрактная «справедливость», а только практические результаты этих изменений. Уважительной причины ломать работающий код я не увидел.

Почитайте также комментарии avva.

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

2) в данном случае хорошей причины он не видит. Т.е. есть downside — нерабочий флеш-плеер и нет upside.

Кстати в патче заявляется улучшение производительности для атомов в 3 раза и для core 2 в 4 раза.

Была такая популярная в перестройку задачка:
С тонущего судна спасаются дед, беременная и пацан 5 лет. Но на троих есть только два круга. Кого спасать?
Все в молодости немного людоеды, и тогда мне нравился ответ:
Топить всех: и Торвальдса, и федорников и и адобников.

Но сейчас, кажется что надо их мирить.

Да, Максим Ищенко, Торвальдс правее. Только толку от этого никакого.
Вот если бы конечный пользователь мог заплатить мне, как малому предприятию, я бы худой чайник запаял.
Дал бы объявление на ДОУ:
«Чиню адоби плеера на ленуху, 60 грн. за раз».

Но эти хлопцы типа MS, Adobe и прочие, сделали всё, что бы мы не смогли заработать на их программах.

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

Выход в конфигурационном программировании, когда связи между частями программы изменяются без компилятора, и возможно даже на лету. Я попытался сделать нечто подобное с пользовательским интерфейсом. Кому интересно, смотрите тут hebrehebr.blogspot.com

Аналогично можно сделать и с API интерфейсом на срезе программа-ОС.

Ведь в MS это уже есть в алиасах шрифтов и прочих местах. Да и в браузерах со шрифтами сплошные алиасы.

т.е. отныне fedora фактически не является надежным дистрибом?

А что, она разве была? Помоему очевидно, что федора — это экспериментальная площадка для RHEL.

мне раньше казалось, что fedora воспринимается как стабильный бесплатный и современный RH

Неправильно казалось, у RH стабильный дистр — RHEL, который он продает за деньги, а на федоре он юзает федориных юзеров для тестирования новых фич.

Думаю правы те кто, выбрали Виндовз и завязали, как я в свое время, со всем этим свободным безобразием...

на костёр еретика!!! =)

на костёр еретика!!! =)

На костер предварителя секты, что молодые умы калечит, жизнь превращает в ад и вообще пропагандирует нездоровый образ жизни...

А конкретные обоснования почему линукс это плохо будут? Пример про двух человек у которых заглючила зузя не годится, потому что нефиг юзать зузю, а во вторых винды тоже глючат вполне.

Хотя на самом деле я считаю что винда все же дружелюбнее к пользователю, но для не .нет програмиста(java, c, python) линукс предпочтительнее имхо.

Пример про двух человек у которых заглючила зузя не годится, потому что нефиг юзать зузю

А вот тут замри, внимание, еще раз внимание. Понимаешь ли, вот собственно в этом твоем сообщении и проявляется весь апофеоз ситуации с ущербным Линуксом. Про какой бы то ни было дистрибутив я бы не написал, подобные тебе фанатики сразу напишут, что «нефиг пользовать дистрибутив ХХХ».

Сам в свое время перепробовал все. От Асп Линукса, туеву кучу Федор, Убунты с Сузями, Слаквари и Генты, долго сидел на Арче. И знаешь что? Все говнище полное. Кому нравится Велкоме! Но меня на эти поделки уже и пряником не заманишь, даже с доплатой.

ну зря это Вы так прям категорично «говнище»...

я это говорю даже после того, как при установке Убунту у меня сгорела встроенная сетевая карта =)

Рецепт стабильности прост — на десктопе это Ubuntu LTS полугодовалой выдержки(что бы юзера потестили все фичи и выкосили большинство багов), на серврере для простых вещей — ubuntu lts/debian, для крутого энтерпрайза с ораклами и выбсферами — RHEL. Ну а позиционировать арч как стабильный дистр может только красноглазый школьник.

Та если я все правильно понял, то проблема не в свободности, а в том что некий закрытый продукт использовал не недокументированное поведение стандартизированной либы.

Та если я все правильно понял, то проблема не в свободности

В том то и дело, что проблема в свободности. Слишком много «наколенных мастеров» которые могут накомитить своего шита, а потом остальным это жуй. Как сказал один чел по поводу Линукса и иже с ним «Каждый мнит себя маленьким таким божком и все закручивает на себя». И это называется свобода?

Все всю ситуацию с Линуксом я бы охаректиризовал как «Культ скрытого эгоцентризма, продвигаемого под лозунгами свободы». Но это не свобода, а рабство похуже самой страшной проприетарщины.

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

Программисты они везде примерно одинаковые так что не надо питать иллюзий ...

В открытом коде хоть поправят, плеснув ушак дерма в сторону закомитившего.

Всеобщее заблуждение уровня городской миф. Как показывает практика висят баги в Линуксе годами, проблему с дисковым ИО уже пофиксили? Помониторь новости мира СПО на каком-нибудь специализированном сайте, очень многое узнаешь как часто и насколько быстро правят...

По собственному опыту, запостишь вот багрепортец и висит оно... годами...

В закрытом же оно наслаивается и переходят из одной версии в другую.

Да? Да там как минимум при определенном количестве жалоб от юзеров, менагеры намылят попу кодеркам так, что уже на завтра будет свежий сервис пак и тысяча извинений. С красноглазыми же ты вечно будешь играть в «У меня все работает, что я делаю не так ...».

Программисты они везде примерно одинаковые так что не надо питать иллюзий ...

Ну да. Только одни за это получают деньги и стараются удовлетворить кастомера, другие денег не получают, а как совковая продавщица удовлетворяют свое ЧСВ...

Линус однозначно. Вот я тупой пользователь, был у меня линукс, и все работало вместе с флеш плеиром. Тут я обновил линукс, и все перестало работать... «Гавно этот ваш линукс!!11».

Еслиб нечто анологичное произошло у меня в конторе с нашими продуктами... Типа хтото, такой умный, сам сел и соптимизировал чтото в библиотеке, которая используеться основными продуктами. В результате чего пользователи поимели траблы. То такой человек поимел бы конкретных пи3***, еслиб вообще не уволили.

Вот вчера наблюдал кейс. Две машинки, на обеих опенсузя, на одной из них загадочным образом перестает работать флешь, другая уходит в ребут и больше не подает признаков жизни. Поцанам пол дня пояснял, что мол надо накатить туда вин семерочку, диски предлагал, не в какую, ребята идейные оказались, но это уже не мои проблемы.

Лично сам, когда просто подсчитал сколько времени трачу на решение вот таких вот проблем под Линуксом на своем десктопике, то снес это поделие уже окончательно и это после 6ти лет взаимной и изощренной любви с пингвином.

Я серьезно, в вине даже с учетом муки с вирусней — времени на колупание с системой уходит в разы меньше.

А потому что не нужно зузю юзать.

Ну конкретно в данном случае Линус может и правее. Но «абстрактная справедливость» — это она сегодня, здесь и сейчас, кажется «абстрактной». А завтра в очередном флеш-плеере появится очередной баг, что ж теперь системные либы под каждого криворукого программиста подстраивать? Ведь получится как у Лебедева: «лучший валидатор — это браузер». Браузеры меняются, появляются новые, а страница, «валидированная» в IE5, а в каком-нибудь Хроме разъезжающаяся к чертям, остаётся как живой памятник превосходству «практичности» над «абстрактной справедливостью».

Под все возможные радиусы кривизны рук не подстроишься. Для того и стандарты пишут.

Вот из-за таких вот людей как мейнтейнеры Федора Linux world domination все время откладывается лет на 5. Майкрософтовцам почему-то не лень добавлять поддержку хаков специально для отдельных программ. А у линуксоидов все строго по стандарту. Что, если думать абстрактно, очень правильно, но пользователи-то страдают.

Когда в Linux’е будет такая же развитая система хаков, тогда таких проблем не будет. Хак для одной программы не должен распространятся на другие.

Не думаю, что на это поведение функции полагались исключителньо разработчики Adobe.

Все остальные уже давно исправили.

Коментар порушує правила спільноти і видалений модераторами.

Спасибо за аргументированный и развернутый комментарий, в котором так много конструктива. И особое спасибо за политкорректность.

Допустим кто-то реализует какой-то алгоритм и предоставляет либу. Исходников нет. Вы протестировали — все ок. Заплатили деньги и радостно включили в свой продукт. Теперь, чтоб все было хорошо, надо c помощью какого-то objcopy изменить вызов и подсунуть врапер. Вроде как ниче страшного.

Но если все у клиента прекрасно работает, и тут после обновления любимого дистрибутива бац... приплыли ...зы Да и Адобовцы не те ребята, что быстро что-то правят.

Работающий код, который работает исходя из фич\совпадений\недокументированных возможностей — не заслуживает слова «работающий», особенно после выявления бага. Адобовцы хорошего слова не заслуживают.

Линус не прав. Учитывая что он мейнтерйнер линукса, а не какой-то индусо-кодер, то он очень не прав.

Заносчивость разрабов glibc(некоторые называют неадекватными, дeбилами и т.д.) в этом вопросом оправдана почти на 100%. И люди которые расказывают о проблеме уровня glibc, видимо, сами, в своей работе, не против, свои баги «выдавать» за баги других.

Баг в адобе должен решать Linux ? А может вообще список hot-программ счас составим, по которым пропатчим конкретно glibc и kernel, чтоб они просто работали ? Можно еще потом их глюки отдельными спец-патчами в догонку закрывать.

Как по мне пусть, для начала, разрабы (или я так понял один разраб) flahplayer’а научаться в своем детском саду различать случаи применения memmove от memcpy one.

абсолютно согласен с Линусом — «THE USER DOESN’T CARE»

Ситуация подобна той, в которой юзеру что бы поставить 1 галку нужно пройти 40 диалоговых окон, потому что разраб считает, что это архитектурно правильно и логично.

а цитата"The existence of code written by people who should never have been allowed to touch a keyboard cannot be allowed to prevent a correct implementation."

Подтверждает, что программеры все таки подверженны профдеформации

«THE USER DOESN’T CARE»

именно.
в ИТ назрело своё «Римское Право».
потребитель всегда прав — это презумпция.

пускай какими угодно благими намерениями прикрываются адепты гоvnолъпiя, попирающие backward compability.

программеры все таки подверженны профдеформации

хороший урожай годных тем получился 1 апреля, однако))
этот топ форкнулся отсюда www.developers.org.ua/...ms/topic/3691/ и теперь ... не обсудить ли тему «профдеформации»?

здесь www.developers.org.ua/...-toppic-added=1

Я совершенно с Линусом согласен, тем, кому не нравилась старая memcpy должны были создать memcpy2 и там резвится.

Отрицание и перевод стрелок со стороны Федоры вообще не поддается пониманию. Верность и правильность и стандарты тут вообще значения не имеют, в том смысле, что стандарты это хорошо, но думать надо о пользователях.

Хорошо, 10 лет назад Linux имел очень специфическую поддержку потоков, которые многие обворачивали в POSIX threads. У каждой обвёртки свое поведение, а когда сделали нативную поддержку POSIX threads всё ещё раз поломали и ничего страшного не было, все прогнулись и всё переделали. Когда перекроили malloc() тоже половина приложений стала падать по сегфолту, и опять все начали фискить свои приложения, никто не пенял на разработчиков glibc.

Но даже это всё пыль. Т.е. теперь все остальные платформы должны прогнуться под Linux и бред Линуса чтобы сохранилась совместимость кроссплатформенных приложений? Не жирно? Интересно, а Линус знает про memcpy() inlining, предоставляемый GCC, который со своим поведением? А будет платформа, которая сможет копировать только задом наперёд или другим способом отличным от реализации memcpy(), на ней Linux уже будет официально неподдерживаемый?

Думать о пользователях должны разработчики приложений.

> Единые интерфейсы — это не серебряная пуля, а лишь способ немного сэкономить время.

А немного это сколько? 15, 50 или 80? Помоему нормально стандартизированные апи сохраняют времени.

Устроили блин цирк. Создатели других дистрибутивов поступают намного проще: создают патч (тут он вообще копеечный), накладывают его у себя и отсылают разработчикам. Все счастливы, проблема закрыта. А уже потом спокойно выясняют между собой не выставляя на склоки публику. А тут уперлись как бараны....

Я совершенно с Линусом согласен, тем, кому не нравилась старая memcpy должны были создать memcpy2 и там резвится.

Для этого memcpy2 нужно еще протолкнуть в стандарт и заставить других вендоров libc заимплементировать ее, что при самых оптимистичных раскладах займет пару лет.

Щас яйца полетят. Кто прав? Мелкософт прав. :)Новый фреймворк — API меняем вообще как хотим, и никакой вам бекворд компатибилити. И новый фреймворк можно пользовать одновременно со старым....

Я вот тут уже замахался поддерживать одновременно 5+ версий продукта и думать как бы новой функциональностью не задеть то что использует древний-древний клиент.

А чего полетят? :) У тов. Линуса в порядке вещей перекроить API ядра какого-нибудь интерфейса в минорной версии ядра.

Ну стабильность ядерных api никто не обещал. Там и api-то нет толком, только только понемногу собирают в кучу.

Ну да, 10 лет — это не срок для такой разработки.

memcpy — это не просто какая-то там функция, а принципиально важная, да еще и доступная в intrinsic форме. Добавлять там лишнюю проверку только потому что у кого-то руки выросли оттуда, откуда у нормальных людей — ноги, было бы перебором. Другое дело, что ввиду возможных breaking changes сделовало бы обратить на это изменение особое внимание. Не знаю, было ли это сделано.

В общем для людей использующих линукс как ядро и дистрибутивы с версии 2.4 (2.2 я не застал, был оч маленьким) это ну вообще не проблема. Известно, что Линус Торвальдс в работе пользуется RH продукцией поэтому он не ПРОТЕВ он ЗА. Лично у меня были трудности с KDE 4 как только она вошла в дистр Fedora как релиз, но я надеялся на лучшее, учавствуя в багрепортах. И вот оно — ЛУЧШЕЕ, сейчас то никаких проблем. А adobe на морозе всегда были относительно freeware. Вспомнить эти сумасшедшие тормоза npwiever’а как на x86 так и на x64_86 — это продолжелось больше года (не помню точно, кажется к 2009 порешали).

А вот решение от нашего человека. k001.livejournal.com/791690.html

Это решение Линуса, которое к тому же с ошибкой :)

Долгоживущий баг превращается в фичу :) Как по мне, самый разумный вариант эмулировать старое поведение в libc. История знает много таких подходов... Ткнуть носом за несоблюдение стандартов может и правильный , не не практичный подход.

в этой истории Adobe как всегда показали себя чудаками на букву М. А Федоровцы упрямыми баранами... В общем солидарен с Линусом по этому вопросу

нужно двигать систему а не упрямо переть на принцип

Правильно, нужно двигать систему, только от RedHat и от тех, кого они кормят с руки. А у них всё в порядке. RedHat уже значит на порядок больше в мире Linux чем Линус.

Адобовцы за пивом мне говорили что у них вроде аж один человек занимается флешом под линукс, так что возможно проблемы с флешом быстро пофиксить не получалось из-за недостатка ресурсов.

Дело не в той дискусии, а том, что адоби отморозилась. glibc (читай Линукс) значит им пох

Да им все пох. Когда была проблема с плеером под firefox под виндой, они тоже морозились довольно успешно более полугода. Эдакое постоянство :)

Как и 64-битный плеер в принципе.

А так по моему просто — там где баг, там и надо чинить. Даже если меряться крутизной и важностью проектов (кто круче, под баги того все и подстраиваются), то сколько лет флешу, а сколько glibc? И как долго еще проживет флеш и как долго glibc?

Иногда нужно сделать больно, чтобы вылечить.

Підписатись на коментарі