Pull to refresh
29
0.5
Михайлов Алексей Анатольевич @MinimumLaw

Linux Kernel, Bare metal, Embedded developer

Send message
Господа, есть один момент… Пользуясь FTP я могу попросить сервер выслать файл не мне, а сторонней машине где-то в сети. И там его принять (для этого мне нужен будет лишь netcat, а временами и он не нужен — достаточно bash'a). Не скажу что это киллер-фича, но на вскидку кого-то кто умел бы так же не назову. Правда, чего греха таить, последний раз я подобный трюк проделывал лет 15 назад. Впрочем… Мне известно минимум одно место где эта особенность протокола использовалась в реальной жизни. Вполне возможно, что используется и до сих пор. В те времена в СПбГУ будущим администраторам UNIX это рассказывалось и показывалось. Как и многое другое.
Ну, это ж IT'шный сайт. Конечно, такая автоматизация больше подходит для промышленного выращивания. Но ответ на вопрос «Зачем?» всегда один — «Потому что могу!». Подождите, пройдет некоторое время и вся лишняя автоматизация умрет сама собой. По факту важным останется тепличка (влажность поддерживать — очень актуально в условиях квартиры) и автомат подсветки (день-ночь запускает нужные циклы по усвоению удобрений). Ну, может еще земля на гидропонику поменяется. Впрочем, последнее уже не в теплице (не в такой во всяком случае).
В целом, положа руку на сердце, пока это по IT, а не про растения. Но это совсем не страшно. Пожалуй даже наоборот.
Лет в 35-40 это начинаешь понимать. А в 20 тебе старшие товарищи говорили — «Не торопись, сейчас медленно спустимся с горы и… далее по тексту». Но У тебя была жажда знаний и толпа идей. В 25 тебе намекали — не бери на себя больше, чем сможешь вынести. Но тебе 25. Ты можешь перевернуть весь мир — была бы точка опоры. В 30 начинаются первые звоночки. Ты не успеваешь, начинаешь делать «к сроку», а не «чтоб стыдно не было». Ловишь себя на мысли о том, что работа для тебя это все. Вот тут надо последовать совету Конрада Лоренца из "Кольцо царя Соломона". Да, того самого: «БОИТЕСЬ НЕПРИЯТНОСТЕЙ – ЗАВОДИТЕ АКВАРИУМ». Так, как написано в книге точно не получится. Но если ты реально ответственный человек, то аквариум просто заставит тебя выделять ему время. И первое время будет казаться что времени этого ему надо… За то уж если сдюжищь, то к 35-и все написанное в этой статье будет очевидным. А аквариум… На выбор. Я свои четыре оставил. Отчасти затем, чтоб не уходить с головой в задачи. Думаю, что аквариум можно заменить чем-то другим. Но чем-то, что является полной противоположностью IT. Может быть выращиванием хищных растений на подоконнике или чем-то подобным.
В Linux ядро МОДУЛЬНОЕ. Оно не монолит, но и не микроядро. Практически все IIO компоненты могут собираться в виде подгружаемых модулей. Как и USB, как и PCI, и прочие-прочие-прочие. В чем проблема-то? Только в том, что Linux не классическое микроядро? Так есть Hurd и QNX. Они микроядерные.
Спасибо разработчикам за игру. Впрочем, это не игра. Это некое моделирование реального мира, заставляющее задуматься об искусственном интеллекте. О том чего мы от него ждем и какое его поведение будет считаться правильным в том или ином случае. Очень много там моментов перекликается с комментариями в темах про ИИ. Уже за тем стоило ее выпустить.

На PS4 графика шикарна. На PC не видел, но судя по статье она будет как минимум не хуже. И да, если бы не настолько шикарная графика, то и философская суть игры была бы не столь заметна. Спасибо за перевод. Несколько не моя тема, но почитать было интересно.
Я не представляю объем работ. Но идеологически правильнее выкинуть IIO и перейти на Thermal. Благо Linux, благо OpenSource. В простейшем случае есть EXPORT_SYMBOL. Эта штука специально сделана для обеспечения межмодульной связи. Можно экспортировать данные и получить их в модуле Thermal. Но, откровенное говоря, это костыль. Для проекта пойдет, но шансов попасть в mainline ноль.
Подождите… Что-то мне подсказывает, что вашего слона надо есть частями. Я, правда, сразу предупрежу — у меня с Xilinx не очень… Но все же — вопрос первый он простой. А зачем брать в ядро, то что вполне накрывается userspace демоном? В этом есть какой-то потаенный смыл (кроме явного переусложнения системы и ее обслуживания)? Второй: а в чем проблема внутриядерной коммуникации? В крайнем случае По моим мироощущениям IIO всегда можно заменить на HWMON и THERMAL DEVICE (он, к слову, лучше подходит по духу для температуры ядра и PLL и умеет управлять устройствами).
Вас не удивляет что сейчас не изучают ламповую схемотехнику, а при обучении вождению не рассказывают как запрягать лошадь?


Я позволю себе маленькую ремарочку к вашей беседе.

Жаль на самом деле, что не изучают. Я больше скажу — стоит изучать не только ламповую, но и релейную схемотехнику. Логические элементы ей описываются сильно проще и понятнее, чем транзисторные. Отчасти поэтому каждому вновь испеченному схемотехнику приходится на пальцах объяснять то, что посчитали не нужным в учебном заведении. И да, все начинается с реле, потом лампы, потом транзисторы и блоки. В итоге я уже раз 20 прочитал курс «Как начинать понимать схемотехнику бакалавру с дипломом». В пору книгу писать, но… Далеко еще до пенсии — некогда. Работать надо.

Что до запряжения лошадей… boroda-30.livejournal.com/405214.html Буду благодарен за ссылку на оригинал — сей шедевр неоднократно цитировался, увы без указания автора (а тут просто явно перевод). И да, я обучен запрягать лошадей. Учить этому, пожалуй, не надо. Но хороший преподаватель просто обязан рассказать и об этом (хотя бы ради разрядки обстановки). И ещё… Лошадинная сила до сих пор популярная единица измерения.

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

Вот сложная тема на самом деле. Одни хотят писать в ядре на плюсах, другие требуют возможности писать безопасные драйвера на Rust, третьи быстрые на Go. И вроде каждая хотелка сама по себе правильная. Если не быть Грегом или Линусом, конечно. И вроде у каждой сторонников толпа. Я, вон, на карме и рейтинге качаюсь как на волнах с такими сторонниками в комментариях общаясь (привет коллективному разуму). Так отчего бы не форкнуть? Все больше толку чем в комментариях со мной кусаться. Глядишь и меня таким образом в свои сети затянут. Разве нет? Вон Apple и Sony BSD под себя переделали и довольны. А поди тоже большой проект по началу страшил. Что мешает идти их путем?

Главная ошибка вот здесь
Вали отсюда, делай свой Linux!

Никто ж не заставляет делать свой Linux. Возьмите уже существующий. Озадачьтесь актуализацией от родного проекта. Привлеките людей новыми возможностями в плане разработки. Толпа новых разработчиков сделают код лучше и все перейдут на использование вашего форка забросив старье (оставив его динозаврам). Посмотрите на толпу BSD систем. Там был именно такой путь. А если вы заранее считаете это провальным вариантом, то у меня есть вопросы к тем разработчикам, которых вы хотите привлечь… Может и правда лучше без них?
Почему нет? Чем такой вариант хуже чем переучивать сегодняшних активных коммитеров на новые инструменты? Иначе это плач ленивых, которые только и могут что пользоваться результатами чужого труда. Вот буквально сейчас мне понадобилось рулить с прикладного уровня системным источником питания. Да в Linux нашелся соответствующий инструмент. И да, нашелся тот, кто смог адаптировать его под современные требования. Смотрите:

www.studiofuga.com/2019/07/18/adding-a-user-space-power-switch-to-your-embedded-linux
или
www.spinics.net/lists/devicetree/msg43880.html

что то же самое. Только вот доделать он не смог. Ладно ерунда с кодом — его бы потом поправили, но… Посмотрите на дальнейшую переписку… Это ж ужас. Вместо того чтобы просто исправить раздражающее «userspace» хотя бы просто на «user» (или лучше спросить а что написать) пошли обиды — мол я написал, я опробовал и даже в продакт засунул, а вы тут меня учить удумали… И в блоге повторяется та же обидка… И никакие новомодные системы в больших проектах от подобного не избавят.

Другое дело, что здесь совсем тривиальная задача (я сначала сам сделал, а потом решение нашел). Но знали бы вы сколько такого регулярно возникает. И опять же — список рассылки позволяет находить код очень легко. По путям, по сигнатурам… А вот найти то же самое в дебрях github'а… По крайней мере сильно сложнее.

Другое дело, что ситуация не самая приятная. Вроде разраб сделал основную работу. И вроде не взяли напрасно. Но, черт возьми, взять эту реализацию это открыть ящик пандоры и начать превращать устойчивый проект в сборище анархического кода. А так получается всем хорошо. И следы остались (для тех кто доделать захочет). И разраб сам для себя на сопровождение свой код взял. И проект даже не пошатнулся. Красота. Разве нет?

P.S.
Сейчас некогда, но наберется критическая масса таких мелочей (и будет поспокойнее в плане разработки) буду проталкивать. Переход на DTB очень много хороших вещей за бортом оставил. Уже сейчас мелочи есть и по I2C мультиплексорам, и по кодекам и даже по USB хостам. Увы, времени на все не хватает.
Что ж. Значит и правда в софте главное идея, а язык вторично. Впрочем все классики пишут именно об этом. С другой стороны, возможно, именно сфера промышленных решений и прочих встраиваемых систем и порождает такую долгую жизнь проектов. И то что применимо (и желательно) здесь не очень подходит для Desktop/Mobile. Впрочем про последних я ничего и не скажу. Просто не знаю.
P.S.
А VisualBasic'ом в промышленной автоматизации удивили. Нет, я много где его встречал, но все равно откровенно не типичное применение. Спасибо.
Да… А интересно есть ли у кого-то проект на VisualBasic'е из далеких 90-ых который жив до сих пор? Уж про то, что он на нем же продолжает разрабатываться я помолчу (слишком маловероятно). Из долгоживущих проектов я, разве что, Налогоплательщик ЮЛ назвать смогу. Вот тот да — динозавр, да не просто динозавр, а динозавр до сих пор поддерживаемый. За 10 лет точно перевалил и инструмент не поменял.

Про остальное… Не знаю, так и хочется написать про «вечные ценности», но… не буду. Заплюют. Просто оставлю этот коммент здесь и подожду ответов. Своим проектам уже около 15 лет. Ядро написано на С/С++ и планомерно переносится и по необходимости правится. Спасибо тем, кто 15 лет назад придумал как это написать так, чтоб потом проблем не было. Увы, некоторые уже в небесном ВЦ на прошивки для грешников патчи готовят. А интерфейс переделывается чуть-ли не с каждой новой итерацией. Я даже не знаю на чем современный написан.
Я коммитил код в ядро. И, надеюсь, еще буду коммитить. Не вижу ничего сложного или плохого в сложившейся системе разработки. GIT умеет постить патчи в список рассылки (и делает это очень и очень легко). Следование CodingStyle — абсолютно необходимая практика. Требование нормального описания — тем более. Использование списка рассылки (веб архив которого индексируется всеми поисковиками!!!) посто сказка. Временами именно этим путем находишь то, что нужно тебе. Но реализацию когда-то не взяли по «формальным причинам».

Что до стонов про «не современно» и «отпугивает», то простите но… Это GPL. Форкайте и поддерживайте. В чем проблема-то? Если вдруг это действительно сработает, то вся жизнь планомерно перетечет в ваш огород. Только вот с учетом написанного выше (а так же воспитательного эффекта от правильного оформления патчей и умения культурно и уважительно общаться в списках рассылки) — сомневаюсь. И статья эта тому лучшее доказательство.
Да… Заставили меня заглянуть в календарь… Не, не первое апреля. Красавцы, чё! Прямой дорогой к Э.Деньги движемся… Неплохо. Так потихоньку и до Ё-Такси доберемся.
Спасибо DataArt. Вы как всегда на высоте. Одно плохо — после любой вашей статьи возникает острый приступ ностальгии. Правда похоже что уже дорос до того, что в остальное время ностальгия — уже хроническая болезнь ;-)
Молодцы. Вдвоём поднять такой пласт. И в плане музыки, и в плане кода (в первую очередь множественного взаимодействия разных компонентов). Это точно не просто очередная «погодная станция на модной железке». Успехов. Куда расти точно есть. Но и проделанное уже дорогого стоит. И да, конечно, расстояние между ладами… Оно не просто так возникло и его нельзя (во всяком случае крайне нежелательно) игнорировать. Но, блин… Я в свое время не решился и на такое (да и невозможно было). Молодцы.
Принято. Про портал в переписке с вами забыл.

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

Про сочинение. Так я в простыне ровно о том же. Литература обязательна? Отлично — есть мотивация на результат. Работа вне сферы интересов потому «сделал и забыл». Но сделал, ибо иначе кнут. Но ведь помимо литературы были любимые предметы, где подобное поведение казалось просто недопустимым. Сам был таким же. Не вижу ничего плохого или противоречащего исходным предпосылкам. Я согласен (и не вижу ничего плохого) в том, что по одним предметам нужна оценка, а по другим знания и умения. Та же литература могла сдаваться совсем по другому при подобном обсуждении на каком-нить театрально-кинематографическом ресурсе. Там подобный подход применялся бы к физике и математике. Потому одна из задач школы состоит ровно в том, чтоб помочь ребенку познать самого себя и найти среди огромного моря свой островок.

Если честно, то я рассчитывал на объясненный «на пальцах» тот самый «другой путь». Пока я вижу только то, что под другим путем мне пытаются всучить вариант воспитания без кнута вообще. А вот в это я не верю.
Хорошо. Я понимаю намеки (когда мне говорят что это намек) ;-)

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

По профессионализму. Давайте я так скажу — истинный проф это тот, кто свою работу считает искусством, при этом четко понимая что окружающие считают ее ремеслом. И в программировании ровно так же. С одной стороны всякие DevOps'ы, Scrum'ы, TDD и прочее чисто ремесленное, заточенное на результат и продуктивность, в другой стороны Дональд Кнутт и его «Искусство программирования», учащее думать и стремиться к совершенству. Лучший результат всегда посередине. Думаю, что такой подход можно распространять на все сферы. Посмотрите, например, на работы Карла Фаберже и его учеников. Его творения делались не для музеев, а как обычная работа ювелира. Да уже заслужившего уважение, но все же просто ювелира выполняющего за деньги заказ клиента. Я сам стараюсь ловить баланс между ремеслом и искусством, и безусловно, требую того же от окружающих. При возможности я всегда предпочту работать с теми, кто считает примерно так же.

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

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

Про «заставить» и «мотивировать» я не могу спорить. Но я хочу заметить одну важную вещь, четко следующую из написанного выше. В идеале я хочу, чтоб мой ребенок был мотивирован на результат. Заметьте — не на выполнение работы, а именно на получение удовлетворительного результата. Т.е. научился переступать через «не хочу», «сложно», «долго», «не интересно» ради того, чтоб получить результат. Мне кажется, что именно это самое важное в образовательном процессе. «Глаза боятся, а руки делают», «Большое путешествие начинается с маленького шага» и великое множество других пословиц и поговорок ровно об этом. И, конечно, от образовательного портала я жду помощи именно в этом. А видя результаты работы ребенка я точно не в восторге от результата. Потому мне кажется странным требовать от меня другого отношения к порталу.

Впрочем, я готов. Эпизодически напоминать ребенку о том, что УЧИ.РУ его ждет. Я готов смотреть за его прогрессом на портале и в школе. Готов сидеть с ним и объяснять те моменты, которые даются с трудом (перемешивая это занимательными фактами, типа простого умножения двухзначных чисел на 11). Возможно, со временем я даже признаю что не прав. И конечно я как могу прячу свой скепсис от ребенка. Это только для Хабра и родительских собраний. Во всяком случае я никогда не говорил чего-то подобного при ребенке.
Да, наверное. Я не учитель, не психолог. Потому не понимаю. Но я же и говорю — посмотрим. Уж оценить результат моего уровня (надеюсь) хватит. А если и не хватит, то на правах родителя решение все равно за мной. Я выше писал — в моих интересах чтобы проект жил и процветал. А свои ошибки признавать я умею. И делаю это довольно легко. Особенно в тех отраслях, где я не чувствую себя профессионалом.
Что до «не забывать страдать», то отчасти да. Детство не только беззаботная беготня и игры, но и подготовка к взрослой жизни. А взрослая жизнь так или иначе содержит в себе изрядную долю «страдания». Какой смысл оттягивать эту подготовку. Да и где стоит начинать «страдать»? В институте? В армии? В старшей школе? У меня нет ответов. У меня только вопросы…
Про «били палкой»… Давайте просто соглашусь и не буду писать развернутый комментарий. Не то поле, на котором я готов воевать.
И конечно, пассаж про «отношение… зависит… от того, как Вы следите за действиями и успехами ребёнка» мне однозначно не нравится. Я понимаю важность похвалы за успехи. Понимаю важность совместного прохождения проблемного материала. Но я точно не готов (и не хочу) быть надзирателем за ребенком. В идеале я бы вообще не хотел, чтоб ребенок знал о том, что за его действиями смотрят. Самостоятельность. Умение работать самостоятельно, без всякого стороннего принуждения (и не важно «нравится» или «надо») — это та черта, которую очень хочется развить в ребенке. И, конечно, очень хочется чтоб моим попыткам как минимум не мешали (а в идеале помогали).
Потому не сочтите за труд прояснить в понятной системному программисту форме свою мысль. Мои «воспитательные догмы» в камне не высечены. Но и меняться просто так они точно не будут.

Information

Rating
1,563-rd
Location
Пушкин, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity