Search
Write a publication
Pull to refresh
-1
0
Юрий Лунев @bitterman

Embedded Linux

Send message

Радио-86РК на железе Maximite

Reading time1 min
Views18K
Сначала было слово, затем оригинальный Радио-86РК, который собрал старший брат вместо или во время диплома. Это был хардкор в виде трех разных питаний, вечно горевших микросхем памяти РУ3, загрузки бейсика с кассет (желательно, хромовых) и т.д.

Потом был эмулятор под ДОС, потом под Windows, потом на JavaScript'е.

Но мы возвращаемся к истокам, к железу. Итак, четвертая реинкарнация Радио-86РК в новом, на этот раз железом теле.
Читать дальше →

Как рождаются Arduino

Reading time4 min
Views82K
Недавно я имел удовольствие побывать на заводе по производству Arduino.

image

Arduino производится в Скарманьо, маленьком городе недалеко от заводов Olivetti на окраине Турин в Италии.
Вся забота по производству печатных плат, установке компонентов и распространения лежит на плечах этого городка. Я был в восторге от увиденного и хотел бы поделиться некоторыми фотографиями.
Изюминкой моей поездки был System Elettronica, завод по производству печатных плат для Arduino.
Читать дальше →

Белорусы сделали беспилотник под управлением Linux

Reading time2 min
Views7.5K
Минский авиаремонтный завод начал сборку беспилотных летательных аппаратов «Стерх-БМ» под управлением операционной системы Linux. Пока собрано несколько экспериментальных экземпляров, в 2013 году планируется запустить серийное производство до 10 самолётов в год, сообщил директор завода.



Авиационный комплекс разработан белорусскими инженерами, он включает в себя пункт управления, пункт технического обслуживания и непосредственно беспилотный летательный аппарат «Стерх-БМ». Аппарат работает под управлением оператора (через туннель SSH) или в режиме автопилота, в обоих случаях используется операционная система Open System UAV на базе Linux. Карты местности подгружаются через Google Maps.
Читать дальше →

Поддержка C++ на avr в gcc

Reading time9 min
Views40K
Компилятор avrgcc поддерживает C++, однако в его поставку не входит ни стандартная библиотека, ни реализация ABI: служебных функций, вызовы которых вставляет сам компилятор. В результате люди пытаются реализовать те части, которые им нужны, самостоятельно и зачастую делают это не очень хорошо. Например, часто предлагается отстрелить себе ногу определив пустую функцию __cxa_pure_virtual(void) {} или подложить себе грабли, написав заглушки для __cxa_guard_acquire, __cxa_guard_release и __cxa_guard_abort. В данной статье я предлагаю разобраться, чего не хватает для счастья, где это взять или как написать.
Я знаю, что немло людей считает, что C++ на микроконтроллере не нужен. Их я прошу прочитать последний раздел статьи перед тем, как писать комментарии.
Читать дальше →

Запуск Linux на планшете с SoC Allwinner A10 на борту

Reading time7 min
Views52K

Предыстория


Приобрел я себе планшет на SoC Allwinner A10 (sun4i — кодовое название процессора AllWinner A10 ARMv7-A архитектуры семейства Cortex ядро A8). Сначала игрался с ним на Android 2.x потом на 4.x, но со временем мне стало этого мало. Да еще начали выпускать миникомпьютеры на основе этой SoC с Linux на борту. Я подумал: «Хм, а чем мой планшет хуже?» и занялся делом. Как оказалось, за меня уже все сделали, и дела делать не пришлось:


  1. Ядро оптимизировали для данной платформы
  2. Загрузчик оптимизировали к этой платформе
  3. Вышел новый порт debian armhf.

Осталось только все это дело сконфигурирован и собрать.

Читать дальше →

Структуры данных в картинках. LinkedHashMap

Reading time4 min
Views293K
Привет Хабрачеловеки!

После затяжной паузы, я попробую продолжить визуализировать структуры данных в Java. В предыдущих статьях были замечены: ArrayList, LinkedList, HashMap. Сегодня заглянем внутрь к LinkedHashMap.



Из названия можно догадаться что данная структура является симбиозом связанных списков и хэш-мапов. Действительно, LinkedHashMap расширяет класс HashMap и реализует интерфейс Map, но что же в нем такого от связанных списков? Давайте будем разбираться.

Tell me more!

Эксперимент «Бодрое утро»: утренний тест-драйв гаджетов, приемов и оккультных техник

Reading time6 min
Views24K

Предыстория


