Search
Write a publication
Pull to refresh
-5
@andmerk93read⁠-⁠only

User

Send message

Операционная система реального времени QNX: Знакомство

Reading time6 min
Views148K
Так сложилось, что моя деятельность связана с операционной системой реального времени (ОСРВ) QNX. Уже несколько лет занимаюсь разработкой как под эту ОС, так и некоторых частей самой системы. Обратил внимание на то, что поиск на хабре выводит немного результатов по запросу QNX, однако, мне кажется, что эта ОСРВ может быть интересна не только специалистам по встраиваемым и высоконадёжным системам, но и более широкой публике. Не секрет, что планшетный компьютер BlackBerry PlayBook производства компании RIM основан на QNX и имеет популярность и у нас.

Немного о QNX


ОСРВ QNX это не клон или дистрибутив Linux или ответвление какой-то другой UNIX-подобной системы. QNX самостоятельная UNIX-подобная операционная система реального времени, основанная на микроядре и передаче сообщений. Современные версии QNX имеют поддержку стандартов POSIX (и сертифицированны по ним). Первая версия QNX вышла в далёком 1981 году. С тех пор утекло достаточно много времени и поколения QNX сменяли друг друга: QNX2, QNX4 и, наконец, QNX 6 (или QNX Neutrino). Старичок QNX2 и сейчас ещё используется, хотя его расцвет пришёлся на 80-е годы прошлого столетия. Надёжная и более современная ОСРВ QNX4 могла конкурировать на десктопе с Windows в середине 90-х
Да, я хочу узнать больше о QNX.

ОСРВ QNX: Немного о микроядре, потоках и процессах

Reading time6 min
Views28K
Поскольку мой первый небольшой обзор операционной системы реального времени QNX показал, что среди жителей Хабра есть к ней интерес, то я решил продолжить цикл заметок. Мне кажется, что стоит немного рассказать о системной архитектуре QNX6. Думаю, что нелишне дать определение тому, что такое микроядро, и какие задачи оно решает. По ходу повествования будут также развенчаны два мифа, связанные с QNX. Но сначала…

Немного о POSIX


С выпуском каждой новой версии QNX (а надо отметить, что первая версия ОСРВ QNX появилась теперь уже в далёком 1981 году), разработчики использовали накопленный ранее опыт и делали систему лучше, в том числе и удобнее для разработчиков. Именно поэтому QNX Neutrino поддерживает стандарты POSIX 1003.1, например, управление потоками (threads), расширения реального времени (Realtime Extensions), дополнительные расширения реального времени (Additional Realtime Extensions) и профили прикладных окружений (Application Environment Profiles, AEP).

Зачем я об этом говорю?
Не знаю, но я действительно хочу узнать зачем.

Принцип цифрового управления непосредственным преобразователем напряжения

Reading time5 min
Views9.3K

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

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

Подразумевается, что читатель понимает: основы ТОЭ (теоретические основы электроцепей), принципы формирования ШИМ (широтно-импульсной модуляции).

Читать далее

Ретроспектива: создание одних из первых автоматизированных рабочих мест

Reading time5 min
Views1.2K

Продолжаю рассказ о предшественниках ПЛК, и сегодня расскажу об одних из первых в стране АРМов – автоматизированных рабочих мест и периферии для поверки датчиков.

Читать далее

Как внести свой вклад в Open Source и стать полезным

Level of difficultyEasy
Reading time20 min
Views2.6K

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

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

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

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

Читать далее

История визуализации данных: краткий исторический очерк

Level of difficultyEasy
Reading time7 min
Views3.2K

В новом материале я хочу поговорить об истории визуализации данных. Речь не только о всяческих диаграммах (о чем недавно в нашем блоге была отдельная большая статья), но в принципе — как вообще появилась идея, что данные можно как-то кодировать и визуализировать? Как давно это началось? Через какие этапы развития прошла сама идея представления данных в наглядном виде? Есть ли еще куда развиваться, или мы уперлись в некий технический потолок? Обо всем этом — и не только.

