Skip to content

Instantly share code, notes, and snippets.

@LeFreq
Last active May 31, 2019 20:15
Show Gist options
  • Save LeFreq/fe043e6bdac8d5c9a0d7749d27c1bda1 to your computer and use it in GitHub Desktop.
Save LeFreq/fe043e6bdac8d5c9a0d7749d27c1bda1 to your computer and use it in GitHub Desktop.
Unix command distillation
There should be need of only 4 machine code commands +/-1.
*MOVE,
*JUMP-ON-EQUAL (or JUMP-ON-NOT-EQUAL)
*OR,
*AND, and
*NOT.
These five can build 5 more hardware-level commands (STUB):
* allocate memory
* store data
* send data
* edit data
* write to console
These are probably enough for a simple OS.
These can then build a simple OS or a multi-tasking OS with a total of ~64 to ~125 different commands.
* create named device
*
These commands could probably be limited to 1 parameter, but otherwise maximum of 4 parameters per command. All other commands MUST derive from these.
Commands should revolve around storage, users, and processes, and I/O (commanding the screen, setting keyboard type, etc). Is there another grouping?
The reason is system admins don't remember more than about 4 +/-1 things with a given index term -- in this case a system command. When you have 50 different flags for you command, no one can remember them.
If you have 50 parameters to your command, you probably need a better command-hierarchy model.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment