Рубрика «virtual machine»

Всем привет! Меня зовут Ефимов Михаил, я профессиональный разработчик с 2010 года и начинающий contributor в CPython.

Итак, название статьи говорит, что генераторные выражения сломаны. О чем вообще речь? Посмотрим на такой код, не содержащий никаких import:

g = (x for x in range(10))
g.gi_frame.f_locals['.0'] = range(20)
list(g)

Устанавливаем с официального сайта новенький Python 3.13.0. Запускаем интерпретатор в режиме консоли, копируем в консоль эти строки кода, ожидаем увидеть содержимое списка...

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

image1.png

QEMU – достаточно известное приложение для эмуляции. Статический анализ может помочь разработчикам таких сложных проектов, как QEMU, отлавливать ошибки на раннем этапе и в целом повысить его качество и надёжность. В этой статье будет проверен исходный код приложения QEMU на потенциальные уязвимости и ошибки с помощью инструмента статического анализа PVS-Studio.
Читать полностью »

Umka. Жизнь статической типизации в скриптовом языке - 1

В своё время посты на Хабре и Reddit о статически типизированном скриптовом языке Umka вызвали весьма активную дискуссию.

Прошедшие полтора месяца позволили мне избавиться от некоторых заблуждений, развить язык и дать чуть более вразумительные ответы на вопросы публики. Как и следовало ожидать, наиболее серьёзное испытание выпало на долю самой концепции статической типизации. Она осталась в основе языка, но потребовала компромиссов — в частности, для корректной сборки мусора.

Появились первые замеры быстродействия интерпретатора в сравнении с Wren и Python — их результаты внушают оптимизм. Наконец, родился более реалистичный пример использования Umka по его основному назначению, т. е. как встраиваемого языка.
Читать полностью »

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

Но давайте обо всем по порядку.

Предыстория

Вы любите программирование? Не тот рутинный энтерпрайз-кодинг, которым многие из нас вынуждены заниматься 40 часов в неделю, борясь с прокрастинацией, вливая в себя литры кофе и профессионально выгорая; а программирование — ни с чем не сравнимый волшебный процесс трансформирования мыслей в работающую программу, получение наслаждения от того, что только что написанный тобой код воплощается на экране и начинает жить той жизнью, которой велит ему создатель. В такие моменты слово "Создатель" хочется написать с большой буквы — настолько чувство, возникающее в процессе, иногда бывает близко к благоговению.

Под капотом Screeps — виртуализация в MMO-песочнице для программистов - 1

Жаль лишь, что совсем немного реальных проектов, связанных с каждодневным заработком, могут предложить своим разработчикам такие чувства. Чаще всего для того, чтобы не терять страсть к программированию, энтузиастам приходится затевать интрижку на стороне: программистское хобби, пет-проект, модный open-source, просто скрипт на питоне по автоматизации своего умного дома… или поведения персонажа в какой-нибудь популярной онлайн-игре.

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

Сейчас речь пойдет об установке в различных вариантах такого небезызвестного дистрибутива линукса — Arch Linux. На момент написания статьи он занимает на distrowatch почётное 12-е место по количеству поисковых запросов за 6 месяцев с почётной средней оценкой самого дистрибутива 9.3/10. Многие считают его настоящим линуксом, для настоящих программистов, но знаменит он в первую очередь не этим, а своим нетривиальным процессом установки. Запуская загрузочный носитель пользователь в первую очередь видит отнюдь не привычный интерфейс в стиле «нажмите сюда, чтобы установить X», а большое черное окно в мир линукса.

Методы проб и установки Arch Linux - 1

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

vCloud Director - 1

Привет!
Мы обновили платформу VMware vCloud Director с версии 8.10 до 8.20.

Что нового и какие особенности у версии 8.20? Ответ на этот вопрос вероятно интересует тех, кто ранее уже пользовался облаками по модели IaaS (Infrastructure-as-a-Service) и знаком с продуктом vCloud Director. Мы расскажем об этом во второй половине нашей статьи, но прежде нам хотелось бы дать краткий обзор модулей и компонентов vCloud Director для менее опытных в вопросах виртуализации читателей.

