Thursday, December 6, 2018

Linux Power Screen decomposed into loadables

Here is the list:
  • Command loop -  Searches for an execution of a completed linux command sequence in argc, argv format.
  • Xchars - Two dimensional screen string output and input.
  • Script syntax - Either python, Golang or Forth
  • Subsystem - Basically anything that can execute linux command scripts in argc,argv form. Includes, an interface to linux, via sys, almost anything in linux obeys the syntax.  The join command and control path is all linux command script. One could make a driver  control interface, or adapt one, by collating all the known driver utilities into a coherent package. A complete gdb debugger, transparent mapping of gdb output to a 2D screen, using Forth as a control script.  User an make ad hoc char GUI with gdb, on the spot as needed. Tell Forth to get a variable an put it at X,Y. Another example, simplify pakage management. Pick whatever package management tool you need, but adapt them all adapt it to common syntax across the enterprise. The list of subsystems is endless.
The greatness of it all, all these pakages are loadable shared objects with the same interface, linux command list (argc,argv) . There is never a header change out, never an interface change, nor has linux folks ever implemented interface changes, they have all just loaded up on hundreds of argument flags. They already have all the methods needed to follow any reasonable object script: So in all of this, the user and administrator is free to pick the syntax to fit a segmented list of tasks, they are all presented with the same plain text two dimensional output, optionally reduced to a command line.

Init:
User needs external configuration scripts depending upon the app, the shell assumes nothing about dictionaries. Shell initilizes with two commands, LoadModule and ListModules. On load shell looks in the module to find:
void * Entry(int * argc, void * argv[])
and puts that pointer into its command loop list and continues.

The shell never has a clue beyond that. Even the Xchars uses the linux syntax, in fact, on a plain linux command line, xchar command should work.  Xhars is loaable. Users can select different Xchar packages, all of them linux command syntax compatible, at least the entry point. Beyond that, you have python and Golang for enterprise management scripts, commonly formatted for just the business functions needed.  This is all a great productivity boost across the linux spectrum.

No comments: