<?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-04-13T23:54:00Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.30.1</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 '''kernel process''' (similar terms/concepts '''system process''', '''kernel thread''', '''kernel task''', etc) refers to the use of the basic primitives provided by the [[kernel]] for ''user'' 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 'standard' [[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 'normal' processes: their object code is kept in a file, and is loaded into the daemon's process when it starts, using the same mechanism that 'normal' 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 'init' process, not the kernel); daemons interact with the kernel through system calls, just like 'ordinary' processes; the daemon's process runs in 'user' [[CPU]] mode (using the same standard [[memory management]] mechanisms as ordinary user processes).&lt;br /&gt;
&lt;br /&gt;
'Kernel processes' 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'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 'ordinary' 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>