A process is the abstraction used by UNIX and Linux to represent a running program. It’s the object through which a program’s use of memory, processor time, and I/O resources can be managed and monitored.
It is part of the UNIX philosophy that as much work as possible be done within the context of processes, rather than handled specially by the kernel. System and user processes all follow the same rules, so you can use a single set of tools to control them both.
A process consists of an address space and a set of data structures within the kernel. The address space is a set of memory pages