Чтобы начать работу хотя бы в 12:00, я должна встать в 5:00. Нет, я не стою в пробках и не хожу утром в спортзал. Дорога до работы составляет два шага. Причем в буквальном смысле – два шага от кровати до компьютера. Просто я живу в Бразилии, а работаю в России, в собственном интернет-магазине элитного белья и аксессуаров для дома. С Москвой 7 часов разницы, и я вынуждена вставать на рассвете. И чтобы просыпаться бодрой, энергичной и через 3-4 часа не валиться в постель, я опробовала множество способов пробуждения. И сейчас поделюсь ими с вами.
Читать дальше →

Небольшой логгер стека вызовов для C++

Reading time5 min
Views24K

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

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

Сразу договоримся:
  1. злоупотребление макросами — зло
  2. ничего нового и сверхъестественного в данной статье нет, она будет понятна даже новичку (на них и рассчитана)
  3. данный приём мало применим (или вообще не применим) в многопоточной среде
  4. реализация не претендует на идеальность, полноту, и уж тем более уникальность
  5. данный приём ни в коем случае не заменяет, а лишь дополняет дебаггер

Но если при написании программы вы не раз писали что-то вроде printf(«Entering Foo()\n»); для мониторинга входа в ту или иную функцию, то вы пришли как раз по адресу.
Поехали!

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

Reading time5 min
Views20K
Написание качественной магистерской диссертации полноценно охватывающей все разделы проведенного исследования, основной работы, анализа и апробации результатов является сложной и комплексной задачей, ежедневно с различным успехом решаемой множеством студентов по всему миру. К сожалению, изучение существующей литературы [1, 2], посвященной тематике написания диссертационного исследования, указывает на отсутствие материалов описывающих практический опыт применения различных методов и инструментов, позволяющих не только оптимизировать работу над диссертацией, но и улучшить качество конечного результата.
В данной статье рассмотрим семь практических методов и инструментов, применение которых позволит обеспечить целостное структурирование и систематизацию задач, знаний и различных данных получаемых в ходе работы с диссертацией:
  1. Формирование структуры задач.
  2. Поиск литературы в каталогах.
  3. Сбор, обработка и систематизация информации.
  4. Формирование списка литературы.
  5. Составление плана по вехам.
  6. Определение предмета исследования.
  7. «Summary» для научного руководителя.

Читать дальше →

Памятка пользователям ssh

Reading time13 min
Views1.6M
abstract: В статье описаны продвинутые функций OpenSSH, которые позволяют сильно упростить жизнь системным администраторам и программистам, которые не боятся шелла. В отличие от большинства руководств, которые кроме ключей и -L/D/R опций ничего не описывают, я попытался собрать все интересные фичи и удобства, которые с собой несёт ssh.

Предупреждение: пост очень объёмный, но для удобства использования я решил не резать его на части.

Оглавление:
  • управление ключами
  • копирование файлов через ssh
  • Проброс потоков ввода/вывода
  • Монтирование удалённой FS через ssh
  • Удалённое исполнение кода
  • Алиасы и опции для подключений в .ssh/config
  • Опции по-умолчанию
  • Проброс X-сервера
  • ssh в качестве socks-proxy
  • Проброс портов — прямой и обратный
  • Реверс-сокс-прокси
  • туннелирование L2/L3 трафика
  • Проброс агента авторизации
  • Туннелирование ssh через ssh сквозь недоверенный сервер (с большой вероятностью вы этого не знаете)
Читать дальше →

CRIU — новый амбициозный проект для сохранения и восстановления состояния процессов

Reading time4 min
Views6.3K
CRIU (application Checkpoint/Restore In Userspace) — это амбициозный, быстро развивающийся проект, который позволяет сохранить состояние программы в виде контрольной точки, и впоследствии возобновить работу приложения с этой точки.
Возможности применения программного обеспечения для создания контрольных точек достаточно разнообразны. К примеру, OpenVZ использует похожий механизм для “живой” миграции. Parallels Virtuozzo использует подобный механизм для быстрого возобновления работы контейнеров после обновления ядра. CRIU уже используется в высокопроизводительных кластерах для для сохранения промежуточных результатов вычислительных процессов, используемых для возобновления работы приложения в случае сбоя.
В этой статье рассказывается, как CRIU сохраняет и восстанавливает состояние программы, и почему этот проект может быть успешнее своих предшественников.
Читать дальше →

Portable Components, кроссплатформенная библиотека для C++

Reading time13 min
Views28K
«Система должна быть спроектирована так,
чтобы оставаться как можно проще
после серии внесенных в нее изменений»

