Как стать автором
Обновить

Комментарии 2544

НЛО прилетело и опубликовало эту надпись здесь

Покiрне телятко двi матки ссе.

Что за народ безграмотный…
Это древняя украинская поговорка, на русском звучит «Ласковый телёнок двух мамок сосёт».
(«сосёт» == «кормится» в данном контексте, для особо злостных прогульщиков школы).
Но на украинском звучит ближе к теме (вынужденное переобувание в прыжке).
Поговорку-то вы знаете, а быть ласковым телёнком у вас не получилось, 70 минусов )
Ну да, сам тренд я как-то прое@пустил.
ну по крайней мере лично я после прочтения для себя понял одно, чего раньше не допускал. А именно, раньше я думал что linux не пойдет в массы потому как серьезный софт под него не портируют потому как «вышеперечисленные проблемы» и как следствие люди не могут пользоваться этой операционкой, ибо не могут выполнять поставленные перед ними задачи. А после прочтения статьи подумалось, а вдруг наоборот, софт не портируется потому как люди не хотят пользоваться линуксом потому как «вышеперечисленные проблемы».
Да. И производителям софта вот эта разнобойность Линукса доставляет свои проблемы. Это и dependency-hell, и отсутствие стандартной графической библиотеки, и ряд других факторов.
наоброот, я как человек работающий на «производителя» говорю что все портируеться на линукс. потомучто это ядро можно запустить на любом процессоре. но конечно никто не будет портировать мессенджер в ракеты. твое предстовление о линуксе нулевое. Линукс это не операционная система а ядро у которого очень большая экоситема и 1% это настольные компы. и где ты вообще видел стандартную графическую библеотеку? ты че куришь вообще?
речь в статье пойдёт исключительно о настольном применении Линукса

А вы вообще хотя бы первое предложение статьи прочитали, прежде чем оставлять свой «очень умный» комментарий c 20 грамматическими ошибками о том, что у кого-то «нулевое знание» о вашей любимой платформе? Хорошо, что по крайней мере одно слово написано с большой буквы. Ох, подождите…

Знаете про «фатальный недостаток» и микрософт? Заменяем dependency-hell на dll-hell.
Как пользователь ни разу не сталкивался. Как программист — тоже.
Зато в Линуксе да, были грабли в своё время.
Сколько разнообразных версий C++ redistributable у вас стоит? А ведь зачастую их не прикладывают в мелкие дистрибутивы программ. При этом какой-нибудь разумной системы, которая бы доставила их в винде нет. При том, что сама винда знает к какой конкретно библиотеке попытались обратиться и могла бы предложить скачать её.
Сколько разнообразных версий C++ redistributable у вас стоит?

Как пользователю мне абсолютно всё равно сколько их там стоит.
И точно так же все равно, когда нужная не стоит?
Почти никогда не испытывал такой проблемы, потому что любой софт, которому нужна какая-то версия, просто ставит её вместе с собой или проверяет что нужная версия уже установлена.
Может такое и случалось как-то раз или два за последние 15 лет, но это точно не какая-то насущная проблема. И скорее винить тут надо не проклятую винду, а тех кто инсталлер делал, который не проверят или не предлагает поставить нужную версию библиотек, от которой софт, собственно, зависит.
И скорее винить тут надо не проклятую винду, а тех кто инсталлер делал, который не проверят или не предлагает поставить нужную версию библиотек, от которой софт, собственно, зависит.

тут скорее проблема в том, что инсталляторы раздутые — так как им приходится таскать с собой эти раздутые компоненты с собой, а штатного способа установить их в винде через тот же windows update нет — все "прелести" отсутствия пакетного менеджера (chocolatey это все-таки не штатное решение)

На самом деле, далеко не все разработчики читают и следуют рекомендациям MS по написанию софта.
Вспомните ранние поделки Близзард, например. Работало как в 98, так и в Win7 почти без проблем, инсталлятор — минимален.

А сколько есть того, что работало в 98, а в NT даже не запускалось?
А сколько есть того, что работало в 98, а в NT даже не запускалось?

Вы бы еще ДОС-приложения вспомнили. Ну, с 98 vs NT все более-менее понятно — НТ всегда была более защищенной системой и не прощала определенные вольности, к которым привыкли разрабы под w95-98.

Вы бы еще ДОС-приложения вспомнили. Ну, с 98 vs NT все более-менее понятно — НТ всегда была более защищенной системой


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


подзабыли вы уже времена когда линукс шел на нескольких DVD на которых был клон репозитория чтобы «вот в линуксе маленькие программы! 5мб всего! не то что в вашей винде!.. и зависимостей на 350… вставьте диск номер 3»

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

а в линуксе нет проблем с тем что одной программе нужен какойнить zlib версии 10, а другой — верии 5, а третьей версии 8?
я помню однажды упражнялся в suse и мудреным софтом для мониторинга и управления… приходилось из других дистрибов либы выковыривать… самому некоторые собирать вручную из исходников и символьные ссылки подсовывать на правильные либы… и молится что оно заработает

Это же проблема разрабов и мейтенеров, чего это они сразу нормально не опакетили?

Это в первую очередь проблема пользователя, а не разрабов и мейнтейнеров

Знаете как бывает работает поддержка у огромных корпораций? я вот давно, лет 10 назад… общался с Ораклом…
У нас была куплена лицензия самая простая на DB чёто там минимальная комплектация..1 проц всё урезано… и чёто не ставится ну типа уплочено звоним в поддержку…
Рассказываю как что… уточняют какая у меня лицензия… и… и короткие гудки… повторный звонок — «пишите на почту, мы ответим вам в течении 30 дней»…

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

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

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

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

Дополню ответ gecube, в винде у вас вообще может оказаться 16-бит приложение и современная 64-хбитная система, или что-то под DOS, перехватывающее прерывания.
И эти проблемы будут нерешаемы в принципе иначе чем как виртуалкой или старым компом со старой ОС.

хах…
так в линуксе вы вообще не сможете запустить софт написанный в 98 году например, в отличии от винды…
тут хотябы 16 битное приложение 93 года с довольно большой долей вероятности запустится в 32битной десятке

в линуксе с поддержкой легаси всё гораздо печальнее
вот кто минусанул — вы не согласны или из вредности?

Именно поэтому для запуска всякого легаси каджит использовал Wine for Windows, да.
Вы слишком много верите рекламе, и слишком мало работаете с софтом.


А у микрософта, тем временем, с совместимостью беда даже с самим собой


в линуксе с поддержкой легаси всё гораздо печальнее

А зачем вам замусоривать хост систему? Есть много других способов поднять легаси не проглатывая ежа.

Вы слишком много верите рекламе, и слишком мало работаете с софтом.

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

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

Тогда вы и сами сможете назвать пяток способов изоляции приложений без порчи хост-системы.


аа, ну всё, значит линуксу она совсем не нужна, так?

С чего вы взяли?

С чего вы взяли?

из стиля ведения дискуссии

1) в линухе фиговая совместимость с легаси, в винде софт работает даже 93 года выпуска
2) --на-те-минус-гад--
3) за что?
4) У винды проблемы с совместимостью даже между со своими продуктами!
5) но линукс то?? там не нужно?
6) а с чего вы взяли что у линукса её нет??

не? какой я должен вывод сделать?

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

да тут вся тема это классический холивар… заигрывай не заигрывай

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

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

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

Ну, были б еще какие-то реальные случаи.
Например, справочная софтина на Visual FoxPro, работающая только с дремучей версией ODBC и парой не менее дремучих ActiveX, занимающихся кастомизацией оформления.


Но такой пример подойдет только как контрпример =)

Смысл может быть простой экономический: новая версия софта стоит новых денег.

Линух в большинстве своем бесплатен. Да и за windows платить не сильно принято в СНГ. Ноутбуки, как правило, имеют предустановленную свежую версию.

Я про


Не вижу смысла запускать старые версии программ на современных версиях обеих ОС.

Вот купил я, например, лет 10 назад Офис 2007, работал он все эти годы под XP, например, устраивал и устраивает. А вчера купил новый ноутбук с десяткой.


Есть ли мне смысл платить за Офис 2020 или какая там сейчас версия актуальная? В целом не вижу, если 2007 устанавливается на десятку и работает. А если нет, то есть второй вариант — даунгрейдить ОС, до какого-то предела, пока она ещё ставится на новое железо, и пока офис не установится. Вот когда пересечения не будет, тогда уже думать то ли новый офис купить, то ли отказаться от него вообще.

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

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

Уважаемый VolCh
Вопрос этот лежит в нескольких плоскостях. Дабы не скатиться в философию…
Особого выбора у Вас, как у меня и всех остальных нет. Мы живем в парадигме созданной большими деньгами. Вам предлагают вариант А и вариант Б, а пункта «свой вариант» отсутствует. Вам либо придется все же перейти на более свежий софт либо использовать виртуальную машину. Попробуйте поставить window xp на современный компьютер.

Вы так говорите, как будто виртуальная машина это что-то очень плохое. В сегменте ПК возможностей выбора ещё достаточно много, а в от в вебе и мобале очень часто выбора нет.

Чойта?

ну попробуйте, главное условия — пользоваться только стандартным инструментарием, а не править три дня код (если он вообще доступен) для совместимости с компиляторами и ядром

https://habr.com/ru/articles/496492/

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

контейнеры? нуууу… это не совсем то о чем мы тут говорим.

Ваша задача была сформулирована так:


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

И она решается, совершенно штатным инструментарием.
А то можно договориться, что ACT и другие механизмы совместимости в винде использовать нельзя.

в винде большое кол-во софта тех лет можно запустить просто setup-next-next-тыкнуть в экзешник


в линуксе надо морочится с пакетом и сборкой окружения внутри, поиском ископаемых версий бибилиотек, особенностей эмулятора (QEMU в статье упоминается?) и т.п.
так что это не совсем одно и тоже

А еще большее количество можно не запустить, но очень важно сместить выборку. Вы опять за старое?
XPmode, кстати, помните? Он, наверное, от офигенной совместимости появился ;)


Да, не одно и то же, но реализация построена на тех же принципах: построить совместимое окружение. Причем в одном случае вы получаете действительно совместимое окружение, прошедшее путь от chroot до cgroup, а в другом — набор хаков и костылей, который появился еще в 98 году как win_version_lie и доэволюционировал до разбросанной по системе огромной куче ифов, усложняющих отладку и проектирование.
Пингвину не хватает, по сути, только вкладки в свойствах файла Запускать в окружении <ditro>@<version>


Qemu, кстати, упоминается как то, чем еще может управлять lxd.

