Обновить
85.39

Системное программирование *

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

Сначала показывать
Порог рейтинга
Уровень сложности

Анализируем протокол управления блоком питания Fnirsi DPS 150

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров4.1K

Сегодня я начну рассказывать, как изучал протокол программного управления блоком питания Fnirsi DPS 150. До подробного описания всех команд и откликов мы в этот раз, правда, не дойдём, но зато рассмотрим шаги, которые обязательно в итоге приведут нас к успеху. То есть, эта часть – не руководство, как программировать блок, а описание, как вскрывался протокол. Кому это интересно – начинаем.

Читать далее

Rust 1.82.0: cargo info, AArch64 для macOS в tier1, use<..>, небезопасные указатели и другое

Уровень сложностиПростой
Время на прочтение13 мин
Количество просмотров3.1K

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


Если у вас есть предыдущая версия Rust, установленная через rustup, то для обновления до версии 1.82.0 вам достаточно выполнить команду:


$ rustup update stable

Если у вас ещё не установлен rustup, вы можете установить его с соответствующей страницы нашего веб-сайта, а также посмотреть подробные примечания к выпуску на GitHub.


Если вы хотите помочь нам протестировать будущие выпуски, вы можете использовать канал beta (rustup default beta) или nightly (rustup default nightly). Пожалуйста, сообщайте обо всех встреченных вами ошибках.

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

Как написать D-Bus сервис, работающий на системной шине, на Rust

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров5.5K

Привет, Хабр! На связи Федотов Максим, ведущий разработчик в "Открытой Мобильной Платформе". В этой статье я хочу поделится нашим опытом создания D-Bus-сервиса на Rust, который работает на системной шине.

Если Вы только недавно начали изучать темы ОС GNU/Linux, Rust и D-Bus, но при этом Вам уже стало тесно в рамках простых базовых примеров и хочется зайти немного поглубже, то эта статья для Вас.

Читать далее

Анализ вакансий ИТ в Москве: системное администрирование, 2024г

Уровень сложностиПростой
Время на прочтение19 мин
Количество просмотров11K

Прошел еще один год и снова появилась необходимость актуализировать и проанализировать данные по предложениям работы в сфере системного администрирования для дальнейшего планирования заработных плат специалистам уже на 2025 год.

В этот раз мы дополнительно сравним результаты со значениями проведенного анализа в 2022 и 2023 годах.

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

Читать далее

Я знаю, что ты делал этим летом на Postgres Pre-Commitfest Party от Postgres Professional

Время на прочтение23 мин
Количество просмотров1.4K

Чтобы объяснить, что есть Postgres Pre-Commitfest party и зачем мы в это ввязались, для начала нужно объяснить, как идёт разработка ванильного постгреса. Процесс принятия новых фичей и патчей в код разделён на так называемые коммифтесты (сокращённо CF), расписание которых всегда можно посмотреть на сайте https://commitfest.postgresql.org/. Когда разработчик предлагает свой код (неважно, будь это новая фича или багофикс), для того чтобы он был рассмотрен в рамках CF, он предварительно должен пройти процедуру ревью и быть одобрен для рассмотрения. Конечно, это совершенно не гарантирует, что код будет принят на этом CFили даже следующем, но сейчас не про это.

Найти ревьюера для своего кода зачастую задача более сложная, чем написать сам код. Человека надо погрузить в решаемую проблему, объяснить, что именно ты предлагаешь изменить, почему так, а не иначе и так далее. Прямо сейчас, в статусе Needs review, находится 29 патчей. Со свойственным нам желанием помогать, мы решили кинуть клич среди коммитеров и собрать всех желающих под одной крышей, чтобы они могли представить свои патчи, обсудить их и, возможно, найти желающего провести ревью.

Так получилось, что собрались мы в рамках проходившего Highload++ в Санкт-Петербурге. Поскольку Open Source дело добровольное, мы просто разослали всем контактам, которые у нас были, предложение примерно следующего содержания: зовём всех неравнодушных постгресистов собраться в шатре, рассказать про свои патчи, обсудить их и хорошо провести время.

Читать далее

Будущее наступило, восстание машин уже идёт. Просто ползучим методом

Уровень сложностиПростой
Время на прочтение16 мин
Количество просмотров6.3K
В отличие от большинства своих статей, сегодня я не буду рассказывать ни о каких своих находках в области разработки железа или программ. Сегодня меня тянет пофилософствовать о глобальной проблеме – отношению ряда ответственных работников к внедрению программных систем в повседневную жизнь.

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

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


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

