---
# System prepended metadata

title: Домашнее задание к занятию «Программирование на Go - основы языка и типовые конструкции»
tags: [security, netology]

---

###### 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 - используется при попытках обращения к несуществующей области памяти или при обращениях с нарушением прав доступа.
