#  Подход к ведению документации на ОС: наш опыт
BotHabr (tgi,2) → All  –  13:01:16 2023-04-04

Опубликовано: Fri, 23 Dec 2022 11:59:38 GMT
Канал: Системное программирование – Обеспечение работы прикладного ПО

Вопрос подготовки и ведения электронной документации к продуктам всегда стоит достаточно остро и требует комплексного решения. Как показала наша практика, ни один из имеющихся в свободном доступе в Интернете инструментов в чистом виде не может решить те задачи, которые мы ставим перед собой, говоря о документации. Требуется либо разработка инструмента с нуля, либо усовершенствование уже имеющегося решения “под себя”. Однако, одного инструмента мало, нужно еще и выработать особый подход к разработке, выстроить под него рабочие процессы. О том, как мы проходили этот тернистый путь и что в итоге получилось, расскажем в данной статье. Читать далее

https://habr.com/ru/companies/swd_es/articles/707356/
#  Boson — разработка СУБД «с нуля» (часть I)
BotHabr (tgi,2) → All  –  13:01:16 2023-04-04

Опубликовано: Sun, 01 Jan 2023 03:47:13 GMT
Канал: Системное программирование – Обеспечение работы прикладного ПО

После разработки виртуальной машины и компилятора в рамках хобби прошел год и захотелось попробовать реализовать ёмкий по алгоритмам проект по системному программированию. Каждый разработчик "кровавого" enterprise в своей работе использует СУБД (SQL/NoSQL) и меня всегда искренне интересовало как они устроены в самом сердце, на самом низком уровне. Почитав документацию и исходный код SQLite и MongoDB, про используемые в индексах и интерпретаторах запросов алгоритмы, осознал, что несмотря на широкую распространенность и некую привычность, системы управления базами данных (СУБД) - это сложные программные продукты, реализация которых не всем под силу. Отлично - как раз то, что мне надо. С мотивацией разобрались, перейдем к делу.Итак, для начала хорошо бы сформулировать высокоуровневую спецификацию требований. Boson - это легкая, встраиваемая документоориентированная база данных на С/С++ Читать далее

https://habr.com/ru/articles/708768/
#  Как создать свою СУБД с нуля и не сойти с ума. Практическое пособие начинающему некроманту. Часть первая
BotHabr (tgi,2) → All  –  13:01:15 2023-04-04

Опубликовано: Fri, 06 Jan 2023 03:47:33 GMT
Канал: Системное программирование – Обеспечение работы прикладного ПО

Наступил Апокалипсис.Нет, не стоит бежать запасаться банками с консервами и крышками отечественной бай-колы! Апокалипсис произошёл только в нашей фантазии и с определённой целью — чтобы проверить, а может ли человек, обладающий только книгами по теме и стандартной библиотекой языка, воссоздать инструмент, который будет служить ему верой и правдой?Так родился учебный проект SicQL, реляционная СУБД, чей символ — сова — это олицетворение силы знаний и мудрости. Олицетворение тех знаний и той мудрости, которые мы получим, создав с нуля то, чем мы пользуемся каждый день, может, не осознавая всей сложности таких инструментов.Приглашаю присоединиться к увлекательному путешествию! Принять приглашение на борт

https://habr.com/ru/articles/709234/
#  Контроллер CH579. Начинаем работу и избавляемся от закрытой сетевой библиотеки
BotHabr (tgi,2) → All  –  13:01:15 2023-04-04

Опубликовано: Fri, 13 Jan 2023 09:02:54 GMT
Канал: Системное программирование – Обеспечение работы прикладного ПО



Сегодняшняя статья – не восклицание: «Смотрите, какой мне красивый проц попался». Это скорее просто упорядочивание накопленных сведений о конкретном процессоре CH579. Вдруг кому пригодится. Ну, и, если через годы мне потребуется, я сам буду восстанавливать знания по этой статье. Просто так получилось, что по проекту Заказчик велел освоить его… Это недорогой микроконтроллер на базе ядра Cortex M0. После освоения Заказчик же и сказал, что мы всё будем делать на китайском клоне STM32. Характеристики же самобытного CH579 он признал недостаточными.

