Многие помнят публикацию о «Рэйдикс» на Хабре «Как разработчики сидели в Петербурге и тихо ели грибы», в которой партнеры кратко изложили историю появления нашего продукта. Поэтому в первой статье своего Хаброблога мы бы хотели погрузиться в математические основы технологий RAIDIX.
Рубрика «системное программирование» - 46
Начнем с математики. Векторизация вычислений в реализации технологии RAID-6
2017-04-19 в 9:15, admin, рубрики: raid, raid6, Алгоритмы, Блог компании RAIDIX, высокая производительность, конечные поля, контрольная сумма, математика, поля галуа, системное программирование, системы хранения данных, СХД, хранение данных(Не) любителям protothreads посвящается: Высокоуровневые функции для работы с 1-Wire
2017-04-12 в 12:40, admin, рубрики: 1wire, C, dma. isr, DS18B20, interrupt, irq, kernel, maxim, Realtime, scada, stm32, stm32l, stm32l-discovery, stm8, stm8l, stm8l-discovery, task, легковесные потоки, многозадачность, программирование микроконтроллеров, Разработка для интернета вещей, системное программированиеПодразумевается, что мы будем писать прошивку под «голое железо». В противном случае применение protothreads смысла не имеет, т.к. мультизадачность должна обеспечиваться средствами ОС. Подразумевается также, что нам необходимо реализовать несколько более-менее сложных алгоритмов, связанных с операциями ввода-вывода. Ну и, как всегда в микроконтроллерах, очевидные требования по экономии RAM и энергопотребления.
Читать полностью »
Настоящий Unix — не есть приемлемый Unix
2017-04-11 в 8:32, admin, рубрики: ls, UNIX, командная строка, Оболочки, операционные системы, системное администрирование, системное программирование, философия UnixКомандная строка Unix полна сюрпризов. Например, вы знали, что инструмент ls
, который чаще всего используется для получения списка файлов в текущем каталоге, в версии OS X распознаёт не менее 38 разных флагов?
Я не знал, так что затвитил этот факт. И получил парочку ответов, один из которых заставил меня задуматься: действительно ли саму Unix нужно винить в этом?
Насколько я знаю, ни Linux, ни OS X не были спроектированы в строгом соответствии с философией Unix. Будет лицемерием основывать критику “Unix” только на этих производных от Unix, которые есть у нас сегодня.
Но я всё-таки попробую показать, как много проблем с интерфейсами командной строки в современных наследниках Unix восходят к корням самой Unix. В частности, я попытаюсь объяснить свой скепсис относительно идеи, что окружение командной строки Unix могло когда-либо поддерживать экосистему программ, каждая из которых хорошо выполняет одну функцию.
Но я немного опережаю события. Прежде чем я начну говорить об этом, давайте более пристально посмотрим на команду ls
и попробуем выяснить, что конкретно она делает не так.
Читать полностью »
Как мы портировали программно-аппаратное решение из SPARC Solaris в AMD64 Linux и виртуализировали все это
2017-03-30 в 16:58, admin, рубрики: boost, c++, c++11, linux, Solaris, виртуализация, Программирование, Разработка под Linux, системное программированиеЭта статья для тех, кто все еще сильно любит древние Unix, но уже понимает, что срочно нужно мигрировать на Linux...
Началась эта история с того, что наш уважаемый заказчик решил уменьшить риски эксплуатации оборудования 10-ти летнего возраста, сэкономить на лицензиях и перейти с Unix на Linux, а заодно и виртуализировать это программно-аппаратное решение. Не то, чтобы заказчик не любил Solaris и Unix, просто сама возможность виртуализировать серверное приложение, жестко привязанное к специфической на сегодняшний день архитектуре SPARC и «седеющей» операционной системе Solaris, выглядела для заказчика очень привлекательной. Отдельным пунктом стоял вопрос замены специализированной карты с PCI интерфейсом на доступное «виртуализированное» решение. Мы решили взяться за такую интересную задачу.
Читать полностью »
MIPSfpga и UART
2017-03-29 в 20:18, admin, рубрики: C, fpga, mips, MIPS microAptiv UP, MIPSfpga, SoC, Verilog, Анализ и проектирование систем, программирование микроконтроллеров, системное программированиеПрошло чуть больше месяца с тех пор, как я портировал open source модуль UART16550 на шину AHB-Lite. Писать об этом на тот момент было несколько не логично, так как еще не была опубликована статья про прерывания MIPSfpga.
Если вы опытный разработчик, то для вас только одна полезная новость: UART16550 добавлен в состав системы MIPSfpga-plus, дальше можете не читать. А тем, кого интересует разобранный пример использования этого модуля — добро пожаловать под кат.
MIPSfpga и прерывания
2017-03-27 в 11:59, admin, рубрики: C, fpga, mips, mips assembler, MIPS microAptiv UP, MIPSfpga, SoC, Verilog, Анализ и проектирование систем, программирование микроконтроллеров, системное программированиеВ статье приводится несколько примеров настройки и использования прерываний MIPS32 Release 2, включая подробное описание задаваемой при этом конфигурации, описывается работа с контроллером внешних прерываний.
Весь описываемый код опубликован на github в составе проекта mipsfpga-plus [L3].
Position-independent code (PIC) в разделяемых библиотеках на x64
2017-03-24 в 6:17, admin, рубрики: C, disassembling, linux, pic, shared library, Блог компании Badoo, Компиляторы, Разработка под Linux, системное программирование
Привет, я все еще Марко и все еще системный программист в Badoo. На прошлой неделе я опубликовал перевод о PIC в шареных библиотеках, но есть вторая часть – про разделяемые библиотеки на х64, поэтому решил не оставлять дело незаконченным.
Windows hook: просто о сложном
2017-03-23 в 14:28, admin, рубрики: C#, c++, dll, Блог компании ICL Services, разработка под windows, С++, системное программирование, хукЧто такое хук?
Что такое хук функций и для чего он нужен? В переводе с английского «hook» — ловушка. Поэтому о назначении хуков функции в Windows можно догадаться — это ловушка для функции. Иными словами, мы ловим функцию и берем управление на себя. После этого определения нам открываются заманчивые перспективы: мы можем перехватить вызов любой функции, подменить код на свой, тем самым изменив поведение любой программы на то, которое нам нужно (конечно, в рамках определенных ограничений).
Целью данной статьи является демонстрация установки хука и его непосредственная реализация.Читать полностью »
Запись при чтении в postgresql: скандалы, интриги, расследования
2017-03-23 в 13:09, admin, рубрики: monitoring, performance optimization, postgresql, Блог компании okmeter.io, высокая производительность, Программирование, системное программированиеЯ уже рассказывал про мониторинг запросов postgresql, в тот момент мне казалось, что я полностью разобрался, как postgresql работает с различными ресурсами сервера.
При постоянной работе со статистикой по запросам постгреса мы начали замечать некоторые аномалии. Я полез разбираться, заодно очередной раз восхитился понятностью исходного кода постгреса:)
Под катом небольшой рассказ о неочевидном поведении postgresql.
Разработка R&D-проектов продолжается: запуск Wolfram Language 11.1
2017-03-22 в 9:35, admin, рубрики: api, wolfram language, wolfram mathematica, wolframscript, Алгоритмы, Блог компании Wolfram Research, внешние сервисы, математика, машинное обучение, нейронные сети, Облачные вычисления, облачные сервисы, открытые данные, Программирование, системное программирование, функциональное программирование
Перевод поста Стивена Вольфрама (Stephen Wolfram) "The R&D Pipeline Continues: Launching Version 11.1".
Выражаю огромную благодарность Полине Сологуб за помощь в переводе и подготовке публикации
Содержание
— Небольшой релиз — тоже неплохо
— Визуальные изменения
— Множество новых функций
— Нейросети
— Машинное обучение
— Аудио
— Изображения и визуализация
— Больше данных
— Интегрированные внешние сервисы
— Больше математики, больше алгоритмов
— Детализация дат
— Настройка языка
— Язык хранения
— Программирование на низком уровне
— Укрепление инфраструктуры
— И еще кое-что
Небольшой релиз — тоже неплохо
Я рад сообщить о том, что сегодня вышла версия 11.1 языка Wolfram Language (и системы Wolfram Mathematica). На данный момент, версия 11.1 уже работает в Wolfram Cloud, а Desktop-версии уже доступны для загрузки для Mac, Windows и Linux.
Что нового в версии 11.1? На самом деле много чего. Если кратко:
В ней очень много нового. Можно подумать, что релиз .1 спустя почти 29 лет после выхода версии 1.0 вряд ли удивит. Однако в случае с нашей компанией дела обстоят иначе. С тех пор, как мы построили весь стек доступных сейчас технологий, мы лишь ускоряемся в своем развитии. И теперь даже в версии 11.1 представлено множество новых функциональных возможностей.
Читать полностью »