Чуть менее, чем самая быстрая, переносимая, 64-битная хеш-функция, с достойным качеством.
Да, вжух и в дамки, примерно так. Читаем дальше?
Рубрика «системное программирование» - 40
t1ha = Fast Positive Hash
2017-10-02 в 14:35, admin, рубрики: C, cityhash, hash, hash function, t1ha, высокая производительность, ненормальное программирование, системное программирование, Совершенный кодЗагрузка ОС на ARM
2017-09-27 в 8:06, admin, рубрики: android, Application Processor, Cortex, Device Tree, linux, rtos, SDK, TEE, Trusted Execution Environment, TrustZone, Блог компании Аладдин Р.Д., информационная безопасность, криптография, микроконтроллеры, ОС, Разработка под Linux, системное программирование, смартфоны, телефоны, угрозыНедавно попросили в двух словах рассказать серьезным людям о загрузке операционной системы на ARM и дать оценку угроз безопасности этого процесса. Вообще ARM-процессоров и вообще ОС. Вы понимаете, все ведь слышали про эти ARM, и что такое ОС тоже все знают. Желательно, на уровне квадратиков со стрелками.
Загрузка ARM в четырех прямоугольниках — под катом.
Читать полностью »
Пишем для UEFI BIOS в Visual Studio. Часть 3 — русифицируем Front Page
2017-09-24 в 23:00, admin, рубрики: UEFI, системное программированиеВведение
В этой статье мы создадим русский шрифт и русифицируем с его помощью главную страницу настроек из имеющегося в edk2 примера.
Кого заинтересовало — прошу пожаловать под кат.
Читать полностью »
Дайджест KolibriOS #13
2017-09-24 в 15:46, admin, рубрики: kolibrios, open source, system programming, ненормальное программирование, системное программированиеМежду выпусками прошло достаточно много времени и накопилось достаточно изменений за 2017г.
Дайджест KolibriOS #2: что нам принёс февраль
Дайджест KolibriOS #3: начало весны
Дайджест KolibriOS #4: и весна нам не помеха
Дайджест KolibriOS #5: мы снова с вами
Дайджест KolibriOS #6: последняя осень
Дайджест KolibriOS #7: как мы зиму перезимовали
Дайджест KolibriOS #8: дары весны
Дайджест KolibriOS #9: летний урожай
Дайджест KolibriOS #10 коротко о накопившемся
Дайджест по итогам 2015 года
Дайджест KolibriOS #11 все новости с последнего выпуска и Google Summer of Code 2016
Дайджест KolibriOS #12
Пишем для UEFI BIOS в Visual Studio. Часть 2 – создаем свой первый драйвер и ускоряем отладку
2017-09-21 в 11:15, admin, рубрики: UEFI, системное программированиеВведение
В этой статье будут рассмотрены базовые вещи, касающиеся программирования текстового ввода-вывода. В программе, которую на этот раз создадим сами с нуля, вначале введем с клавиатуры, а потом выведем на экран текстовую строку, коснувшись по пути некоторых неочевидных особенностей программирования под UEFI.
Вторая половина статьи будет про ускорение загрузки драйвера при запуске на отладку, поскольку две минуты, что тратятся на это сейчас, при многократном запуске в процессе отладки своего драйвера будут сильно раздражать.

Те, кто заинтересовался — добро пожаловать под кат.
Читать полностью »
Пишем для UEFI BIOS в Visual Studio. Часть 1 — разворачивание среды разработки, компиляция и запуск на отладку
2017-09-19 в 14:00, admin, рубрики: UEFI BIOS, системное программированиеВведение
В этой статье будет описано, как быстро начать программировать для UEFI во фреймворке edk2 в среде Visual Studio, не тратя массу времени на настройку среды обычным способом, по оригинальным мануалам. Достаточно дать команду git clone ... в корневом каталоге диска, и это на самом деле все, среда будет полностью установлена и готова к работе. Требуются 64-разрядная Windows 7 и выше c Visual Studio 2008-2016. Эти два условия не обязательны, но тогда придется немного потрудиться над собиранием системы edk2-Visual Studio в единое целое, краткая памятка будет приведена.
Цель статьи — провести начинающего за руку по первому UEFI проекту, оставаясь в привычной ему среде. Для более опытных людей, надеюсь, будет интересным поработать в VS вместо привычной командной строки, или разобрать подход и перенести его в любимый Eclipse.
Начнем с простых вещей, вывода строки на консоль и русификации (довольно востребованная вещь, причем простая в реализации), потом будет работа с формами в HII (то, что называлось в обиходе страницами BIOS Setup), потом графика, потом Boot Manager, а потом видно будет (с).

