mINK Operating System

TODO

Command Line Interface

The mINK Command Line Interface (CLI) comprises two main modes: operative mode and configuration mode. The former is reserved for custom shell implementations, while the latter provides access to a powerful system-wide configuration tool, an ACID-compliant front-end for mINK Configuration Daemon (CFGD).

  • The CLI command prompt in operative mode:
    cfg@walrus:/ >
    
  • The CLI command prompt in configuration mode:
    cfg@walrus:/configure >
    

Auto-complete

Pressing the <TAB> key invokes the powerful multi-level auto-complete system.

  • If the command is unambiguous the system generates the next token in the syntax
  • If multiple completion tokens are found, the system displays all available completion paths

Pressing the <?> key followed by the <TAB> key generates context-aware completion paths

Command history

The command line interface keeps track of your command history; commands are stored in a internal buffer and can be re-executed or edited on demand.

The <Up-Arrow> and <Down-Arrow> keys are used for moving the command history pointer back and forth.

Configuration hierarchy

The mINK OS configuration is organized as a hierarchy of configuration statements with a tree of nodes similar to the directory structure of a Linux file system. The CLI is preconfigured with three types of statements:

  • Single node
  • Multi-node
  • Attribute node

Configuration nodes are always displayed in an enclosing pair of braces:

wifi0 {
  ssid "mink"
}

Attributes nodes are displayed as a name/value pair:

ssid "mink"
Configuration mode

The configuration mode is accessed from operative mode by invoking the following command: configure.

cfg@walrus:/ > configure
Trying '127.0.0.1:10000'...OK
cfg@walrus:/configure

Pressing the <CTRL> + d key combination exits the current mode.

Node navigation

The current location in the configuration tree is displayed after the hostname.

cfg@walrus:/configure/resources/cpu >
Command Action
edit config-node navigate to a sub-node
top navigate to the top-level (root node)
up navigate to the parent node

All-on-one

Many-to-many