<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://gunkies.org/index.php?action=history&amp;feed=atom&amp;title=Kernel_process</id>
	<title>Kernel process - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://gunkies.org/index.php?action=history&amp;feed=atom&amp;title=Kernel_process"/>
	<link rel="alternate" type="text/html" href="https://gunkies.org/w/index.php?title=Kernel_process&amp;action=history"/>
	<updated>2026-09-11T21:01:44Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://gunkies.org/w/index.php?title=Kernel_process&amp;diff=33090&amp;oldid=prev</id>
		<title>Jnc: Not very polished, but I need to reboot this machine</title>
		<link rel="alternate" type="text/html" href="https://gunkies.org/w/index.php?title=Kernel_process&amp;diff=33090&amp;oldid=prev"/>
		<updated>2024-01-25T02:38:20Z</updated>

		<summary type="html">&lt;p&gt;Not very polished, but I need to reboot this machine&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;A &amp;#039;&amp;#039;&amp;#039;kernel process&amp;#039;&amp;#039;&amp;#039; (similar terms/concepts &amp;#039;&amp;#039;&amp;#039;system process&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;kernel thread&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;kernel task&amp;#039;&amp;#039;&amp;#039;, etc) refers to the use of the basic primitives provided by the [[kernel]] for &amp;#039;&amp;#039;user&amp;#039;&amp;#039; computations to perform its own functions.&lt;br /&gt;
&lt;br /&gt;
This can make kernel code significantly simpler (and easier to write, understand, etc).&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
&lt;br /&gt;
In addition to &amp;#039;standard&amp;#039; [[daemon]]s (e.g. the [[line printer]] [[spooler]] daemon, [[email]] daemon, etc, etc) there are some other things that are daemon-like, but are fundamentally different in major ways.&lt;br /&gt;
&lt;br /&gt;
Early [[UNIX]] is one of the first systems to have one ([[process]] 0, the &amp;quot;scheduling (swapping) process&amp;quot;). The considerably later [[Berkeley UNIX]] also has one, mentioned in &amp;quot;Design and Implementation of the Berkeley Virtual Memory Extensions to the UNIX Operating System&amp;quot; (below), where it is called the &amp;quot;pageout daemon&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
: &amp;quot;During system initialization, just before the init process is created, the bootstrapping code creates process 2 which is known as the pageout daemon. It is this process that .. writ[es] back modified pages. The process leaves its normal dormant state upon being waken up due to the memory free list size dropping below an upper threshold.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Typical daemons look (to the kernel) just like &amp;#039;normal&amp;#039; processes: their object code is kept in a file, and is loaded into the daemon&amp;#039;s process when it starts, using the same mechanism that &amp;#039;normal&amp;#039; processes use for loading their code; daemons are often started long after the kernel itself is started, and there is usually not a special mechanism in the kernel to start daemons (on early UNIXes, /etc/rc is run by the &amp;#039;init&amp;#039; process, not the kernel); daemons interact with the kernel through system calls, just like &amp;#039;ordinary&amp;#039; processes; the daemon&amp;#039;s process runs in &amp;#039;user&amp;#039; [[CPU]] mode (using the same standard [[memory management]] mechanisms as ordinary user processes).&lt;br /&gt;
&lt;br /&gt;
&amp;#039;Kernel processes&amp;#039; do none of these things: their object code is [[linking|linked]] into the monolithic kernel, and is thus loaded by the system [[bootstrap]]; the kernel contains special provision for starting the kernel process(es), which starts as the kernel is starting; it/they run in kernel mode, using the same memory mapping as the kernel itself; it/they don&amp;#039;t do [[system call]]s, just call kernel routines directly; etc.&lt;br /&gt;
&lt;br /&gt;
Another important point is that kernel processes are highly intertwined with the operation of the kernel; without the kernel process(es) operating correctly, the operation of the system will quickly grind to a halt. The loss of &amp;#039;ordinary&amp;#039; daemons is usually not fatal; if the email daemon dies, the system will keep running indefinitely. Not so, for the swapping process, or the pageout daemon.&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
&lt;br /&gt;
* [http://roguelife.org/~fujita/COOKIES/HISTORY/3BSD/design.pdf Design and Implementation of the Berkeley Virtual Memory Extensions to the UNIX Operating System]&lt;br /&gt;
&lt;br /&gt;
[[Category: OS Basics]]&lt;/div&gt;</summary>
		<author><name>Jnc</name></author>
	</entry>
</feed>