hello friends! new(ish)!

Userland: Difference between revisions

From InstallGentoo Wiki v2
Jump to navigation Jump to search
>Morpheus
No edit summary
>Morpheus
m (I'll just add it later)
Line 2: Line 2:


A '''userland''' is the system utilities that are not a part of the main kernel, but provide a base system. The term userland (or user space) refers to all code that runs outside the operating system's kernel. Userland usually refers to the various programs and libraries that the operating system uses to interact with the kernel: software that performs input/output, manipulates file system objects, application software etc.
A '''userland''' is the system utilities that are not a part of the main kernel, but provide a base system. The term userland (or user space) refers to all code that runs outside the operating system's kernel. Userland usually refers to the various programs and libraries that the operating system uses to interact with the kernel: software that performs input/output, manipulates file system objects, application software etc.
{| class="wikitable"
|+ Various layers within Linux, also showing separation between the [[User space|userland]] and [[kernel space]]
|-
! rowspan=3 style="width: 10%" | User mode
| colspan=1 style="width: 10%" | '''User applications'''
| colspan=5 style="width: 80%" | For example, [[Bourne-again shell|bash]], [[LibreOffice]], [[Apache OpenOffice]], [[Blender (software)|Blender]], [[0 A.D. (video game)|0 A.D.]], [[Mozilla Firefox]], etc.
|-
| style="width: 20%; background-color: #ffffff" | Low-level system components:
| colspan=1 style="width: 18%; background-color: #9db5f9"| '''System [[Daemon (computing)|daemons]]''':<br>''[[systemd]], [[runit]], logind, networkd, [[PulseAudio|soundd]], ...''
| colspan=1 style="width: 18%; background-color: #9db5f9"| '''[[Windowing system]]''':<br>''[[X11]], [[Wayland (display server protocol)|Wayland]], [[Mir (software)|Mir]], [[SurfaceFlinger]] (Android)''
| colspan=2 style="width: 36%; background-color: #ffac75" | '''Other libraries:'''<br>''[[GTK+]], [[Qt (software)|Qt]], [[Enlightenment Foundation Libraries|EFL]], [[Simple DirectMedia Layer|SDL]], [[Simple and Fast Multimedia Library|SFML]], [[FLTK]], [[GNUstep]]'', etc.
| colspan=1 style="width: 18%; background-color: #9db5f9"| '''Graphics''':<br>''[[wp:Mesa (computer graphics)|Mesa]]'', ''[[AMD Catalyst]]'', ...
|- style="background-color: #96d5aa"
| colspan=1 style="width: 10%" | '''[[C standard library]]'''
| colspan=5 style="width: 80%" | <tt>open()</tt>, <tt>exec()</tt>, <tt>sbrk()</tt>, <tt>socket()</tt>, <tt>fopen()</tt>, <tt>calloc()</tt>, ... (up to 2000 [[subroutine]]s)<br>''[[glibc]]'' aims to be [[POSIX]]/[[Single UNIX Specification|SUS]]-compatible, ''[[wp:uClibc]]'' targets embedded systems, ''[[wp:Bionic (software)|bionic]]'' written for [[Android]], etc.
|-
! rowspan=3 style="width: 10%" | Kernel mode
| rowspan=3 style="width: 10%" | '''[[Linux (kernel) | Linux kernel]]'''
| colspan=5 style="width: 80%; background-color: #ffb7b7;" |<tt>[[stat (system call)|stat]]</tt>, <tt>[[splice (system call)|splice]]</tt>, <tt>[[dup (system call)|dup]]</tt>, <tt>[[read (system call)|read]]</tt>, <tt>[[open (system call)|open]]</tt>, <tt>[[ioctl]]</tt>, <tt>[[write (system call)|write]]</tt>, <tt>[[mmap]]</tt>, <tt>[[close (system call)|close]]</tt>, <tt>[[exit (system call)|exit]]</tt>, etc. (about 380 system calls)<br>The Linux kernel [[System call|System Call Interface]] (SCI, aims to be [[POSIX]]/[[wp:Single UNIX Specification|SUS]]-compatible)
|- style="background-color: #ffb7b7;"
| style="width: 18%;" | [[wp:Scheduling (computing)|Process scheduling]]<br>subsystem
| style="width: 18%;" | IPC<br>subsystem
| style="width: 18%;" | [[wp:Memory management]]<br>subsystem
| style="width: 18%;" | Virtual files<br>subsystem
| style="width: 18%;" | Network<br>subsystem
|- style="background-color: #ffb7b7;"
| colspan=5 style="width: 80%;" | Other components: [[Advanced Linux Sound Architecture|ALSA]], [[Direct Rendering Infrastructure|DRI]], [[wp:evdev]], [[wp:Logical Volume Manager (Linux)|LVM]], [[device mapper]], [[Linux Network Scheduler]], [[Netfilter]]<br>[[wp:Linux Security Modules]]: ''[[wp:Security-Enhanced Linux|SELinux]]'', ''[[wp:TOMOYO Linux|TOMOYO]]'', ''[[wp:AppArmor]]'', ''[[wp:Smack (Linux security module)|Smack]]''
|- style="background-color: #ffd99c;"
! colspan=7 style="width: 100%" | Hardware ([[Central processing unit|CPU]], [RAM|main memory]], [[wp:Computer data storage|data storage devices]], etc.)
|}


[[Category:Software]]
[[Category:Software]]
[[Category:Operating systems]]
[[Category:Operating systems]]

Revision as of 00:27, 19 January 2016

A userland is the system utilities that are not a part of the main kernel, but provide a base system. The term userland (or user space) refers to all code that runs outside the operating system's kernel. Userland usually refers to the various programs and libraries that the operating system uses to interact with the kernel: software that performs input/output, manipulates file system objects, application software etc.