Когда вы начинаете изучение чего угодно вы сталкиваетесь с абстракциями — они помогают убрать отдельные сложности и/или неточности присущие реальным вещам. Из-за этого перед погружением в “глубь” материала вы становитесь способны понимать почему механизмы реализованы именно так, а не по другому.
Похожая логика встречается и тогда, когда вам нужно некое изолированное пространство(будь то окружение в компьютере или окружение для естественнонаучного эксперимента). В таком случае вы сможете сделать полезную работу изначально опираясь на какие-то гарантии.
Как я уже сказал абстракции это достаточно распространенный способ описать что-то. В свою очередь в компьютерных технологиях вы будете куда чаще слышать понятие виртуализация, которое под собой скрывает не что иное как абстракции. В частности виртуальная память, регистры, файберы это все абстракции внутри операционной системы облегчающие вашу работу с ней.
Про многие из этих абстракций вы говорили на курсе АКОС и подобных. Поэтому сегодня мы не будем на них останавливаться, а оставим за скобками.
Контейнеры это yet another слой абстракций в операционных системах. Во многих задачах вам может понадобиться “чистое” окружение — не обремененное тысячами установленных когда-то зависимостей, нагрузкой сторонних процессов и прочим. Для этого существует специальный инструмент “зашитый” в операционную систему, который называется cgroups. Но перед этим нам стоит поговорить о том как организован контроль над ресурсами в Linux(потому что именно на нем большинству из вас предстоит вести свою разработку).
У каждого инстанса существует 7 пространств имен
/proc — специальной файловой системе.CGroup расшифровывается как control group и позволяет ограничивать для группы доступы к ресурсам(CPU, память, сеть, etc.).
Наличие такого функционала поможет нам избежать критических проблем с избыточным использованием ресурсов