Читать далее (очень много картинок!)

Забытая история Java: версия Патрика Ноутона

Level of difficultyEasy
Reading time44 min
Views5.3K

Патрик Ноутон — первоклассный специалист из Sun Microsystems, являющийся одним из создателей Star7 и Java.

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

Если бы Патрику позволили уволиться и перейти в NeXT, возглавляемую Стивом Джобсом, как он того хотел, то языка Java, не существовало бы.

Данный текст, опубликованный им 18 марта 1996 г., позволяет взглянуть в прошлое на “лихие” 90-е, когда Sun пыталась оседлать перспективные направления, связанные с компьютерами, сетями и сопутствующими технологиями.

Но Патрика не запомнят, как одного из компьютерных гениев, работавших в Sun над Java. А все потому, что на пике своей карьеры в возрасте 34 лет в конце 1999 г. он потеряет всё: семью, престижную работу, бо́льшую часть состояния и репутацию. Причиной тому будет поимка его ФБР и обвинение в педофилии.

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

Узнать темное прошлое Java

Краткая история визуализации данных: от древних времён до XVII века

Reading time3 min
Views5.6K
На нашей планете 4.3 миллиарда пользователей интернета. Каждую минуту они добавляют 46,740 фото в Instagram, пишут 456,000 твитов, 120 профессионалов регистрируются в LinkedIn и происходит 990,900 свайпов в Tinder. А у Facebook 2 миллиарда пользователей — больше четверти населения планеты! [1]

Данные везде и их количество только возрастает. Как пишут в своём отчёте McKinsey & Company “Data Science — это простая часть. Получить правильные данные и данные, пригодные для анализа — куда более сложна задача” [2]. Визуализация данных упрощает восприятие, делает данные более доступными и понятными, помогает понять, какую часть лучше всего использовать. А ещё за это хорошо платят. Давайте проследим как в разные эпохи люди по разному решали проблему визуализации, посмотрим на самые древние и самые известные примеры.
Читать дальше →

Правительство США: критически важное программное обеспечение должно отказаться от C/C++ к 2026 году

Level of difficultyEasy
Reading time6 min
Views27K

31 октября 2024 года, 11:00, автор: Дэррил К. Тафт

Это самая жёсткая позиция правительства в отношении безопасности программного обеспечения, которая предупреждает производителей: устраняйте опасные методы программирования, иначе вас могут обвинить в халатности.
Федеральное правительство предупреждает об опасных методах разработки программного обеспечения. Агентство по кибербезопасности и защите инфраструктуры США (CISA) и Федеральное бюро расследований (ФБР) публикуют жёсткие предупреждения о нарушениях базовых мер безопасности, которые продолжают затрагивать критически важную инфраструктуру.

В недавнем отчёте, опубликованном совместно CISA и ФБР, о недостаточных мерах обеспечения безопасности продуктов производители программного обеспечения предупреждаются о нежелательности использования небезопасных для памяти языков программирования, таких как C и C++.
«Разработка новых линеек продуктов для использования в критически важной инфраструктуре или [национальных критически важных функциях] NCF на языке, небезопасном для памяти (например, C или C++), когда есть доступные альтернативные языки, безопасные для памяти, которые можно использовать, несет в себе угрозу и значительно повышает риск для национальной безопасности, национальной экономической безопасности, здоровья и безопасности населения», — говорится в отчёте.

Читать далее

Как поднять личный Прокси в Европе за 15 минут

Level of difficultyEasy
Reading time2 min
Views40K

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

Читать далее

Как я переделал освещение в подъезде на два контура и сэкономил 200 т.р. не делая ремонт, а используя умный дом

Level of difficultyEasy
Reading time8 min
Views30K

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

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

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

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

Но это не решало проблему двух контуров освещения: тусклого вечером и яркого днём.

Узнать чем закончилось

Django-аутентификация: просто о сложном

Level of difficultyEasy
Reading time13 min
Views13K

