Облака и операционные системы
Just code ITУдивительно, как развитие одного сегмента индустрии расходится кругами, затрагивая все больше других сегментов. Это была подводка к тому, чтобы рассказать, как облака (cloud computing) влияют на развитие операционных систем.

Можно сформулировать три вектора
Вектор 1, обывательский
Новые релизы старых систем все больше ориентированы на:
1) запуск в виртуализационной среде,
2) запуск виртуализации внутри,
3) запуск в качестве хоста в облачной инфраструктуре.
Только отгремел GA для RHEL9, и мы читаем про его фичи — «This release is designed to meet the needs of the hybrid cloud environment». А выражается это во встроенных мониторингах, которые сразу льют инфу в подготовленный dashboard Grafana, дальнейшем развитии UBI (Universal Base Image) и Image Builder-е для построении образов, которые «compatible with major cloud providers and virtualization technologies».
Вектор 2, хостовый
Эта история про то, как взять операционку и вышвырнуть из нее все, что не относится к запуску виртуализации. Ну ладно-ладно, может не вышвырнуть, может написать с нуля свой новый урезанный функционал. Не гипервизор первого типа, но где-то близко к тому.
Здесь из академической среды и стартапов история обрела поддержку гигантов. Урезанный Chromium под именем Google Container Optimized OS и AWS Bottlerocket уже вытеснили много других систем, часть из которых уже ныне покойна — RancherOS, Atomic, VMware Photon. А все ради того, чтобы уменьшить объем кода, число потенциальных vulnerabilities и лишних time-consuming процессов. Да здравствует safety, security, performance и maintainability и все в одном!
Вектор 3, гостевой
Это вообще не история, а песня. В 90-х годах оформилась идея libOS, операционной системы как библиотеки. В unikernel (а так называется теперь этот вид систем) не существует разделения на kernel-space и user-space. Производительность и эффективность в обмен на безопасность.
Рождение, как водится, произошло при закрытых дверях в университетах, там же идея и осталась на долгие годы, ибо многое упиралось в разнообразие устройств, портируемость программ, да и с многозадачностью не наигрались тогда. Однако во времена облаков/виртуализации идея нашла новую жизнь — ведь если система работает уже как гость в виртуальной машине, то зачем еще дополнительно в госте изолировать user-space от kernel-space? Да и устройства все стандартные.
Однако эта концепция еще не вошла в полную мейнстримную силу, и мы знаем не так много применений этих систем — NanoVM, LightVM, IBM Nabla, rumprun, OSv, MirageOS, Unikraft.
Но как знать — может уже сейчас в недрах Microsoft зреет новое архитектурное решение, которое изменит наш взгляд на операционные системы (в который раз).