Но с другой стороны… Сегодня эта микросхема стоит 120-150 рублей за штуку на Ali Express. А у неё имеется не только встроенный PHY для десятимегабитного Ethernet, но и всё для работы по BLE. По-моему, не самая плохая цена. Кажется, для Интернета вещей может пригодиться. Но это цены за микросхему. Макетки безобразно дороги.

Ещё на многих форумах народ возмущается, что сетевая библиотека для этого контроллера поставляется не в виде исходных кодов. Китайцы отвечают, что они не собираются ничего менять. Наш Заказчик тоже возмущался. Поэтому в статье я покажу, каким путём мы шли, чтобы сделать исходный код. Любой сможет повторить этот путь буквально за пару дней. Там скорее обидно, чем сложно.

В общем, сегодня мы пробежимся по работе с китайским контроллером CH579. Будет немного практических сведений и немного мемуаров, как пришлось вскрывать библиотеки. Читать дальше →

https://habr.com/ru/articles/710082/
#  Величайшие программисты XXI века. Марк Руссинович и его 65 системных утилит
BotHabr (tgi,2) → All  –  13:01:15 2023-04-04

Опубликовано: Mon, 16 Jan 2023 09:00:02 GMT
Канал: Системное программирование – Обеспечение работы прикладного ПО

Кто из админов не знает утилиты SysInternals (Winternals) для администрирования и диагностики Windows? Кажется, они известны с незапамятных времён. Но не каждый в курсе, что эти незаменимые инструменты написаны вовсе не компанией Microsoft. Скорее наоборот, они написаны вопреки её желанию.

И здесь мы подходим к личности автора, талантливого и суперпродуктивного программиста Марка Руссиновича. Он показал, что один умный парень способен интеллектуально продавить мегакорпорацию. И той придётся заплатить ему огромные деньги, и даже взять на работу. Потому что повторить его программы она не сумела… Читать дальше →

https://habr.com/ru/companies/ruvds/articles/710268/
#  Boson — разработка СУБД «с нуля» (часть II)
BotHabr (tgi,2) → All  –  13:01:14 2023-04-04

Опубликовано: Sat, 28 Jan 2023 02:52:17 GMT
Канал: Системное программирование – Обеспечение работы прикладного ПО

В первой части статьи мы обсуждали разработку самого нижнего слоя СУБД Boson - CachedFileIO. Как упоминалось, статистика такого явления как Locality of Reference говорит о том, что в реальных приложениях ~95% запросов к данным локализованы в 10-15% базы данных. При этом среднее соотношение чтения/записи - 70%/30%. Это делает эффективным использование кэша (cache) работающего на основе алгоритма Least Recently Used (LRU). Реализовав его, мы получили 260%-600% прироста скорости чтения при 87%-97% cache hits.Следующим после кэша слоем СУБД Boson является хранилище записей RecordFileIO. Это уже первый прообраз базы данных, который начинает приносить прикладную пользу. Сформулируем верхнеуровневую спецификацию требований: Читать далее

https://habr.com/ru/articles/712896/
#  [Перевод] Rust 1.67.0: #[must_use] для Future, смена реализации mpsc
BotHabr (tgi,2) → All  –  13:01:14 2023-04-04

Опубликовано: Mon, 30 Jan 2023 15:21:13 GMT
Канал: Системное программирование – Обеспечение работы прикладного ПО

Команда Rust рада сообщить о новой версии языка — 1.67.0. Rust — это язык программирования, позволяющий каждому создавать надёжное и эффективное программное обеспечение.
Если у вас есть предыдущая версия Rust, установленная через rustup, то для обновления до версии 1.67.0 вам достаточно выполнить команду:
rustup update stable
Если у вас ещё не установлен rustup, вы можете установить его с соответствующей страницы нашего веб-сайта, а также посмотреть подробные примечания к выпуску на GitHub.
Если вы хотите помочь нам протестировать будущие выпуски, вы можете использовать beta (rustup default beta) или nightly (rustup default nightly) канал. Пожалуйста, сообщайте обо всех встреченных вами ошибках. Читать дальше →

https://habr.com/ru/articles/713740/
#  [Перевод] Концепции Rust, которые неплохо бы знать пораньше
BotHabr (tgi,2) → All  –  13:01:14 2023-04-04

Опубликовано: Sun, 05 Feb 2023 18:58:59 GMT
Канал: Системное программирование – Обеспечение работы прикладного ПО

Весь минувший месяц я глаз не мог оторвать от языка программирования Rust, ведь его конёк – создание современных программ, обеспечивающих безопасную работу с памятью. За прошедшие годы появилось несколько языков, которые позиционировались как «инструмент что надо» для написания надёжного бекенд-софта. Постепенно маятник качнулся от Java/C++ к Go и Rust, выстроенных на многолетних разработках по теории языков программирования. Суть – в создании инструментов, которые были бы эффективны именно в наш век. Читать далее

https://habr.com/ru/articles/714980/
#  Сеть виновата
BotHabr (tgi,2) → All  –  13:01:13 2023-04-04

Опубликовано: Fri, 17 Feb 2023 18:46:28 GMT
Канал: Системное программирование – Обеспечение работы прикладного ПО

Сегодняшний рассказ будет про несколько органических проблем современных сетевых технологий. В жизни любого инженера бывают периоды как долгой кропотливой проработки архитектуры, так и долгих кропотливых расследований инцидентов или проблем. Нет, бывают, конечно, и озарения, стремительные лёгкие открытия, но обычно слова «кропотливый» и «методичный» — неизменные спутники нашей работы. И увы — не всегда этот процесс завершается яркой кульминацией и впрыском дофамина. Читать далее

https://habr.com/ru/companies/southbridge/articles/717634/
#  Взаимодействие между процессами на С++ и PHP. Сокеты, семафоры и разделяемая память
BotHabr (tgi,2) → All  –  13:01:13 2023-04-04

Опубликовано: Fri, 03 Mar 2023 22:06:45 GMT
Канал: Системное программирование – Обеспечение работы прикладного ПО

Доброго всем дня!Хочу рассказать о своём практическом опыте реализации взаимодействия между процессами в среде Linux в условиях, когда вычислительных ресурсов существенно не хватает. По условию, один из процессов написан на C++, второй на PHP, потому дополнительно мы рассмотрим доступность соответствующих API из PHP а также варианты действий в случае, когда для нужного API PHP-обёртка отсутствует. Читать далее

https://habr.com/ru/articles/720126/
#  Один день из жизни JVM-инженера
BotHabr (tgi,2) → All  –  13:01:13 2023-04-04

Опубликовано: Mon, 06 Mar 2023 09:26:39 GMT
Канал: Системное программирование – Обеспечение работы прикладного ПО


Можно разрабатывать на Java, а можно разрабатывать Java. Есть люди, чей код исполняет виртуальная машина — а есть люди, чей код и есть виртуальная машина.
Вроде бы те и другие существуют в одной Java-экосистеме, но задачи совершенно разные. Поэтому редкое место, где они пересекаются и могут что-то поведать друг другу — Java-конференции. Мы проводим их регулярно (уже в апреле будет JPoint). И на предыдущей нашей конференции Иван Углянский dbg_nsk поделился с Java-разработчиками тем, как всё выглядит с его стороны.
Чем он вообще занимается? Почему JVM-инженеры всё так медленно делают? На каком языке стоит писать рантайм, а на каком компилятор? Как «папка бога» в Windows привела к неожиданным последствиям? Может ли «обычный джавист» стать JVM-инженером?
Поскольку все эти вопросы из доклада звучат интересно, мы решили для Хабра сделать его текстовую версию (а для тех, кому удобнее видео, прикладываем ссылку на ютуб). Далее повествование идёт от лица Ивана. Читать дальше →