Привет, Хабр!

Аутентификация является фундаментальной частью любого веб-приложения. Мы рассмотрим различные способы реализации аутентификации в Django, начиная от стандартных методов и заканчивая более крутыми техниками, например как 2FA и OAuth2.

Читать далее

Жизненный цикл контейнеров в Docker Compose: использование хуков post_start, pre_stop

Level of difficultyEasy
Reading time3 min
Views2.6K

В версии 2.30.0 Docker Compose появился новый функционал - хуки жизненного цикла контейнера. Давайте разберемся, что это такое и как их использовать для решения практических задач.

Читать далее

ByeDPI + Redsocks на OpenWRT: дарим свободу локальной сети на дровах (на примере ASUS RT-N12 ROM/ОЗУ: 8/32 Мб)

Level of difficultyEasy
Reading time6 min
Views109K

Решение проблемы зачастую упирается в использование роутеров с ограниченными ресурсами, таких как ASUS RT-N12 VP B1 с ROM/ОЗУ 8/32 Мб. В этой статье я расскажу, как настроить связку ByeDPI и Redsocks на роутере с OpenWRT, даже если ваш роутер далеко не топ по характеристикам.

## Зачем нужны ByeDPI и Redsocks?

ByeDPI — это утилита для обхода DPI (Deep Packet Inspection), которая изменяет сетевые пакеты таким образом, чтобы они не распознавались системами фильтрации трафика.

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

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

Ставим ByeDPI и Redsocks на OpenWRT

Зачем рассказывать про контейнеризацию в 2023 году

Level of difficultyMedium
Reading time13 min
Views24K
image
Техножрец DevOps бережно описывает документацию по проекту

Опытные специалисты с характерным оттенком глаз могут справедливо возмутиться, что это всё уже давным-давно разжёвано и вообще RTFM. И будут отчасти правы. Тем не менее приходят новые специалисты, которые не застали бесплатную рассылку дисков с Ubuntu и вдумчивую компиляцию ОС с нуля.

Каждая новая технология поначалу держится на энтузиастах, которые её полностью понимают. Например, первые пользователи радио знали почти всё про радиосвязь, могли на коленке собрать детекторный приёмник и ловить радио «Маяк» на металлическую вешалку и моток проводов. Первые пользователи GNU/Linux знали всё про ядро и ключевые принципы работы. По крайней мере, вариант «поправил и скомпилировал драйвера для модема, чтобы настроить сеть» был не самым редким. Текущие пользователи обычно не сталкивались с основами, так как начали щупать технологию уже после снижения порога входа.

Те же процессы идут не только в среде потребителей технологий, но и среди инженеров. С одной стороны, узкая специализация совершенно нормальна, с другой — мы рискуем получить аналог культа Галактического Духа на Анакреоне из цикла романов «Основание» Азимова. Техножрецы выполняют сложные ритуалы, ядерные реакторы пайплайны работают. Ровно до тех пор, пока всё не сломается к чертям на низком уровне, а чинить будет некому.

Так происходит и с контейнеризацией. Я всё чаще встречаю на собеседованиях devops-инженеров, которые знают, как пользоваться Docker и Podman, пишут Dockerfile, но теряются, когда спрашиваешь про namespaces, и начинают плавать при вопросе: «А зачем, чем RPM хуже?» Все собирают контейнеры, и я собираю. Таков Путь. Не всегда, кстати, оптимальный.
Читать дальше →

Хватит называть контейнеризацию виртуализацией

Reading time5 min
Views22K

Привет, Хабр! Меня зовут Матвей Мочалов, я — компьютерный инженер и один из авторов корпоративного блога cdnnow! Как-то мы уже обсуждали особенности Docker на разных системах, а сегодня я хочу копнуть глубже — поговорить о том, как наша индустрия поймала саму себя в ловушку Джокера и умудрилась запутать всех, выдавая контейнеризацию за виртуализацию.

Продолжим об этом ниже в посте.

Читать далее

