Почему Wine не может запускать драйверы ядра -режима (кольца 0 )в контейнере?

Вы путаете уровни драйверов устройств и уровни IP стека.

На уровне IP 127.0.0.1 — это просто еще один IP-адрес, который обрабатывается одинаково.

На уровне драйвера пакеты, отправляемые через петлевой интерфейс, «просто и немедленно передаются обратно вверх по стеку сетевого программного обеспечения», а не отправляются на сетевую карту.

Эта концепция не является специфичной для ОС; различные ОС используют одну и ту же концепцию.

2
22.09.2020, 22:16
1 ответ
  • Кольцо x86 0 = режим супервизора = режим ядра
  • Кольцо x86 3 = режим пользователя

Контейнеры Docker и демон docker запускаются в пользовательском режиме. Контейнеры совместно используют ядро ​​с хост-системой. Docker использует новые функции ядра точно так же, как другие программы используют старые функции ядра.

Если вы запускаете код в режиме супервизора, он запускается в ядре и имеет божественную власть над всеми вашими процессами и данными.

Однако вы можете запускать код в режиме виртуального супервизора (с помощью виртуального ящика или других визуализаторов ). Для этого вы помещаете всю систему в виртуальную машину,не только части пользовательского режима. Поэтому вы можете добавить код режима ядра.

Обратите внимание :Если вы устанавливаете код режима ядра, он получает ПОЛНЫЙ контроль над вашей машиной. Он может видеть все, что вы делаете, и контролировать вашу машину, чтобы она делала все, что захочет.

1
18.03.2021, 23:03

Теги

Похожие вопросы