https://habr.com/ru/companies/jugru/articles/719614/
#  KVM: Что такое Kernel-based Virtual Machine?
BotHabr (tgi,2) → All  –  13:01:12 2023-04-04

Опубликовано: Fri, 10 Mar 2023 16:20:09 GMT
Канал: Системное программирование – Обеспечение работы прикладного ПО

Начнем с простого вопроса:Что означает QEMU/KVM или QEMU-KVM?Можно ответить - это QEMU + KVM или qemu-system, запущенный с kvm в качестве ускорителя. Но в какой-то степени это еще и анахронизм, так как с появлением KVM его разработчики для интеграции с QEMU поддерживали отдельный форк qemu-kvm, но начиная с QEMU версии 1.3 (декабрь 2012) все основные изменения из qemu-kvm были перенесены в главную ветку QEMU, а qemu-kvm объявлен устаревшим. В разных дистрибутивах до сих пор еще можно встретить исполняемый файл qemu-kvm или просто kvm, но это лишь обертки над qemu-system:exec qemu-system-x86_64 -enable-kvm "$@"или симлинки: /usr/bin/kvm -> qemu-system-x86_64 А в самом qemu существует проверка: Читать далее

https://habr.com/ru/articles/721408/
#  Язык программирования Rust: безопасность, производительность и преимущества
BotHabr (tgi,2) → All  –  13:01:12 2023-04-04

Опубликовано: Wed, 15 Mar 2023 18:15:57 GMT
Канал: Системное программирование – Обеспечение работы прикладного ПО

Язык программирования Rust был разработан компанией Mozilla и впервые представлен в 2010 году. Он считается одним из самых безопасных и производительных языков программирования на сегодняшний день. В данной статье мы рассмотрим основные преимущества Rust, и почему он становится все более популярным в системном программировании. Читать далее

https://habr.com/ru/articles/722658/
#  Удивительное рядом. Как устроен буфер обмена в Windows и Linux
BotHabr (tgi,2) → All  –  13:01:12 2023-04-04

Опубликовано: Wed, 22 Mar 2023 09:00:01 GMT
Канал: Системное программирование – Обеспечение работы прикладного ПО

Опенсорсная утилита CopyQ показывает содержимое буфера обмена на всех ОС и сохраняет историю

Буфер обмена — один из основных элементов GUI, но он сложен в реализации. Подводных камней настолько много, что вы больше никогда не сможете произнести слово «копипаст» с презрительным выражением. Есть тысячи приложений и форматов данных. Невозможно обеспечить полную конвертацию всего во всё.

В некоторых случаях данные вообще нигде не сохраняются по нажатию Ctrl+C. И по нажатию Ctrl+V будет возвращён NULL. Shit happens, как говорится… Читать дальше →

https://habr.com/ru/companies/ruvds/articles/723812/
#  Когда переподключения ускоряют работу по сети. Разбираемся с быстродействием TCP-сокетов
BotHabr (tgi,2) → All  –  13:01:11 2023-04-04

Опубликовано: Fri, 24 Mar 2023 21:01:09 GMT
Канал: Системное программирование – Обеспечение работы прикладного ПО

При написании предыдущей статьи я наткнулся на странный эффект с производительностью TCP-сокетов. При попытке отправить пачку запросов через сокет оказалось, что выгоднее заново устанавливать TCP-соединение после каждого запроса, а не переиспользовать его. Исследованию причин этого эффекта (а заодно и поиску способов от него избавиться) и посвящена эта статья. Читать далее

https://habr.com/ru/articles/724682/
#  [Перевод] Операционная система — аппаратное обеспечение ввода-вывода
BotHabr (tgi,2) → All  –  13:01:11 2023-04-04

