Home Accessibility Courses Twitter The Mouth Facebook Resources Site Map About Us Contact
 
For 2023 (and 2024 ...) - we are now fully retired from IT training.
We have made many, many friends over 25 years of teaching about Python, Tcl, Perl, PHP, Lua, Java, C and C++ - and MySQL, Linux and Solaris/SunOS too. Our training notes are now very much out of date, but due to upward compatability most of our examples remain operational and even relevant ad you are welcome to make us if them "as seen" and at your own risk.

Lisa and I (Graham) now live in what was our training centre in Melksham - happy to meet with former delegates here - but do check ahead before coming round. We are far from inactive - rather, enjoying the times that we are retired but still healthy enough in mind and body to be active!

I am also active in many other area and still look after a lot of web sites - you can find an index ((here))
The Kernel, Shells and Daemons. Greek Gods in computing

The Greek Gods didn't like washing up or ironing. So they employed mortals to to it. Problem was that those mortals didn't last for ever, and sometimes went on strike over one thing and another. So The Gods did a deal with some of the current batch of mortals, and it went like this: "We will make you immortal, and you, in perpituity, will do the particluar job that you're trained up for - be it washing, ironing ot cooking - queitly and without complaint unless there's a very serious issue that you need to tell us about. And the rest of the time you can just relax idly around". These immortal beings, but not deity, were known as the Daemons.

Nuts have a shell, and they have the edible (in some varieties) bit in the middle, which is known as the Kernel.

What's running on your Linux or Unix Computer?

You'll have a Kernel at the centre of things, controlling uses of the memory and file system (and under Unix / Linux, devices are also treated as files). You'll have a shell through which an interactive user can interact with the system - enter commands from the keyboard (or an alterative is STDIN is rerouted) and output to the screen (or an alterative if STDOUT is rerouted). And you'll have a number of daemons - there to pick up background process requests such as ftp, sftp, ssh, sql and http and to look after resources like printers. There's more about individual daemons [here].


