리눅스에서 "실행 중인 프로그램"은 모두 **프로세스(process)**다. 우리가 ls를 치는 순간, 셸은 새 프로세스를 만들어 ls 프로그램을 그 안에서 돌린다. 디스크에 잠자고 있는 실행 파일(프로그램)과, 메모리에 올라와 CPU를 받아 동작하는 프로세스는 구분해야 한다. 프로그램은 명사, 프로세스는 동사다.
오늘은 프로세스를 식별하는 번호(PID/PPID)부터, 그 상태를 들여다보는 도구(ps·top·htop·pgrep·pstree), 프로세스에게 말을 거는 유일한 수단인 시그널(kill·killall), 그리고 누가 CPU를 더 먼저 받을지 정하는 우선순위(nice·renice)까지 한 번에 꿴다. 이 네 축이 리눅스마스터 1급 프로세스 영역의 거의 전부다.
모든 프로세스는 태어날 때 고유한 번호 **PID(Process ID)**를 부여받는다. 그리고 자신을 만든 부모 프로세스의 번호 **PPID(Parent PID)**를 함께 가진다. 즉 리눅스의 모든 프로세스는 가계도(tree)를 이룬다.
이 나무의 뿌리는 PID 1번이다. 전통적 init 시스템에서는 init, 현대 시스템에서는 systemd가 1번을 차지한다. 부팅 직후 커널이 직접 띄우는 첫 사용자 공간 프로세스이며, 모든 프로세스의 조상이다.