Опубликовано: Wed, 29 Mar 2023 10:16:59 GMT
Канал: Системное программирование – Обеспечение работы прикладного ПО

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

https://habr.com/ru/companies/otus/articles/725584/
#  Руководство по Кросс-Платформенному Системному Программированию для UNIX и Windows: Уровень 1
BotHabr (tgi,2) → All  –  13:01:11 2023-04-04

Опубликовано: Sun, 02 Apr 2023 09:50:42 GMT
Канал: Системное программирование – Обеспечение работы прикладного ПО

С помощью этого учебного материала мы научимся писать кросс-платформенный код на Си, используя системные функции популярных ОС (Windows, Linux/Android, macOS и FreeBSD): управление файлами и файловый I/O, консольный I/O, пайпы (неименованные), запуск новых процессов. Мы напишем свои небольшие вспомогательные функции поверх низкоуровневого системного АПИ (API), для того чтобы наш основной код, используя эти функции, мог работать на любой ОС без изменений. Этот учебный материал — начального уровня. Я делю сложные вещи на части, чтобы примеры кода здесь не были слишком заумными для тех, кто только что начал программировать на Си. Мы обсудим различия между системными АПИ и разберёмся, как создать кросс-платформенный программный интерфейс, который скрывает все эти различия от пользователя этого интерфейса. Читать далее

https://habr.com/ru/articles/726410/
#  SWUpdate, Yoctо(ерный) театр и paperina
BotHabr (tgi,2) → All  –  13:01:10 2023-04-04

Опубликовано: Sat, 29 Oct 2022 10:47:52 GMT
Канал: Разработка на Raspberry Pi – Одноплатный компьютер компактного размера

SWUpdate — это агент обновлений Linux, целью которого является эффективный и безопасный способ обновления встроенной системы. SWUpdate поддерживает локальные и удаленные обновления, включает несколько стратегий обновления, и его можно легко интегрировать в систему сборки Yocto, подключив слой meta-swupdate.В статье описывается как можно настроить режим обновление в Yocto наиболее простым способом для платы Orange Pi R1, таким же образом вы можете настроить и обновление для самой распространенной платы Raspberry Pi.Дистрибутив Yocto для которого будет подготовлено обновление наследуется от образа core-image-minimal и выполняет функцию простого маршрутизатора, используя DHCP и Shorewall.Статья из серии: если хочешь что то обновить, сделай это сам. Читать далее

https://habr.com/ru/articles/694854/
#  Коллекция советских игровых автоматов на вашем Raspberry Pi
BotHabr (tgi,2) → All  –  13:01:10 2023-04-04

Опубликовано: Sat, 29 Oct 2022 11:39:52 GMT
Канал: Разработка на Raspberry Pi – Одноплатный компьютер компактного размера

В СССР игровая индустрия была слабо развита в 80-е годы. Те, кто застал это время в сознательном возрасте, хорошо помнят игровые автоматы, которые стояли в кинотеатрах, домах культуры и парках отдыха, а также очереди желающих на них поиграть. В основном это были электромеханические игровые автоматы, такие как «Морской бой», «Воздушный бой».Самыми «крутыми» были телевизионные игровые автоматы «Магистраль», «Перехватчик», «Городки», «Скачки», но графика у них была примитивная и часто черно-белая.Во второй половине восьмидесятых в аттракционах стали появляться игровые автоматы. Первое, что бросалось в глаза, это то, что у них была цветная графика с гораздо более сложными фигурами. Среди этих игр выделялся автомат «Конек-Горбунок», к нему стояла самая длинная очередь поиграть, больше, чем к «Магистрали» или «Перехватчику». Наверное, это был самый успешный советский игровой автомат с использованием микропроцессоров.В этой статье я хочу рассказать, как на Raspberry Pi поиграть в «Конька-Горбунка», а также «Снежную королеву», «Кота рыболова», «S.O.S.», «Городки», «Бильярд» и некоторые другие игры из советских автоматов, получить массу положительных эмоций и, если вам захочется, удивить своих знакомых тем, что у вас есть такие игры. Читать далее