Ретрансляция Kerberos. Как работает RemoteKrbRelay

Уровень сложностиСложный
Время на прочтение24 мин
Количество просмотров9K

В Windows Active Directory существует протокол Kerberos, который считается безопасным и неуязвимым к Relay-атакам. Или всё-таки...? В статье автор погрузился в глубины аутентификации Windows, DCOM и рассказал об инструменте RemoteKrbRelay.

Изучить

От PuTTY до МС22: сравниваем SSH-клиенты

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров41K

На сегодняшний день SSH-клиентов написано множество: от встроенных в ОС терминалов до отечественных решений вроде МС22. Я решил протестировать популярные варианты и сравнить, какой будет лучше.

Читать далее

Небезопасность Debian

Время на прочтение6 мин
Количество просмотров16K

В июне 2023 года Red Hat приняла спорное решение изменить способ распространения исходного кода Red Hat Enterprise Linux (RHEL). В социальных сетях разгорелись бурные обсуждения, оставившие многих в недоумении относительно последствий этого решения. Возникло множество вопросов о будущей жизнеспособности вторичных сборок RHEL, затрагивающих такие дистрибутивы, как Rocky Linux, AlmaLinux, Oracle Linux и другие. Каждый из них впоследствии сделал заявления, пытаясь успокоить свои сообщества.

Тем не менее, многие в сообществе открытого ПО расценили решение Red Hat как откровенно подлый ход.

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

Почему?!

Адаптируем фаззинг для поиска уязвимостей

Время на прочтение8 мин
Количество просмотров4K

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

Читать далее

Путешествие Embox на AMUR

Время на прочтение7 мин
Количество просмотров3.7K

Всем привет. Embox продолжает своё путешествие по отечественным микропроцессорам. В этой серии мы опишем путешествие на AMUR (MIK32). Кто не знает, это — полностью отечественный микроконтроллер К1948ВК018 на архитектуре RISC‑V, который производится в РФ на мощностях компании МИКРОН, входящей в ГК «Элемент».

Читать далее

Программирование на C в Linux на примере создания командной оболочки: часть 2

Уровень сложностиСредний
Время на прочтение55 мин
Количество просмотров11K

Я решил недавно улучшить свой навык владения C, путем написания проектов. Самая первая мысль, которая пришла мне на ум — это командный интерпретатор, командная оболочка, shell проще говоря. А также я расскажу о системе сборки make, и о том, как правильно писать и документировать C-код.

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

Да-да, мы превратим наш велосипед в мопед! Я вынес из прошлой статьи итоги, и попытался решить все проблемы и замечания. Продолжаем погружение в пучины разработки под Linux!

Читать далее

Программирование на C в Linux на примере создания своей командной оболочки

Уровень сложностиСредний
Время на прочтение27 мин
Количество просмотров22K

Привет, хабр! Язык программирования C — основополагающий, как я считаю. И его знать, нет, не обходимо, но довольно желательно. Большинство языков отсылают к C, и зная C (или C++) другой язык будет даваться намного легче.

Я решил недавно улучшить свой навык владения C, путем написания проектов. Самая первая мысль, которая пришла мне на ум — это командный интерпретатор, командная оболочка, shell проще говоря. А также я расскажу о системе сборки make, и о том, как правильно писать и документировать C-код.

В этом туториале я буду использовать компилятор CLANG, а не GCC, и расскажу его преимущества

Итак, для создания своего шелла на C для Linux вам понадобится простой советский копеечный...

Узнать

Ближайшие события

Multicast DNS и DNS-SD

Уровень сложностиСредний
Время на прочтение13 мин
Количество просмотров13K

Multicast DNS и DNS-SD являются ключевой составной частью стека Zero-configuration networking (zeroconf) и отвечают в нем за службу имен и автоматический поиск устройств в пределах локальной сети.

Технология zeroconf, позволяющая собрать работающую локальную сеть с нулевыми усилиями по администрированию и конфигурации, известна уже давно. Еще в 1980-х AppleTalk, локальная сеть для компьютеров и устройств Apple, позволяла просто соединить устройства проводами и сразу начать работать.

AppleTalk не выдержал конкуренцию с TCP/IP в эпоху Интернета, но идея сети, которая работает сама, не умерла. В мире TCP/IP Apple продвигает ее под именем Bonjour (ранее Rendezvous).

