SDCast #74: и вновь Павел Аргентов, бэкенд-разработчик в компании Evrone

Встречайте 74-й выпуск SDCast’а, в котором идёт речь про Unikernel, MirageOS и вообще концепцию Virtual Library Operating System. У меня в гостях вновь Павел Аргентов, бэкенд-разработчик в компании Evrone, практикующий fp-программист.

В начале мы поговорили про традиционные подходы к развертыванию приложений: от физических серверов к гипервизорам с виртуалками и до контейнеров приложений. Обсудили разные ограничения этих подходов, плюсы и минусы. А дальше мы подошли к идеи Unikernel aka Library Operating Systems.

Обсудили саму концепцию Unikernel, что это за подход, что такое Library Operating Systems, как оно устроено и работает. Паша рассказал о том, какие основные плюсы у данного подхода по сравнению с традиционными, а так же и какие есть минусы.

Далее мы подробно поговорили про одну из реализаций Unikernel под названием “MirageOS”. Паша рассказал про архитектуру и внутреннее устройство MirageOS, из каких слоёв и компонентов оно состоит, какие предоставляет интерфейсы и инструменты для разработчика. Пообщались о том, как разрабатывать приложения на базе MirageOS, какие есть ограничения, как и во что собирается итоговое приложение и какие есть возможности деплоя.

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

Читать далее

SDCast #69: в гостях Михаил Белопухов, разработчик OpenBSD

Всё что вы хотели узнать о OpenBSD и даже намного больше информации ждёт вас в 69-м выпуске SDCast’а! У меня в гостях Миша Белопухов, разработчик OpenBSD.

В начале Миша рассказал про то, как он сам познакомился с OpenBSD, как начал изучать операционные системы и как его интерес неожиданно превратился во вполне оплачиваемую работу :)

Миша адаптировал OpenBSD для работы на различном железе и в различном окружении, в том числе и виртуальном, поэтому он портировал разные драйвера устройств. Миша рассказал интересные истории из своего опыта портирования, как работают различные драйверы, механизмы взаимодействия с железом и ядром ОС.

Обсудили мы и в целом операционную систему OpenBSD, как она устроена, на каких принципах построена, как работает ядро системы, драйвера и user space код.

Обсудили вопросы, связанные с безопасностью и защищенностью, как самой ОС, так и прикладного кода, работающего в системе. OpenBSD известна своим слоганом “Secure by Default” и тем, что вопросам безопасности там уделяется большое внимание. Миша рассказал про различные подсистемы обеспечения безопасности, применяемые в OpenBSD, такие как:

  • Рандомизация адресного пространства ядра, KARL (Kernel Address Randomized Link)
  • Рандомизация размещения адресного пространства, ASLR (address space layout randomization)
  • strlcpy() и strlcat() – нестандартные функции, созданные в качестве замены часто используемых некорректным образом аналогов стандартной библиотеки
  • fork+exec, PIE, pledge и другие.

Отдельно поговорили о криптографических алгоритмах, способах их реализации с использованием возможностей современных процессоров, таких как SIMD, а так же о их применении в SSH и SSL.

Читать далее

SDCast #15: в гостях Андрей Вагин

sd-podcast-logo Все, что вы хотели узнать про виртуализацию и даже больше в 15-м выпуске SDCast’а. У меня в гостях Андрей Вагин, разработчик в компании Parallels, один из разработчиков проектов OpenVZ & CRIU.

В этом выпуске мы обсуждаем какие типы виртуализации существуют на данный момент, когда и с чего все началось, какие сейчас есть продукты на этом рынке. Немного углубляемся в проекты OpenVZ и особенно CRIU. Кстати, для тех, кто не в курсе, CRIU расшифровывается как checkpoint/restore in user space, это технология, позволяющая замораживать и переносить живые процессы, не теряя данных и даже не разрывая сетевых соединений.

Андрей рассказывает о том, как появилась идея проекта, какие цели и задачи проект преследует и каким образом эти самые цели достигаются. Так же затрагиваем аспекты, связанные с opensource: патчи в ядро linux для получения необходимой функциональности, сообщество, сложившееся вокруг проекта и вклад сторонних компаний, заинтересованных в проекте.

Читать далее