Что нам стоит vЦОД построить?

VMware vCloud Director — это платформа, которая позволяет создавать программно-определяемые, виртуальные центры обработки данных, преобразуя физические ЦОДы в эластичные пулы вычислительных ресурсов, которые конечным потребителям предлагается использовать по различным моделям распределения и потребления. vCloud Director имеет панель управления, которая помогает провайдерам облачных услуг делегировать некоторые из повседневных IT-операций своим клиентам.

Все физические ресурсы дата-центра, такие как вычислительные мощности, диски и сети, объединяются в большие пулы виртуальных ресурсов. В дальнейшем части этих ресурсов предоставляются в виде «сборных» vЦОДов, которые выделяются для арендаторов (tenants).

VCloud Director использует VMware vCenter и VMware vSphere для преобразования физических вычислительных ресурсов и ресурсов хранения в виртуальные пулы, а NSX/vCNS для создания виртуальных сетей с различной топологией.
vCloud Director - 2Читать полностью »

Как JVM аллоцирует объекты? - 1 Как JVM создает новые объекты? Что именно происходит, когда вы пишете new Object()?

На конференциях периодически рассказывают, что для аллокации объектов используются TLAB'ы (thread-local allocation buffer): области памяти, выделенные эксклюзивно каждому потоку, создание объектов в которых очень быстрое за счет отсутствия синхронизации.

Но как правильно подобрать размер TLAB'а? Что делать, если нужно выделить 10% от размера TLAB'а, а свободно только 9%? Может ли объект быть аллоцирован вне TLAB'а? Когда (если) обнуляется выделенная память?
Задавшись этими вопросами и не найдя всех ответов, я решил написать статью, чтобы исправить ситуацию.

Перед прочтением полезно вспомнить как работает какой-нибудь сборщик мусора (например, прочитав этот цикл статей).

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

Всем доброго времени суток! Меня зовут Константин, в Badoo я работаю в команде Features Team. Скорее всего, вы уже знаете, что наш бэкенд написан на PHP и обслуживает более трёх сотен миллионов пользователей. Так что я не мог упустить шанс перевести эту статью core-разработчика PHP Никиты Попова. Уверен, она будет полезна разработчикам всех уровней, но новичкам может показаться сложноватой. Приятного (и полезного) чтения!

Виртуальная Машина PHP 7 - 1

В статье представлен обзор виртуальной машины Zend для PHP 7. Это не исчерпывающее описание, но я постараюсь охватить большинство важных частей, а также некоторые детали.

Описание сделано на основе PHP версии 7.2 (в настоящее время находится в разработке), но почти всё справедливо и для PHP 7.0/7.1. Однако отличия от виртуальных машин серии PHP 5.x являются значительными, и с ними я, как правило, не проводил параллели.
Читать полностью »

Неуловимые баги: ошибки, ускользнувшие от всех тестов и проверок - 1

Даже в относительно простых продуктах изредка встречаются баги, которые успешно скрываются от любых тестов и попадают в релиз. И чем сложнее приложение, тем выше вероятность появления таких багов. В продуктах, содержащих миллионы строк кода, вообще нереально выловить все ошибки, можно лишь максимально снизить их поголовье к выпуску очередной версии. И после релиза такие баги иногда дают о себе знать. О том, как мы охотимся за нинзя-багами и чем мы их лечим, нам рассказал Александр Гречишкин, project manager Parallels.Читать полностью »

Разрабатывая разные устройства, очень часто получаешь проблему: алгоритм от устройства к устройству местами повторяется, а сами устройства полностью разные. У меня три разрабатываемых устройства, которые местами повторяют функционал друг друга, в них используются три разных процессора (три разные архитектуры), но алгоритм один. Чтобы хоть как-то все унифицировать, было задумано написать минимальную виртуальную машину.

Виртуальные машины и микроконтроллеры - 1
Читать полностью »


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