в Linux запущенный экземпляр программы называется процессом, и он запускается в собственном пространстве памяти каждый
раз, когда вы выполняете команду, новый процесс запускает процесс, это активный объект, и это означает, что
двоичный код выполняется в оперативной памяти в В отличие от программы или комментария, который
считается пассивным объектом, это просто файл на диске. Одна программа или комментарий
может создать множество процессов при многократном запуске. Просто представьте, что вы хотите скопировать два больших файла
и запускаете cp один раз для каждого файла каждый экземпляр запущенной команды является процессом, но
не все комментарии создают процесс в начале курса. Я сказал, что в командах linux есть два типа
комментариев, которые являются исполняемыми файлами на диске и встроенной оболочкой. -в комментариях,
чтобы проверить, является ли команда исполняемым файлом или встроенной оболочкой, используйте тип тип команды
ls ls - тип исполняемого файла тип rm тип cp
type type - встроенная оболочка или тип cd cd - встроенный тип оболочки umask и так включен
только при запуске команды, которая является исполняемым файлом, новый процесс создается,
если запущена встроенная команда оболочки, в Linux процесс не создается, каждый процесс имеет идентификатор процесса,
а также связан с конкретным пользователем и группой, которую процесс имеет права доступа
этого пользователя и группы, если исполняемый файл, представляющий команду, не имеет
установленного бита suid, тогда процесс имеет разрешение пользователя, который его выполняет, это
нормальное поведение и очень важно для безопасности всей системы,
если непривилегированный пользователь запускает комментарий, например cat, процесс, который запускается, имеет те же права, что
и непривилегированный пользователь, выполняющий комментарий в этом примере, комментарий cat не был разрешен
для просмотра теневого файла, потому что пользователь-ученик, запустивший комментарий, не иметь это
разрешение, пользователь-студент не имеет разрешения, но если двоичный файл, представляющий команду
, имеет установленный бит suid, тогда процесс имеет разрешения владельца двоичного файла
нет независимо от того, кто выполняет комментарий, я углубился в разрешения и svid
в предыдущем разделе, посмотрите там, если вам нужно короткое резюме,
например, если пользователь запускает команду пароля, процесс имеет root-доступ, потому что двоичный
файл имеет бит suid установлен и принадлежит root, это очень важно с точки зрения процессов и
безопасности системы, если вы задаетесь вопросом, почему Linux более безопасен, чем Windows, и нет вирусов, то
это ответ, как правило, любое вредоносное ПО или вирус, который устанавливает пользователь, будет иметь права пользователя
в система, и они чрезвычайно ограничены, просто чтобы прояснить мою точку зрения, давайте предположим, что вирус попадает
в систему и хочет удалить все файлы, которые пользователь, которого обманули, чтобы установить вирус
, не является корневым, это непривилегированный пользователь, это Linux принцип, который гласит, что вы не должны
использовать root для общих действий, таких как просмотр веб-страниц, чтение почты или редактирование документов. Фактически во
многих дистрибутивах, таких как ubuntu, вход в систему root отключен, поэтому я имитирую s axovirus и попробуйте удалить
все файлы конфигурации. Я вошел в систему как непривилегированный пользователь по имени student, так что rm минус
rf и звездочка. Я хочу удалить все файлы, которые я нажимаю Enter, не опасаясь, так
как вы видите, что ничего не произошло. комментарий так что возможный вирус не может сделать ничего
вредного для системы, вы можете заменить rm чем угодно, что хотите, давайте продолжим и поговорим
о родительских и дочерних процессах в Linux, все процессы в операционной системе создаются, когда
другой процесс выполняет систему вилки звоните есть исключение, которое является первым процессом,
который начинается, когда система загружается и рекс инициализации или Systemd и имеет идентификатор процесса 1.
это в нем первый процесс, который начинается, и имеет идентификатор процесса 1. процесс, который использовал
Системный вызов fork - это родительский процесс, и созданный процесс обменивается другими словами,
родительский процесс - это процесс, который создал один или несколько дочерних процессов, у родительского процесса может быть
несколько дочерних процессов, но дочерний процесс имеет только один родительский процесс, когда вы выполняете комментарий,
например, ls или кто создается новый процесс, и оболочка, которая обычно является bash, является его родительским,
поэтому bash был родительским процессом, другие типы процессов являются зомби и сиротскими процессами, которые
операционная система поддерживает таблица, которая связывает каждый процесс с данными, необходимыми
для его функционирования, когда процесс завершает свое выполнение, операционная система высвобождает
большую часть ресурсов и информации, связанных с этим процессом, завершенный процесс, данные которого
не были собраны, называется зомби или несуществующий процесс, обычно зомби процессы
быстро удаляются из памяти и не используют какие-либо системные ресурсы. Сиротские процессы
- это ситуация, противоположная процессам-зомби, ссылающимся на случай, когда очевидный процесс unix
завершается до того, как его дочерние процессы. Это ситуация, когда вы закрываете терминал,
пока еще есть процессы, запущенные в нем, я выполняю команду, которая займет много времени,
и я закрываю терминал, ls по умолчанию команда стала "осиротевшей" все эти процессы
получат сигнал зависания и будут завершены, мы поговорим о сигналах позже в этом разделе,
есть также возможность быть принятым другим процессом, таким как init или systemd,
мы поговорим об этом в другой лекции когда мы обсудим комментарий nohap в контексте
процессов, вы также услышите термин поток. В чем разница между потоком и процессом. В
одном процессе могут существовать несколько потоков, и они совместно используют ресурсы, такие как память, в то время как
разные процессы делают не делиться этими ресурсами, давайте рассмотрим мировой редактор, который запускает это
процесс. Примеры потоков в одном процессе - автоматическая проверка орфографии, автоматическое сохранение
файла во время записи и, возможно, автоматическое завершение - это в основном подпроцессы, которые выполняются
в том же контексте памяти, что и один процесс и сделать приложение отзывчивым, потоки
могут совместно использовать одни и те же данные при выполнении, теперь, когда вы знаете, что такое процесс и поток возможно,
вам интересно, что такое задача, хотя термин задача больше используется в Windows, в Linux есть
комментарии, такие как вкладка, которые иногда вызывают задачи процессов, поэтому задачи и процессы являются синонимами