Код Хромиума весьма обширен, там каждому найдётся что-то по вкусу. А я вот решил рассказать о своём любимом файле в нём (а у вас есть такой?). Этот файл отражает всё: боль, разочарование, надежду, упорство, силу воли, ответственность за чужие провалы и самопожертвование. Я иногда читаю его и плачу и проникаюсь пониманием, какая же огромная часть айсберга скрыта под водой. Это, в общем, даже не файл с кодом. Это файл с конфигом, описывающим баги видеокарт, которые Хромиуму приходится обходить для нормального отображения своих страниц на разных платформах. Вот он: https://cs.chromium.org/chromium/src/gpu/config/gpu_driver_bug_list.json

О чём вообще идёт речь? Давайте вспомним, как работает браузер: вы набираете какой-то адрес в адресной строке, браузер загружает контент и отображает его. Чуть детальнее об этом рассказывает хорошая статья «What happens when you type google.com into your browser and press enter?» (и сразу несколько её переводов на Хабре). В ней одним из последних пунктов упоминается, мол, «а теперь, когда всё готово, отрисовываем картинку на экране». Ага, вот так берём и отрисовываем, конечно.


Начнём с того, что в языках программирования почему-то нет из коробки функции «взять и нарисовать вот это на экране». Языкам и их стандартным библиотекам такие мелочи не интересны. Соответственно, универсальный кроссплатформенный код для рисования написать не так-то легко. Всякие крутые ААА-игры обходят это ограничение достаточно прямолинейно: «У вас должна быть вот такая приставка или вот такая ОС с видеокартой баксов за 800, тогда кое-как будет работать. Наверное». Спасибо за совет! Но браузер — это не игра. Браузер должен работать всегда и везде. Пользователь даже самого убитого ПК, купленного 10 лет назад (и уже тогда — на распродаже) не рассчитывает поиграть в последнего Ведьмака, но будет искренне возмущен, если не сможет открыть в браузере свою почту или погуглить что-нибудь. С другой стороны, и игроман, отдавший почку за видеокарту, захочет посмотреть в браузере 8к-видео, покрутить 3д-модели, ну и может быть даже плавненько поскролить фейсбук-ленту.

Всё это заставляет разработчиков Хромиума буквально разрываться: с одной стороны, они до сих пор поддерживают рисование древними технологиями вроде GDI и DirectX9, чтобы работать на устаревшем оборудовании, но с другой стороны они пилят поддержку последних версий OpenGL, DirectX11 (или уже 12?) и Vulkan — что даёт возможность развернуться по полной современным устройствам (в том числе и мобильным).

Но и это всё было бы ещё полбеды, если бы весь этот зоопарк работал так, как он должен работать согласно спецификации. Чего совершенно не происходит. Реальное железо и его драйвера нарушают всё: маркетинговые обещания покупателям, технические спецификации, общепринятые стандарты, сертификационные тесты, совместимость с ОС, планы по выпуску обновлений и т.д. Но, кроме реального железа и его драйверов у нас ничего другого нет. Поэтому приходится работать на том, что есть. Вот об этом и повествует вышеупомянутый файл gpu_driver_bug_list.json.

Кстати, заслуживает уважение то, насколько браузер пытается «выжить любой ценой». Так, при некритичных проблемах, например, с DirectX11, будут произведены попытки отключать определённые части его функционала, жертвуя производительностью, но сохраняя работоспособность. При более серьёзных багах — DirectX11 будет отключен и браузер перейдёт на DirectX9, где также (при необходимости) будут «отрезаться и выбрасываться» проблемные компоненты. Ну и при полном отказе системы DirectX произойдёт переключение на GDI — что ударит по процессору и потреблению ОЗУ, но всё же удержит производительность для обычных страниц (без тяжелого видео или 3D) на уровне, при котором пользователь, скорее всего, даже не поймёт, что что-то идёт не так. Там, где другие программы уже попросят обновить драйвера или сменить видеокарту — Хромиум просто продолжит работать. Дух захватывает.

Давайте уже посмотрим на содержание упомянутого мною файла. Количество отдельных записей в нём: 215 штук. 215 раз, когда разработчик железа соврал, поленился, был глуп или пожадничал. 215 раз приходилось искать правильную конфигурацию железа и софта для воспроизведения проблемы и находить её решение. Трудно сказать, сколько раз было решено не фиксить проблему — но, поскольку вокруг нас полно людей со старым железом и как-то совсем мало тех, у кого «в Хроме гугл не открывается», можно предположить, что таких случаев было совсем немного.

Следующее интересное наблюдение — распределение по ОС: 89 — android, 44 — macosx, 34 — linux, 26 — win, 8 — chromeos. Выводы отсюда можно делать разные. С одной стороны, очевидно, что андроид — ключевая платформа для Гугла и в исправление багов на нём были угроханы колоссальные средства. С другой стороны, не понятно почему они были угроханы в фиксы в кодовой базе Хромиума, а не драйверов или ОС (ведь у Гугла там достаточно высокий уровень контроля всего на всех этапах). Исправления там принесли бы пользу всему софту на андроиде, а здесь — только Хромиуму. Скорее всего дело во взаимодействии департаментов, когда программисту Хромиума проще исправить проблему у себя в коде здесь и сейчас, чем эскалировать её на 3-4 уровня вверх, потом в сторону, а потом на 3-4 уровня вниз. Людей, которым такое интересно, в любой компании меньше, чем нужно было бы.

Меня сильно удивило, что багов отрисовки в Mac Os было обнаружено почти два раза больше, чем в Windows. Мне казалось, что там всё очень ограничено по железу и вылизано по драйверам. Но вот оказалось, что зоопарк Windows в два раза более живуч и стабилен. Прямо «Собор и базар» в иллюстрациях. Или просто сами разработчики Гугла тестируют код на одних маках?

Интересно и разделение по вендорам: Nvidia — 22, AMD/ATI — 17, Intel — 30. Не думаю, что софт или железо Интела вот прямо хуже — скорее, сказывается массовость продуктов. Каждый, кто не покупает специально «игровой комп», скорее всего покупает что-то с интегрированной интеловской видеокартой. Баг, случающийся у 0.001% юзеров, будет годами жить в видеокарте от NVidia или ATI, но приведёт на форумы и в соцсети кучу разгневанных пользователей в случае с Интелом. «Большая сила влечёт за собой большую ответственность».

Забавно выглядит разделение по багам OpenGL и DirectX: OpenGL — 16, DirectX — 0. Но это не потому, что OpenGL такой плохой, а DirectX такой хороший. Тут дело в том, что все баги категории «win» (вот те 26 штук) это на самом деле баги DirectX (ну ок, не все, но почти все).

Но ладно, хватит тут обвинять всех подряд обобщённо. Давайте уже перейдём на личности, а там и до мордобоя, глядишь, недалеко!

Вот, например, запись 211, ссылающаяся на баг 672380. У людей перестал работать в коде унарный минус и функция арктангенса на некотором железе от Intel и NVidia. Унарный минус, блин, и базовая тригонометрия! Казалось бы, во что дальше верить? А нет, исправили и работает.

Или вот записи о «неправильно отображаемых цветах» вроде №185, 219, 220 и некоторых других. Программист всё сделал верно, все функции отработали и вернули «успех», но вот на экране в результате отображается пиксель не того цвета. Ах да — только вот на этих видеокартах и этих версиях драйверов. Кстати, вопрос поклонникам теории о том, что тестами можно покрыть всё: как бы вы покрыли тестами вот это?

Вот ещё классная штука, №224: «VPx decoding isn't supported well before Windows 10 creators update». Ну то есть вышла операционка, всем раструбила, что у неё есть акселерирование декодирования такого-то видео. Но на практике оказалось, что оно-то есть, но такое, что лучше бы его вообще не было. И лучше его отключить. В результате — разработчик ОС продаёт очередной миллиард платной ОС, а разработчик бесплатного браузера собирает жалобы на то, что видео играет как-то не так плавно, как хотелось бы, хотя, казалось бы, и железо, и ОС должны бы позволять! «Где мои 60 fps и почему ваш браузер съел 4 ГБ ОЗУ» — знакомый разговор, правда?

И сразу её догоняет запись №225: «VPx decoding is too slow on Intel Broadwell, Skylake, and CherryView». Разрабатывали мы, значит, разрабатывали новые поколения процессоров одно за другим, рекламировали, продавали. Но проблемы конечного юзера — это проблемы конечного юзера, кого там они волнуют. Пусть прикладники как-то там костылём подопрут, а мы потом поправим.

Отдельная песня — так называемая «Switchable graphics», которую очень активно втюхивают продавцы в магазинах. Вот, мол, какой хороший ноутбук с двумя видеокартами — в играх будет всё быстро, а в офисных программах (типа браузера) — будет очень энергоэкономно, ННадцать часов от батарейки проработает! А теперь смотрим на горькую правду жизни: на Windows это приведёт к полному отказу от DirectX11 (запись №100), а на маках будет крешится так часто, что мы не-дискретную карту лучше вообще отключим навсегда (запись №228).

Или вот №242: «Code produced by local variable initialization often triggers crashes in Marshmallow Adreno driver». Решение тоже прекрасно: «dont_initialize_uninitialized_locals». Ну вот какие нормальные люди согласились бы что-то писать под платформу, где локальные переменные нельзя инициализировать при объявлении, потому, что от этого драйвер падает? А вот в коде столь массового продукта как Хромиум — приходится жить и с этим.

№26: «Disable use of Direct3D 11 on Windows Vista». DirectX10 был одной из основных фич Vista при релизе, а через какое-то время под неё вышел и DirectX11, я до сих пор помню коробки видеокарт тех времён с гордыми надписями «DirectX11 compatible». А для многих это была вообще единственная причина перехода с привычной и стабильной XP. Прошли годы — и вот поддержка DirectX11 (продукт Microsoft) в ОС Windows Vista (продукт Microsoft) оценена на уровне «не поддерживается». Прямо признание заслуг!

Ладно, мне надоело выбирать частности, читайте остальное сами — там хорошо описаны и причины багов, и реализованные костыли, плюс ссылки на багтрекер есть (поле «cr_bugs»).

Мораль


