В операционных системах Unix/Linux мы различаемся между пользовательским пространством и пространством ядра. Это всего лишь синонимы для пользовательского пространства и к которому принадлежит ядро
Вы можете понять это следующим образом. Вы можете взаимодействовать со всем, что происходит в пользовательском пространстве. Что не так в пространстве ядра. Демоны, библиотеки и приложения принадлежат пользовательскому пространству. Весь код, который выполняется вне ядра операционной системы, принадлежит пользовательскому пространству (userland).
Пространство ядра - это то место, где выполняется само ядро. Это ограниченная область, к которой не имеет доступа даже root. Но пользователь root может манипулировать некоторыми параметрами ядра через интерфейс, предоставляемый ядром (procfs, sysfs).
Системная память является хорошим примером для объяснения разницы между пространством ядра и пользовательским пространством. Демону (который запускается в пользовательском пространстве) требуется некоторая память для запуска. Кернел управляет всей доступной памятью. Демон получает некоторую "виртуальную память" от кернела, где демон не знает, является ли это физической памятью, или местом подкачки, или чем-то ещё. Именно кернел определяет, какую память получает процесс. Потому что управление памятью происходит в пространстве кернела. Другие вещи, которые происходят в пространстве ядра, это планирование процессов, межпроцессное взаимодействие, защита и управление памятью, системные вызовы...
Что такое пользовательское пространство?
Итак, пользовательское пространство - это то, что делает (или может сделать) демон при взаимодействии с операционными системами (ввод/вывод, сеть, память, время вычислительного процессора). Эти рессурсы скрыты от процесса в пространстве ядра.
Короткий ответ:
Это то, чем является кабина пилота самолета.
Я серьезно сомневаюсь, что sudo iptables -P INPUT DROP
приводит к появлению заканчивающегося правила DROP. На самом деле, -P
устанавливает политику, и политика находится в заголовках таблицы:
sudo iptables -L
Chain INPUT (policy DROP)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Что вы могли сделать, так это sudo iptables -A INPUT -j DROP
, которые действительно производят эффект, который вы видели:
➜ src sudo iptables -A INPUT -j DROP
➜ src sudo iptables -L
Chain INPUT (policy DROP)
target prot opt source destination
DROP all -- anywhere anywhere