43 lines
1.6 KiB
Markdown
43 lines
1.6 KiB
Markdown
---
|
|
tags:
|
|
---
|
|
|
|
# User space
|
|
|
|
User space is the portion of the main memory that the kernel allocates for user
|
|
processes.
|
|
|
|
There is a hierarchy within the user space with several different groups of user
|
|
processes:
|
|
|
|
<dl>
|
|
|
|
<dt>Basic services</dt>
|
|
<dd>Run at the bottom level and therefore are closest to ther kernel. Comprises small components that perform single, uncomplicated tasks. Examples include network configuration, the communication bus, and diagnostic logging</dd>
|
|
<dt>Utiility services</dt>
|
|
<dd>The middle level: larger components such as mail, print, and database services</dd>
|
|
<dt>Services controllable by the user</dt>
|
|
<dd>The top level: complicated tasks that the user controls directly such as using a web-browser, editing a text file</dd>
|
|
</dl>
|
|
|
|
## What is a user?
|
|
|
|
> A user is an entity that can run processes and own files.
|
|
|
|
At the level of users, a user is associated with a user name however the kernel
|
|
does not manage usernames, it identifies users via numeric identifiers called
|
|
**user IDs**.
|
|
|
|
Users exist in order to support permissions and access boundaries. A user may
|
|
terminate or modify the behaviour of its own processes (within limits) but
|
|
cannot interfere with another user's proceses. In addition, users may own files
|
|
and choose whether to share them with other users.
|
|
|
|
### Root user (superuser)
|
|
|
|
A Linux system normally has a number of users in addition to the ones that
|
|
correspond to the real human users. The most important is **root**. The root
|
|
user _can_ terminate and alter another user's processes and access any file on
|
|
the local system.
|
|
|
|
A person who can operate as root is an administrator on a typical user system.
|