###### tags: `netology` `security`
# Домашнее задание к занятию «Программирование на Go - основы языка и типовые конструкции»
1. Какое сообщение выводится, если вы указали несуществующий PID?
`no such process`
---
2. Что происходит с процессом, при отправке сигнала syscall.SIGKILL?
Процесс завершается, выводится сообщение `Killed`
---
3. Что происходит с процессом, при отправке сигнала syscall.SIGSEGV?
Процесс завершается, выводится сообщение `Segmentation fault (core dumped)`
---
4. Что выведет программа killer, если попытаться отправить сигналы PID = 1? Что это за процесс с PID = 1?
`operation not permitted`
Это init процесс, родительский
---
5. Что произойдёт*, если запустить nano с помощью sudo, а killer от лица обычного пользователя?
killer output: `operation not permitted`
process output: ничего, процесс жив
---
6. Что произойдёт*, если запустить nano с помощью sudo и killer с помощью sudo (sudo ./killer)?
killer output: `<nil>`
process output: `Killed` / `Segmentation fault (core dumped)`
Процесс завершится как в пп. 2 и 3
---
7. Что произойдёт, если попытаться отправить сигналы PID = 1 с помощью sudo (sudo ./killer)?
Ничего. В Linux есть механиз защиты от завершения init процесса. `man 2 kill`
---
8. Проведите небольшое исследование и выясните, за что отвечают сигналы SIGKILL и SIGSEGV
SIGKILL - используется для немедленного завершения процесса, эдакий `АЗ-5`
SIGSEGV - используется при попытках обращения к несуществующей области памяти или при обращениях с нарушением прав доступа.