Пингвину не хватает, по сути, только вкладки в свойствах файла Запускать в окружении ditro>@<version

очень удобно да, пока не наткнешся например на то что уже например докер контейнер с постгри-11 невозможно собрать потому что какойто репозиторий протух, и чем старше distro>@<version тем более безнадежная ситуация
я почти уверен что у вас не получится собрать полноценный контейнер с окружением 2004 года например, со ВСЕМИ пакетами, не приседая вокруг и не выцепляя зависимости руками из всяких rpmfind


я до сих пор помню как делал это руками в далеком уже 2009 году собирая окружение для одной софтины которая должна была работать в RHEL3, а по требованиям ИБ на всех машинах должен был быть RHEL5


и мановением руки, указать distro>@<version и всёзаработает… ммм.а что реально теперь два раза кликнуть мышкой и оно заработает?
я помню даже собрав рабоче окружение я таскал всякие кучервяве либы типа 1.2.12-1.1.mga8 при том что в системе версия 1.0.mga8 а именна та которая нужна — её почемуто дропнули… но кто заморачиватеся же да? опенсорс… возьмите версию новее!!! (а если она гвоздями прибита обратитесь к вендору, угу)

докер контейнер с постгри-11

И причем тут докер и проблемы неумеющих написать Dockerfile без исполняемых частей?
Это тоже самое что сказать, раз очень нужная программа парсит заголовки PE в поисках конкретной версии msgina.dll, из-за чего запускается только на XP SP1 с вот такими-то KB, то Win11 — говно.


я почти уверен что у вас не получится собрать полноценный контейнер с окружением 2004

Во-первых, зачем вам все полмиллиона пакетов? Даже разожравшаяся современная система редко выходит за несколько тысяч.
Во-вторых, Debian Woody (2003–2005) все еще жиы даже с non-free.
В третьих, Norton Speed Disk 2000 на виндах старше XP покажете, или это другое?


в далеком уже 2009

Не было современных средств. И как раз в 2008, MS в Pro-редакции постявляла предустановленный и предварительно настроенный VirtualPC с WinXP, потому что совместимость оказалась весьма так себе.
XP-mode, не зря каджит про него спросил.


ммм.а что реально теперь два раза кликнуть мышкой и оно заработает?

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

И причем тут докер и проблемы неумеющих написать Dockerfile без исполняемых частей?

ну а в LXD стало быть рыцари в доспехах пакеты контейнеры создают?


Это тоже самое что сказать, раз очень нужная программа парсит заголовки PE в поисках конкретной версии msgina.dll

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


Во-первых, зачем вам все полмиллиона пакетов? Даже разожравшаяся современная система редко выходит за несколько тысяч.

Мне зачем? это у вендора древнего софта надо спросить зачем


В третьих, Norton Speed Disk 2000 на виндах старше XP покажете, или это другое?

NSD это системный софт, а я говорю про обычный прикладной
упомянутоая мной софтина которую я с кровавыми слезами собирал, это Oracle DB Client определенной версии


А оно кому-то нужно, кроме покусанных виндами?

действительно, заплатите специалисту! он всё сделает! можно даже упороться и продукт 98 года с нуля переписать (проблема решена!)

ну а в LXD

нет .RUN-частей. Что делает образ LXD — готовым к использованию, тогда как Dockerfile — это инструкция по сборке. Которая, разумеется, без сопровождения — становится бесполезной.


Если вы не отличаете тарбол от текстового файла — у вас проблемы.


зачастую достаточно эту dll подложить

И это как-то помешает открыть c:\windows\system32\msgina.dll и распарсить его? ))


в линуксе это тянет за собой еще 100500 зависимостей

А с упомянутой msgina.dll вам придется подложить половину XP, включая ядро. Как вы себе это представляете, интересно?


Мне зачем? это у вендора древнего софта надо спросить зачем

Ну так и спрашивайте с тех, кому платите — пусть отрабатывают. Или, по вашему, если вы в салоне подхватите сифилис, то виновата в этом вам будет соседская сиротка-Маша только потому что она ближе и на нее не страшно вымещать?


NSD это системный софт, а я говорю про обычный прикладной

Microsoft Midtown Madness — тоже? Посмотрите на офигенную софместимость миксорософта со своим же софтом, для которой нужны танцы с бубном, в ходе которых используется неофициальный патч, кряк, и опенсорсный враппер.


действительно, заплатите специалисту! он всё сделает!

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


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

Microsoft Midtown Madness

игра, у который зависимости к DirectX гвоздями прибиты?


а признать свою ошибку кое-что мешает
Какую? что вендорский софт плохой? :)

Ну так и спрашивайте с тех, кому платите — пусть отрабатывают.

как удобно, но вообще да, я уволился из админов и стал погромистом чтобы не думать о смысле жизни и кого винить в том что я изменить сам не могу как наемный сотрудник
но вообще аргумент такой себе, вендору такого уровня (того кто делал эту софтину для которой нужен был этот самый ораклклиент) чтобы предъявлять такие требования надо быть прям совсем сверхкрутым клиентом чтобы он прислушивался.
я могу поназывать названия софтин (куски сервисов OpenWay Way4). но это врятли чтото даст в плане понимания категории проблемы


и факт что в винде, эта гадость работла у нас как на win2003,XP так и на неподдерживаемой висте и Win7, но с линуксом попытки запуска после просто неимоверных приложенных усилий закончились ничем… оно так стабильно и не подялось
Я конечно могу сказать что виноват вендор, но вендор оси в данном случае сделал чтото бОльше для обеспечения совместимости несовместимого софта что в винде оно както работало (ну те части которые падали в линуксе, виндовый сервис не мог нам заменить линуксовый)

игра, у который зависимости к DirectX гвоздями прибиты?

Та шо ж такое, какое приложение ни возьми — все ему не так )))
В прокрустово ложе биаса не хотят вписываться, заразы.
Можно взять Nero Burning Rom 6 — эффект будет ровно тот же самый.


Я конечно могу сказать что виноват вендор

Ну а на ком лежит поддержка выпущенного им же кода, как не на создателе?
Могли бы отдать код в комьюнити, чтобы у лично них голова не болела, а не играть в собаку на сене.
Могли, хотя бы, нормально собрать, без жестких зависимостей.
Но нет: не захотели, не сумели, не смогли.
А виноват опять линукс, ну ё-моё.


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


UPD:


OpenWay Way4

Не хнакомо, но быстрое гугление показывает… глубин глубин. Такого уровня штуки в принципе всегда пишутся на отъебись, чтобы потребитель вокруг них плясал. Корпораты-с.
Но, опять же, коль видели глазки, что покупали — то кто виноват-то? Начальству не скажешь я дурак — заменят. Вендор даже слушать не станет. Наверное, линукс виноват — он не ответит, не уволит, не придет морду бить.
Позиция очень понятная, но как аргумент в споре — крайне сомнительна.


Кстати, инъектировать модуль в пингвинах можно легко, и даже копировать ничего никуда не надо. Достаточно предварить LD_PRELOAD=/path/to/library строчку в ярлыке (современные кеды умеют выносить переменные в отдельную строку при редактировании). Причем имена файлов даже не обязаны совпадать, главное, чтобы экспортированная функция и сигнатура сошлись.


Печально, конечно, что вендор с вами так поступил. Но, э, не надо так делать, да?

образ LXD — готовым к использованию, тогда как Dockerfile — это инструкция по сборке. Которая, разумеется, без сопровождения — становится бесполезной

Образы LXD надо сравнивать с образами docker, они же OCI, а не с Dockerfile.


Я не понимаю как в принципе наличие инструкции по сборке можно записывать в недостатки.

Если бы Dockerfile не был основным и продвигаемым способом их создания, то да. Но обычно используется готовый образ, поверх которого отрабатывает скрипт, поэтому использование Docker, в отличие от lxd не приводит к идемпотентным результатам.
В свою очередь, простота и доступность генерации новых образов, ведет к снижению их качества: мертвые репозитории-однодневки вместо официальных, кастомные расширения, самые лютые практики говнокода и говнодеплоя успешно заметаются под ковер докером.
А потом это приводит к отложенным проблемам, в отличие от lxd, стимулирующего грамотный подход.
Поэтому сравнивать их не получится. Или надо выкинуть из докера то, что делает докер собственно докером, или выйдет сравнение теплого с мягким.


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


Я не понимаю как в принципе наличие инструкции по сборке можно записывать в недостатки

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

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

хм, интересно было бы почитать про best practices

Врядли довольно ограниченный опыт можно назвать best practices, просто несколько способов сделать его использование менее болезненным. И самый главный способ — это не использовать докер вообще :) Или, хотя бы, не тащить его на прод. Или, раз уж притащили, использовать только для короткоживущих вещей, которые можно легко убить наглухо, вычистить под ноль — и никогда об этом не пожалеть.

Я еще опенсусе седьмой версии помню, на семи СД дисках, кажется ))))

Это была просто SuSE :-)

Была коммерческая, я ее даже когда-то покупал. Это потом она Новелю не продалась, и появилась open.

Да, верное замечание — тогда OpenSUSE не было, была просто S.u.S.E.

Mandrake когда-то покупал на восьми cd кажется

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

инсталляторы раздутые

Стоимость гигабайта на жёстком диске сопоставима с $0.05. Стоимость пересланного гигибайта по сети — значительно меньше.

Пакетный менеджер — это избыточная сложность для пользователя, которую можно с лёгкостью заменить «магазином», содержащем приложения, упакованные со всеми зависимостями. Дублирование библиотек? Одновременное хранение тысяч разных версий? Последние лет пятнадцать, это не имеет вообще никакого значения: плюхнули либы рядом с исполняемым файлом и вперёд.

Посыл верный, а вывод не очень. Просто если так рассуждать можно договориться до того, что вообще не нужно забивать диск приложениями, а качать их on-demand из сети. Но Вы забываете несколько вещей. Первая, что стоимость суммируется (данные ведь на диске все равно как в кэше придется хранить). Второе — скорость загрузки. И стабильность. Мне, скажем, приложение нужно здесь и сейчас в оффлайне или на нестабильном канале в Интернет и я не готов ждать полчаса, чтобы оно скачалось и запустилось.


Я уж не говорю о том, что сейчас у многих SSD. Причем не самые дешевые. И на них действительно ограниченный размер по цене выше HDD (последнее — дискуссионно).


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

да, скорее да. Но "магазин" под капотом все равно может быть по сути пакетным менеджером.


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

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

Стоимость гигабайта на жёстком диске сопоставима с $0.05.

