Overview

PLAINTEXT EXECUTABLE README

Purpose of plaintext executable format (px) is to show
a relatively simple, alternative representation for
executables within an usual unix-like filesystem. Plaintext
process images do not store their load-information within
themselves, instead a plaintext script is interpreted for
initializing a process.

The usual approach to handling executable loader involves
a binary format that is embedded inside a process image
and used directly to setup the process image. The approach
is easy and fast but not very flexible. For instance, 
ELF binary format used by linux is extensible but very
hard to read or generate. This makes possible utility libraries
complex and hard to use and further degrades the quality
of programming tools that need to handle ELF binary files
in linux.

px behavior is described in this directory's files. Though in
short the idea is to store all executable data that doesn't
constitute the process image in the script. When the user
wants to execute a program, he executes the script that
produces an executable image of the corresponding program.
The separation allows executable specific data to be stored
in single directory, while doing symbolic linking to the script
from outside. There might be sense in hooking script into directory,
so that when directory gets 'executed', the script gets executed
inside it. Also the difference between executable debug
data, documentation, source code, configs and data fades away
when px is applied.

The answer on whether to use px or not depends about the
complexity and performance drawbacks that come to a program loader
of the kernel. Because of this, a relatively low-level implementation
is represented in loader.c which can be build by executing command
'sh make.sh' in this directory.