Бьярне Строуструп – программист, автор языка C++

Преамбула


В данной статье мне бы хотелось бы рассказать о довольно популярной, но так редко освещаемой на Хабре библиотеке Portable Components (сокр. POCO). Она будет полезна как разработчикам бизнес-логики программного продукта, так и в решении большинства прикладных задач. При всем изобилии кроссплатформенных библиотек для C++ всё больше людей сталкиваются с POCO лицом к лицу и не знают с чего начать. В данной статье я постараюсь описать технологии, заложенные в библиотеке и дать простейшие примеры решения некоторых задач. Также хотелось бы отметить, что за плечами библиотеки множество успешных как Open Source, так и коммерческих проектов.
Читать дальше →

Практика ITIL для небольшой компании. Change Management

Reading time3 min
Views58K
Сегодня много кто слышал про ITIL: ИТ процессы, инциденты, тикеты и прочие составляющие ИТ менеджмента.
Слышали? — Круто!
Нет? — ничего страшного, еще обсудим.

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

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

Сегодня поговорим об одном из самых важных ИТ процессов в плане поддержания стабильности инфраструктуры организации — Управлении Изменениями, он же Change Management.
Читать дальше →

Использование разделяемой памяти в Java и off-heap кеширование

Reading time6 min
Views60K
На прошлой неделе состоялся успешный эксперимент по запуску нового решения для download-сервиса. Один достаточно скромный сервер (2 x Intel Xeon E5620, 64 GB RAM) под управлением Java-приложения собственной разработки принял на себя нагрузку восьми Tomcat'ов, обслуживая более 70 тысяч HTTP-запросов в секунду общей пропускной способностью 3000 Mb/s. Таким образом, весь трафик Одноклассников, связанный с пользовательскими смайликами, обрабатывался одним сервером.

Вполне естественно, что высокие нагрузки требовали нестандартных решений. В цикле статей о разработке высоконагруженного сервера на Java я расскажу о проблемах, с которыми нам пришлось столкнуться, и о том, как мы их преодолели. Сегодня речь пойдет о кешировании изображений вне Java Heap и об использовании Shared Memory в Java.
Читать дальше →

2 млн точек на карте? легко!

Reading time3 min
Views15K
Не так давно для создания сервиса (да и «в загашник» положить модуль) потребовалось придумать способ как быстро из sql базы делать выборки точек расположенных на карте.
Кода будет мало, что бы не отвлекать от понимания системы в целом.



Читать дальше →

Контакт есть, сигнала нет

Reading time21 min
Views151K

или как рассогласованные линии портят ваш сигнал


На форуме Dangerous Prototypes я однажды принял участие в одном обсуждении, посвященном проблемам с шиной SPI, кторая переставала нормально работать, начиная с некоторой длины. Мой опыт подсказывал мне две вещи: 1) проверить источник питания, 2) проверить линию на наличие отражений. Тогда я понял, что это должно быть общей проблемой для всех радиолюбителей. Линии передачи данных — сложная тема, и настало время снять покров таинственности с этой электронной магии.
Читать дальше →

Краш-репорты в *nix: backtrace, SEGFAULT (и reinterpret_cast)

Reading time5 min
Views5.4K
Привет, уважаемый хабраюзер!

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

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

Управление облаком на open-source софте

Reading time5 min
Views46K
В последнее время очень модными стали решения по построению облачных систем, облака строят все кому не лень. Для конечного пользователя все прозрачно: «Вот тебе точка входа, вот там твои ресурсы — используй!» И мало кто из них задумывается о том, как оно все устроено внутри. Да и не надо им знать, в сущности. Однако, людям, которые заняты как раз конфигурированием подобных систем, очень интересно, а как же это работает у других? И главное — на чем?
Читать дальше →

Первая опытно-промышленная партия отечественных мультиклеточных процессоров MCp

Reading time2 min
Views7.8K
Я понимаю, конечно, что Сколково, гос-корпорации, непонятное название, много псевдонаучного PR по поводу этих самых клеток и прочие негативные коннотации имеют место быть, но партия процессоров изготовлена. Их даже можно потрогать руками и посетовать на кривые ножки :) в новости на картинке не фотошоп — на сайте разработчиков и в прокремлёвской газете (не, ну мне самому стыдно, однако… против факта не попрёшь).

Погордиться отечественной электроникой

Information

Rating
Does not participate
Location
Таганрог, Ростовская обл., Россия
Registered
Activity