Pull to refresh
4
0

User

Send message

перечисленные автором проблемы: CMake, Ninja, KConfig, DeviceTree, Tizen, VxWorks и так далее это все из мира UNIX.

у меня картина мира следующая.

Чиновники США в 60х оплатили разработку новой операционной системы. Туда были приглашены реальные звезды, технологические компании и университеты. Это проект Multics. Проект провалился, так как сроки были нереальные. Но именно там были придумали сущности: файл, директория, файловая система...
На обломках возникла сильно кастрированная операционная система UNIX. (яндекс голосовой переводчик часто переводит это название как "евнух-кастрат" и это действительно одна из версий происхождения названия) Система получилась удачной и чиновники США стандартизируют ее как проект POSIX. Итак, человечество получило единый стандарт для того чтобы портировать приложения. Прямо сейчас POSIX-приложения можно портировать на Андроид, МакОС, игровые приставки, суперкомпьютеры, Линуксы, ФриБСД и так далее.
В этом мире все должно поставляться в исходниках.
Проекты make (autotools), cmake, ninja и так далее это просто решение этой задачи портирования.

Я думаю ваши проблемы от незнания Линукса. Вы пытаетесь заучивать рецепты. Хотя, если бы имели навыки и понимание, то ни одна из сущностей вашего перечисленного не казалось бы чем-то новым и удивительным.
Мне тоже казалось что Линукс это всего лишь подобие Винды. Нет. Расстояние от Линукса до Винды такое же как от Винды до пальцевого интерфейса Айфона (Андроида).
Линукс (UNIX) это долго и очень больно для изучения. Порог вхождения очень высокий.
Но с каждым шагом есть ощущение что вы возвращаетесь домой. Здесь Си, наконец-то, базовый родной язык. Но после преодоления порога уже ничего не шокирует. Ничего не вызывает раздражения и новые инструменты изучаются легко и естественно. И вы больше не джуниор.

Разработчики встраиваемых систем такие смешные. Очень быстро (особенно если писать на ассемблере для примитивных контроллеров x51, AVR, PIC) возникает ощущение всемогущности. Сам таким был.
Потом приходят маркетологи и просят написать под Cortex-A, свой блютуз-стек, с утилизацией многоядерности, прикрутить толстую внешнюю библиотеку, что-нибудь из мира Unix и это проезжает бульдозером по твоей самооценке. Выясняется, что твой любимый инструмент превращается в тыкву. Потому что он не может Cortex-A, RISC-V, MIPS, C++ - там странный кривой диалект, не может стырить толстую либу с гитхаба. А работа под отладчиком это для маленьких детей и большие пацаны так не пишут.

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

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

Но самый зубастый сценарий - все писать под Линукс, без отладчика, с любой необходимой системой сборки: cmake, ninja, makefile, bazel... как со своей родной. Если действительно нужен отладчик, то лучший вариант gcc с платным плагином для Visual Studio. Вы сразу получите все возможности работы с С++ и удобный аппаратный отладчик.

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

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

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

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

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

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

кстати да.
С этого и нужно начинать. Я однажды получил "фи" от завода - его требования - все микросхемы должны быть сориентированы с севера на юг и дополнить всё подряд уловителями припоя. Слава богу этот завод с таким креативом не понадобился.
Бывает ещё хуже требования. Например, как производили аудиотехнику - прессованный и перфорированный картон в качестве плат. Шестиметровые установщики как швейная машинка расставляют лес выводных конденсаторов - незабываемое зрелище и эту технологию перебить по деньгам невозможно - плотность установки штырьковых электролитов будет всегда выше.
Практически для современной электроники можно забыть про "надгробные камни" и термобарьеры - посмотрите на плату любого телефона. Современные микросхемы просто не приспособлены для ручного монтажа.
Ну и главный печальный вывод - трассировка плат сильно переоценена. Рулят референсные дизайны и этому можно обучить любую обезьяну. Этим пользуются работодатели.

это у усилителей КДП может быть >95% и коэффициенты искажений 0,0001%, а акустических систем всё печально, там реальный КПД единицы процентов (превращение электричества в механические колебания воздуха) и искажения 5-7% (пишу по-памяти). Именно по этому при слепых тестах всегда можно отличить выступление живого скрипача от записанного звука.

нет, 44100 приняли но оказалось что ерунду приняли, потому что требуется ФНЧ восьмого или какого-то там страшного порядка. И 48000 - тупо дешевле отфильтровать.
22кГц воспроизводить глупо, потому что нет таких фонограмм, студии звукозаписи такими глупостями не занимаются.
В институте была лабораторка по определению АЧХ ушей студентов. У нас - 18-19 летних даже 16 кГц слышали единицы. Определяли это честно, испытуемому подсовывали также отсутствие всякого звука, чтобы он не мог заявить что слышит.

Мёртвая история. Около 10 лет назад в ритейле в эту историю побежали все, включая ребят с очень большими бюджетами: Майкрософт, Адидас и так далее. Буквально больше 50 топовых марок.
Все позакрывали.

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

только глупо.

Я писал модули ядра. Действительно, ничего выдающегося. Другое дело что прилетит обновление и ты останешься с нерабочим модулем. Остается только запрещать обновление ядра. Или использовать только там, где это действительно необходимо - во встраиваемых системах, когда ты еще собираешь ядро сам.
Модули ядра стоит писать, когда без них никак. В остальных случаях полезнее писать из юзерспейса.

Я читал эти книжки в школе. Паял схемы. Потом окончил более-менее профильный вуз. Потом много лет работал конструктором электроники. Сделал продукции общим тиражом в несколько миллионов. Все эти годы меня преследовал "синдром самозванца". Изделия получались сложные, удачные и коммерчески успешные, потому что благодаря интернету можно было найти куски схем на любую тему и я скрупулёзно их переносил.
Озарение произошло лет в 35, после некоторых сложных проектов, которые сбоили в климокамерах и на сертификационных испытаниях. (компоненты были иногда со стадии бета-теста от вендоров, а схемы были такие, что не всегда было можно украсть).
Главное понимание пришло после десятков жопочасов по книгам SPICE симуляторов OrCAD и LTspice. Ещё есть классный курс у Analog Devices, но нужен осциллограф с дифференциальным входом и набор компонентов.
Сейчас, без ложной скромности, я думаю что сейчас у меня божественный уровень проектирования схемотехники. В остальном в этом деле все печально. "трубопроводная модель" сдохла еще 80х годах. Упрощенные модели компонентов вредны, ведь главные параметры конденсатора и катушки это последовательное сопротивление (для современной скоростной схемотехники). А для того чтобы грамотно разрабатывать современные схемы и платы - нужно видеть паразитную индуктивность везде. Нужен большой кругозор, знать множество шаблонов проектирования и лучшие практики.

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

Unix возник после того как переписали с ассемблера на Си. Далее придумали "трубопроводы" из человекочитаемых скриптов. Собственно значительная часть Unix/linux это скрипты. Многое парсится и исполняется на лету.
И это победившая модель программирования. Относительно легко включать в эту модель новых разработчиков.
А то что вы предлагаете - одноразовый write-only код (если писать не для людей, а для машин). Который быстрый, но одноразовый.

Линукс на десктопе это зло. Сам я с него, наверное, уже не слезу, но ни кому не буду советовать. Все крайне ненадежное. То что работало вчера, может отвалиться сегодня при обновлении. Программы также превращаются в тыкву при росте объема проекта. Из моего последнего: при выходе из хибернейта потерялись данные у множества открытых файлов LibreOffice. Редактор видео kdenlive недавно упал на ровном месте. Ощущение как от Виндовс Милениум из прошлого века.
Только не надо начинать про то что у меня дистрибутив не тот и рабочий стол не тот. (Xubuntu 20.04). Простите, если задел ваши религиозные чувства.
(в остальном, конечно, Линукс мне позволяет получать очень много как разработчику)

вероятно вы работали только над компактными проектами.

Если использовать даже консольный VIM и запустить ctags на индексацию большого проекта, то tag-файл получается, к примеру, 0,7 или 1.5ГБ.
То что кэширование работает доказывается секундомером. Например самая быстрая на планете система сборки bazel от гугла сожрет всю память, но может показать время сборки в 20 раз меньше, чем что-то другое без кэширования. И это действительно работает.

Есть заповедник довольных пользователей программ. Это заповедник красноглазых https://www.linux.org.ru/gallery/
Посмотрите какие вещи доставляют им там радость: какой они настроили себе "блокнот" или какой у них проводник файлов!
Но зато нет выученной беспомощности. Но все это больно, тратится много личного времени. А результат все равно печальный.

Нет, вы не понимаете и "прекрасно не знаете" почему так.

я застал момент когда завезли кэширование Qt редактор. Оперативка вся улетела туда. Но! Сборка и навигация ускорилась в десятки раз.

Information

Rating
5,257-th
Registered
Activity