Что такое процесс в Unix-подобной системе

«Что такое процесс в Unix-подобной системе» — вопрос из категории Linux, который задают на 23% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Процесс в Unix — это экземпляр выполняющейся программы, который включает в себя:

  • Код программы (текстовый сегмент)
  • Данные (стек, куча, статические переменные)
  • Ресурсы (открытые файлы, сокеты, PID)
  • Контекст выполнения (регистры, состояние процессора)

Каждый процесс имеет уникальный PID (Process ID) и работает в изолированном адресном пространстве.

Пример создания процесса в Go:

package main

import (
    "os/exec"
    "fmt"
)

func main() {
    cmd := exec.Command("sleep", "5")  // новый процесс
    err := cmd.Start()
    if err != nil {
        fmt.Println("Error:", err)
    }
    fmt.Printf("Process PID: %dn", cmd.Process.Pid)
}

Процессы могут создавать дочерние процессы через fork() (в Go — через exec.Command). Управляются через сигналы (SIGTERM, SIGKILL).