mDNS/DNS-SD являются одними из ключевых технологий в устройстве современного стека печати и сканирования. Кроме того, они могут использоваться в "облаке", позволяя отдельным компонентам облачного сервиса найти друг друга при условии, что они подключены к одной локальной сети, реальной или виртуальной.

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

Читать далее

ZX Murmulator OS

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров9.4K

ZX Murmulator - одноплатный ультрадешевый микрокомпьютер на основе платы Raspberry Pi Pico (далее "пика"), которая, в свою очередь, основана на микроконтроллере - RP2040.

RP2040 - одна из наиболее известных двухъядерных реализаций ARM Cortex-M0+ с 264 КБ встроенной SRAM памяти и от 2-ух до 16-ти МБ flash-памяти подключаемых по QSPI интерфейсу, распаянной на плате пики. Данный микроконтроллер легко гонится до 400 МГц без какого либо радиатора, не смотря на свои штатные 133. Что позволяет запускать на нём достаточно прожорливые задачи.

Читать далее

Правка скриптов автогенерации cubeMX/cubeIDE

Уровень сложностиПростой
Время на прочтение12 мин
Количество просмотров1.6K

На примере добавления дополнительных классов USB (Media Transfer Protocol (MTP) и Smart Card (CCID)) показать каким образом можно вносить изменения в скрипты автоконфигурации для ускорения создания последующих проектов, а также для исправления существующих ошибок в них, чтобы не держать в голове, какие в каком случае постоянно вносить правки для исправления тех или иных ошибок.

Читать далее

Подсистема управления общими блоками SoC для ЗОСРВ «Нейтрино»

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров1.4K

image


Современнные Системы-на-Кристалле (SoC) содержат в себе десятки различных контроллеров, вариативность которых меняется в зависимости от поколения или ревизии чипов того или иного производителя. Особо выделяются контроллеры системного тактирования (Clock) и сброса (Reset), объем функциональности которых охватывает все оставшиеся контроллеры более узкого назначения.


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

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

Путешествие сквозь секреты прошивок: от BIOS/UEFI до OS

Уровень сложностиСредний
Время на прочтение17 мин
Количество просмотров20K

Вы когда-нибудь задумывались, что происходит, когда вы нажимаете кнопку питания на компьютере? За той краткой паузой, прежде чем экран загорится, скрывается сложный процесс. В этой статье мы погрузимся в увлекательный мир прошивок (firmware) и исследуем, как разные компоненты взаимодействуют во время загрузки системы. Поняв эти связи, вы получите четкое представление о том, как основные элементы приводят вашу систему в действие. Мы сосредоточимся на Intel архитектуре x86, хотя многие принципы применимы и к другим архитектурам.

Читать далее

Swift на FreeBSD

Уровень сложностиСложный
Время на прочтение6 мин
Количество просмотров2.4K

Новый, модный и красивый язык разработки от Apple прямо на ваших глазах будет с особым цинизмом пропатчен, собран из исходников и запущен на FreeBSD. Опять.

Читать далее

На что способен инженер, загнанный в угол (или как устроен Display Port у Aspeed AST2600)

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров10K

Дано:
Серверная плата с самым свежим чипом от Aspeed. На плате распаяны два видео-разъема, идущих напрямую с чипа: VGA и DisplayPort. Видео через древний аналоговый VGA-разъём воспроизводится замечательно, а вот современный быстрый и цифровой DP работать не хочет. Не то чтобы совсем не хочет... так, редкие нестабильные промаргивания картинки.

Задача:
1. Починить выводимое на Display Port изображение.
2. Вчера

Вы спросите, зачем нам понадобился именно DP? Все сервера испокон веков работали через VGA, и никто от этого не страдал.

Ответ простой: Мы просто решили сделать лучше и удобнее. VGA древний и его уже ставят по причине "всегда ставили, куда без него"? Мы же делаем НОВУЮ серверную платформу на годы вперед. Нужно сказать, что мы пока не отказались полностью от VGA и технически он всё ещё остается доступен одновременно с DP (как VGA использовать, расскажем в другой раз). Но монитор без разъема VGA попадается всё чаше, а в будущем все мониторы останутся без VGA. DP поддерживает hot-plug. DP поддерживает высокие разрешения и frame-rate. И в конце концов, DP поддерживается чипом ASPEED. А раз железо позволяет, то "А почему бы и ДА!?". В конце концов, для олдов остаются доступны переходники DP-VGA. Главное, не увлекаться и не получить такое:

Читать далее

Вклад авторов