Желающие — прошу пожаловать под кат.
Читать полностью »
Docker, или Туда и обратно
2017-09-15 в 13:05, admin, рубрики: docker, Go, golang, setns, Блог компании okmeter.io, системное программирование С появлением docker у нас, как у сервиса мониторинга немного усложнилась жизнь. Как я писал ранее, одна из фишек нашего сервиса — автодетект сервисов, то есть агент сам находит запущенные на сервере сервисы, читает их конфиги и начинает сбор метрик.
Но в какой-то момент в production у наших клиентов начал появляться докер, и наш автодетект перестал работать. Процессу, который запускается через докер, проставляются различные namespace (mnt, net, user, pid), это достаточно сильно усложняет работу извне контейнера с файлами и сетью внутри контейнера.
Под катом я расскажу, как мы решали эту проблему, какие варианты пробовали, и что в итоге заработало.
О-о-очень долгожданный релиз Sublime Text 3.0
2017-09-13 в 15:00, admin, рубрики: C, python, sublime text 3, Программирование, редактор кода, системное программированиеСпустя долгие годы ожидания в beta и alpha релизах (а это около 3.5 лет) наконец-то вышел Sublime Text 3.0!
Идеальная ОС: переосмысление операционных систем для десктопа
2017-09-05 в 15:33, admin, рубрики: GUI, Ideal OS, MacOS, OS X, UX, Анализ и проектирование систем, Графические оболочки, Идеальная ОС, командная строка, Программирование, системное программирование, Совершенный кодTL;DR: К концу этого эссе я надеюсь убедить вас в следующих фактах. Во-первых, что современные десктопные операционные системы никуда не годятся. Они раздутые, тормознутые и напичканы легаси-хламом, а кое-как работают только благодаря закону Мура. Во-вторых, что инновации в десктопных ОС прекратились около 15 лет назад, а основные игроки вряд ли собираются много вкладывать в них снова. И наконец, я надеюсь убедить вас, что мы можем и должны начать с нуля, усвоив уроки прошлого.
«Современные» десктопные ОС раздуты
Возьмём Raspberry Pi. За 35 долларов я могу купить отличный компьютер с четырьмя процессорными ядрами, каждое на частоте более гигагерца. У него также есть 3D-ускоритель, гагабайт оперативки, встроенные WiFi с Bluetooth и Ethernet. За 35 баксов! И всё-таки для многих задач, которые я хочу на нём запустить, Raspberry Pi ничем не лучше компьютера на 66 мегагерц, который был у меня в колледже.
Прокачиваем USB Mass Storage Device на STM32F103 с помощью FreeRTOS и DMA
2017-09-05 в 15:01, admin, рубрики: DMA, freetros, hal, mass storage, microSD, MSc, sd, stm32, stm32f103, usb, программирование микроконтроллеров, системное программирование
Недавно я ковырялся с подключением своего устройства на микроконтроллере STM32F103 как USB Mass Storage Device, или по русски — как флешку. Вроде бы как все относительно несложно: в графическом конфигураторе STM32CubeMX в пару кликов сгенерировал код, добавил драйвер SD карты, и вуаля — все работает. Только очень медленно — 200кбайт/с при том, что пропускная способность шины USB в режиме Full Speed гораздо выше – 12 мБит/с (грубо 1.2 Мбайт/с). Более того, время старта моей флешки в операционной системе составляет около 50 секунд, что попросту некомфортно в работе. Раз уж я нырнул в эту область, то почему бы и не зачинить скорость передачи.
Вообще-то я уже писал свой драйвер для SD карты (точнее драйвер SPI), который работал через DMA и обеспечивал скорость до 500кб/с. К сожалению в контексте USB этот драйвер не заработал. Причиной всему сама модель общения USB — там все делается на прерываниях, тогда как мой драйвер был заточен под работу в обычном потоке. Да еще и припудрен примитивами синхронизации FreeRTOS.
В этой статье я сделал парочку финтов, которые позволили выжать максимум из связки USB и SD карточки подключенной к микроконтроллеру STM32F103 по SPI. Также тут будет про FreeRTOS, объекты синхронизации и общие подходы к передаче данных через DMA. Так что, думаю, статья будет полезна и тем кто только разбирается в контроллерах STM32, и инструментах вроде DMA, и подходах при работе с FreeRTOS. Код построен на основе библиотек HAL и USB Middleware из пакета STM32Cube, а также SdFat для работы с SD картой.
Читать полностью »