Wednesday, November 30, 2005

Desiderata for UNIX Network Processes

Sorry, another techno babble Desiderata version that made me snicker - if you're not a techno geek, skip to the next post.....

Route placidly amid channel noise and network failures,
And remember what throughput there may be in executing all alone.

As far as possible, without overflowing buffer
Be on communicative terms with all processes.
Broadcast your data quietly and clearly
And listen(2) to others.
Even to the null and the unreachable,
They too have their requests.
Avoid long and argumentative sessions
They are burdensome to the ether.

If you compare your priority with others'
You may become vain or bitter
For always there will be greater and lesser processes than yourself.

Enjoy your CPUtime as well as your idletime.
Keep cognizance of your portmapper, however low-level
It is a constant port in the changing mappings of the network.

Exercise caution in your execution,
For the kernel is full of traps.
But let this not blind you to what swap space there is;
Many channels strive for high bandwidths, and everywhere
Computing is full of parallelism.

Be yourself. (Check with getpid(2) frequently)
Especially do not forge NFS file handles.
Neither be cynical about sockets,
For in the face of all congestion and delays
They are as powerful as STREAMS.

Take kindly the influx of new requests,
Gracefully re-prioritizing the older ones.

Nurture support of check-points to rollback from sudden crashes
But do not thrash pages due to imagined pagefaults:
Many core dumps are born of bus error or segmentation faults.

Beyond a nominal consideration,
Be nice(1) to other processes.

You are a child in the kernel space
No less than the daemons and the device drivers,
You have a right to execute here.
And whether or not it is apparent to you
No doubt the kernel is crashing, though it shouldn't.

Therefore be at peace with your programmer
However geeky you think s/he is.
And wherever your read(2)'s and recvfrom(2)'s,
In the noisy communication channels of the network,
Keep a valid (void *) buf available in your address space.
With all its stopped jobs, missing arguments and broken pipes,
It is still a UNIX shell.

Be backward-compatible.
Strive to be up and running always.

0 Comments:

Post a Comment

<< Home