Понятие "стоимость гигабайта" вообще неадекватно в случае, например, с ноутбуком, в который произвольное количество гигабайт не впихнёшь. Иначе говоря, в этом случае зависимость стоимости хранения от объёма данных существенно нелинейная, а потому делить одно на другое нельзя.

Почти никогда не испытывал такой проблемы

Та не, вы уже привыкли и когда с таким сталкиваетесь — просто молча ставите её. А менее опытные пользователи просто говорят: "дурацкая программа".


В линуксе они, конечно, скажут: "дурацкий линукс".

НЛО прилетело и опубликовало эту надпись здесь

В чём проблема подключить merge module к инсталлятору?

НЛО прилетело и опубликовало эту надпись здесь

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

НЛО прилетело и опубликовало эту надпись здесь

Этот "стандартный механизм" хранит кучу давно неиспользуемого мусора, не имеет механизма штатной очистки и время от времени требует для удаления десяток ГБ свободного места, которое он занимает не пойми чем.


Между тем, за 20 лет сменилось несколько мажорных релизов, но вот и ныне там.

Я много лет назад полностью переехал с него на NSIS, а затем и на InnoSetup, о чем ни капельки не жалею. То что раньше занимало кучу времени — теперь решается двумя десятками строк кода на паскале :-)
ваш софт не разворачивают политиками AD?
Оба сборщика умеют quiet mode с комстроки.

Так-то какая разница что в скрипт записывать…

Переехали с чего? InstallShield? Advanced Installer? MSI Factory? WiX/Wix#?

Хех, я так стар, что InstallShield помню, сбежал с него тоже. InstallAnywhere тоже помню, тоже убег в туман :-)

Разные плюгины к вижуалстудиям использовал, в 2003-2005 годах так точно. Были ли среди них поделия Розы Индиго? Не уверен, но возможно.

Видите ли, для задачи «быстренько дропнуть мышкой пару файлов, и заполнить поля в визарде» — они все прекрасны. Даже Apple PackageMaker.

Но когда надо сделать кастомную форму, автодетект компонентов и программ третьих сторон, генерацию конфигов по их результатам (+ выбор пользователя), показав и дав отредактировать в кастомном интерфейсе — вот тут самая мякотка и начинается. :-)

Причем вот реально, «накидать С++ DLL» получалось в итоге значительно предсказуемее и быстрее.

Не, я знаю почему так.

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

Дайте мануал и окошко где писать код, нафига мне эти ваши формочки со стрелочками :-)

Впрочем я не настаиваю, это ведь вкусовщина…
вот тут самая мякотка и начинается.

Мой/наш опыт распространения наших продуктов показывает, что инсталлер должен быть как можно булее тупой: спросить юзера путь инсталляции, список компонент/фич, после чего накидать нужных файлов в директорию, зарегистрировать компоненты — и всё. Все пляски с конфигами, визардами, кастомными интерфейсами, созданием биндингов, добавлением сертификатов и прочими делами, которые мы пихали в инсталлятор, на деле должны быть вынесены в отдельное приложение: конфигуратор, которое можно запустить после инсталляции, или в любой другой момент времени. Мы тоже в своё время сражались с кастомизацией инсталляторов, но в конце концов поняли, что занимаемся хернёй, и что инсталляция и конфигурация — это две разные задачи, слабо пересекающиеся, с разным "жизненым циклом", требующие разных подходов — а значит разных приложений.

инсталлер должен быть как можно более тупой

Тупой-то тупой, но как минимум про лицензию он же должен спросить (особенно если требуется какой-нибудь сервер лицензий).

А также показать — с чем он может интегрироваться и чего не хватает.

Еще если там есть веб часть — то настроить виртуалхост на местном IIS надо бы автоматом, а не прилагать инструкцию (как нигерийский вирус список файлов к удалению, хехе).

В итоге — получается вроде и максимально простой, и хотелось бы еще тонну всего (начиная от web install недостающего), а по итогу — очередной ад…

Понятно, можно просто после установки запускать конфигуратор, или в основное приложение встроить код для первого запуска и настройки, вариантов масса.

Но тогда зачем все эти монстрики, с места на место файлы скопировать?

Файлики и InnoSetup копировать умеет, и ничуть не хуже чем «большие коммерческие братья».

Ну вот как-то так незаметно и…

На самом деле конфигуратор при первом запуске программы, а не при установке — норм тема. Хороший тон. Инсталлятор должен быть максимально тупым — ну, максимум разложить файлики по системе, установить драйвера-системные компоненты и МОЖЕТ БЫТЬ — произвести ассоциацию файлов по расширению. Но от программы зависит


Просто конфигурацию после установки поменять может быть нужно во многих кейсах:


  1. изменение аппаратной конфы (выбор COM, LPT или прочих портов, одной единицы оборудования из нескольких и пр)
  2. игры — смена разрешения, типа движка (directx, opengl), настройка звука и пр
  3. ассоциация файлов (практически любые редакторы)
  4. ввод лицензии (а то! она может протухнуть и нужен способ ее ввести без переустановки)
    и много других
Не-не-не, то что тема — это я и сам активно применяю.

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

Я ведь когда на NSIS/InnoSetup перешел, вдруг выяснил — что «конфигуратор» очень лихо лепится на встроенных скриптах.

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

То есть конфигуратор — это такой инсталлятор без первых четырех шагов :-)

Оно конечно несколько эклетично, но то что я ТАК могу без С++ — это очень хорошо и пару раз меня выручало.

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

Например, это удобно для поддержки 32бит софта — для 32бит копируем файлы туда-то, для windows-on-windows — сюда-то, для 64бит — эвон как. Определил макрос — он размножил, лепота…

Как-то так получается, что опенсорц — проще, удобнее, предоставляет средства быстрого создания форм и логики (и это один язык, а не три построителя), и даже имеет встроенный отладчик (!) своих скриптов.

Вот я на них и перешел…
То есть конфигуратор — это такой инсталлятор без первых четырех шагов :-)

допустимый сценарий )
но чтобы все было по феншую — надо паковать в нативные для конкретной версии операционки пакеты (msi?) и снабжать программу возможностью конфигурацию через GPO (да хоть через ключи реестра или любой понятный механизм)

паковать в нативные

А чем EXE — не нативные? :-)

Микрософт конечно любит msi — но сама его использует далеко не всегда.

конфигурацию через GPO

… а также написанием мешка powershell-скриптов для тех случаев, которые не сводятся к «поменял пару битов в реестре» :-)

Возвращаясь к самому началу — так а где выигрыш от msi? Для меня как для автора нетленки — все снова руками, хех. Ничего не меняется.

Не, если бы я мог скажем

  • более-менее декларативно описывать конфигурирование своего мегасофта в виде наборов опций,
  • а оно мне строило офигенский гуй автоматом (примерно как в ядре линукса есть make [разное]config),
  • автоматом бы предлагало по результатам конфига — автосплиттинг модулей для веб-инсталла,
  • давало бы подключать зависимости от системных компонент в этом же конфигураторе (requires: asp.netcore >= 2.2)

то я бы уже побег в лабаз покупать такую крутотень.

Но пока что по факту — закат солнца вручную, при этом рантайм оных msi-аев чудовищно тормознутый. И это при том что постоянно крутится куча служб «для улучшения», начиная от BITS и заканчивая Windows Update.

Ну и зачем оно мне, как разработчику?

Я конечно смотрел на это безобразие много лет назад последний раз, но я чего-то не слышал ни о каких революциях в этом деле…
про лицензию он же должен спросить (особенно если требуется какой-нибудь сервер лицензий).

Если лицензии раздаются с сервера, то у вас, кроме акитвации лицензии, как правило появляются дополнительные варианты: обновление лицензии, отзыв лицензии, миграция на другое рабочее место, активация лицензии в среде, изолированной от интернета и т.п. Впихивать всё это в инсталлер, который должен запускаться два раза в жизни? Зачем?


показать — с чем он может интегрироваться и чего не хватает.

Если зависимость жёсткая, статическая, как с vcredist, то решается мердж-модулями. Если зависимость мягкая (скажем, микросервис, интегрирующийся с другим микросервисом), то там нужно возиться с конфигами, и это задача конфигуратора.


если там есть веб часть — то настроить виртуалхост на местном IIS надо бы автоматом, а не прилагать инструкцию

Вот как раз это у нас было самым больным и хрупким местом, где мы натерпелись. И вынесли это в конфигуратор, который может создать сайт/апп в IIS, настроить ему конфиги, безопасность, коннекты к базе данных или к другим сервисам, прикрутить сертификаты, обновить сертификаты и т.п. Инсталлер максимум проверяет/включает роль "WebServer" и необходимые фичи OS.


Но тогда зачем все эти монстрики, с места на место файлы скопировать?

Конечно, если программа — это просто набор файлов, то инсталлер вырождается в деархиватор, и, возможно, он вообще не нужен, у вас по сути портабельная программа, можно в ZIP положить. Но чаще нужно регистрировать всякие COM/ActiveX компоненты и проч, причём транзакционно, откатывая неудачную инсталляцию и удаляя следы программы из системы. Это то, что инсталлер умеет делать хорошо.

Если лицензии раздаются с сервера, то у вас, кроме акитвации

Там кроме активации еще и проверки разные — а не отправить ли в кассу вместо инсталляции например.

Случаи они разные бывают :-)

Если зависимость жёсткая, статическая, как с vcredist, то решается мердж-модулями

Ну вот реальный пример — у меня в продукте есть модуль интеграции с разными версиями одного издательского пакета. Поддерживаются десяток версий за последние лет семь. Каждый плагин — требует свой отдельный vcredist.

То есть — задача инсталлятора найти все из десяти возможных, показать пользователю, он уберет галочки там где ему не надо, в зависимости от этого выбора — мне надо будет ставить оных редистов от трех до десяти штук (ибо редист под 32бита и редист под 64 это почему-то разное).

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

Вот именно, тот факт, что оно красиво упаковано в msi, унутре которого неонка" еще два десятка msi, рядом с которыми два раза по пять — редисты, мне не помогает никак.

Ну и зачем мне эти пакеты-в-пакетах :-)

Ну или есть вариант — плюнуть на редисты-как-пакеты, и сложить горкой нужные DLL. Oh wait — но зачем мне тогда msi?

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

К слову, ненавистный Apple PackageMaker (давно уже забытый) — эту задачу умеет куда лучше. Скриптинг на Javascript (!), условия копирования — выбор функции на JS/AppleScript, пре-постпроцессинг на группу файлов при копировании… просто, относительно логично, все группы файлов — в XML, CLI tool для сборки, гуя можно только для отладки запускать. И при старте не тупит.

