21 апреля, 2024

hleb

Находите все последние статьи и смотрите телешоу, репортажи и подкасты, связанные с Россией.

Linux предназначен для виртуальных машин • Реестр

Linux предназначен для виртуальных машин • Реестр

Водим 2024 Насколько сложно взломать Linux, если вы знаете, что он никогда не заработает на «голом железе»? Дальше, чем любой известный нам поставщик дистрибутивов пытался зайти.

Эта статья является четвертой по счету. рег Выступление FOSS на FOSDEM 2024. В первой части говорилось о проблеме инфляции программного обеспечения, во второй — об истории UNIX, а в третьей — о том, что изобретатели Unix делали дальше: План 9.

В предыдущем разделе доклада я рассказал, почему Plan 9 больше не называется Unix: потому что его совершенно другой дизайн сделал его несовместимым с Unix. Далее она предположила, какими могли бы быть его современные потомки, такие как 9front. делать Совместим не только с Unix вообще, но и с Linux в частности. Не заполняя его слоями совместимости или эмуляторами, а используя микроВМ.

В конце выступления я более подробно рассказал о том, как это может работать. Это то, что я здесь остановлю подробнее, но обратите внимание: это в виде сноски. Основное предложение разговора было рассмотрено в предыдущей статье. Здесь я хочу рассмотреть, что можно сделать с Linux, чтобы он лучше выполнял эту роль, совершенно независимо от каких-либо дискуссий о дизайне хостовой ОС или чего-то в этом роде.

Один из аспектов этой части, который, я надеюсь, заинтересует читателей, заключается в том, что речь идет о взломе дистрибутивов Linux, а не о программировании ядра или гипервизора или каких-либо экстремальных вещах. Эта часть более открыта для экспериментов для всех, кто настроил свой собственный дистрибутив Linux или создал его с нуля.

Принцип проектирования, который объединяет Unix, Linux, BSD и, конечно же, Plan 9, заключается в использовании файловой системы в качестве основного метода не только для хранения, но и для связи между программами и подсистемами. Plan 9 выходит за рамки Unix, поэтому здесь следует сосредоточиться на этом. Это другой тип микроVM, чем существующие, такие как Firecracker от Amazon.

Сегодняшние MicroVM являются частью современной модели микросервисов для разработки веб-приложений, но использование виртуальных машин в качестве своего рода моста совместимости, позволяющего одной операционной системе запускать приложения из другой, представляет собой другой вариант использования. Компоненты архитектуры микросервисов взаимодействуют друг с другом по сети с использованием веб-протоколов. Это не то, что вам нужно для нескольких приложений, работающих на одном компьютере или даже в локальном кластере.

READ  У Starfield знакомое (и раздражающее) лицо Scrolls

Вдохновение: операционная система, предназначенная для работы на виртуальной машине.

Вместо этого мы предлагаем другую концептуальную модель: ту, которую использовала компания IBM, когда изобрела гипервизоры в середине 1960-х годов. Горячей новинкой тогда была идея интерактивных вычислений: люди работали за терминалами, а не показывали колоды перфокарт. Для этого MIT создал совершенно новую операционную систему: Multics, которую сейчас чаще всего вспоминают как источник вдохновения для Unix. IBM предложила другой подход, основанный на уже существующих инвестициях в мейнфреймы.

IBM пришла к тому, чтобы предложить каждому пользователю терминала для его личного интерактивного сеанса виртуальные машины, каждая из которых содержит свой собственный экземпляр операционной системы конечного пользователя, назначенный этому человеку. Вместо того, чтобы переписывать большие, сложные, пакетно-ориентированные операционные системы для мэйнфреймов, чтобы сделать их интерактивными, IBM просто создала временной интервал мэйнфрейма между несколькими меньшими экземплярами специализированной операционной системы, называемой Система мониторинга разговоров, каждый из которых выполняется в своем независимом сеансе. Хотя CMS изначально была разработана для работы на «голом железе», эта версия поставлялась как часть CMS. IBM CB/CMS Он был предназначен для работы внутри виртуальной машины.

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

Linux безголовый и бездисковый

Многие проблемы, с которыми сталкиваются нормальные распределения, исчезают. Для этого не требуется установщик, поскольку образ виртуальной машины — это всего лишь файл. Это не обязательно initrd, потому что хосты мы уже знаем: они виртуальные, поэтому всегда идентичны. Ему не нужно загружаться с диска, потому что он этого не сделает. Владеет Диски: они никогда не будут работать на каком-либо реальном оборудовании, а это означает, что у них нет собственных настоящих дисков. Это также означает, что файловая система на диске не требуется.