Во-первых, все врут. Во-вторых, даже в условиях, когда все врут, всё ещё возможно написать качественное ПО. И в-третьих, в следующий раз, когда кто-то будет вам рассказывать, как современный веб пришел к успеху благодаря «мощи HTML, CSS и прекрасного языка Javascript» — покажите ему эту статью и спросите, как бы оно всё работало и кому бы было нужно без вот этого героического труда невидимых людей в стремлении «взлететь со всей этой фигней».

Комментарии (156)


  1. ganzmavag
    25.09.2018 15:28
    +2

    Сразу вспомнил браузер Opera и его знаменитый файлик browser.js, который фиксил работу разных сайтов (среди которых, кстати, было много гугловских сервисов). Вот даже на Хабре нашел старый пост.


    1. SerafimArts
      25.09.2018 16:29

      По правде говоря причины существования его были две (был доклад по-моему на одной из конференций, вроде вот этот habr.com/company/opera/blog/195124):
      1) Некоторые сайты по User-Agent детектили оперу и запрещали доступ (или как-то иначе влияли на поведение ресурса).
      2) Несовершенство самого движка Presto. В нём было было очень много всяких багов и артефактов, так что пришлось фиксить сами сайты. Зачастую это проще было. А уже потом, в спокойной обстановке можно было разобраться в первопричинах проблемы.

      Немного историй из своего опыта: Делали полифилл для вебсокетов с фоллбеком на в-то-ещё-время-живой-Flash. Каково же было моё удивление, когда в одной из минорных версий в Opera 12.хх появилась поддержка этих самых вебсокетов! Почти что полноценный объект в неймспейсе window! Молодцы, подумал я… За одним исключением… Вызов любого метода ничего не делал или возвращал сообщеньку о том, что это ещё не реализовано. С проверкой на поддержку этих самых вебсокетов, помнится, мы потратили уйму нервов.


      1. ReklatsMasters
        25.09.2018 18:30

        Вызов любого метода ничего не делал или возвращал сообщеньку о том, что это ещё не реализовано.

        Вот вам и фичедетект, за который так рьяно топил pepelsbey


      1. nohuhu
        26.09.2018 00:32
        +2

        Опера была прекрасна, ятакщетаю. У нас в коде (старый и развесистый JavaScript фреймворк) до сих пор такие перлы встречаются:


        function constructor() {
            // Opera has some problems returning from a constructor when Dragonfly
            // isn't running. The || null seems to be sufficient to stop it misbehaving.
            // Known to be required against 10.53, 11.51 and 11.61.
            return this.constructor.apply(this, arguments) || null;
        }

        И это ещё не самый забавный. Что там с поддержкой CSS творилось, мамадорогая. Лично знаю непьющих обычно людей, для которых новость "Опера — всё" была поводом крепко отметить. :)


        Круче было только, когда провожали в последний путь IE6/IE7...


        1. SerafimArts
          26.09.2018 00:36

          Ну в IE6 все баги хотя бы документированы были, а в опере — сдвинешь дивчик на один пиксель и всё нахрен раскорёживало. Я бы вообще выстроил вот таким образом всё:
          1) Opera
          2) Safari
          3) IE6

          Где IE на самом последнем месте из этой троицы забагованных по принципу «непостижимости багов». Там достаточно было придерживаться пары правил и всё. Нормально сверстаешь и никаких проблем.


          1. nohuhu
            26.09.2018 00:56

            Ну в IE6 все баги хотя бы документированы были,

            Судя по всему, у вас был очень… эээм… оптимистичный опыт работы с IE6. :) Но в целом я соглашусь, этот браузер был гораздо предсказуемее той же Оперы. Старый Safari это отдельная песня (да и свежий тоже), но королём на пьедестал я бы поставил IE7.


            Когда-то я мог книжки писать про этот браузер, в жанре хоррор. Сейчас уж только отдельные истории вспоминаются, навроде той, когда мне пришлось две недели ковыряться в потрохах браузера, чтобы найти баг, из-за которого у кустомера рушилось приложение по Invalid Access Error в msthml.dll. :) Помогли смекалка, помощь известной матери и слитые когда-то "на всякий случай" исходники Windows 2000. Помните, пробегали по сети в начале века? Там, конечно, код от IE 5.5 был, но я сопоставил с ассемблером от IE7 и оказалось похоже. Настолько, что и баг нашёлся, и способ его обойти в CSS тоже…


            Но мороз по коже до сих пор, как вспомню.


            1. SerafimArts
              26.09.2018 01:02

              Судя по всему, у вас был очень… эээм… оптимистичный опыт работы с IE6. :)


              Ну у меня и от IE7 самые приятные чувства были после IE6, я ещё тогда в школе учился. Ну как же, нативная поддержка PNG без всяких чит-фиксов и можно было больше не извращаться с подгонкой гифок со скруглёнными уголками под фон =) (ну и табы добавили конечно же)

              По сравнению с тем, как всё распид… кхм… разносило вёрстку в Опере (вроде как тогда 9ая была) по самым непредсказуемым случаям, да, IE был ещё норм.

              Вообще, мне кажется что IE невзлюбили тупо за отсутствие в нём обновлений. Когда весь мир уже поддерживает какую-то мифическую «технологию Х» (например, отрицательные марджины), а IE, которому сто лет в обед, который не обновляется и всё ещё популярен, и просто не поддерживает эту фичу «Х» — конечно, в таких случаях его начинаешь потихоньку ненавидеть.

              Тогда ещё FF был. Версия 3.5 — бомбезная. Но его можно не упоминать, там просто всё брало и работало без всякого лишнего шаманства. Иногда правда с inline блоками косячки, но фиксились они довольно оперативно парой строчек и никому не мешали потом.


              1. nohuhu
                26.09.2018 01:43
                +1

                Ну у меня и от IE7 самые приятные чувства были после IE6

                Это скорее потому, что у нас с вами разный профиль. Я вёрсткой занимался постольку-поскольку; основной идеей нашего фреймворка всегда было дать возможность программистам строить приложение в JavaScript коде, не заморачиваясь на веб-специфику. Подобно Java, но на JavaScript: написано однажды, работает в любом браузере.


                Ну, это в теории так. На практике всё это работало с большим скрипом, в т.ч. из-за разницы между браузерами и количеством багов в оных. Сколько седых волос на заднице было вырвано из-за кривой поддержки border-box в IE6/IE7, багов с position: relative, поломанного position: fixed, багов с обсчётом высоты элемента… Ну и т.д., и т.п. С утечками памяти, "unspecified error" при фокусировании и "проблемой 1.8 гиг" до сих пор бодаемся и в IE11 тоже.


                Плюс практически полное отсутствие отладочного инструментария до IE8 включительно. Firebug? Курам на смех. DevTools for IE6? Совсем плохо. В общем, лучи поноса и ненависти IE получал и получает вполне по заслугам даже при отсутствии автоматических обновлений. Safari вот до сих пор обновляется по праздникам только, вместе с системой. А ничего, кривенький конечно браузер, но не так, чтобы очень. До Chrome/Android ему далеко-далеко...


                Про Firefox ничего такого ужасного вспомнить не могу, кроме вечных неприятных косяков с обработкой pointer-events при фокусировании элементов. Но вроде починили уже, давненько не видел. И безобразно кривую поддержку фокусных событий тоже починили уже, хоть мозильщики и упирались рогом, пока я их с хромщиками лбами не столкнул… Гора с плеч и большой кусок корявого кода на выброс.


                А вообще тема статьи мне близка и понятна. Чего только не сделаешь ради совместимости со всем, что движется. :)


                1. Am0ralist
                  26.09.2018 11:32

                  Слушайте, а может здесь кто-нибудь сможет мне помочь с пониманием, как можно универсально сделать под все браузеры печать постраничную с фоновым изображением подложки во всю страницу?

                  пример
                  @media-print
                  {
                  	body
                  	{
                  		width: 190mm;
                  		margin-left: 8mm;
                  		margin-top: 0mm;
                  		color-adjust: exact !important;*/
                  		background-repeat: repeat-y;
                  		background-position: top left;
                  		background-size: 190mm 287mm;
                  		background-image: url(https://<...>.jpg);
                  	}
                  	@page
                  	{
                  		margin: 5mm;
                  	}
                  }


            1. tyomitch
              26.09.2018 08:26

              Когда-то я мог книжки писать про этот браузер, в жанре хоррор. Сейчас уж только отдельные истории вспоминаются, навроде той, когда мне пришлось две недели ковыряться в потрохах браузера, чтобы найти баг, из-за которого у кустомера рушилось приложение по Invalid Access Error в msthml.dll. :) Помогли смекалка, помощь известной матери и слитые когда-то «на всякий случай» исходники Windows 2000. Помните, пробегали по сети в начале века? Там, конечно, код от IE 5.5 был, но я сопоставил с ассемблером от IE7 и оказалось похоже. Настолько, что и баг нашёлся, и способ его обойти в CSS тоже…

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


              1. nohuhu
                26.09.2018 21:59

                Спасибо за интерес, но вряд ли получится. Сейчас из любопытства пробил по нашему трекеру, оказывается дело было в феврале 2013 (а не в мае, как мне почему-то помнилось). И если верить трекеру, то процесс занял неделю (а не две, как мне почему-то запомнилось). В компании с потрохами IE время растягивается и искажается...


                В pull request вот такое мелкое изменение:


                (было)


                // This empty div solves an IE6/7/Quirks problem where the margin-top
                // on the bodyEl is ignored. Best we can figure, this is triggered
                // by the previousSibling being position absolute (a docked item).
                // The goal is to use margins to position the bodyEl rather than
                // left/top since that allows us to avoid writing a height on the
                // panel and the body. This in turn allows CSS height to expand
                // or contract the panel during things like portlet dragging
                // where we want to avoid running a ton of layouts
                // during the drag operation.
                (Ext.isIE7m || Ext.isIEQuirks) ? '<div></div>' : '',

                (стало)


                // ...
                // This empty div also has to be relatively positioned,
                // otherwise it crashes IE6-9 Quirks when panel is rendered
                // in a table-based layout.
                (Ext.isIE7m || Ext.isIEQuirks) ? '<div style="position:relative"></div>' : '',

                С удивлением обнаружил, что баг был не только в IE7, но и в других версиях тоже. Помню, что отлаживал на IE7. Почему? Скорее всего, кустомер на этой версии баг словил. А может, ещё по какой причине. Давно дело было.


                Про сам баг припоминаю, что где-то в методе, обсчитывающем позиционирование элементов, происходило обращение к контексту позиционирования для этого <div>, а контекст почему-то не был инициализирован. Отсюда и NPE. Добавив position: relative я форсировал создание этого контекста для данного элемента, и проблема была решена.


                А вот деталей на годный хабрапост я уже и не вспомню. :(


            1. robo2k
              26.09.2018 14:59

              Не очень понял, как у вас сошелся дизассемблированный код, если разные компиляторы выдают весьма разное? И как именно вы отыскали баг среди такой значительной кодобазы, даже не зная конкретно что хотите найти?


              1. sumanai
                26.09.2018 19:29

                Майкросовтовские компиляторы совершенствуются не спеша, так что вполне возможно совпадение частей листинга от разный версий ОС.
                А вот второе и мне интересно.


              1. nohuhu
                26.09.2018 22:30

                Почему вы решили, что компиляторы были разные? Наоборот, у меня были все основания предположить, что для всех продуктов Microsoft используется компилятор производства Microsoft же. Какой смысл использовать что-то ещё? К 1999, когда выпустили IE 5.5, MSVC был уже матёрым и обкатанным компилятором, в который вряд ли будут вносить радикальные изменения. Обе версии IE были 32-битными, что тоже помогло.


                А дальше всё (относительно) просто: есть пример с минимальной HTML/CSS/JavaScript разметкой, стабильно воспроизводящей баг. Проблема где-то в mshtml.dll, это видно из сообщения об ошибке. Ставим MS Visual Studio, оно добавляет системный обработчик ошибок с возможностью открыть программу на шаге, вызвавшем исключение. Вокруг этого шага есть дизассемблированная каша и немного ключевых слов: названия методов и т.д.


                Я не помню, удалось ли мне найти и поставить отладочные символы для IE; скорее всего нет, иначе не потребовались бы пляски с бубнами вокруг исходников Win 2000. Но проблема была где-то в коде mshtml.dll, который, как я предположил, между IE 5.5 и IE 7.0 менялся несущественно. Мне ещё зверски повезло, что в "слитом" коде были исходники mshtml.dll, там вообще не так, чтобы очень много интересного было. Вовсе не "полные исходники Windows 2000", как об этом в своё время жужжали на всех углах. :)


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


                Это я сейчас по памяти рассказываю, возможно что-то и не совсем так шло. Почти 6 лет назад дело было, да и баг был хоть и заковыристый, но далеко не самый важный/сложный, так что обращать на него много внимания не было смысла. Так, страшилка "из былого", чтобы было о чём с коллегами языками почесать за пивом. :))


          1. Durimar123
            26.09.2018 14:26

            >Где IE на самом последнем месте из этой троицы забагованных

            Те кто писал собственный парсер CSS/view machine, будут категорически с этим не согласны.
            IE на столько странно отображал багованные страницы (и некоторые CSS), что никакой логике не поддается.

            А у юзеров только один критерий -> «ничего не знаю, в explorere мой ХТМЛ отлично виден, так что исправляйте ваш кривой вьювер».

            Не помню уже какая контора, собирала подписи под петицией микрософту — «или делайте обработку багованных ХТМЛ по стандартам или хотябы дайте описание вашей обработки багов».


          1. Darth_Malok
            26.09.2018 14:34

            Неужели Опера была настолько плоха? Я в то время не вникал в работу браузера, но все проблемы почти всегда решались сменой user agent на «firefox». И гугл, до этого утверждавший, «что живой поиск в вашем браузере работать не будет», начинал его демонстрировать без ошибок. Это был самый яркий (врезался в память) пример того, что Оперу обижают незаслуженно.

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

            Или всё-таки browser.js патчил каждый второй сайт в интернете?

            Или всё-таки глючили старые версии, но никто из веб-мастеров не разбирался и не давал шанса новым версиям?

            Доклад на конференции был призван убедить, что переход на «хромоподобие» был необходим, поэтому не могу воспринимать его без скепсиса.


  1. zaqqq13
    25.09.2018 15:39

    Вспомнилось как хром меня бесил на ноуте с дискретной Nvidia GT620M — на десятой винде он принудительно использовал ее несмотря на добавление хрома в исключения в панели управления Nvidia, правда потом все же проблема решилась с выходом обновы для хрома


  1. kalininmr
    25.09.2018 15:44

    в windows 95 для некоторых досовских прог(в основном игр) были подобные фиксы.
    довольно много.


    1. QtRoS
      25.09.2018 21:51
      +1

      Как раз отсюда и идет популярная теория о том, почему не было Windows 9 — заплатки начнут работать как в DOS.


      1. kalininmr
        26.09.2018 03:36

        мне кажется, это какая то примета. типа как число 4 в китае.
        о! нашел

        Подобно числу четыре, которое имеет в китайском языке «несчастливого» двойника, в Японии боятся числа 9, поскольку оно звучит так же, как и слово «мучение» или «страдание»

        а ведь windows 4, кстати, назвали windows NT :)


        1. nfw
          26.09.2018 08:08

          Windows 4 называется все таки Windows 95. NT это вообще отдельная ось, которой прикрутили программную совместимость и похожий интерфейс с веткой Windows 3.x. Да и если говорить о магии чисел, то Windows NT 4 очень даже существовала.


          1. kalininmr
            26.09.2018 09:26

            да. точно. NT — это 3.5 по внутренней нумерации


            1. tyomitch
              26.09.2018 10:11

              1. kalininmr
                26.09.2018 10:14

                забыл уж про неё


          1. StmZ
            26.09.2018 17:37

            Версия, возвращаемая Windows 95 — 4.0, но и версия, возвращаемая Windows NT 4.0 — тоже 4.0. Не думаю, что китайские предрассудки сильно волновали Microsoft в те годы.


            1. khim
              27.09.2018 00:03

              Собственно вот именно потому, что Windows 95 — это 4.0 и Windows NT — тоже 4.0 вот этот вот код и появился в Java…


              1. StmZ
                27.09.2018 00:25

                Этот код появился в Java из-за применения антипаттерна «запихаем информацию в String в свободной форме, а потом будем его парсить». А Windows 95 легко отличался от NT4 по полю dwPlatformId в OSVERSIONINFO.


        1. roscomtheend
          26.09.2018 09:40

          А как же NT 3.5? Напоминает глупую байку об устройстве con и прозвище БГ.
          PS. Вот так не обновишь комментарии… В 95 ядро 4 и в NT 4 ядро 4, потому и NT


          1. kalininmr
            26.09.2018 09:54

            однако Palm 4 не было именно по причине приметы. притом официально


        1. vlivyur
          26.09.2018 11:46

          В немецком «9» звучит точно так же как «нет». Поэтому чего «нет», того нет.


          1. kalininmr
            26.09.2018 16:08

            всё больше «вроде бы правильных» гипотез :)


          1. dunkelfalke
            27.09.2018 17:07

            В немецком 9 — нойн. нет — найн.
            Не так уж и похоже.


    1. sumanai
      25.09.2018 22:28

      Сейчас все фиксы собрали в отдельную кучу. К сожалению, тупая десятка не даёт мне запустить Compatibility Administrator (нафига тогда дала установить?), и предлагает качать Windows ADK на пару гигабайт в замену утилитки на 10МБ, так что про десятку не скажу. Но в семёрке в базе исправлений содержится 6567 приложений.


      1. kalininmr
        26.09.2018 03:36

        да уж. десятка не радует. порой в wine работает повеселее.


  1. Defersa
    25.09.2018 15:55

    Так Vista же dx10 притащила, 11 появилась на семерке же?


    1. tangro Автор
      25.09.2018 18:52

      Кажется при релизе да, дх10, но и 11 потом стал доступен под висту. А под ХР не стал.


      1. Defersa
        25.09.2018 18:56
        +1

        В статье говорилось что дх11 была основной фичей висты на «старте», т.е. по факту автор статьи немного ошибся. (скорее перепутал 10 и 11 версии, так как коробки с надписью «Ready for Windows Vista and DirectX10» действительно были)


        1. tangro Автор
          25.09.2018 19:01

          Подводит память :)


  1. dartraiden
    25.09.2018 16:30

    DirectX11 был одной из основных фич Vista
    Точно? DirectX 11 в Vista появился лишь после выхода Windows 7.

    Windows 7 — 22 октября 2009 года
    28 октября 2009 года DirectX 11 стал официально доступен для Windows Vista


    1. tangro Автор
      25.09.2018 18:53

      Точно. Пойду поправлю.


  1. nerudo
    25.09.2018 16:45

    Люди которые привыкли все поставлять по принципу As is ругаются на неполноту документации…


  1. dimkss
    25.09.2018 17:12
    +1

    >> С другой стороны, не понятно почему они были угроханы в фиксы в кодовой базе Хромиума, а не драйверов или ОС (ведь у Гугла там достаточно высокий уровень контроля всего на всех этапах).

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


    1. slonopotamus
      25.09.2018 17:24
      +3

      Не «пихать эти фиксы в ядро ОС», а «пихать эти фиксы в ядерный драйвер конкретного GPU». И именно там всем этим костылям и место.

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


      1. Alozar
        25.09.2018 17:58

        Разве гугл пишет драйвера для GPU? ЕМНИП, этим занимается создатель видеокарты.


        1. slonopotamus
          25.09.2018 20:24
          +1

          Ответ на ваш вопрос содержится в посте. Вместо починки того софта в котором содержится баг, гугл предпочитает ввернуть еще немного подпорок в хром.


          1. Alozar
            25.09.2018 20:29
            +5

            По вашему разработчик видеочипа будет править свои драйвера, а потом ещё просить производителей телефонов, чтобы они по новой сделали обновление для всех телефонов, только потому что-то у гугла в хроме пиксель не того цвета?


            1. FreeNickname
              25.09.2018 21:07
              +4

              Ну вообще, в идеальном мире да. Ведь Хром сделал верные GPU-вызовы, которые должны привести к отображению пикселя вполне определённого цвета. Но этого не происходит. Значит, где-то в цепочке «Хром ->… -> драйвер видеокарты» есть ошибка. И если она-таки в драйвере, то его хорошо бы исправить. Ведь, поскольку это очень низкий уровень, это скорее всего не просто «один неправильный пиксель в хроме», это «неправильные цвета в случайных местах во всех приложениях в системе». Т.е. ошибка достаточно фундаментальная, просто обнаружили её в Хроме.


              1. Alozar
                25.09.2018 21:30

                В том то и дело, что это в идеальном мире. В реальном же мире всё гораздо сложнее.
                Даже если починят GPU-драйвер, будет самсунг делать из-за этого новую сборку операционки для S4, если они для него даже сам андроид после 5 версии не обновляют? Думаю вы понимаете, что ответ — нет. А мне как конечному пользователю на это наплевать, поэтому позиция разработчиков Chromium тут понятна и вполне логична.


                1. FreeNickname
                  25.09.2018 21:38

                  В таком ключе да.


                1. anonymous
                  25.09.2018 23:34
                  +1

                  и именно в этом и факап гугла как разработчика андроида. Почему-то я до сих пор могу драйвера написанные в начале 2000х для winxp установить на win10 — и, в том числе, и обратный процесс тоже возможен (и даже иногда всё работает). А супер-пупер современный аппарат на андроиде превращается в тыкву через год после выхода в продажу — просто потому что всё, никаких апдейтов (включая апдейты безопасности — и это тоже факап именно гугла).

                  И вот эти костылики для андроида гугла в хроме от гугла очень красиво смотрятся. Симптоматично, я бы сказал.


                  1. nohuhu
                    26.09.2018 00:37

                    и именно в этом и факап гугла как разработчика андроида.

                    Это не факап, это бизнес-модель: одноразовость телефонов заложена в процесс, как основной двигатель продаж. Зачем обновлять софт на старом телефоне, если можно вынудить пользователя купить новый?


                    1. anonymous
                      26.09.2018 00:59

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


                      1. nohuhu
                        26.09.2018 01:06
                        +1

                        Если вы посмотрите на ситуацию с другой стороны, то увидите: это вовсе не проблема, а отличная возможность продать вам новый телефон!


                        Зацикленность покупателей на марку это известный факт; люди, купившие один телефон на базе Android, с большой долей вероятности купят следующий тоже на Android. Поэтому и баги, и вирусы, и дырки в безопасности, и новостная шумиха вокруг этих дыр — всё играет в одни ворота. Человек обеспокоенный есть человек склонный к покупке.


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


                        Ну, или вообще не пользуйтесь смартфонами. Я вот не пользуюсь и отлично себя чувствую. :)



                      1. MaximChistov
                        26.09.2018 12:51

                        основная причина, почему я польззуюсь айфонами)
                        надоело каждые два года новый андроид покупать. а последняя ось под айфон спокойно на 5s(вышел 5 лет назад) запускается, причем не ухудшая производительности.


                        1. sumanai
                          26.09.2018 14:49

                          а последняя ось под айфон спокойно на 5s(вышел 5 лет назад) запускается

                          На мой SGS2, который вышел 7 лет назад, до сих пор делают юзабельные кастомы на последних версиях.


                          1. appletesta
                            26.09.2018 16:20

                            ну тут как бы юзабельность различается в для обычного человека:
                            — Условно- рыться в 4пда, что-то там ручками качать, править, переживать
                            — Нажать 2 кнопки

                            Какой вариант выберет 99% пользователей?


                        1. Defersa
                          26.09.2018 16:46

                          У вас видимо какой то особенный айфон, у меня куча знакомых с 5s, которые после 9тки перестали обновляться специально, потому что с каждой итерацией операционной системы общая стабильность и «комфортность» устройства снижается.


            1. slonopotamus
              25.09.2018 21:21
              +4

              Ага. Вот вам пример: https://bugzilla.redhat.com/show_bug.cgi?id=494390


              Обычный пользователь жалуется на проблему с железом поставщику операционки. Информация передается разработчику драйвера. Тот чинит драйвер, фикс драйвера включают в ядро. Потом выходит новая версия ядра с исправленным драйвером. Потом ядро обновляют в дистрибутиве пользователя. Пользователь устанавливает обновление. Все счастливы.


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


              1. vsb
                26.09.2018 11:29

                Вот вам другой пример. У меня HP Microserver Gen8. У него есть шикарная особенность, если диски работают в режиме AHCI, то вентилятор крутится примерно в 2 раза сильней, чем если диски работают в режиме RAID. Якобы потому, что BIOS не может прочитать температуру дисков и на всякий случай завышает обороты вентилятора. Практическое следствие — у меня дома режим AHCI не юзабелен, ночью слишком громко, поэтому приходится использовать режим RAID. Что за режим такой? Это HP придумало RAID, который на самом деле реализован в обычном драйвере и никакого железного RAID там нет, просто маркетинг и небольшая интеграция с прошивкой. Обратите внимание на слово «драйвер». Проприетарный драйвер есть для RHEL и SLES. Ну и в CentOS работает, конечно. Конкретно для версии 7.4 на текущий момент, хотя 7.5 вышла уже с полгода назад. То же было с версией 7.3 и 7.4. И я полгода не мог обновить свою ОС из-за этого драйвера. Сейчас у меня получилось обновить, т.к. божьим чудом он работает на 7.5, а может быть и глючит и потихоньку трёт мои биты, но я надеюсь на лучшее. При этом очевидно, что т.к. оборудование недавно сняли с продажи, этот выпуск драйвера под 7.5 (из внутренних источников я знаю, что они его выпустят когда-нибудь) скорей всего будет последним. И мой микросервер отныне навсегда останется на RHEL 7.5 без возможности апгрейда. Ну ладно, хотя бы не 6-ка с ядром 2.4 :)


                1. Max_JK
                  26.09.2018 12:12
                  +1

                  Можно пофиксить впаяв переменный резистор в провод вентилятора.


                  1. dimaviolinist
                    26.09.2018 14:46
                    -1

                    Не пишите ересь, это же хабр.
                    Нужно сделать систему мониторинга, с датчиками температуры, влажности, шума, углекислого газа с системой реального времени и логгированием. Светодиодная (цветовая) индикация режима работы плюс зуммер, как запасной канал оповещения о пожаре. Всё это делается не на ардуине (тьфу, как можно), а как минимум на STM (только на RTOS), а ещё лучше на малинке. Обязательно вставить возможность реалтайм обновления прошивки без перезагрузки. Запасной вариант — ввод новой прошивки через подключение USB клавиатуры. Контроль вводимых символов светодиодом. Азбукой морзе. Модифицированной, конечно, светодиод же цветной.
                    Впаять резистор. Ересь.


                  1. vsb
                    26.09.2018 17:20

                    Тогда сервер не будет выполнять свою задачу по нормальному охлаждению компонентов, если это действительно понадобится. Учитывая, что он работает 24/7 и не всегда под присмотром, для меня пожаробезопасность критична.


              1. khim
                27.09.2018 00:22

                То что такой сценарий невозможен с андроидом — недостаток экосистемы андроида, исправить который гугл вполне бы мог.
                Не «мог бы», а «может». И исправит. Со временем.

                Ссылку на известный опус тут уже приводили — но не объясняли почему всё так, как оно есть… А это, на самом деле, просто: смартфоны, вы не поверите, всё ещё разрабатывают компании, которые телефоны разрабатывали десятилетиями. И SOC'и для них всё ещё разрабатывают компании, которые эти SOC'и разрабатывали десятилетиями. Потому описанный по вышеприведённой ссылке «абсолютный водопад» — это единственное подо что они заточены. Раз выпущенный драйвер правится только тогда же, когда правится с тормозами какой-нибудь Тойоты: когда проблемы выползают уже не просто на страницу прессы, а начинают влиять на курс акций. А не когда «пользователь пожаловался».

                Единственная компания, которая ведёт себя не так — это Apple, для чего ей пришлось купить достаточно компаний, для того, чтобы полностью с нуля всё разрабатывать.

                Все же остальные — встроены в систему, вырваться из которой — они не могут. Microsoft попробовал «силой» выпихнуть — ничего хорошего не вышло (это не единственная причина провала Windows Phone, но одна из важных).

                Что может сделать Google? Начать постепеннь закручивать гайки… но очень постепенно, а то ведь так и пользователи сбегут к производителям более цветных телефонов. Android — ведь OpenSource проект, не забыли?

                Так что… всё будет. Своевременно или несколько позже.


        1. EviGL
          25.09.2018 22:12
          +1

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


          1. krab90
            25.09.2018 22:25
            +1

            На андроиде вообще жесть и ад. Мало того что баги в драйверах. Так еще они пропреетарные поставляются бинарными вендору андроид девайса. Project Treble должен решить проблему быстрого устаревания и отсутствия обновлений безопасности устройства. Ну если вы конечно не выбрали ASUS.


            1. Danil1404
              25.09.2018 23:40

              А что не так с ASUS?


              1. krab90
                25.09.2018 23:43

                Обновления «безопасности» раз в пол года, как выходит гарантийный срок устройство считается устаревшем. Никаких крупных обновлений по типа Android 6 > 7 нет, опять же из-за проблем с драйверами с поставщиками чипов. Если сейчас что и брать то только с поддержкой Project Treble.


                1. Danil1404
                  25.09.2018 23:59
                  +1

                  Так ведь это не к является фирменной фишкой ASUS. Если брать бюджетки, то наверное везде так с обновлениями.
                  Обновления на новые модели прилетают регулярно, по крайней мере на средние и топовые модели, и содержат в себе не только фиксы безопасности. И на 4pda есть люди, которые утверждают, что на прошлые модели тоже были полноценные обновления, в том числе со сменой мажорной версии. Поддержка Project Treble у ASUS есть, по крайней мере на некоторых моделях.
                  Говорю как владелец zenfone 5 (2018).
                  Я согласен, что project treble должен быть обязательным требованием при покупке, но я не вижу, чем ASUS в этом плане отличается от других производителей.


                  1. krab90
                    26.09.2018 01:49

                    Вот вот. Она (поддержка) только появилась недавно. Как asus будет пользоваться возможностями этой платформы нам только предстоит увидеть. В то время google поддерживает(и поддерживал ранее с 2013 года) все свои устройства своевременными обновлениями в том числе и новыми версиями андроидов.


                    1. pavel_kah
                      26.09.2018 09:46

                      Мой Nexus 5, у которого последнее официальное обновление безопасности было в 2016 году, а последняя версия Android, вышедшая для него, была Marshmallow, явно с вами не согласен


                      1. navion
                        27.09.2018 16:18

                        Гугол честно указывает сроки поддержки для своих аппаратов.


                      1. navion
                        27.09.2018 16:34

                        Впрочем, я вспомнил как они кинули пользователей Nexus 5X с ночным режимом для которого надо было модифицировать драйвер дисплея.

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


                  1. lobzanoff
                    26.09.2018 12:55

                    У меня бюджетный (100$) сяоми (redmi note 5a). Обновления безопасности падают регулярно, почти каждый месяц, в октябре апнется с андроида 7 на 8, велика вероятность что и до 9 когда-нибудь в будущем. Будет. Апнутся или уже апнулись и модели 2-3 летней давности. Можно по разному относиться к этой компании, но то, что она при таком зоопарке модельного ряда не забывает об обновлениях — можно только приветствовать, в отличие от некоторых крупных компаний, которые плюют на свою продукцию, выпуская 2-3 модели.


            1. arteast
              26.09.2018 11:53

              Проект Treble ничего в этом месте не изменит. Он уберет проблему устаревания андроида, чтобы можно было поставить новый блестящий андроид поверх старых бажных проприетарных дров. Лучшее, на что можно надеяться — что пользователи дольше будут использовать свои телефоны, что создаст давление на производителей по их поддержке.


              1. pavel_kah
                26.09.2018 12:30

                По крайней мере, вроде как все девайсы, которые поставлялись с Oreo на борту, поддерживают его, и по сути дают возможность поставить AOSP GSI, чтобы не страдать от «интересных и функциональных» китайских оболочек, которые могут быть безумно забагованны, и пользоваться обычным «чистым» андроидом. И это выглядит очень интересно, если это будет работать.


                1. khim
                  27.09.2018 00:26

                  Это очень интересно и это даже более-менее работает… но это как раз оставлят вас с новым Андроидом и старыми, глючными и бажными драйверами…


            1. khim
              27.09.2018 00:24

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


          1. ad1Dima
            26.09.2018 12:47

            Чёт вспомнил habr.com/post/401445


      1. dartraiden
        25.09.2018 18:21

        Драйвер вполне может быть закрытым.

        То есть:
        — производитель чипа должен внести изменение в драйвер
        — производитель смартфона должен выпустить новую версию прошивки с этим драйвером
        — пользователь должен её установить

        Если хоть один шаг не выполнен — проблема у пользователя останется.


        1. slonopotamus
          25.09.2018 20:34
          +1

          производитель смартфона должен выпустить новую версию прошивки с этим драйвером

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


      1. artskep
        25.09.2018 19:35

        Тут изначально неверная предпосылка, что Гугл контролирует Андроид. В реальности это не так. Не, многое пишется Гуглом — спору нет. Но конечное устройство можно сделать как угодно. А HAL вообще по определению пишется производителями чипсета и допиливается производителями телефона. И почти никаких методов давления на этих ребят (которые, как водится, лажают) у Гугла нет. Телефон можно выпустить не спрашивая разрешения у Корпорации Добра.
        Единственное, что Гугл контролирует — CTS. Это тест совместимости, который необходим для того, чтобы иметь возможность устанавливать на устройство Google Play Services. Но тест, скажем честно, не настолько крут, чтобы решать озвученные проблемы. Да и устройств, которые даже не пытались пройти CTS выше крыши (скорее всего в несколько раз больше, чем тех, которые прошли CTS). А Гугл, естественно, хочет чтобы Хром работал даже на них — для него это ключевой продукт на клиентской стороне.


        1. slonopotamus
          25.09.2018 20:08
          +4

          Гугл имеет возможность контролировать андроид в той же степени в которой Canonical контролирует свою убунту. Не надо ничего ждать от производителей материнки/клавиатуры/колонок/SATA-контроллера/монитора/etc чтобы обновить убунту с 16.04 до 18.04.


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


          Но, внезапно, надо ждать, чтобы сделать то же самое с андроидом.


          1. rogoz
            25.09.2018 21:10
            +2

            Не надо ничего ждать от производителей материнки/клавиатуры/колонок/SATA-контроллера/монитора/etc чтобы обновить убунту с 16.04 до 18.04.

            Да, но, например, если проприетарный драйвер nvidia не работает в 18.04, то придётся подождать. Или в новой системе в драйвере проявилась ошибка, от которой падает хром. Придётся гуглю потерпеть убытки и недовольство пользователей и подождать патч. Который может выпустят. Никаких же гарантий nvidia гуглу не дала.


            1. slonopotamus
              25.09.2018 21:32
              +2

              Ну вот поэтому Торвальдс нвидии фак и показывал.


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


              1. pesh1983
                26.09.2018 10:39

                Баги в драйверах, а не в самой операционке. Драйверы Гугл не пишет, по этой же причине доставить их на может на конечное устройство при всем


              1. artskep
                26.09.2018 13:34

                Присоединюсь к предыдущему комментатору, и еще есть ньюанс: Архитектура PC открытая. Во всяком случае на порядки более открытая, чем у телефонов.
                И жизненный цикл в смартфонах короче, чем у видеокарты.
                Так что пока производители телефонов не согласятся на модульную единую систему, вариантов "просто обновите драйвер" не будет. Зная, как разрабатываются смартфоны, вангую, что этого не будет никогда.
                А короткий жизненный цикл убивает эту идею на корню: зачем городить модульную систему, если через год все равно надо выпускать очередную "революционную" модель на полмикрона тоньше и на полтакта быстрее.


                1. khim
                  27.09.2018 00:40

                  Зная, как разрабатываются смартфоны, вангую, что этого не будет никогда.
                  Не надо так ванговать. Конечно же это случится — но для этого сначала нужно, чтобы у разработчиков смартфонов никаких альтернатив не осталось.

                  в начале 1980х MS-DOS, вы не поверите, тоже поставлялась разработчиками PC и использовать версию для Olivetti на Dec вы не могли. А потом… потом Lotus выпустил 1-2-3, Microsoft выпустил Windows… и разработчикам железа пришлось плясать под чужую дуду.

                  То же самое будет и со смартфонами… но должно пройти некоторое время…

                  А короткий жизненный цикл убивает эту идею на корню: зачем городить модульную систему, если через год все равно надо выпускать очередную «революционную» модель на полмикрона тоньше и на полтакта быстрее.
                  К сожалению или к счастью, но «полмикрона тоньше и на полтакта быстрее» — это последний год или два. Флагманы 3-5 летней давности много чего «не тянут».

                  Когда эта гонка замедлится — тогда и начнут заниматься другими вещами…


                  1. artskep
                    27.09.2018 20:33

                    в начале 1980х MS-DOS, вы не поверите, тоже поставлялась разработчиками PC и использовать версию для Olivetti на Dec вы не могли.

                    Э… Не совсем понимаю при чем тут это. Dec это архитектура процессора по большому счету. Да, она умерла. Да, на десктопах RISC архитектура не приживается уже который раз (из современного опыта Windows RT, и о массовом использовании десктопов на ARM пусть даже не Ubuntu я не слышал. Малинка не в счет — это игрушка для гиков даже после нескольких лет на рынке). И Apple перешел на Intel архитектуру с powerpc. Я же не об этом. Но это не имеет вообще никакого отношения к архитектуре PC (и ее модульности) в целом.
                    В мире мобильников уже лет так 15 минимум архитектура процессора тоже унифицировалась (ARM), хотя я помню времена, когда .cab файлы для windows mobile собирались и распространялись и под MIPS и че-то еще.
                    Но зоопарк шин/устройств/комбинаций их никуда не делся и деться ему, вроде, некуда.

                    То же самое будет и со смартфонами… но должно пройти некоторое время…

                    С архитектурой процессора я уже выше сказал — унифицировалось давно. А вот пытаться эту идею развить вообще на все устройство вцелом — тут все не так просто. Стандартизация интерфейсов в PC относительно простой процесс, т.к. мало физических ограничений. Есть место куда вставлять плату, есть место где поставить разъем «на будущее», есть постоянный источник питания.
                    А вот как только мы говорим о ноутбуках, тот тут уже могут начаться проблемы с совместимостью generic драйверов или производительностью их, т.к. производитель уже чутка вынужден был помучиться с компоновкой/охлаждением/батарейкой. А в телефоне эти проблемы на порядок круче, чем в ноуте.

                    Не, были попытки сделать телефон действительно модульным. Тот же Гугл, кстати, честно пробовал. Но Project Ara сейчас, увы, помнят только энтузиасты, пуская ностальгическую слезу по такой хорошей (в теории) идее.


                    1. khim
                      27.09.2018 21:01

                      Dec это архитектура процессора по большому счету.
                      Я думаю вы имеете в виду какой-нибудь другой Dec. Я про этот. Там был обычный 8088 и необычный MS-DOS. И это было нормально для середины 80х. Соотвественно все ваши дальнейшие рассуждения ваши — непонятно о чём.

                      Но зоопарк шин/устройств/комбинаций их никуда не делся и деться ему, вроде, некуда.
                      Есть куда. По той же схеме, что и с IBM PC и Microsoft'ом: вначале появляются несколько узаконенных конфигураций, потом, потихоньку, всё остальное отмирает.

                      Но это может произойти только если у разработчика OS очень жёсткая монополия и производителям, грубо говоря, «некуда деваться».

                      Я не уверен что Гугл сейчас может это сделать. Но со временем — это вполне может случится.

                      Но Project Ara сейчас, увы, помнят только энтузиасты, пуская ностальгическую слезу по такой хорошей (в теории) идее.
                      Всему своё время просто. Сейчас на ноуты Windows 10 встаёт «чисто». Никаких вещей специально под конкретный ноут ставить не нужно. Но да — чтобы до этого дойти потребовалось больше 20 лет под «жёсткой пятой монополии».


                      1. artskep
                        27.09.2018 22:08

                        Я думаю вы имеете в виду какой-нибудь другой Dec. Я про этот.

                        Ой, да, я как-то перепутал 80-е и 90-е. Тут вы правы. Но позвольте вам рассказать, что случилось с DEC в 90-е (ибо я даже частично это наблюдал на практике):
                        DEC сделали свою DEC Alpha. И на ней даже запускался Windows (кастомная сборка). Где-то в эти же годы Apple, ЕМНИП, работала на PowerPC, много чего веселого было за пределами Майкрософта, поверьте…
                        Но все закончилось печально — все заглохло и перешло на x86. Но этот процесс закончился еще до массового появления смартфонов, а унификация общепринятой периферии, пожалуй, даже раньше.
                        Есть куда. По той же схеме, что и с IBM PC и Microsoft'ом: вначале появляются несколько узаконенных конфигураций, потом, потихоньку, всё остальное отмирает.

                        Угу, осталась одна незначительная малость — производитель софта и производитель железа должны занять главенствующую (практически монопольную) роль на рынке (как MS и IBM в то время), и определить стандарт. Ок, как только Гугл поглотит значительную часть производителей телефонов (или наоборот) — дайте мне знать.
                        Но это может произойти только если у разработчика OS очень жёсткая монополия и производителям, грубо говоря, «некуда деваться».

                        Ой, а, учитывая то, что железо уже давно SoC не означает ли это, что монополия будет абсолютной? Мне кажется вы не совсем понимаете причины успеха PC в 80-90-х
                        В действительности IBM не обладала монополией на все железо (точнее от нее отказалась). В действительности IBM и придумала и продвинула открытую архитектуру, которая оказалась в ее коммерческих интересах. IBM взяла на себя роль интегратора решений уровня бизнеса, а клепать платы отдала на откуп другим конторам. И за счет этого нихреново приуспела.

                        Всему своё время просто.

                        Т.е. мои аргументы по поводу того, что есть физическая разница между PC, ноутом и телефоном вы проигнорировали.
                        Ок, бывает…


                        1. khim
                          27.09.2018 23:15

                          Но позвольте вам рассказать, что случилось с DEC в 90-е (ибо я даже частично это наблюдал на практике):
                          DEC сделали свою DEC Alpha. И на ней даже запускался Windows (кастомная сборка)
                          А это — уже попытка обратить «время вспять». Она уже не так интересна.

                          Ок, как только Гугл поглотит значительную часть производителей телефонов (или наоборот) — дайте мне знать.
                          А зачем ему это? Стандарты (и очень многие стандарты) на рынке PC устанавливал как раз Microsoft, который (до самого недавнего времени) железа не производил (за исключением мышек и клавиатур).

                          Т.е. мои аргументы по поводу того, что есть физическая разница между PC, ноутом и телефоном вы проигнорировали.
                          Проигнорировал, потому что они к делу отношения не имеют. Кто и какое железо производит — неважно, если у вас есть какой-то софт, без которого это железо нельзя продать. Именно потому Microsoft (даже после потери рынка смартвонов) стоит вчетверо дороже AMD и Intel вместе взятых.

                          Но вот тут как раз у Google — большая «дыра» под названием «Китай». Примерно треть телефонов на андроиде — продаются без Google сервисов и, соотвественно, огромный процент разработчиков всё-таки выпускает программы, работающие на голом Андроиде. Как именно будет решаться эта проблема — пока неясно.

                          Но именно это не позволяет заставить производителей железа «ходить строем». А вовсе не «проблемы с охлаждением» или «ограниченность батареи». Пока Google не является действительно незаменимым завеном, а является всего лишь «первым среди равных» (а пока что это именно так) он не сможет «выкрутить руки» производителям — со всеми вытекающими.

                          В действительности IBM и придумала и продвинула открытую архитектуру, которая оказалась в ее коммерческих интересах.
                          В чьих интересах это всё оказалось — сейчас сложно сказать, но факт есть факт: начиная с разработки EISA IBM уже ничего не контролировала, а старндарты разрабатывали и продвигали Intel и Microsoft. В случае же с сотовыми пока всё застряло на уровне «каждый дудит в свою дуду», так как очевидного лидера пока нет.

                          Но это временное явление: рынок ОС естественным путём стремится к монополизации, как и рынок процессоров. Просто сейчас производители сотовых — это компании заметно крупнее производителей персоналок в 80е-90е, так что процесс идёт медленнее.


                    1. Am0ralist
                      28.09.2018 10:29

                      Да, на десктопах RISC архитектура не приживается уже который раз (из современного опыта Windows RT, и о массовом использовании десктопов на ARM пусть даже не Ubuntu я не слышал. Малинка не в счет — это игрушка для гиков даже после нескольких лет на рынке)
                      MS запили на АРМовских процах винду, которая поддерживала приложения x86. И интел мигом вспомнила про свои патенты.
                      Таким образом, винду на армах сдерживает отсутствие совместимости с кучей написанного ПО, которое искусственно создал Интел.


              1. khim
                27.09.2018 00:37

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

                И тот факт, что драйвера на них не обновляются — было просто данностью. Собственно Гугл очень долго воевал за то, чтобы на телефонах вообще хоть что-то можно было обновлять.

                Можно было сделать иначе? Да, можно. Сделать как разработчики Maemo и Ubuntu Touch, Openmoko и Windows Phone (не путать с Windows Mobile, который поддерживал «традиционную схему», но был варварски убит)… ну и проследовать вместе с ними на полки компьютерных музеем, да.

                Но Гугл решил, что устройства в руках у людей несравненно полезнее устройств на полках музеев — и сделал как сделал…


  1. Temtaime
    25.09.2018 17:28

    Имел дело с Intel — это не массовость, это куча багов. В OpenGL во всяком случае.


    1. AllexIn
      25.09.2018 19:30

      Не знаю как сейчас, но лет 5 назад и в DX была гора проблем.


      1. navion
        25.09.2018 21:20

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


  1. lostmsu
    25.09.2018 17:39

    Автор, конечно, подналажал кое-где (баг со switchable graphics только с драйверамии до 2016 года (!)), но статья интересная.


    1. tangro Автор
      25.09.2018 19:00

      Ну, такое. Идеи этой статьи витали у меня давно, тогда это было актуальной проблемой, мы даже с ней боролись в собственном продукте. Сейчас вроде да, исправлено. Но сама гибридная графика была представлена когда, в 2008 кажется? А приемлимо для Хрома стала работать в 2016-ом. Отличные темпы разработки.


  1. Arris
    25.09.2018 18:34

    Напомнило недавнюю статью про проблемы софта.

    Все в одну копилку ложится.


  1. mishast
    25.09.2018 19:36

    Видел этот файл: )
    У меня программа на qt, которая использовала web engine (у которого под капотом chromium), падала в линукс, долго разбирались в чем дело, выяснилось, что кривые драйвера от nvidia… падало в рендерере chromium… В qt был староватый chromium, в новом chromium эта карта была отключена, в дефекте было написано, что у драйвера проблемма с многопоточностью…


    1. technic93
      25.09.2018 19:58
      +1

      Линукс и нвидия та ещё история любви.


      1. boblenin
        25.09.2018 22:02

        Помню даже как один, недавний пенсионер, показывал им палец.


  1. super-guest
    25.09.2018 22:00

    Прочитал статью, задумался и обновиться захотелось…


  1. mSnus
    25.09.2018 22:01

    Странно, поиском по Windows нашёл всего 5 вхождений, 1 из которых на самом деле Mac. И в основном это автопереключение разных версий DirectX.


    В основном ошибки в драйверах для Linux/Android...


    1. tangro Автор
      25.09.2018 23:41

      «type»: «win»

      Вот это считать надо.


      1. mSnus
        25.09.2018 23:44

        Спасибо, да,


    1. EvilFox
      27.09.2018 16:14

      Для статистики:

      "type": "chromeos" // 8
      "type": "win" // 26
      "type": "linux" // 34
      "type": "macosx" // 44
      "type": "android" // 89

      Ай, поторопился, в статье это уже указано.


  1. krab90
    25.09.2018 22:11

    Firefox умеет точно тоже самое. Рендриться на DirectX 11, на старых видеокартах с поддержкой DirectX 10(10.1) так же использует 11 в режиме совместимости. На еще более старых картах под которые драйвера последний раз обновились 10 лет назад можно заставить через опции работать в режиме directx 9 но возможны артефакты. Ну и конечно же software basic режим.

    Как выйдет webrender там уже ограничения будут выдаваться возможностями ANGLE.


    1. tangro Автор
      25.09.2018 23:43
      +1

      Я не сомневался, просто не видел в его кодовой базе столь хорошо структурированного файла с багами (но я, признаться, особо и не искал). И это ещё одна причина популярности сегодняшнего веба.

      Кстати, у Хрома есть одна прикольная фишка, которой не было у ФФ: если его GPU-подпроцесс 3 раза крешился, то на четвертый он уже и не запускался, а Хром начинал всё рисовать в GDI. Файрфокс такого не умел по очевидным причинам (был однопроцессным). Теперь у него тоже подпроцессы, интересно, есть ли такая фича.


  1. Ardanay
    25.09.2018 23:30

  1. Newbilius
    26.09.2018 07:30

    не понятно почему они были угроханы в фиксы в кодовой базе Хромиума, а не драйверов или ОС (ведь у Гугла там достаточно высокий уровень контроля всего на всех этапах).

    Наверное потому что Google не пишит ВСЕ драйвера для ВСЕХ устройств на рынке? Ну знаете, чисто гипотетически.


    1. tangro Автор
      26.09.2018 09:50

      Microsoft вот тоже не пишет все драйвера для всех устройств на рынке. Но она их подписывает и без её подписи вы в Вин10 никакой драйвер не поставите (ну, без сложных танцев с бубном). А для подписи драйвер должен пройти некоторую процедуру проверки. Что мешало Гуглу сделать так же? Нашли бак в каком-то квалкомовском чипе — вон не подписывать его драйвер, пока не пофиксят.


      1. Smokin
        26.09.2018 10:11

        Могу предположить, что от такой политики цены на телефоны могут вырасти. И тут стоит выбор, что лучше.


      1. advance
        26.09.2018 10:46

        Ну наверно то, что Android всё еще open source. Драйвер для него может писать кто угодно и устанавливать куда угодно. Проприетарны и закрыты здесь только google play services- они устанавливаются в прошивку по желанию вендора и договоренности с гуглом. Работу именно сервисов гугл и проверяет, к драйверам это не имеет отношения.
        Например, китайские android-смартфоны прекрасно существуют без play services (всё таки там baidu монополист). И вот там с совместимостью проблем в разы больше.
        В то же время ранее существовал покойный Яндекс.Кит. Андроид, сервисов гугла не было, на замену ему пришли сервисы от Яндекса. Покойный потому, что
        1. Не смогли обеспечить достойной замены сервисам гугла (говорят, что там даже push было сделать проблемно)
        2. Проблемы с софтовой совместимостью (ту не понятно, кто больше виноват- вендоры или оболочка Кит, драйверы вообще вряд ли кто-то проверял)
        3. Ценовая политика- девайсы были дешевые (но, правда, очень лагучие), а вот цены на софт и место в магазине Яндекса были не очень привлекательными.

        Если резюмировать- проблемы с драйвером еще не самое страшное…
        А вот с (возможным в качестве замены) выходом фуксии всё может измениться.


        1. RiseOfDeath
          26.09.2018 12:03

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


          1. Alozar
            26.09.2018 12:15

            Как вы себе представляете эту проверку и какие ситуации должны при этом проверяться?
            Бывает, что баги проявляются только при совершении большого количества действий в определённом порядке и ещё парочке сторонних факторов. Зашивать в проверку все хитровывернутые варианты действий? А если после сертификации пиксель снова появится не того цвета, т.к. не предусмотрели вариант, когда совершается последовательность 150 действий при наличии на телефоне приложений X, Y и Z?


          1. advance
            26.09.2018 12:51

            Собственно, они пытаются. Android One, Project Treble и тд. Помимо совместимости еще и решить несколько других. Да и сейчас есть требования к вендорам по api драйверов. И, надо сказать, стало в разы лучше, чем на 4.х или 2.х.
            Ответ на Ваш вопрос — вендоры мешают.
            Дело в том, что samung- самый крупный производитель смартфонов и планшетов на сегодняшний день. Да, их мобильное подразделение имеет бюджеты скромнее, чем у компании из Купертино. Но, однако, сам samsung в разы крупнее и дороже apple (возможно, крупнее любой корпорации, которая производит микроэлектронику и комплектующие). Такому игроку сложно что-либо указывать. И если какая-либо сертификация не пропустит какие-либо маркетинговые фишки (некоторые завязаны на драйверах и ядре. Пример- KNOX) по любой причине- это может привести к тому, что огромный пласт устройств перейдет, например, на Tizen (который лежит у самсуга в кармане). Может пару раз вендор и пойдет на уступки, но терпение не бесконечно. Гуглу этого перехода не надо по понятным причинам. Да и пользователям тоже.
            Потому стараются причесывать платформу мягко и постепенно


            1. Beyondtheclouds
              26.09.2018 13:20

              вообще у эпла доход за 2017 год больше чем у всего самсунга, целиком :)


              1. advance
                26.09.2018 13:26
                -1

                Публичного- да. Есть не публичная часть. Например, оборона. Да, samsung строит танки, турели и много чего. Никто не будет это афишировать)
                Насколько я понял, доходы от постройки крупногабаритных кораблей туда тоже не входят.
                UPD. Почитал. Скорее всего речь именно о мобильном подразделении, а не уточняется во имя маркетинга. Слабо верится в то, что apple дороже корпорации, которая занимается если не всем, то очень многим (текстиль, автопром, фармацевтика, можно долго перечислять).


                1. khim
                  27.09.2018 00:51

                  Таки Apple дороже. Хотя доходы стравнимы — у Samsung 225,2 млрд долларов, а у Apple 229.2 млрд. При такой крошечной разнице даже нельзя сказать кто больше: зависит от того на какой конкретно день взяли курс вона к доллару.

                  Однако тут есть некоторое лукавство: в прошлые годы Apple активно росла, в 2016м был спад, а в 2017 пошло уже выжимание денег из имеющихся клиентов путём повышения цены. Ясно, что в долгосрочной перспективе это тупик… но вот прямо сейчас Apple — дороже, чем Samsung…


        1. sumanai
          26.09.2018 14:54

          Покойный потому, что

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


          1. advance
            26.09.2018 15:26

            На мой личный взгляд — нет, не основная. Тех марок устройств, с которыми продавался Кит лично я больше в продаже не видел. И до начала продаж тоже)
            ИМХО, если бы устройства на Ките покупали- то вендорам, которые на нем выпускались, было бы всё равно. А известные вендоры под это дело организовывали бы дочек. Был бы спрос. С такими то низкими ценниками. Но кому нужен тормознутый смартфон\планшет, у которого в маркете нет нужного приложения?.. А даже если поставить apk- не факт, что работать будет нормально (чаще- нет). А без нужных приложений- зачем оно вообще надо?..
            А по поводу жалоб о монополии- если бы могли сделать конкурентоспособный продукт- то и жаловаться не пришлось бы


            1. sumanai
              26.09.2018 19:34

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

              А известные вендоры под это дело организовывали бы дочек.

              А почему вы думаете, что не организовали? Я уверен, что это и были очередные торговые марки крупных производителей.
              А даже если поставить apk- не факт, что работать будет нормально (чаще- нет).

              Вы это пишите тому, у кого на смартфоне нет приложений от гапсов. Ничего, всё нормально работает.


              1. advance
                27.09.2018 02:55

                Вы это пишите тому, у кого на смартфоне нет приложений от гапсов.
                И как Вам живется без порядочной навигации, гуглокарт в приложениях, хранения учеток, push-уведомлений (да, можно организовать пушки руками, но ценой того, что они не будут работать в спящем режиме. А если и будут- то ценой слива батареи)? Может, конечно, для Вас это привычно, но для подавляющего большинства- нет. Очень многое зашито именно в гапсах, и сегодня минимум каждое второе приложение функционировать без них не будет.
                Ничего, всё нормально работает
                Во-первых это невозможно по описанным выше причинам. Если приложение ограничивает свой функционал по причине отсутствия гапсов- это уже не штатная работа.
                Во-вторых- я щупал кит, когда он появился в продаже, на предмет возможности публикации. Отсутствие порядочной замены гапсам- это одна боль. Другая в том, что (если не углубляться в тех. детали) некоторые второстепенные api самого android framework работали некорректно на пробных запусках. Да, всё можно обойти и подобное встречалось ранее. Но зачем? Аудитории мало, тратить время на адаптацию никто не хотел.


                1. sumanai
                  27.09.2018 13:31

                  И как Вам живется без порядочной навигации

                  2гис?
                  гуглокарт в приложениях

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

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


      1. pesh1983
        26.09.2018 10:49
        +1

        Виндовс — проприетарное ПО, его можно только кастомизировать. Менять исходный код нельзя. Андроид — ос с открытым исходным кодом. Любой вендор может что угодно в ней поменять. В том числе и убрать проверку подписанных драйверов. Вдобавок, видела как правило устанавливается на любое железо, драйвера идут отдельно. С Андроидом — только то, что сделал вендор. Так с Андроидом не выйдет, как на


        1. Am0ralist
          26.09.2018 11:45

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


          1. pesh1983
            26.09.2018 11:48

            Я думаю, что тут важнее распространенность системы, чем война с вендорами за чистоту драйверов и прочее. Тут даже скорее обратная ситуация: чем больше смартфонов с андроид, тем он популярнее, тем больше выгоды получит компания. Поэтому в финансовом эквиваленте ставить палки в колеса вендорам для Гугла менее прибыльно, чем запилить фиксы в кодовую базу Хромиума. Ну и по ресурсам первое на порядки затратнее, чем второе. Увы, это реальность


            1. Am0ralist
              26.09.2018 12:05

              Ещё раз, гугл победил все форки банально запретив их делать, если производитель хотел выпускать смартфоны с сервисами гугла, а в качестве пряника гугл начал немножко делиться баблом за предустановку.
              А вот заставить их поддержку вменяемую — не, не мог. Это слишком дорого?
              Серьезно?


              1. advance
                26.09.2018 13:07

                Никто никому не запрещал делать форки. MiUI как была, так и есть. И Sense\TouchWiz\Flyme- это, по сути, тоже форки. В Китае вообще далеко не на каждом смартфоне есть play services ибо не надо. И ничего, живут себе. Только проблем там больше, поскольку API не всегда реализован верно. А это уже опаснее, чем баги с дровами.

                А вот заставить их поддержку вменяемую — не, не мог. Это слишком дорого?

                Нет, не дорого. Опасно. Потерей доли рынка. Как писал выше, игрокам вроде samsung вообще сложно что-либо указывать.


                1. Am0ralist
                  26.09.2018 13:37

                  Ничего, что в Китае сервисы гугла были законодательно заблокированы?
                  Серьезно, ничего не смущает в вашем опровержении?

                  Как писал выше, игрокам вроде samsung вообще сложно что-либо указывать.
                  Ну, давайте. Перечислите еще парочку игроков уровня Самсунг? Хм… Ах да, таких — нет.
                  Теперь вспомним, как самсунг пишет ПО… и понимаем, что ему тоже некуда было прыгать с корабля. Причем, самсунгу то эти требования было бы зачастую проще выполнять — у него и свои процы имеются. Да, он мог пошантажировать тизеном, но по факту — свалил бы только если совсем были бы невыполнимые условия. Более того, последние пару лет он обещает вроде как получше поддержку хотя бы по обновлениям безопасности сделать (насколько в реальности делает — судить не могу).
                  А всем прочим деваться было не куда. В глобальном смысле — нет сервисов гугла = нет продаж в развитых странах.


                  1. advance
                    26.09.2018 13:59

                    Ничего, что в Китае сервисы гугла были законодательно заблокированы?
                    Ключевое слово- были. Сейчас не все, но доступны.
                    Перечислите еще парочку игроков уровня Самсунг?
                    Сам Самсунг производит больше половины всего объема смартов и планшетов на андроид. Этого уже достаточно.
                    В догонку- один из лидеров телекоммуникационного оборудования- Huawei. Продажи у них тоже не маленькие. В недавних скандалах тоже часто мелькали.
                    свалил бы только если совсем были бы невыполнимые условия
                    Потому и не свалил, что выполнимы. А выполнимы потому, что самсунг- член OHA


                    1. Am0ralist
                      26.09.2018 15:13

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

                      Сам Самсунг производит больше половины всего объема смартов и планшетов на андроид. Этого уже достаточно.
                      Именно, и он таки договорился сейчас. А значит у прочих шансов не было никаких еще тогда. Про что и было указание найти аналогичного игрока, кто мог бы с гуглом торговаться и от него хотя бы как-то свалить.


                  1. khim
                    27.09.2018 01:08

                    Причем, самсунгу то эти требования было бы зачастую проще выполнять — у него и свои процы имеются.
                    Процы имеются, а GPU — нет. И драйверов нет. От их от Imagination Technologies и ARM'а получает.

                    Да, он мог пошантажировать тизеном, но по факту — свалил бы только если совсем были бы невыполнимые условия.
                    Требования обновлять драйвера — это как раз они и есть. Именно поэтому Windows Phone поддерживала так мало процессоров: несколько Snapdragon'ов и всё. Ни PoverVR, ни Mail (то есть самые эффективные GPU) они использовать не могли. Завели одно устройсво «под занавес» на GPU трёхгодичной давности — на чём история этой «славной» OS и завершилась.


              1. pesh1983
                26.09.2018 13:47

                Еще раз) Один из ключевых моментов популярности системы — это как можно меньшее количество камней преткновения для вендоров -> много вендоров -> много аппаратов -> популярность. Это, конечно, не единственный фактор, но один из ключевых. Я опускаю вопрос, насколько качественно каждый вендор подходит к созданию своей продукции. Да и Гугла нет ни времени, ни денег, ни особого желания проверять это у каждого вендора, в том числе и качество дров. Сегодня вендоров 100, завтра будет 110, и каждый раз Гуглу нужно договариваться и проверять, что все заявленное работает по спецификации. А завтра выйдет новая линейка смартфонов с новыми чипами, и все надо делать по новой. Проще, быстрее и финансово менее затратно сделать это один раз в нескольких продуктах. Тем более, что база фиксов может шариться между продуктами. Предлагаю вам подумать, почему до сих пор Гугл не поступил так, как предлагаете вы, а делает так, о чем пишу я. Это не потому, что корпорация такая злая, делает кучу костылей или разрабы и менеджеры ленивые. Просто так эффективнее, дешевле. Вопрос только денег


                1. Am0ralist
                  26.09.2018 15:18

                  А им не нужно было проверять за ними. Им нужно было прописать жестко сроки поддержки. А так поддержка ПО заканчивалась раньше конца продаж данных устройств.

                  Предлагаю вам подумать, почему до сих пор Гугл не поступил так, как предлагаете вы, а делает так, о чем пишу я. Это не потому, что корпорация такая злая, делает кучу костылей или разрабы и менеджеры
                  Потому что они не сумели вовремя спроектировать правильную ОС? Винда и линукс почему-то умудряются.
                  И да, сейчас они как раз таки делают именно то, пытаются хоть как-то обновления драйверов отделить от обновления ОС, как минимум. Чтоб хотя бы критические баги в ОС править.


                  1. pesh1983
                    26.09.2018 16:13

                    Это не решит проблему, поскольку драйвера как пишут вендоры, так и будут это делать. А баги, как были в драйверах, так там и будут оставаться. ОС — это следующий уровень на драйверами. На уровне ОС конечно можно попытаться исправить поведение драйвера, но тогда эти фиксы придется тянуть в апстрим ОС для всех остальных. В общем, я не совсем понимаю, как обновления ОС отдельно от драйверов решит проблему багов внутри самих драйверов, но вполне возможно, что у меня нет всей информации для таких выводов)


                    1. Am0ralist
                      26.09.2018 16:38

                      Так драйверы то могли и обновляться. Только зачем собирать новую сборку и туда их включать? Если с точки зрения производителя устройство устаревало быстрее, чем его распродали. Обязанностей же он никаких по этому поводу не имел, ага.
                      А вот если от этого будет зависеть вообще возможность на рынке быть не в виде никому не нужных девайсов, а именно с андроидами, то тут уже возможны варианты.
                      В итоге, куча вирусов, большая часть устройств — уязвимы и забагованы, и гугл на этом восседает сверху.
                      Все отлично.


                      1. khim
                        27.09.2018 01:17

                        А вот если от этого будет зависеть вообще возможность на рынке быть не в виде никому не нужных девайсов, а именно с андроидами, то тут уже возможны варианты.
                        Это сегодня «быть на рынке с андроидами» — важно и ценно. В 2008 всё было иначе. Microsoft попробовал сказать «Б», не сказав перед этим «А»… результут весьма плачевен…


                  1. khim
                    27.09.2018 01:15

                    Им нужно было прописать жестко сроки поддержки.
                    Вы смотрите на то, что Гугл мог сделать сейчас с позиций сегодняшнего дня — которых не было бы, если бы Гугл поступил бы так, как вы предлагаете.

                    Тот факт, что для Андроида вообще были предусмотрены обновления (опциональные) — в 2008м году рассматривалось Гуглом как успех. Когда удалось их сделать OTA (а за это пришлось долго сражаться) — это был следующий шаг. А до поддержки драйверов — нужно ещё несколько лет идти.

                    Винда и линукс почему-то умудряются.
                    На каких это смартфонах, они, я извиняюсь, умудряются?


              1. khim
                27.09.2018 00:59

                А вот заставить их поддержку вменяемую — не, не мог. Это слишком дорого?
                Серьезно?
                Абсолютно. Выпуск/невыпуск форков влияет, условно, только на отдел маркетинга. Они лишаются возможности выпустить какой-то там альтрернативный продукт и сделать какую-то там компанию.

                А вот попытка заставить драйвера поддерживать — это значит поломать всю производственную цепочку. Где драйвера и железо — расмматриваются как две стороны одной медали.

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

                Менять производственные процессы — не сложно, а очень сложно. И дорого.


  1. baxtep2
    26.09.2018 09:32

    Теперь понятно, почему мой старенький Macbook air 2011 с i5 процессором так жутко тормозит в хроме.


    1. appletesta
      26.09.2018 16:24

      15 крашей драйвера GPU, потом перебор волшебных костылей и попытки отрисовать софтварно, хотя бы по 1 вкладочке


  1. atrosinenko
    26.09.2018 10:59

    Напомнило: в коде WebKit видел чудесную строчку:


    Gigacage::disableDisablingPrimitiveGigacageIfShouldBeEnabled();

    Как говорится, "Зачем писать комментарии, если можно понятно называть функции".


  1. FreeMind2000
    26.09.2018 14:36

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

    К примеру на малинке или orange-pi Хромиум (armbian) работает, но возможности видеокрты не использует, поэтому видео на страницах того же youtube тормозит с fps 1-2 кадра в секунду, даже если принудительно включить в настройках поддержку GPU (толку ноль).

    А вот если запустить скачанный фильм через mplayer или смотреть youtube по ссылке через плагин для kodi всё отлично показывает.


    1. khim
      27.09.2018 01:22

      Видеплееру от GPU нужно на порядок меньше возможностей, чем браузеру. А с учётом того, чтобы мы говорим о железе, которое вышло 6 лет назад и на котором телефонов на Андроиде нет… кто будет этим заниматься?


      1. FreeMind2000
        27.09.2018 19:53

        кто будет этим заниматься?
        В том-то и дело, что никто. Браузеры в отличие от видеоплееров отстают в покрытии/поддержке различных GPU. Линуксовый видеоплеер юзает GPU (кто-то этим всё-таки занимается), а браузер нет.

        А с учётом того, чтобы мы говорим о железе, которое вышло 6 лет назад
        Не знаю, о каком железе говорите вы, а я тестировал на Orange Pi PC Plus (H3 Mali 400MP2 4x1.2 GHz 1 Гб ) и он вышел в 2016, сейчас есть и посвежее модели 2018, но на них, на сколько я знаю, ситуация та же.


        1. khim
          27.09.2018 21:04

          Не знаю, о каком железе говорите вы
          О GPU, однако.

          а я тестировал на Orange Pi PC Plus (H3 Mali 400MP2 4x1.2 GHz 1 Гб ) и он вышел в 2016, сейчас есть и посвежее модели 2018, но на них, на сколько я знаю, ситуация та же.
          Неплохо. Но это не совсем «малинка». Вы под андроидом тестировали? У Mali всё в порядке с ускорением под Android'ом.


  1. mapron
    26.09.2018 19:37

    Статья хорошая, и познавательная. Только вот с выводами автора я слегка не согласен.
    «Меня сильно удивило, что багов отрисовки в Mac Os было обнаружено почти два раза больше, чем в Windows», хотя выше же в абзаце пишете о том что «решено было исправлять».
    Возможно багов и меньше, но решено исправлять самих багов — больше, т.к. платформа более однородная, например. Т.е. количество хаков и костылей не обязательно прямо линейно с единым коэффцициентом зависит от собственно количества багов.
    Возможно для винды меньше запаривались, потому что пользователи сами по себе привыкли обновлять драйвера в случае любых проблем. Вы слышали чтобы макоюзер что-то шел обновлять? Да и кто ему даст :D


    1. nohuhu
      26.09.2018 21:26

      Вы слышали чтобы макоюзер что-то шел обновлять? Да и кто ему даст :D

      Вы когда-нибудь сами макосью пользовались? Похоже что нет, иначе знали бы, что Apple очень настойчивы по поводу установки обновлений. Вплоть до принудительного перезапуска Safari, когда им "никто не пользуется" (паубывав бы!), и ежедневных назойливых напоминалок про системные обновления, пока не установишь.


      1. Am0ralist
        26.09.2018 21:29

        О, вы не знаете, что такое «настойчиво»… последнее время заметил за виндой, что она начинает настолько тормозить и глючить, пока её не рестартнешь, поставив попутно обновления, что уже даже сомнения возникают, неужели специально так сделали?


        1. nohuhu
          26.09.2018 21:33

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


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


        1. Temtaime
          27.09.2018 14:07

          Месяцами живу без редутов и ничего не виснет.Чяднт?


      1. mapron
        28.09.2018 02:45

        Довольно значительная доля сидит на непоследних осях, к которым обновлений не выходит.
        И да, пользуюсь 10.13 сейчас.
        Про напоминания оси я помню, я скорее пытался намекнуть что редко сами производители софта под мак пишут мол «обновите у себя что-нибудь», в то время как в виндовом такое случается.
        С другой стороны, если пользователи выполняют заветы эпла и ставят все заплатки по расписанию, оч странно зачем для них костыли в коде плодить…


  1. perlestius
    27.09.2018 07:44

    Но вот оказалось, что зоопарк Windows в два раза более живуч и стабилен

    Или, как вариант, от Windows-пользователей приходит меньше баг-репортов