регистрировать всякие COM/ActiveX компоненты

Самое веселье — это когда в процессе установки надо их дергать, регистрировать — дело нехитрое. Я помню лет 20 назад в инсталшилде плюнул, зарегал на чистой машине все что надо, слил ветки реестра, и в итоге их просто импортировал. Вот тут с транзакциями стало просто отлично все :-)

настроить виртуалхост на местном IIS

… это как раз задача «позвать готовые com».

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

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

Не дав попробовать продукт? В кассу можно и после инсталляции отправить :)


задача инсталлятора найти все из десяти возможных

А после инсталляции 3-х из 10, что будет в "Apps and Features"? Три пакета или один? А если позже нужно удалить один из трёх — и все его зависимости, если они не используются любой другой программой (в т.ч. сторонней), — то как вы будете разруливать?


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

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

В кассу можно и после инсталляции отправить :)

Чего тут пробовать — если это попытка 51й инсталляции для корпоративной лицензии на 50 мест :-)

А после инсталляции 3-х из 10, что будет в «Apps and Features»?

Кстати отдельно бесит эта манера — захламлять список установленных программ. Продукт — одна штука, нафига там занимать двадцать позиций? Вот офис же может нормально указать себя в одном экземпляре :-)

и все его зависимости — как вы будете разруливать?

А вот это то самое, чего хотелось бы увидеть от msi. И нет, вариант «не могу снести потому что оно нннада» — это плохой вариант. А можно сразу весь граф зависимостей увидеть и его удалить?

Пару форм накидать и сгенерить набор конфигурационных скриптов — это типовая задача.

И-мен-но.

Тем смешнее, что специально для этого предназначенный инструмент — так почему-то не умеет, приходится брать в зубы какой-нибудь WPF и колхозить «конфигуратор» :-)

Я вот после надцатой попытки плюнул, и перешел на тот инструмент, где такое не вызывает трудностей. Заодно отказался от msi, в котором только старт занимает больше времени, чем вся установка InnoSetup-ом, хех…

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

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


приходится брать в зубы какой-нибудь WPF и колхозить «конфигуратор» :-)

Если нужен продвинутый гуй и продвинутые сценарии, то разумно взять более гибкий иструмент. Но разделение на инсталлер и конфигуратор — это не от бедности инсталлера, а, как я уже сказал, из-за разных жизненных циклов. Конфигуратор можно запускать много раз, сохранять конфигурации в файлах, восстанавливать конфигурации из файлов, размножать и переносить на другие машины и т.п. Инсталлеры максимум файл ответов могут скушать, и создавать его придётся руками.

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

А контролпанель не умеет их показывать :-) Ни компоненты как компоненты, ни зависимости.

И вот «компоненты» внезапно стали двух разных видов, одни управляются как общие компоненты, а вторые почему-то нет :-)

Это точно достоинство msi, что они не могут поместить «компоненты» на вкладку компонентов? :-)

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

И почему же так не делают офис с вижуалстудией, вот вопрос :-) Хочешь «переконфигурить» — запускаешь инсталлятор, хех.

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

И да, «разный жизненный цикл» порадовал. Вот бы Windows до сих пор так, как в 1992 году, кое-как поставилось, показало раритетный 640*480 16 цветов, и конфигуряйте себе… а и правда, вдруг потом какая клавиатура поменяется, или там видеокарту сменят, это же разный жизненный цикл :-)

Может все-таки пулемет на крыше консерватории — не для того чтобы «консервы не сперли»? :-)
Да лааадно?!
Сайтов, предлагающих скачать нужную dll в интернете, думаю, столько же, сколько сайтов, предлагающих скачать драйвера. В этих всяких С++ redistributable и куче версий дотнета ещё худо-бедно можно быстро разобраться, что нужно, а когда вдруг случайно не подходит какая-то левая библиотека, валяющаяся где-то в системном каталоге и не ясно, откуда там появившаяся что делать? Как узнать, что её туда поставило? Когда? Нужна ли эта версия или новая обратно совместима? В линуксе это всё хотя бы можно узнать. Для этого есть инструменты. А в винде приходится просто тыкаться наугад пока случайно не получится.

И после этого "Linux это не система, а ворох разнородных поделок, смотанных изолентой". То ли дело windows — сам разберись, какой dll не хватает, сам скачай её с варезника, сам подкинь. Просто, понятно, логично

Если пользоваться инсталляторами от самих разработчиков ПО, как правило, всё что нужно доустанавливается автоматически. Качать что угодно с варезников — это вообще, как правило, не лучшая идея.

Если вы будете брать случайные (не из репозиториев) исполняемые файлы под Linux, и пытаться их запустить, у вас точно так же скорее всего ничего не получится. Я бы даже сказал, с гораздо большей вероятностью ничего не получится, так как под Windows всё же многие программы зависят только от стандартных системных библиотек, которые очень хорошо совместимы между разными версиями ОС. В Linux же принято собирать программы под конкретные версии ОС, и просто так переносить бинарники между разными версиями Linux — это почти всегда плохая идея.

Как пример. Вот захотелось нам из любви к искусству потестить самую первую версию Firefox из далёкого 2002 года, когда он ещё назывался Phoenix. Сборки под Windows и Linux от Mozilla всё ещё лежат там же где и 18 лет назад. Вот прямо сейчас я потратил 30 секунд на самой распоследней Windows 10 чтобы скачать и запустить этот браузер. Ровно так же оно когда-то работало и на XP (только скачивание и установка, конечно, занимали больше времени). Сколько времени понадобится, чтобы успешно запустить эту же программу на случайно взятом Linux?
как правило, всё что нужно доустанавливается автоматически

к сожалению, не всегда. И не всегда корректно

Отрицать не буду, иногда случается. Мир не идеален. Но я вообще больше предпочитаю использовать портабельный софт, который не требует установки и в зависимостях у которого только стандартные системные библиотеки.
Windows чаще поругается и даст ошибку — которую можно загуглить, а linux чаще молча падает. Вспоминаю совсем недавно был случай, на чистый последний debian установил phpstorm, в котором в упор не работало подключение к гиту, проверили и исправили все что можно было, а оно все равно не работает. Оказалось пакета какого то не хватает(уже не помню какого), который, во время установки еще тысячу зависимостей дотянул.
Э-э-э а логи смотреть мы не умеем?! :-)
Блин вот точно такие же слова я читаю на протяжении 10 лет. :-)
Все умеем, собственно по этому проблему нашли довольно быстро, но хочется верить всегда в лучшее, по этому сперва полезли проверять более очевидные вещи. И ведь таких проблем с софтом было довольно много, в разы больше чем с win. И да, люди из мира айти их решают как правило без проблем, а обычные пользователи сразу начинают плакать…
И вообще, имхо гуи в линуксе это зло, по этому я стараюсь работать из терминала а ради окошек можно использовать и винду.

p.s. И для самых умных, в /var/log и ~/ ничего по этой ошибке почему то небыло.
Юзер? Который полез смотреть логи? Серьезно?
Юзер? Который гугулит коды ошибки синего экрана? Серьёзно?! :-)

Э-э-э как бы пользователь инструментов для разработчиков, не совсем обычный пользователь.
НЛО прилетело и опубликовало эту надпись здесь

Там хотя бы коды есть или сообщение ошибки. Как юзер я могу загуглить или отправить другу который шарит, в поддержку написать даже (у микрософта поддержка даже самые дурацкие вопросы решает).
Линь же просто упадёт и ещё по приколу модем тебе спалит, и к кому тогда обращаться? "Просто почитай логи и настрой конфиги"?

а linux чаще молча падает

что, прямо в Kernel panic?


phpstorm

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

в linux описаны возникшие проблемы от и до, /var/log в помощь. А вот где мне в вин10 искать описание проблеме? В частности, BSOD с указанием проблемы, но без указания ошибки. И в minidump запись нет.
Если продукты от JetBrains, то логи придется искать в папке "~". :-)
Знаете, я как разработчик с 25 летним стажем под Windows, просто не понимаю, в какой момент может понадобиться лезть в логи при обычной работе (не анализа разработки) на десктопе.
Максимум, что делалось — это анализ работы приложения в RegMonEx. Я стопроцентно уверен, что это средство на голову выше по удобству и информативности любого лога в linux.
для точного понимания моей мысли опишу ситуацию, произошедшую со мной в январе этого года. У меня 2 системы на 2 ssd — gentoo и windows 10. Вознамерился я, значит, свою генту переселить на 1ТБ nvme. Как задумал, так и сделал. Так как я еще в игру очень люблю поиграть (division, division 2) загружаюсь в виндовс и вот тебе на — BSOD после получаса игры. И что только я не делал: обновления обновлял, настройки системы на заводские сбрасывал, в инете информацию искал (а логов-то нет, bsod без указания кода ошибки). Пришлось сносить полностью систему, скачивать заново образ и устанавливать. И только после этого смог нормально попользоваться. win10 лицензионная. А вою генту использую с 2009 года. Как поставил знакомый, так и пользуюсь ею до сих пор, 3 поколения железа сменил, а ей хоть бы хны
НЛО прилетело и опубликовало эту надпись здесь

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

Еще добавьте, что Виндовс 10 — это не монолит. У нее уже было черт-знает сколько версий (смотрите по билдам). И в каждом — свои уникальные баги

В подавляющем большинстве, это никак не влияет на работоспособность.
НЛО прилетело и опубликовало эту надпись здесь
Division 1 попробуйте под Proton с Mesa ACO. Я ставил под Proton 4.11 с отключенным UPlay Overlay — пашет, вчера как раз бился с боссом-вертолётом :)
Я в D1 играю иногда под proton, вернее играл. Работает сносно, но через полчаса вылетает, даже с выключенным оверлеем. Сейчас пока во второй.
Mesa 20?
Нет, но приму к сведению. Пока самообразованием занимаюсь, а игры отложил до лучших времен )
А проверку целостности образа Windows через DISM делали?

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

На сколько помню нет, не делал. Я сначала грешил на оперативную память. После проверки, проверил систему встроенными методами (как написано на ресурсах microsoft). Ну и после этих мытарств снёс систему. Наверное от старости начала глючит. Я ее использовал с первого выпуска (2015). Сначала как insider preview, потом купил лицензию и отказался от тестирования

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

а я как админ знаю когда. Только вот в Windows с логированием полный бардак. Поглядите как-нибудь на досуге в EventViewer, это помимо того, что половина программ не используют его, а серят логи куда попало в файлы

