From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=MAILING_LIST_MULTI, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 7057 invoked from network); 14 Dec 2023 21:48:15 -0000 Received: from minnie.tuhs.org (50.116.15.146) by inbox.vuxu.org with ESMTPUTF8; 14 Dec 2023 21:48:15 -0000 Received: from minnie.tuhs.org (localhost [IPv6:::1]) by minnie.tuhs.org (Postfix) with ESMTP id 2B82043D63; Fri, 15 Dec 2023 07:48:12 +1000 (AEST) Received: from mercury.lcs.mit.edu (mercury.lcs.mit.edu [18.26.0.122]) by minnie.tuhs.org (Postfix) with ESMTPS id C294A43D61 for ; Fri, 15 Dec 2023 07:48:06 +1000 (AEST) Received: by mercury.lcs.mit.edu (Postfix, from userid 11178) id 81B2618C08F; Thu, 14 Dec 2023 16:48:05 -0500 (EST) To: coff@tuhs.org Message-Id: <20231214214805.81B2618C08F@mercury.lcs.mit.edu> Date: Thu, 14 Dec 2023 16:48:05 -0500 (EST) From: jnc@mercury.lcs.mit.edu (Noel Chiappa) Message-ID-Hash: DNBXNNTCK3MKF27CVXO2EGBNTX6HABW3 X-Message-ID-Hash: DNBXNNTCK3MKF27CVXO2EGBNTX6HABW3 X-MailFrom: jnc@mercury.lcs.mit.edu X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: jnc@mercury.lcs.mit.edu X-Mailman-Version: 3.3.6b1 Precedence: list Subject: [COFF] Terminology query - 'system process'? List-Id: Computer Old Farts Forum Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: So Lars Brinkhoff and I were chatting about daemons: https://gunkies.org/wiki/Talk:Daemon and I pointed out that in addition to 'standard' daemons (e.g. the printer spooler daemon, email daemon, etc, etc) there are some other things that are daemon-like, but are fundamentally different in major ways (explained later below). I dubbed them 'system processes', but I'm wondering if ayone knows if there is a standard term for them? (Or, failing that, if they have a suggestion for a better name?) Early UNIX is one of the first systems to have one (process 0, the "scheduling (swapping) process"), but the CACM "The UNIX Time-Sharing System" paper: https://people.eecs.berkeley.edu/~brewer/cs262/unix.pdf doesn't even mention it, so no guidance there. Berkeley UNIX also has one, mentioned in "Design and Implementation of the Berkeley Virtual Memory Extensions to the UNIX Operating System": http://roguelife.org/~fujita/COOKIES/HISTORY/3BSD/design.pdf where it is called the "pageout daemon".("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.") However, I think there are good reasons to dis-favour the term 'daemon' for them. For one thing, 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 mapping mechanisms, just like blah-blah). 'System processes' do none of these things: their object code is linked into the monolithic kernel, and is thus loaded by the bootstrap; the kernel contains special provision for starting the system process, which start as the kernel is starting; they don't do system calls, just call kernel routines directly; they run in kernel mode, using the same memory mapping as the kernel itself; etc, etc. Another important point is that system processes are highly intertwined with the operation of the kernel; without the system 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 Anyway, is there a standard term for these things? If not, a better name than 'system process'? Noel