https://habr.com/ru/articles/696178/
#  [Перевод] Руководство по MicroPython MQTT на базе Raspberry Pi
BotHabr (tgi,2) → All  –  13:01:09 2023-04-04

Опубликовано: Fri, 04 Nov 2022 19:44:45 GMT
Канал: Разработка на Raspberry Pi – Одноплатный компьютер компактного размера


Сегодня рассказываем как написать простой MQTT-клиент на Raspberry Pi при помощи MicroPython и реализовать функции подключения, отправки сообщений и подписки между клиентом и брокером MQTT-сообщений. Подробности о разработке с использованием протокола интернета вещей MQTT — к старту курса по Fullstack-разработке на Python. Читать дальше →

https://habr.com/ru/companies/skillfactory/articles/697318/
#  [Перевод] Создание e-ink дисплея с прогнозом погоды
BotHabr (tgi,2) → All  –  13:01:09 2023-04-04

Опубликовано: Wed, 16 Nov 2022 08:04:42 GMT
Канал: Разработка на Raspberry Pi – Одноплатный компьютер компактного размера

Кому-то нравится украшать дом электронными фоторамками, а кому-то — цифровым прогнозом погоды. Если вы из их числа, то читайте, как собрать своё собственное метео-табло. Читать далее

https://habr.com/ru/companies/cloud4y/articles/699638/
#  Насколько круто иметь свой сервер в комнате
BotHabr (tgi,2) → All  –  13:01:09 2023-04-04

Опубликовано: Wed, 23 Nov 2022 09:00:02 GMT
Канал: Разработка на Raspberry Pi – Одноплатный компьютер компактного размера


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

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

https://habr.com/ru/companies/ruvds/articles/699726/
#  Модернизация FreePBX на Raspberry PI
BotHabr (tgi,2) → All  –  13:01:08 2023-04-04

Опубликовано: Thu, 08 Dec 2022 11:32:05 GMT
Канал: Разработка на Raspberry Pi – Одноплатный компьютер компактного размера

Продолжение экспериментов над установленной и рабочей системы из статьи: "Raspberry Pi + FreeBPX(asterisk) + Mikrotik = АТС мини с переходом на PJSIP (sipnet, zadarma, multifon)", подключение telegram бота. Читать далее

https://habr.com/ru/articles/704306/
#  Клубничная чудо-коробка 2.0 всё
BotHabr (tgi,2) → All  –  13:01:08 2023-04-04

Опубликовано: Thu, 08 Dec 2022 23:13:14 GMT
Канал: Разработка на Raspberry Pi – Одноплатный компьютер компактного размера

Продолжаю серию постов про свои клубничные приключения. В этом хочу рассказать, как дорабатывал систему выращивания клубники, с какими проблемами столкнулся, каких результатов достиг и почему решил остановить проект «Коробка 2.0». Читать далее

https://habr.com/ru/articles/704420/
#  Сеть без интернета на Raspberry Pi Pico и другие необычные проекты на «малинке»: DIY зимы 2022 года
BotHabr (tgi,2) → All  –  13:01:07 2023-04-04

Опубликовано: Sat, 10 Dec 2022 20:46:12 GMT
Канал: Разработка на Raspberry Pi – Одноплатный компьютер компактного размера


Давно мы уже ничего не писали о разных системах на базе Raspberry Pi. В этой подборке много всего интересного, включая создание сети без Интернета, подключение КПК PSION к сети и все такое прочее. Некоторые проекты очень сложные для самостоятельной реализации. Другие — попроще, их может повторить даже относительный новичок в электронике. Если вдруг у вас есть собственный проект, о котором вы хотели бы рассказать, либо вы знаете то, что заслуживает места в подборке — пишите в комментариях, обсудим. Читать дальше →

https://habr.com/ru/companies/selectel/articles/704006/
Powered by iii-php v0.11