Да запросто. У меня в windows 10 в подключении к удалённому рабочему столу сломалось динамическое изменение разрешения (когда тянешь за край окна mstsc, а оно не масштаб изображения меняет, а виртуальное разрешение). При этом куда искать и что смотреть, чтобы починить — не понятно. Равно как и в каких местах искать настройки кроме одного ключа реестра и одного файла в документах пользователя.
Копайте проблему на удаленной машине. Проблема может быть в драйвере видеоадаптера удаленной машины, который конфликтует со штатным видео драйвером удаленного рабочего стола (на удаленной же машине).
Отбой тревоги. Это у меня в памяти сломалось, какой же из майкрософтовских клиентов это умел, а какой — нет. mstsc как раз не умеет. Нужен клиент из microsoft store.
НЛО прилетело и опубликовало эту надпись здесь

7ка? Там есть баг серьезный, что при первоначальной установке — там при обновлении выжирается ВСЯ оперативная память, сколько бы ее не было — хоть 32ГиБ. И система жует апдейты двое суток кряду, вне зависимости от накопителя системного. Как бы точно — это не порядок. А потом прикол — она апдейты насосет, потом ставит. Бежит счетчик. Типа 1...2...10...120 апдейтов из 240. И… Фигак. Ребут. Обновление не может быть установлено. Откат. Потом установка. И так жует долго. Решение? Ставим обновы через simplix update pack — он их устанавливает маленькими пачками по 60-80 обнов за раз и все в порядке. Чертов M$ не мог изначально продумать процедуру. Хотя казалось бы — все по воздуху, все для людей. Ан нет — не работает. С линуксом, кстати, НИКОГДА таких проблем не было

НЛО прилетело и опубликовало эту надпись здесь
Решается установкой KB3102810. Хоть и образы у меня все с интегрированными обновлениями, до сих пор храню это обновление на Google Drive
С линуксом, кстати, НИКОГДА таких проблем не было

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

также линукса тут все просто:
1) нет массовости и единообразия систем, чтобы «все заметили косяк» и по этойже причине ничего «у всех сразу после выхода апдейта» не падает
2) линукс — им рулят обычно или профессионалы или гики, который «ой, ща пофиксю» и даже не замечают что чтото сломалось

Ну, тут нюансы. Во-первых, не используйте убунту. Про транзакционные обновления в комментах к настоящей статье уже писали. Второе — если ты покупаешь операционную систему. Будь то за 200 бакински или за 1000 — ты ожидаешь, что она будет работать "всегда и везде". Вероятно, это ложное ожидание — такое же, как странно ожидать, например, всепроходимости от жигуленка, но ТЫ ЖЕ ЗАПЛАТИЛ!!!!1111
Третье — линукс никому и ничего не гарантирует — потому что бесплатен. Ты свободен в выборе пользоваться им или нет (это не относится к коммерческим дистрибам — но там ты платишь за саппорт, т.е. за решение своих проблем чужими руками)

Вероятно, это ложное ожидание — такое же, как странно ожидать, например, всепроходимости от жигуленка, но ТЫ ЖЕ ЗАПЛАТИЛ!!!!1111
Третье — линукс никому и ничего не гарантирует


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

А в винде как будто кто-то что-то гарантирует )
Ну, "у вас установлен софт от третьих лиц" (либо вообще пиратский), "выключить и включить пробовали?", "попробуйте переустановить заново" (это действие, конечно, бабушке доступно изначально и ей хватит опыта его сделать правильно ) Ну, лулзы же сплошные

А в винде как будто кто-то что-то гарантирует )

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

Все верно, только ошибка в одном слове. Замените «объективно» на «субъективно». И все станет идеально.
Точно так же, все оценки линукса, они чисто субъективные.
И вишенка: объективных оценок не бывает. Оценивает всегда субъект для иного субъекта или для себя. То, что
в обиходе называется «объективная оценка» — это набор субъективных оценок, сгруппированных по каким-то важным для субъекта параметрам.
вероятность того что она загрузится в консоль

… равна нулю, ибо винда если умирает, то полностью. А система восстановления в винде выглядит, как насмешка над админом
А система восстановления в винде выглядит, как насмешка над админом

Это вы как админ со стажем говорите по своему опыту, или по отзывам знакомых?

Эта система восстановления, отлично откатывает системные драйвера которые в синий экран выпадают
У меня помнится так заапдейтился (запланировано) на одном серваке драйвер контроллера HP SmartArray с выпаданием в синий экран и автовозвратом через две перезагрузки (HP выпустили фикс через два дня)
в случае с линухом пришлось или корячится с восстановлением бекапа или с разбирательсвами «а чо произошлооо?»
в случае с линухом пришлось или корячится с восстановлением бекапа или с разбирательсвами «а чо произошлооо?»

Btrfs или zfs позволяют в случае неудачи откатиться на предыдущий снепшот. Причем, в случае btrfs на OpenSuSe процедура сводится к выбору нужного снепшота через граб.
Винда так сможет, судя по тому, как быстро они запилили загрузку, снепшоты и ACL в ReFS, практически никогда.


Да и полная раскатка тарболла в случае более традиционных ФС займет сопоставимое, если не меньшее, время по сравнению с задумчивостью TrustedInstaler-related things.

админ со стажем

будет слишком громко сказано относительно моей персоны. Скорее «админ локалхоста»
по своему опыту, или по отзывам знакомых

Мне казалось, что на Хабре принято либо описывать свой опыт, либо «мне знакомый рассказал, что ...»
Эта система восстановления, отлично откатывает системные драйвера которые в синий экран выпадают

А вот в случае неудачного обновления всё становится намного веселее. Вы когда-нибудь пробовали удалить обновление через среду восстановления? Как ощущения? Учтите, не безопасный режим, а среду восстановления.
не используйте убунту

Ну вот, кстати, это единственная на сегодня система, где без танцев с бубном можно поднять свой root-on-zfs, случись чего.
Arch и деривативы требуют собирать ручками iso и следить за его актуальностью. В большинстве других дистров надо собирать модуль прямо на live системе. После смерти antegros только в ubuntu и manjaro остались прекомпилированные модули, и только в ubuntu можно загрузиться и подмонтировать пул, причем если пул жив, то он гарантированно будет поддерживаемого on-disk формата.

НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
Типичная проблема линукса, что у тебя всё будет хорошо на другом дистрибутиве. Ну или с ним помогут.

Так и зубы рвет не костоправ. Кто в чем разбирается — то в том и консультирует.
Если хотите, каджит может побыть вашим Хаусом. Правда, он тоже не дебианщик, но убунту — достаточно близкая система, с тем же пакетным менеджером.
Требований к вам будет всего два: не врать и честно пытаться разобраться в проблеме.

НЛО прилетело и опубликовало эту надпись здесь

Хорошо. Сейчас в ЛС сброшу координаты.

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

так вы бы текст привели

НЛО прилетело и опубликовало эту надпись здесь

надо больше логов богу логов )
наверняка перед падением apt-get что-то написал.

Обновление пакетов не прерывали?
dpkg --configure -a

пробовали?
Дядюшка Гугл подсказал, что код 100 в apt выкидывается при повреждённом кэше apt
It turns out this means that for some reason the cached software sources lists have been corrupted

