[Beowulf] scheduler policy design

Mark Hahn hahn at mcmaster.ca
Fri Apr 27 14:27:33 PDT 2007

> As an operating system <http://en.wikipedia.org/wiki/Operating_system>, *

this is a common use of the word.  it's a bit sloppy: Linux is, strictly
speaking, just the kernel.  why make the distinction?  mainly because Linus
and the kernel team don't have that much to do with ongoing development of 
anything in user-space (libc, tools, compilers, X, desktop environments,
etc).  it's not some kind of major sin to avoid naming the thousands of 
independent projects which are tossed like a salad to form a distro.

> Do you not consider Knoppix a Linux, or do you consider "openMosix" to come
> from kernel.org?

Linux is the kernel; it is unitary (ignoring versioning).  when people talk
about flavors of linux, you know they're probably talking about distributions 
which contain Linux as their kernel.  "openMosix is a Linux kernel extension" - 
that's from their website.  the naming is a bit blurry because the extension
requires a bunch of user-space stuff to work, too.  then again, the bare 
Linux kernel doesn't do much without, for instance, at least a libc,
and probably a bunch of other user-space infrastructure like shells 
and daemons.

openMosix's kernel is a customized version (not really a fork) of the
kernel.org "mother" kernel.  RH's kernels are too, or Suse's or SGI's or
HP's, etc.

> me. Perhaps I need to distinguish "kernel, the minimum machine-dependent
> component"

everything is machine-dependent.  besides, most of the kernel is _not_
terribly machine-dependent (it's the drivers which depend on the hardware 
they're driving - but that's almost a tautology!)

"Linux" in the non-strict sense, is a bit of a shorthand for the kernel
and all the usual user-space do-dads.  perhaps it needs a snappy acronym
like LAMP or AJAX, but it would have too many letters!

> from "kernel, what is in memory after boot ends" but I would

that would be a very strange definition.  how about this: apps call libc
to do almost everything.  libc calls the kernel to do almost everything, but 
adds some value by providing a slightly higher-level interface (eg printf()
rather than write().)  the kernel calls drivers to do a lot, but also 
does the higher-level-interface thing (such as filesystems rather than 
block-level disk interfaces).

strict Linux-ness stops at the user/kernel line, but since most of the 
lower-level parts of userspace are pretty linux/kernel-specific, they get 
lumped into the name.  this is why certain notable people have advocated
for the use of "GNU/Linux" rather than just "Linux".  in fact, I use the 
latter specifically because I oppose this (RMS's) nomenclature.  when someone
talks about their linux desktop, they're not discounting the contribution 
of GNU - in fact, there are lots of non-GNU projects which are critical to 
the linux desktop, many of which predated Linux, some of which are not even

> expect that a kernel optimized for a compute node would vary even in the
> first defintion from a single kernel published at kernel.org.

there's not much to optimize in the kernel for a compute node.  you can
certainly omit stuff, but that's a normal part of configuring a kernel.org 
kernel.  what makes a good compute node is mainly user-space, so not strictly
Linux, but more in the distro realm.  that said, most distros use almost 
identical parts to their salad - it's mainly the dressing or perhaps just 
the sprinkles and crutons that distinguish distros ;)

this is fun!  some distros use slightly fresher greens; others have mouldy 
old tomatoes.  damn, gotta find a way to fit the kernel into that metaphor - 
maybe the salad's bowl!?!

More information about the Beowulf mailing list