There may be several users of the same daemon service at the same time. For example, two different individuals may want to connect to a web server to run ssh (secure terminal) sessions at the same time. So daemons are designed to sit awaiting a request, and when a request is received to spawn ("fork) a copy of themselves - also know as a "child process" to do the actual work, whilst the parent reverts to waiting for further requests. When the child has completed its work, it exits (dies) releasing the memory it was using back to the kernel. This is the model show in the middle column of the diagram.

Where it's planned / expected that a daemon will receive a very large number of requests, the process of forking and dieing would consume significant resource, so another model is employed. In such cases, a number of child processes are preforked and are available to be passed a request when one is received by the parent. And rather than exiting on completion, the child will signal back to the parent that it's done with the job it was given, and it will then be given another job to do in due course. This is the model used by the Apache httpd web server, and is shown in the left column of the diagram.

Some daemons are very rarely called upon, if ever ... but need to be available just in case. It's pretty rare for a remote system to set its time from your clock through the network time protocol, for example - but it's a usefully synchronisation service to have available. If all of these very rarely used daemons were to be running, and occupying memory, all the time then that would be an underutilisation of resources. So a single daemon - inetd or xinetd is run, which will manage the staring and stopping of the very rare daemons if they're called up. Ths is the model shown in the right column of the diagram.


When you start up a Linux or Unix system, you want appropriate daemons to start.

Here's how:
• The daemon programs themselves will be located in places like /usr/bin
• Scripts to control how each daemon is started and stopped will be in /etc/init.d
• Symbolic links in /etc/rc3.d will be provided as a patch panel to decide which daemon start scripts are to be run, and in what order (files starting with S are run in asciibetic order!)

The structure / directory names vary a little between Linux and Unix releases, I'm afraid, and there are a whole lot of rcX.d directories, where X is the runstate being entered. On many systems, you'll have a utility such as chkconfig to help you manage this setup. Run states are shown [here].
(written 2012-07-01, updated 2012-07-14)

 
Associated topics are indexed as below, or enter http://melksh.am/nnnn for individual articles
A167 - Web Application Deployment - Shell Programming (bash)
  [63] Almost like old times - (2004-09-26)
  [64] Shell Script for CGI on the web - (2004-09-26)
  [749] Cottage industry or production line data handling methods - (2006-06-07)
  [827] No news is good news with Unix and Linux - (2006-08-10)
  [1287] Work and play at Well House Manor - Football and Shell Shortcuts - (2007-08-02)
  [1345] Perl and Shell coding standards / costs of an IT project - (2007-09-11)
  [1468] Lexical v Arithemetic testing, Bash and Perl - (2007-12-11)
  [1527] Selecting file names in a shell - one word or another - (2008-02-02)
  [1904] Ruby, Perl, Linux, MySQL - some training notes - (2008-11-23)
  [4400] Commenting out an echo killed my bash backup script - (2015-01-19)
  [4487] Starting MySQL. ERROR! The server quit without updating PID file - how we fixed it. - (2015-05-06)
  [4584] Bash ... some new scripts to - handling user input - (2015-11-27)
  [4586] Extending your bash shell with aliases, functions and extra commands - (2015-11-28)
  [4587] shell - bash. Writing conditional tests and statements - the options available - (2015-11-28)

A164 - Web Application Deployment - Services and Regular Jobs
  [544] Repeating tasks with crontab - (2005-12-27)
  [907] Browser -> httpd -> Tomcat -> MySQL. Restarting. - (2006-10-28)
  [1028] Linux / Unix - process priority and nice - (2007-01-10)
  [1288] Linux run states, shell special commands, and directory structures - (2007-08-03)
  [1553] Automatic startup and shutdown of Tomcat - (2008-02-24)
  [1633] Changing a screen saver from a web page (PHP, Perl, OSX) - (2008-05-06)
  [1700] FTP server on Fedora Linux - (2008-07-06)
  [1731] Apache httpd, MySQL, PHP - installation procedure - (2008-08-01)
  [1733] memcached - overview, installation, example of use in PHP - (2008-08-02)
  [1765] Dialects of English and Unix - (2008-08-21)
  [1903] daemons - what is running on my Linux server? - (2008-11-23)
  [2145] Using the internet to remotely check for power failure at home (PHP) - (2009-04-29)
  [2182] What Linux run level am I in? - (2009-05-15)
  [3011] What are .pid files? - (2010-10-23)
  [3143] On time - (2011-01-23)
  [3792] Managing daemons from a terminal session - (2012-07-01)

A101 - Web Application Deployment - Linux -An Introduction For Users
  [73] vi - full circle - (2004-10-04)
  [74] pushd and popd - (2004-10-05)
  [152] Aladdin, or careful what you wish. - (2004-12-15)
  [249] An easy way out - (2005-03-17)
  [430] Linux commands - some basics - (2005-08-31)
  [431] File permissions of Linux and Unix systems - (2005-08-31)
  [593] Finding where the disc space has gone - (2006-02-06)
  [659] Web Application Components - (2006-03-28)
  [679] More or less on the edge of the page - (2006-04-11)
  [703] Copying files and preserving ownership - (2006-04-28)
  [710] Linux training Glasgow, Python programming course Dundee - (2006-05-05)
  [711] THE home directory or MY home directory - (2006-05-06)
  [984] Cardinal numbers and magic numbers - (2006-12-14)
  [1012] Moving files between Windows / DOS and Linux / Unix - (2006-12-30)
  [1013] Copy multiple files - confusing error message from cp - (2006-12-30)
  [1068] ls -l report, Linux / Unix - types and permssions - (2007-02-06)
  [1259] Where am I and how did I get here? - (2007-07-05)
  [1366] awk - a powerful data extraction and manipulation tool - (2007-09-25)
  [1408] Wireless hotel tips - FTP and Skype connections failing - (2007-10-26)
  [1438] Copy and paste / cut and paste and other vi techniques - (2007-11-20)
  [1651] ls command - favourite options - (2008-05-23)
  [1764] Yank and Push - copy and move in vi - (2008-08-21)
  [1803] FTP passive mode - a sometimes cure for upload hangs - (2008-09-20)
  [1893] Some Linux and Unix tips - (2008-11-18)
  [1897] Keeping on an even keel - (2008-11-21)
  [1902] sstrwxrwxrwx - Unix and Linux file permissions - (2008-11-23)
  [2201] Running straight from the jar, but not from a tar - (2009-05-26)
  [2203] Always use su with minus. And where do programs come from? - (2009-05-27)
  [2299] How much space does my directory take - Linux - (2009-07-20)
  [2300] What does x on a linux directory mean? - (2009-07-21)
  [2479] Accidentally typed ci rather than vi? - (2009-10-27)
  [2494] Making Linux Politically correct - (2009-11-06)
  [2636] Linux - useful tips including history and file name completion - (2010-02-15)
  [2831] Recording (a macro) in vi - (2010-06-27)
  [3179] Oops - I typed ci not vi, and have lost my file ... - (2011-02-21)
  [3256] Displaying a directory or file system tree - Linux - (2011-04-22)
  [3819] Packing a tar, jar or war file - best practise - (2012-07-26)


Back to
Solution looking for a problem? Lookahead and Lookbehind
Previous and next
or
Horse's mouth home
Forward to
Managing daemons from a terminal session
Some other Articles
Like a bathroom company with no plumbers
Should hotel staff sit on the toilet in the customer bedrooms?
Excellent Rail News - what it really means
The Kernel, Shells and Daemons. Greek Gods in computing
Solution looking for a problem? Lookahead and Lookbehind
More than just matching with a regular expression in PHP
Getting more than a yes / no answer from a regular expression pattern match
Melksham Pride - the Chamber of Commerce, and the future
Improving Wiltshire Rail Offer - it WILL be happening
4759 posts, page by page
Link to page ... 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96 at 50 posts per page


This is a page archived from The Horse's Mouth at http://www.wellho.net/horse/ - the diary and writings of Graham Ellis. Every attempt was made to provide current information at the time the page was written, but things do move forward in our business - new software releases, price changes, new techniques. Please check back via our main site for current courses, prices, versions, etc - any mention of a price in "The Horse's Mouth" cannot be taken as an offer to supply at that price.

Link to Ezine home page (for reading).
Link to Blogging home page (to add comments).

You can Add a comment or ranking to this page

© WELL HOUSE CONSULTANTS LTD., 2024: 48 Spa Road • Melksham, Wiltshire • United Kingdom • SN12 7NY
PH: 01144 1225 708225 • EMAIL: info@wellho.net • WEB: http://www.wellho.net • SKYPE: wellho

PAGE: http://www.wellho.net/mouth/3791_The ... uting.html • PAGE BUILT: Sun Oct 11 16:07:41 2020 • BUILD SYSTEM: JelliaJamb