Большую часть этого можно сделать, используя существующие инструменты. Например, даже в 1980-х годах было обычным делом устанавливать несколько устройств Unix, таких как Sun Box. /home В НФС. Это все еще возможно с Линукс сегодня Хотя сейчас это встречается реже. Вы даже можете установить Корневой каталог через NFSиметь виртуальную машину без собственных дисков.

READ  Wahoo анонсирует новую беговую дорожку Kickr Run

На более глубоком уровне, чем NFS, System 9 взаимодействует с файловыми системами на диске. Протокол под названием 9p. 9p уже поддерживается непосредственно в ядре Linux в виде v9fs. В Plan 9 9p — это основная часть ядра, но в Linux это просто способ удаленного монтирования файловых систем по сети — но дело в том, что он действительно доступен. В QEMU гостевые виртуальные машины Доступ к каталогам на хосте возможен При использовании v9fs это предполагает сохранение всего корневого каталога на общем файловом ресурсе с размером более 9p. Кимо документы Описывает, как установить Debian таким способом..

Отсутствие виртуальных жестких дисков означает отсутствие форматов дисков или вообще блочное хранилище. Нет необходимости в ext4, Btrfs, ZFS или любой другой файловой системе в ядре. Если вы знаете точную конфигурацию виртуальной машины, на которой будет работать ваша ОС на момент сборки ОС, вы можете скомпилировать только драйверы, необходимые для этой виртуальной машины, и ничего больше, не только делая ядро ​​гораздо меньшего размера, но и позволяя обойтись без него. это. initrd или initramfs. В этом формате существует некоторый уровень техники Бездисковые виртуальные машины Каталог, в который входят запущенные виртуальные машины с хоста iPXEкоторый заменяет загрузчик GRUB.

Выделенный гостевой дистрибутив не требует драйверов устройств, за исключением связи с хост-гипервизором, который может их использовать. virtio Драйверы. Никаких других сетей или чего-либо еще не требуется, никаких устройств ввода-вывода. Вам не нужна поддержка контроллера или буфер кадров, потому что их не будет: эти микроВМ всегда будут безголовыми и могут общаться с хостом через Добродетельный блок управления. Сервер X11, работающий на хосте, позволяет приложениям иметь графический интерфейс пользователя с цветом, звуком и У Wayland есть WayPipe.

Возьмите предыдущее поколение программного обеспечения и упакуйте его.

Почему?

Ну это не так Только О Plan 9. Он может помочь любому, кто использует Linux в виртуализированной инфраструктуре. Помимо Android и, возможно, нескольких миллионов Chromebook, Linux, работающий на «голом железе», сейчас представляет собой небольшую нишу. Подавляющее большинство серверов Linux используют какой-либо гипервизор, даже если он предоставляется другим дистрибутивом Linux.

READ  Cisco Webex Apple Vision Pro теперь доступен

(И это происходит все чаще.) Действия Broadcom с момента приобретения VMware, включая прекращение бесплатной версии, напомнили нам об ошибках, которые Citrix признала и которые привели к быстрому буму XCP-ng. )

Целью этих усилий является то, чтобы дистрибутив, предназначенный для конкретного гипервизора, мог быть очень маленьким и простым. Нет необходимости пытаться обобщить это: у вас может быть одна версия для KVM, одна версия для Xen, одна версия для VMX, независимо от того, что использует этот разработчик. Даже версии для Hyper-V или WSL2: если проблема в этом, ничего страшного.

Помимо Plan 9, безголовые и бездисковые микровиртуальные машины могут переводить приложения Linux в Plan 9 без необходимости эмуляции. Если виртуальная машина хранит все непосредственно в файловой системе исходной ОС, без виртуальных дисков, двоичные файлы Linux консоли могут взаимодействовать с двоичными файлами Plan 9 через файлы, как и любое другое программное обеспечение.

Даже если никто в конечном итоге не заинтересован в создании операционной системы следующего поколения на базе Plan 9, тот же шаблон microVM может обеспечить совместимость приложений Linux с другими операционными системами следующего поколения, освобождая их от бремени обратной совместимости. Перейдите на новую базу, но оставьте важные приложения работающими до тех пор, пока их не заменят.

Linux уже стал зрелым. Итак, в этом отношении существуют основные BSD и даже Windows и macOS. Они больше не меняют это радикально и постоянно сокращают поддержку старых устройств… но огромное количество встроенного кода мешает реальным инновациям.

Я думаю, нам нужно подумать о том, куда мы можем двигаться дальше. в Предыдущий доклад FOSDEM Он сделал более радикальное предложение по созданию операционной системы следующего поколения с использованием аппаратного обеспечения нового поколения. Эти устройства не продавались и были отменены, поскольку их распространению препятствовала устаревшая конструкция операционной системы. На смену ей могут прийти другие типы энергонезависимой оперативной памяти, и собственно об этом в какой-то момент может дойти речь. рег Выпуск. ®