Как решение, рекомендуется очистка этих самых файлов
rm -rf /var/lib/apt/lists/*
apt-get update
Не знаю, что за обновлялка запускает команду, но она сжирает вывод ошибок. Следует запустить sudo apt-get update и посмотреть вывод.
Категорически не согласен. Если у Windows что-то идёт не так, то у меня есть только номер ошибки и надежда, что эта ошибка знакома гуглу. Когда что-то идёт не так в Линуксе, то у меня куча информации, по которой я могу почти полностью восстановить картину произошедшего, причём даже не всегда нужен поисковик.

Довести Линукс до состояния kernel panic — это ещё надо постараться. Я с таким сталкивался только когда x86 сборку Андроида на ноутбуке запустил и попробовал включать автонастройку яркости экрана. В то время как знакомый жалуется на BSODы в процессе отладки OpenCV
Если у Windows что-то идёт не так, то у меня есть только номер ошибки и надежда, что эта ошибка знакома гуглу.


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

Если линукс корпоративный, (SLED, RHEL, Oracle, name_them) то у него тоже есть саппорт.


не обязательно разбираться в чем-либо, чтобы ставить обновления

Под линуксом, внезапно, тоже


А в Линукс, даже с гуглом, проблеме не решается в пару кликов

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


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

Даю на водку:
Коробочная лицензионная семёрка. В один прекрасный день решила обновиться до десятки (почему — тайна, я всегда слал лесом). В процессе обновления что-то пошло не так, откатилась обратно. Теперь система находится в постоянном «перезагрузите для завершения обновления», обновления не ищет, а чтобы поставить их руками — надо выполнить кучу танцев с бубном.
Звоним в саппорт, тратим кучу времени (включая уже всякие удаленные помощники и доступ к системе, чего на базовой техподдержке у мс обычно очень сложно добиться). Спустя кучу времени, уже на н-цатой линии техподдержки получаем решение проблемы: снесите винду, отформатируйте системный диск и поставьте заново.
Спасибо, я понял что лоханулся, когда купил лицензионную коробочную версию, надо было скачать и крякнуть как обычно, идём пробовать первые десять страниц гугла про проблему — ничего не помогает (половина при этом дико напоминает то, что делал саппорт), пара советов вообще сносят список установленных обновлений. Единственный плюс — теперь руками обновления можно поставить без бубна.
И наоборот, RHEL(с лицензией) лет восемь назад, на халтуре какая-то грабля с связкой апач+самба(ад)+лдап+мускль, пинаем техподдержку, два входящих мыла — в первом спросили кучу конфигов, во втором скриптик и бинарь, которые решили проблему.
Спасибо, я понял что лоханулся, когда купил лицензионную коробочную версию

Лицензию покупают не для того, чтобы лучше работало, а чтобы легально работало =)

И наоборот, RHEL(с лицензией) лет восемь назад, на халтуре какая-то грабля с связкой апач+самба(ад)+лдап+мускль, пинаем техподдержку, два входящих мыла — в первом спросили кучу конфигов, во втором скриптик и бинарь, которые решили проблему.

Ну это же юзер-кейс для домашней операционной системы.

Есть домашний коробочный корпоративный линукс, где разбирают пользовательские кейсы? И кто это делает?
Лицензию покупают не для того, чтобы лучше работало, а чтобы легально работало =)

мако… филы смеются в лицо — т.к. им не нужно покупать лучшую в мире (*) операционную систему


(*) по мнению пользователей систем фирмы Apple

ну это лишнее
1) раньше они покупали как миленькие и ещё нахваливали эппл
2) эппл тупо включила ОС в стоимость своей железки

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

2) ну как встроена, те же модели с Ubuntu, например, могут стоить и дороже чем с Windows Home в рознице.

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

Купив лицензию я расчитывал на более-менее квалифицированную поддержку. На лицензионность в рамках дяди милиционера из управления «К» мне было вообще пофигу.

Red Hat Enterprise Linux for Workstations — думаю тут вам разберут кейсы, возможно надо будет купить какой-нибудь уровень техподдержки, т.к. сейчас не в курсе политики красношляпых.
Думаю, как только Red Hat Enterprise Linux for Workstations купят хотя бы 40% текущих домохозяек-владелиц windows, и количество обращений можно будет хотя бы сравнить, уровень техподдержки RHEL for Workstation сразу скатится туда же, где и МС.
А точнее, гораздо ниже, так как у МС в этом все-таки есть огромный опыт, и множество детских болезней уже пролечено.
Думаю, что RH просто вменяемо расширит штат техподдержки. А у МС да, опыт есть, например сливание техподдержки на всяких Кумар Бумбухпакетситхов, которые по английски говорят с трудом и я не удивлюсь, если эта самая ТП сидит в своём Бангалоре.
Вы зря так про индийцев. Английский язык для них практически родной, все на нём хорошо говорят. Акцент это уже второе дело.

Тут лучше Китайцев в пример приводите… вот общаться с их тех саппортом это ещё то развлечение.
Индия большая, далеко не во всех областях английский практически родной. Точнее таких областей гораздо меньше. И не путайте просветленных индусов-разработчиков и тех, кого в большинстве нанимают в саппорт при расширении штата.
Если нужно много сотрудников, то качество заметно падает вне зависимости от национальности.
Я видел историю большого количества компаний, которые умирали от расширения. Различные амазоны и гуглы это редкие исключения.
Учитывая, что RedHat был продан в IBM, я сомневаюсь в том, насколько «просто вменяемо» они расширят штат поддержки. IBM всегда славился своей громоздкостью и неповоротливостью
> Если винда лицензионная, то есть также саппорт. И вам не обязательно разбираться в чем-либо, чтобы ставить обновления. А в Линукс, даже с гуглом, проблеме не решается в пару кликов.

Получаю BSOD-ы на Lenovo Yoga C630 WOS при попытке декодирования видео браузером через DXVA2 в несколько потоков. Ответ саппорта Lenovo — у вас видеодрайвер установлен с Windows Update, поэтому обращайтесь в Microsoft. Ответ саппорта Microsoft — мы не пишем драйвера, обращайтесь в Lenovo. Нахера нужна такая поддержка?

Давайте, рассказывайте как это решать.
видеодрайвер установлен с Windows Update

Никогда не устанавливаю драйвера с WU. Только с офф. сайта производителя, ибо в WU вечно какие-то огрызки
Хорошо, что вы устанавливаете драйвера с сайтов производителя (неприменимо к моему ноутбуку, если вы не заметили) но к порядку работы служб поддержки это отношения не имеет. Предоставленные ими ответы указывают на то, что Microsoft и вендоры целенаправленно не договариваются о зонах ответственности — цель облегчить жизнь клиенту не поставлена менеджментом этих компаний — поэтому и нет решения. На фоне этой ситуации Linux де-факто находится в более выгодном положении, потому что квалифицированный пользователь имеет возможность напрямую взаимодействовать с инженерами, разрабатывающими драйвер — писать им багрепорты продуктивнее, чем на форумы вендоров, где на проблему обращают внимание только при условии, если в её обсуждении набралось от десятка страниц и больше, да и то далеко не всегда.
неприменимо к моему ноутбуку

К lenovo у меня уже давно особо тёплые чувства из-за их кривых BIOS'ов и невозможности загрузить драйвера с сайта. И да, я уже посмотрел характеристики данного устройства. А кем подписан драйвер, и кто записан в графе «Поставщик драйвера»? Полагаю, этим можно немного надавить на одну из сторон.
Microsoft и вендоры целенаправленно не договариваются о зонах ответственности — цель облегчить жизнь клиенту не поставлена менеджментом этих компаний

Microsoft немного наплевать на домашних пользователей. Что немного радует — к пиратам у них отношение то же.
> К lenovo у меня уже давно особо тёплые чувства из-за их кривых BIOS'ов и невозможности загрузить драйвера с сайта.

Это всё, конечно, прекрасно, но у меня плюс-минус то же самое за годы было с Dell, Acer, HP, ASUS, и другими. С ними со всеми бесполезно разговаривать. Со всеми, включая Microsoft.

История выше — она просто самая свежая, и она показывает, что за годы ничего не так и не изменилось — в Linux имеем прямой доступ к инженеру, при наличии навыков можем сделать bisect или даже поправить сами, а с Windows нельзя даже «багрепорт зарегистрировать». Для меня, как пользователя Linux, такая ситуация в голове не укладывается — как люди могут жрать это говно?

> А кем подписан драйвер, и кто записан в графе «Поставщик драйвера»? Полагаю, этим можно немного надавить на одну из сторон.

Не помню честно говоря, и сейчас я даже не загружаю на этом ноутбуке Windows, так как в Windows Update выложено кривое обновление BIOS, ломающее загрузку с флешек объёмом больше 32ГБ, и я не представляю, что мне делать, чтобы гарантированно запретить его установку, потому что откатиться потом не выйдет.

Если драйвер подписан к примеру Qualcomm Inc., то что дальше?
в Windows Update выложено кривое обновление BIOS, ломающее загрузку с флешек объёмом больше 32ГБ, и я не представляю, что мне делать, чтобы гарантированно запретить его установку

Не знаю, работает ли это на мобильных версиях, но я использую такой вариант:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate]
;Отключить автоустановку драйверов с WU
"ExcludeWUDriversInQualityUpdate"=dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU]
;Отключить автоматические обновления
"NoAutoUpdate"=dword:00000001


Qualcomm Inc.

С козырей зашли)

у меня плюс-минус то же самое за годы было с Dell, Acer, HP, ASUS, и другими

Больше всех отличились Lenovo и Acer. У Asus мне не нравится громоздкий UI и невалидные SLIC. С HP и Dell таких проблем и близко пока не имел, разве что «белые списки» оборудования есть, но это проблема многих производителей.
> Не знаю, работает ли это на мобильных версиях

Я вот тоже не уверен, что на ARM-версии сработает, а проверять методом тыка не хочется — попытка-то всего одна.

> С козырей зашли)

Да это не важно. Повторюсь, что суть в том, что пользователи программного продукта намеренно, целенаправленно посланы нахер. Как они после этого ещё могут защищать тех, кто их послал — уму непостижимо.
Но лично я на Вашем месте всё таки запустил бы Windows (если она не удалена), применил вышеуказанный твик, отключил установку драйверов в интерфейсе и полностью отключил WU (со всеми связанными задачами в планировщике). Даже если винду запускать не планируете — в будущем убережет от ошибки.

В этой ситуации Мак находится в выигрышной ситуации… далее по тексту

Извините, я не разбираюсь в премиальном сегменте — там в каких ноутбуках за последние годы клавиатура больше не ломается через полгода, как у Irbis/Prestigio/4Good/Chuwi/Teclast за сотку евро? Про LTE даже не спрашиваю, это видимо слишком премиально.

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


И моя реплика была чисто про софтварную (и драйверную) части.

> И моя реплика была чисто про софтварную (и драйверную) части.

Так а толку-то, если железа нормального с этим софтом нет?

> Когда деллы и леново ломаются — нет такого негатива.

Вот честно — мне наплевать. От того, что о проблемах с клавиатурами Макбуков все слышали, а о проблемах с клавиатурами Dell 7285 слышали полтора человека (в Интернете даже не упоминается, можете не искать) ни та, ни другая проблема лично для меня не перестают быть менее значимыми. И если конкретно в данный момент клавиатуры Apple — говно, то я не вижу причин не докапываться до этого, потому что они реально по надёжности находятся на уровне китайского ширпотреба.

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

Я вот когда-то думал о покупкке чего-нибудь из маковской линейки именно из-за качества железа (в том числе по личным впечатлениям, типа корпус нигде не люфтит и т. п.) и отзывам лично знакомых макофилов, предполагая поставить на неё ещё две оси, используя Ubuntu в качестве основной. Но эти же знакомые меня отговорили нескольк лет назад: "Только ради железа уже давно смысла нет, а для убунты его брать — проблем будет больше чем с каким-нибудь ширпотребом. Бери что-нить брендованное с виндой про и ставь туда убунту"

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

Ну вот когда-то, лет 10 назад ещё наверное, мак имело смысл покупать только ради железа, если верить "интернетам" и воспоминаниям: хороший баланс, отличная сборка, лучший экран, хороший дизайн и т. п. Сейчас же, покупать его имеет смысл прежде всего ради МакОси, вроде как.

в первую очередь — да. Но с другой стороны — все мощные современные ноутбуки стоят именно в том же ценовом диапазоне.
Например, ThinkPad X1 Extreme = 250К, DELL G5 5590 = 96K. Можно еще натыкать примеров. И сравнить эксплуатационные и потребильские х-ки.
Средняя цена на мак — ну, где-то в районе 170K. Есть отдельные уникальные экземпляры за полляма, но это точно не для простых смертных ) Т.е. сказать, что сейчас эппл техника сильно переоценена — нельзя. Да, она подороже деллов-леново-хапе, но тут думать надо — что конкретно важнее.


Сейчас же, покупать его имеет смысл прежде всего ради МакОси, вроде как.

и плюшек типа anti theft, который не работает, синхро с айклауд (если нужен), лучшей в мире ОС (с) (*), синхро с ябблофоном (вот это реально сильная сторона, но только если вы не фанат андроида).


(*) это не мое мнение, если что — мне пофиг.

Да уже не сильно переоценена, можно и подороже хорошее железо найти с плюс-минус такими же ТХ. И, возможно, даже более качественное.


Так все эти плюшки — плюшки именно МакОси, а не железа вроде. Поставь какой-нить хакинтош и вроде всё это получишь.

> Критерий нормальности железа у всех свой. Поэтому, к сожалению, нам не о чем спорить.

Производить на протяжении пяти лет ноутбуки, у которых через полгода использования накрывается клавиатура — ненормально вообще с любой точки зрения. Разница только в том, что покупатели дешёвого китайского говна не ищут оправданий производителю, а покупатели дорогого китайского говна пишут «Критерий нормальности железа у всех свой». Если бы у всех производителей ноутбуков, кроме Apple, регулярно и массово ломались клавиатуры — то для поклонников продукции данного бренда это был бы очень серьёзные аргумент в пользу Apple. Но если в премиальном сегменте это именно регулярно и массово происходит только и исключительно с Apple — то на это стыдливо закрывают глаза. А схрена ли на это нужно закрывать глаза? Это косяк, причём крайне серьёзный.
Не знаю, как там с корпоративными версиями Windows, а для домашних пользователей он на крайне низком уровне. В худшем случае может показаться, что ты не то что с индусской техподдержкой, а с ботами общаешься (может, так оно и есть).
Как правило, наоборот. Виндовые ошибки не отличаются информативностью для тех, кто готов разбираться. Какое-нибудь «Не удалось завершить операцию» и всё — понимай, как знаешь и крутись как хочешь. В линуксе же принято более подробно объяснять, в чём дело, и вести логи. Причём обе ОС предоставляют готовую, универсальную и мощную инфраструктуру системного логирования, но в виндах ошибки в неё пишут почему-то только программы от самого майкрософта. Остальные авторы считают пользователей телепатами.
Крайне редко случаятся такая оказия. Как правило, товарищь гугл быстро подсказывает что и где брать.
Пока не столкнулись с SxS и манифестастами — считай, всё хорошо у вас и горя не знали.

Как пользователь ни разу не сталкивался. Как программист — тоже.

Эх вы... жизни не нюхали!

Стандартная графическая библиотека есть — называется libX11. В будущем, возможно, перейдём на wayland, но слой совместимости с X11 будет сохраняться, пока есть потребность.

Все тулкиты типа Qt есть и в винде.Мало того, Qt используется и в тех проектах, у которых нет Linux-версии.
Стандартная графическая библиотека есть — называется libX11


О_о

Кстати, иксы — одна из огромных проблем десктопного Линукса. Чем быстрее их закопают — тем будет лучше.

А в чем собственно заключается огромность? Ну и после голословной критики хотелось бы услышать конструктивные вещи.

НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь

ммм, ссылки на статьи почти десятилетней давности подъехали

НЛО прилетело и опубликовало эту надпись здесь
А в чем собственно заключается огромность?

Не буду перепечатывать простыни аргументов, лежащие в сети уже хз сколько лет. Из самого актуального: спросите у разработчиков Firefox, почему они сделали аппаратное декодирование видео для Wayland и не смогли для Xorg за столько лет.
НЛО прилетело и опубликовало эту надпись здесь
у разработчиков Firefox, почему они сделали аппаратное декодирование видео для Wayland и не смогли

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

Не выпилили, а отказались поддерживать. Всё это время в Gentoo, например, свежие версии Фокса выходили с поддержкой ALSA.
НЛО прилетело и опубликовало эту надпись здесь
Странно, у меня работало. Одна какая-то версия звук не воспроизводила, но недолго — сменилась третья цифра и все заработало.
Проблема есть, но она в основном для разработчиков драйверов видеокарт, а также некоторых приложений, требующих хитрую работу с графикой (например, для аппаратного ускорения видео и webgl в браузерах). Если вы пишете что попроще, даже 3D-игры, то серьёзных проблем быть не должно.

Я не против замены X11 на wayland. Но для начала надо решить в нём проблемы. Например, у всех драйверов видеокарт используется один протокол, а у проприетарного драйвера Nvidia — другой. Nvidia — это всё же не «сборище красноглазых задротов», а серьёзная компания. Но именно она устроила такую подлянку.
А её(nvidia) дрова и в классических X11 дают приколы и геморрой вида «да какого чёрта ты опять рухнуло при сборке/старте» в дистрибутивах типа gentoo. Открытую альтернативу просьба не предлагать — 2080.
НЛО прилетело и опубликовало эту надпись здесь
Под 370 версией дров надо было отправлять в blacklist пару модулей этого драйвера, иначе он вешал систему так, что оставался только «семь бед — один ресет». При жизни с ACCEPT_KEYWORD="~amd64" обновление ядра превращается в игру «а эта тварь под него вообще соберётся?» порой. Недавно (гдето чуть меньше недели) я не смог перейти на 5.6.2 ядро, т.к. под него эта nvidia не собралась. Знакомый словил ошибку на обновлении мира в qtgui(рушится при сборке с руганью на то, что нету у вас никакого *gl в системе) из-за этого драйвера — благо помогла простая пересборка и продолжение обновления.
Всё это лечится руками, но раздражает.
НЛО прилетело и опубликовало эту надпись здесь
Ну а я полностью на свеженьком. Единственное место, где осталось 4.20.х — ноутбук, т.к. fbcondecor себе там красивый сделал лет пять назад, а из 5.х увы этот патч выкинули.
НЛО прилетело и опубликовало эту надпись здесь
Так можно новое через старое прогрузить. Я правда этим не занимался. Хотя одну машинку надо бы по ядру обновить.
$ uptime
01:11:27 up 745 days, 27 min, 1 user, load average: 0.72, 0.64, 0.20

у меня на генте лет 6-7 такого случалось с nvidia (gtx760, gtx1070). Максимум что происходило — fail compilation. Но это из-за свежего ядра. С патчем ядра все компилится.

Нет стандартной графичесской библиотеки? Если речь про desktop, то есть OpenGL

OpenGL практически мертв или умирает.
НЛО прилетело и опубликовало эту надпись здесь

В чём выражается dependency-hell для программиста? Его он не волнует, он просто пишет в README, что прога зависит, например, от qt5, мейнтейнер собирает прогу в пакет и добавляет qt5 в зависимости

Вот только


  1. где взять этого самого мейнтейнера для непопулярного продукта?
  2. что делать ментейнеру при конфликте зависимостей?
1. Настроить пайплайн с тестами и автоматической сборкой пакета.
2. Класть свою прогу в /opt вместе с зависимостями.
НЛО прилетело и опубликовало эту надпись здесь

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

НЛО прилетело и опубликовало эту надпись здесь

1) Если продукт коммерческий, то можно и нанять, если нет, то можно на форуме, в irc, просто знакомого попросить, а если и это не удалось то можно вспомнить, что программист не идиот, прекрасно знает от чего зависит его программа и может её собрать
2) Приведите пример. Два пакета обычно конфликтуют, когда они реализуют один и тот-же функционал. Например openssl и libressl реализуют libcrypto и мейнтейнеру достаточно указать, что необходима libcrypto.so или зависимость от виртуального пакета, ну или явно указать что программа требует или openssl, или libressl.
Буду рад, если вы приведёте свой пример

НЛО прилетело и опубликовало эту надпись здесь

Подробнее. Да и если в пакетном менеджере нет механизма слотов, то несовместимые версии таких библиотек обычно раскидывают в разные пакеты.

НЛО прилетело и опубликовало эту надпись здесь
отсутствие стандартной графической библиотеки

Ерунда. Стандартная графических библиотек даже две: GTK+ и Qt.

ты же вкурсе что даже стиралка у тебя дома на линуксе работает да? телефон, камеры около дома, ракеты которые в космос летают, марсоходы, автомобили.
Я думаю, моя стиралка работает на FreeRTOS или вообще бесконечном цикле х)
ну раз на раз не приходится, самсунги на линуксе своем крутят.
вот в этом-то и проблема: если стиралка стирает плохо — я не переустанавливаю на ней линукс, не обновляю пакеты. Я ее выкидываю и беру новую, так как для меня смысл стиралки не в том, что там у ей внутре, а в том, чтобы она стирала. А в случае, скажем, сервера-мусорки для пет-проекта и файлопомойки я, наоборот, очень даже хочу знать что там происходит и как. Это принципиально разные юзкейсы.
Я ее выкидываю и беру новую, так как для меня смысл стиралки не в том, что там у ей внутре, а в том, чтобы она стирала.

а меня раздражает, что нельзя поправить прошивку в стиралке, приходится после каждой стирки ставить отдельный цикл полоскания (+3 полоскания умеют далеко не все стиралки).
а ещё в некоторых есть подогрев воды в одном полоскании, по отзывам существенно улучшает выполаскивание. опять же фича чисто софтовая, реализовать можно на любой машинке.


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

ну, значит, таких как ты слишком мало, чтобы выпускать для них специальные стиралки и плиты. Самое смешное, что даже профессиональные плиты и стиралки, которые можно вполне сравнить с серверами (коль уж мы сравниваем бытовые с персональными компьютерами) не предполагают особой перепрошивки. Зато они предполагают более высокий уровень надежности и нагрузки, что вполне сравнимо с линуксом, правда без необходимости повару или прачке быть еще и программистом. И именно поэтому их и покупают.
НЛО прилетело и опубликовало эту надпись здесь
Можно, вскрой коробку, подключись по UART, я даже не удивлюсь если там консоль или дебаг выход. покапайся и сможешь найти прошивку в нете. скорее всего там арм архитектура крутит все дело, и даже точнее armv7m или помладше. И тут для тебя откроется мир возможностей, например если бутит он с внешки (мало вероятно) то на внешку можно залить свою прошивку стиралки. Если с флэшки то там стоит uboot, на него есть документация, есть дрова где то в памяти. можно слизать прошивку декомпилировать, и написать уже свою. Вообщем если знать че делать то и стиралку прошить можно.

я это знаю, только паять — не моя сильная сторона.


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

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

хм, можно детали?

Обычно там идут комманды, допустим в сервис центре что бы посмотреть в чем проблема можно подключить машинку по шине UART или CAN и диагностировать. Можно также определить что прошивка могла быть повреждена и им нужен способ ее востановить. Тоесть способ считать и прошить всетаки оставляют. Тут есть два варианта, комманды на открытом протоколе или знакомом массам (для удешевления производства) или закрытый протокол. В первом случае можно нагуглить во втором методом тыка изучать структуру протокола.

Рекомендую подключить к логическому анализатору во время тыкания и потом эту информацию реверсить. Я просто переделал ардуину (mega 2560) в простенький анализатор и им орудую в бытовухе.

И тут эскплойтить можно по разному, если знаком чип известен то скорее всего есть заводской uart bootloader, на некоторых есть возможность запустить его с внешки, но там может быть BOOT нога которую прижать к +3 или 5 надо.

Если по UART выходит дебаг консоль то 90% можно и память считать (ну или секторами), если на консоле пароль по 99% он уже есть в интернете.

Ну и вообщем только воображением это дело ограничевается

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

Ты умеешь на ассемблере писать что ли?

разумеется. как и, уверен, большинство обитателей хабра.

К сожалению, это как раз тот навык, который можно успешно забыть. Когда-то умел и для arm бородатых (ну и для x86). Сейчас уже практически ничего не помню. Да и где те телефоны, под которые всё это писалось? :(
Современные телефоны — высокоуровневый медленный код, тонны фреймворков и будильник весом 11МБ. С теми же функциями, что были и в старых телефонах, где всего флеша было в разы меньше.

да ну ладно вам, мы же говорим о простейшем коде.


не писал на ассемблере лет много, пришлось заглянуть в выхлоп gcc -S для x64 и arm — всё понятно (разве что непривычная at&t нотация немного сбивает с толку).
если ассемблер для нового процессора — просто чаще заглядывать в мануал с описанием системы команд.

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

Но руки-то, руки помнят!

НЛО прилетело и опубликовало эту надпись здесь
Кстати, стандартные часы com.google.android.deskclock весят «всего» 6 мегабайт. Там почти 3 мегабайта dex кода и 4 мегабайта упакованных ресурсов.
Стандартный будильник от гугла последней версии. Самсунговский примерно столько же весит.
Ага, забыть то можно, но основы то знать надо. а вот те кто не знал становятся React native разработчиками и пишут модули вроде left-pad

А что не так модулем в целом? Надоело из проекта в проект таскать простую, но часто нужную функцию — запилил свой пакет.

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

Вообщем один дурак создал проект kik, но оказалось что есть компания с таким именем и те дураки грозили ему судом. npm отдали название пакета компании, в знак протеста чувак вообще удалил все репозитории с npm, ну ивообщем поехало.

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

НЛО прилетело и опубликовало эту надпись здесь
Потом, правда, окажется что, для сколь-нибудь нормальной разработки на RN требуется знание и понимание работы кучи технологий, знание JS + пары «нативных» языков для соотв. платформ( ObjC / Swift + Java / Kotlin ), т.к нередко требуется либо править платформозависимый код, либо — свои модули писать…
Иначе — код будет представлять из себя помойку( еще и с каким-нибудь тайпскриптом, делающим JS столь же уродливым, как говнокод на С++ ), а итоговое приложение — уродливое, жутко медленное и глючное хз_что.

То ли дело воистину кЭповский АСМ, который содержит пару десятков базовых и реально необходимых команд( сложение-вычитание-умножение-итп, сравнение-условные_переходы, сдвиги, работа со стеком и, мб, подобия ввода-вывода в порты ), которые есть в соотв. доках.
Уууу жЭЭЭсть, ну как же это можно изучить то!!11?? :)
Но нечто, реально сложное и многофункциональное, написать на асме практически невозможно( при удобоваримых затратах ), т.к код будет фактически не_переиспользуемым мусором, крайне сложноподдерживаемым и платформозависимым, если речь не о разработке чего-то крайне эффективного под какой-то конкретный «камень»( и то, компиляторы нынче очень неплохо оптимизируют код ).

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

п.с: говорю как человек, имеющий дело в т.ч с RN, ну а начинавший свою проггерскую жизнь — с асма и написания относительно простеньких программ и игр на asm+winapi и простеньких прошивок на асм для avr-ок( кончилось переходом на Си ).
infocenter.arm.com/help/topic/com.arm.doc.qrc0001m/QRC0001_UAL.pdf ну да 11 инструкций. все ну очень просто )

Но нечто, реально сложное и многофункциональное, написать на асме практически невозможно


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

код будет фактически не_переиспользуемым мусором, крайне сложноподдерживаемым и платформозависимым


Ты точно ничего не употреблял? Платформозависимый? может наоброт это платформа зависит от инструкций а не наоборот?

если речь не о разработке чего-то крайне эффективного под какой-то конкретный «камень»


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

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

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

Ну кароче, больше не говори что ассемблер это язык программирования. и что он бесполезен.
Почему 11? Где я вообще говорил, что их именно 11 ?)
Базовых немного и это ни для кого не секрет, кто хотя бы немного с асмом имел дело.
Остальные — в основном связаны с теми или иными оптимизациями и в простых случаях они, скорее всего, даже при всем желании не понадобятся.

А теперь посчитайте число «инструкций» в C++ или Java :)
Ну и число вызываемых методов для получения того или иного функционала.
… всм, ВСЕХ инструкций, элементов синтаксиса итп( ведь для асма вы, по сути, именно это и привели )

И, заодно, приведите справочники/доки по C++ / Java.
Интересно, они будут больше тех 6 страниц документации по асму ?)

АсмОвый код будет намертво «прибит» к конкретной архитектуре( а учитывая, что код без взаимодействия с системой нынче не может практически ничего в плане ввода-вывода итп, если это не какая-нить прошивка на МК без ОС и ее подобия, то, да, можно говорить еще и о привязке к конкретной платформе и к конкретному API, что, по случаю чего, не очень то и легко менять в бесконечных простынях асм-кода ).

«Внезапно» нельзя x86-й асм( 32-битный. Привет, EAX ) просто скомпилить в машинный код x86_64( привет, RAX, у которого EAX — это младшая половина ) или армОвый в машинный x86( «внезапно» разные команды, регистры и проч ) итд итп, т.к речь о программировании, по сути, мнемокодами конкретной архитектуры, потому речь о коде, намертво привязанном к конкретной архитектуре, системе команд и проч.
И, да, поскольку «функционал» отдельной команды крайне мал, исходники даже относительно простого приложения будут очень объемными в плане количества кода и прямое следствие этого — сложноподдерживаемыми в плане даже относительно простых доработок кем-то, кто не_писатель_этого_проекта.

Спасибо кэп, а я и не знал, что эффективность выполнения штуковин вроде JS отчасти зависит от того, какие инструкции может выполнять проц…
Но я так и не понял, к чему дальнейшие кэповские изречения о том, что некоторый неподдерживаемый процом функционал «внезапно» может быть реализован на уровне софта.

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

Хотя иногда он и бывает удобен — на нем [раньше было] очень удобно на скорую руку набросать какой-нибудь простенький распаковщик/сниматель_защиты с конкретной проги( или игрухи типа Reflexive Arcade ), т.к нет присущего высокоуровневым языкам цирка с типами данных, указателями итд итп, сам исполняемый файл получался весьма компактным. Да и учитывая, что в отладчике обычно видишь именно дизассемблированный код… было весьма удобно.
Но это очень специфическое применение.

п.с: из твоего коммента складывается ощущение, что у тебя проблемы с «веществами», ты это понимаешь, но, боясь в этом признаться( и последующего осуждения от окружающих ), обвиняешь в чем-то подобном всех вокруг… кроме самого себя — человека с платформо/архитектурно-независимым асмом :)

Я прошивки для стиралки писать не писал.
Ну писать на ассемблере это кататся на велосипеде. навых необходимый каждому разработчику. Если разработчик не знает как устроен апарат и что происходит на самом деле то как он может вообще зватся разработчиком?

На каком ассемблере? Я начинал с 6502, 8080 и закончил 80386. я ещё могу зваться разработчиком или уже нет?

На любом. Речь ведь не о том, чтобы ежедневно писать программы на ассемблере от начала и до конца, а о понимании принципов работы. А знать на практике все тонкости современных x64 ассемблеров нужно единицам.
На каком ассемблере? что? наврядли после такого заявления кто то поверит в правдивость вашего заяления об опыте написания чего либо для 8080.
Тоесть КР580ВМ80 в СССР не существовал, Радио-86РК тоже отсутствовал?

И куча его клонов тоже.

НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
А всё просто — работает мегамахровейшая legacy совместимость (правда о 100% совместимости с 8086/80286 наверное уже можно забыть — опкоды кончаются и новые начинают лепить вместо префиксов старых, недопустимых комбинаций и т.д.), раньше был CISC,, потом случился F00F bug — приделали микрокоды для обхода каких-то возможных косяков, ещё в это время слово конвейер стало что-то значить, потом в эпоху Pentium-II до инженеров допёрло, что CISC внутри это полная жо и надо что-то делать, в процессорах тупо появился CISC->RISC транслятор (т.е. процессор снаружи остался CISC, а внутри уже было RISC), благодаря чему с микрокодами стало ещё проще. Время шло красный приделали 64 бита, припёрся Prescott (aka печка №1) со своим гигантским конвейером (31 стадия или что-то около того), который ложился на лопатки сотней инструкций ассемблера, после чего не сливал разве что калькулятору, интел решила эту каку закопать. Примерно в это время процессоры прекратили нормально работать без микрокода. Ну и всё это время развивались алгоритмы предсказания переходов, внедрялась технология спекулятивного выполнения и увеличивался объём кеша. И эти баги будут продолжать лезть — полностью их прибить можно либо отрубив кеширование (привет производительность Pentium 1 у Core i7), либо отрубив спекулятивное выполнение (привет Pentium III производительность у Core i7).
Разработкам прикладного ПО знать ассемблер не обязательно, у них есть абстракция в виде standart library. Им нужно понимать внутреннюю работу этой абстракции. Это разработчикам системного ПО нужно знать ассемблер.
Для программирования на языке Java или других JVM-совместимых языках знание особенностей байт-кода не обязательно. Однако, как следует из публикации в журнале IBM developerWorks, «понимание байт-кода и понимание механизмов его генерации компилятором Java помогает Java-программисту так же, как и знание языка ассемблера помогает программисту, пишущему на Си или C++».[1][2]

Peter Haggar, Understanding bytecode makes you a better programmer // IBM DeveloperWorks, 01 Jul 2001
A Formal Introduction to the Compilation of Java, Stephan Diehl, «Software — Practice and Experience», Vol. 28(3), pages 297-327, March 1998.

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

ну никто не говорит что это легко)
ОТЛИЧНЫЙ пользовательский подход. Просто отличный.
Тут даже можно попробовать сделать опрос, сколько читателей этой статьи регулярно пользуются линукс, а сколько регулярно САМИ (не жена, не мама, не домработница) пользуются стиралкой.
Там и близко нет arm-ов. Во всех, что мне попадались стоят 8-разрядные чипы. В основном Motorola и Renesas, иногда Atmega32. Консоли там нет, UART для прошивки и диагностики спец. софтом.
И да, блок управления, как правило, не имеет гальванической развязки с сетью, так что аккуратнее с экспериментами.
Ну так бери стиралку и прикрути к ней свой процессор. И делай с ней ЧТО ХОЧЕШЬ.

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