Архив за 03 марта 2016 - 5

Синхронизация нужна в любой малтитредной программе. (Если, конечно, она не состоит из локлесс алгоритмов на 100%, что вряд ли). Будь то приложение или компонента ядра современной операционной системы.

Меня всё нижесказанное, конечно, больше волнует с точки зрения разработки ядра ОС. Но почти всё применимо и к пользовательскому коду.

Кстати, ядра старых ОС в примитивах синхронизации не нуждались, поскольку преемптивной мультизадачности внутри ядра в старые добрые времена не было. (Уж за Юникс 7-й версии я отвечаю. Не было.) Точнее, единственным методом синхронизации был запрет прерываний. Но об этом позже.

Сначала перечислим героев. Мне известны следующие примитивы синхронизации:

User/kernel mode: mutex+cond, sema, enter/leave critical section.
Kernel only: spinlock, управление прерываниями.

Зачем всё это нужно, читатель, наверное, знает, но всё же уточним.

Если некоторая структура данных может быть доступна двум параллельно работающим нитям (или нити и прерыванию), и являет собой сущность, к которой нельзя обеспечить атомарный доступ, то работу с такой структурой нужно производить так, чтобы только одна нить одновременно выполняла сложные манипуляции состоянием структуры.
Читать полностью »

29 февраля начался приём предзаказов на очки виртуальной реальности HTC Vive, которые поступят в магазины в апреле по цене $799. Одной из особенностей этих очков является уникальная программа 3D-рисования Tilt Brush от компании Google.

Программа создаёт поразительные вещи в виртуальной реальности: вы можете рисовать анимационных персонажей, строить дома, обставлять комнату мебелью. Некоторые называют Tilt Brush убийственным приложением, которое сильно расширяет сферу применения шлемов VR. По отзывам бета-тестеров, графический 3D-редактор очень удобен и интуитивно прост в использовании.


Читать полностью »

18 февраля в Москве, мы традиционно провели нашу ежегодную конференцию по решениям Microsoft в области управления жизненным циклом разработки программного обеспечения. В этом году ALM Summit состояла из основного трека и круглых столов, на которых были затронуты следующие тематические направления:

  • Инфраструктурные решения ALM в облаке, которые позволяют быстро развернуть комплекс ALM инструментов и в считанные часы запустить проект.
  • Методологические рекомендации по ведению проектов, SCRUM, Kanban, Agile, сбор информации о ходе проекта, ее анализ и отчетность.
  • Обеспечение качества разрабатываемых систем с помощью тестирования, как построить эффективную среду тестирования с помощью инструментов Team Foundation Server и Team Foundation Services в облаке.
  • Эксплуатация разрабатываемых систем, обеспечение обратной связи для повышения качества.

Как обычно, мы транслируем и записываем конференцию.

И рады сообщить, что записи доступны для просмотра!
Читать полностью »

Основной особенностью нового смартфона LG G5 является его разъём Magic Slot, к которому можно подключить различные модули. Один из них — модуль Hi-Fi Plus, созданный при участии B&O Play. В его активе ЦАП Sabre ES9028C2M и ОУ Sabre9602c.

Школьник из Южной Каролины взял у учительницы телефон, нашёл на нём обнажённые фотографии и поделился ими со своими друзьями. Теперь проблемы у учительницы, а не у её ученика.

image
Читать полностью »

Компания Intel последнее время даёт понять, что намерена расширять сферу своих интересов. Одним из новых для процессорного гиганта направлений станет дополненная реальность.

Как сообщает ресурс The Wall Street Journal, ссылаясь на осведомлённые источники, Intel работает над собственной гарнитурой дополненной реальности. В ней будет использоваться технология RealSense, которую Intel на данный момент активно продвигает в различных сегментах.

В нашем проекте PT Application Inspector реализовано несколько подходов к анализу исходного кода на различных языках программирования:

  • поиск по сигнатурам;
  • исследование свойств математических моделей, полученных в результате статической абстрактной интерпретации кода;
  • динамический анализ развернутого приложения и верификация на нем результатов статического анализа.

Наш цикл статей посвящен структуре и принципам работы модуля сигнатурного поиска (PM, pattern matching). Преимущества такого анализатора — скорость работы, простота описания шаблонов и масштабируемость на другие языки. Среди недостатков можно выделить то, что модуль не в состоянии анализировать сложные уязвимости, требующие построения высокоуровневых моделей выполнения кода.

Теория и практика парсинга исходников с помощью ANTLR и Roslyn - 1
К разрабатываемому модулю были, в числе прочих, сформулированы следующие требования:

  • поддержка нескольких языков программирования и простое добавление новых;
  • поддержка анализа кода, содержащего синтаксические и семантические ошибки;
  • возможность описания шаблонов на универсальном языке (DSL, domain specific language).

В нашем случае все шаблоны описывают какие-либо уязвимости или недостатки в исходном коде.

Весь процесс анализа кода может быть разбит на следующие этапы:

  1. парсинг в зависимое от языка представление (abstract syntax tree, AST);
  2. преобразование AST в независимый от языка унифицированный формат;
  3. непосредственное сопоставление с шаблонами, описанными на DSL.

Данная статья посвящена первому этапу, а именно: парсингу, сравнению функциональных возможностей и особенностей различных парсеров, применению теории на практике на примере грамматик Java, PHP, PLSQL, TSQL и даже C#. Остальные этапы будут рассмотрены в следующих публикациях.
Читать полностью »

Популярная в Android-среде СУБД SQLite позволяет организовывать удобные хранилища данных, её возможностей достаточно для многих приложений, но не для тех, что работают с информацией, которую надо защищать.

Компиляция SQLCipher для Android x86 - 1

Если ваш проект из этой серии, скажем, вы создаёте программу для хранения паролей и пользуетесь SQLite, дополнительные меры безопасности будут очень кстати. Одна из таких мер – шифрование.
Читать полностью »

На прошлой неделе «Доктор Веб» выпустил антивирусного бота для Telegram. Я, как непосредственный участник этого проекта, хотел бы от лица всей команды рассказать о том, зачем мы сделали этого бота, как он работает и пора ли уже отказываться от настольного антивируса.

Антивирусный бот для Telegram - 1
Читать полностью »

Магия тензорной алгебры: Перезагрузка - 1

С июня по август прошлого, 2015 года, на Хабре мною были опубликованы 18 статей, озаглавленные "Магия тензорной алгебры". Проект начинался как амбициозная попытка в относительно простой и доступной форме изложить теорию тензорного исчисления с её приложениями к практике.

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

Но беда пришла оттуда, откуда её не ждали.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js