Скилл-нутриенты для тестировщика и не только: зачем выращивать в себе технолога

Level of difficultyEasy
Reading time11 min
Views5K

Однажды я задумался, почему одни QA-инженеры застревают в мидлах, а другие — дорастают до CTO. Я исследовал эту тему, проводил интервью и пришёл к определённым выводам, которыми готов поделиться. 

Дисклеймер: везде, где далее будет использован термин «тестировщики», можно подставлять «разработчики», «аналитики» и даже «менеджеры», ведь скилл-нутриенты полезны вообще всем айтишным специалистам. 

Читать далее

Как мы нашли уязвимость в SQLite при помощи LLM

Level of difficultyMedium
Reading time9 min
Views7K

В нашем предыдущем посте Project Naptime: Evaluating Offensive Security Capabilities of Large Language Models мы рассказали о фреймворке для исследований уязвимостей при помощи языковых моделей и продемонстрировали его потенциал, усовершенствовав показатели современных бенчмарков CyberSecEval2 компании Meta. С тех пор Naptime эволюционировал в Big Sleep — совместный проект Google Project Zero и Google DeepMind.

Сегодня мы с радостью готовы поделиться первой уязвимостью из реального мира. обнаруженной агентом Big Sleep: отрицательным переполнением (underflow) буфера стека с возможностью реализации эксплойтов в SQLite, — широко используемом опенсорсном движке баз данных. Мы обнаружили уязвимость и сообщили о ней разработчикам в начале октября, и они устранили её в тот же день. К счастью, мы обнаружили эту проблему до её появления в официальном релизе, так что она не затронула пользователей SQLite.

Мы считаем, что это первый публичный пример обнаружения ИИ-агентом ранее неизвестной уязвимости безопасности по памяти в широко используемом реальном ПО. В этом же году на мероприятии DARPA AIxCC команда Team Atlanta обнаружила разыменование нулевого указателя в SQLite, что вдохновило нас использовать его в нашем тестировании, чтобы проверить, сможем ли мы найти более серьёзную уязвимость.

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

Сама уязвимость довольно любопытна, к тому же существующая инфраструктура тестирования SQLite (и через OSS-Fuzz, и через собственную инфраструктуру проекта) не обнаружила проблему, так что мы провели дополнительное исследование.

Читать далее

Не удержался. Ответ на статью про «где лучше платят»

Level of difficultyMedium
Reading time10 min
Views59K

Это ответ, точнее мысли по статье, опубликованной на Хабре: «Зарплаты в IT: сравнение Германии и России — где программисты и айтишники получают больше». Советую сначала ее прочитать и потом уже здесь продолжить.

Читать далее

Prompt Me One More Time. Учим LLM строить графы знаний из текстов

Level of difficultyHard
Reading time10 min
Views9K

Привет, Хабр! Меня зовут Алла, я работаю младшим исследователем в команде Memory‑Augmented models в AIRI и занимаюсь ресерчем на пересечений графов знаний и языковых моделей. Потребность в таких изысканиях понятна любому, кто пытался добиться от ChatGPT точного ответа на конкретный вопрос: подобрать литературу для курсовой, вспомнить название фильма по описанию и тому подобное. Очень часто модель начинает галлюцинировать и выдумывать факты, которых не существует.

Один из способов решения этой проблемы — связать LLM с графом знаний, но сами графы тоже должен кто‑то наполнять. Мы с коллегами доказали, что эту задачу можно автоматизировать с помощью LLM и предложили своё решение, названное Prompt Me One More Time (фанаты Бритни тут?), о котором мне бы и хотелось сегодня здесь рассказать. За подробностями же можно обратиться к статье, представлена нами на воркшопе TextGraphs-17 конференции ACL-2024, недавно прошедшей в Тайланде.

Читать далее

Information

Rating
Does not participate
Registered
Activity

Specialization

Инженер АСУТП
SQL
Python
Network administration
System administration
Server administration
PLC
PLC programming
SCADA
APCS