From: Kevin Day Date: Thu, 1 Jan 2026 00:03:04 +0000 (-0600) Subject: Update: News - 2026 / 01 / 01 - FLL 0.8.0 Stable Release. X-Git-Url: https://git.kevux.org/?a=commitdiff_plain;h=c058c87a557da872c96dcf120e717063750e5276;p=kevux.org-website Update: News - 2026 / 01 / 01 - FLL 0.8.0 Stable Release. This release is made on 2026 / 01 / 01 at UTC. --- diff --git a/css/kevux.css b/css/kevux.css index e2220a2..765a863 100644 --- a/css/kevux.css +++ b/css/kevux.css @@ -50,6 +50,7 @@ box-sizing: border-box; text-align: center; + word-break: break-word; } .kevux > .content-block > .nav-block > .nav-menu > .nav-item > .nav-text { @@ -206,13 +207,27 @@ color: #724801; } -.kevux.specification > .content-block > .main-block .table.context-parameters > .set > .row:nth-child(even), -.kevux.documentation > .content-block > .main-block .table.context-parameters > .set > .row:nth-child(even) { +.kevux.projects > .content-block > .main-block .table.design-1 > .set.body > .row { + border-top: 1px dotted; +} + +.kevux.projects > .content-block > .main-block .table.design-1 > .set.body > .row > .column { + padding-top: 5px; + + vertical-align: top; +} + +.kevux.documentation > .content-block > .main-block .table.context-parameters > .set > .row:nth-child(even), +.kevux.program > .content-block > .main-block .table.context-parameters > .set > .row:nth-child(even), +.kevux.projects > .content-block > .main-block .table.context-parameters > .set > .row:nth-child(even), +.kevux.specification > .content-block > .main-block .table.context-parameters > .set > .row:nth-child(even) { background-color: #efefef; } -.kevux.specification > .content-block > .main-block .table.context-parameters > .set > .row > .column:nth-child(1), -.kevux.documentation > .content-block > .main-block .table.context-parameters > .set > .row > .column:nth-child(1) { +.kevux.documentation > .content-block > .main-block .table.context-parameters > .set > .row > .column:nth-child(1), +.kevux.program > .content-block > .main-block .table.context-parameters > .set > .row > .column:nth-child(1), +.kevux.projects > .content-block > .main-block .table.context-parameters > .set > .row > .column:nth-child(1), +.kevux.specification > .content-block > .main-block .table.context-parameters > .set > .row > .column:nth-child(1) { text-align: center; } diff --git a/documentation.html b/documentation.html index 6c5654b..0099bc7 100644 --- a/documentation.html +++ b/documentation.html @@ -7,8 +7,8 @@ - - + + @@ -51,76 +51,13 @@ @@ -50,28 +50,28 @@ @@ -79,16 +79,18 @@
-

Byte Dump Documentation

+

Program: byte_dump Documentation

The byte_dump program is a tool for parsing and printing the bytes of all data within one or more files.

+

This tool operates similar to the classic hexdump program and provides similar functionality. However, the byte_dump program is not intended to be a complete replacemenet. Unlike the hexdump program, the byte_dump program is fully UTF-8 aware and even validates the Unicode sequences.

+

This tool is designed to be scriptable and accepts piped input, treating the piped input as a file being read.

@@ -117,6 +119,11 @@ Print the help message. + +C + ++copyright + Print the copyright. + + +d ++dark Output using colors that show up better on dark backgrounds. @@ -164,11 +171,18 @@
+

- The +Q/++quiet parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the utf8 program is to print the Unicode code point or the UTF-8 byte code. The +Q/++quiet will not suppress this output. The new line printed at the end of the program, is however, not printed. The +Q/++quiet is ideal for using in scripting to help guarantee more consistent and controlled output. + The +Q/++quiet parameter silences all output that is not the intent and purpose of the program.
+ For example, the purpose of the utf8 program is to print the Unicode code point or the UTF-8 byte code.
+ The +Q/++quiet will not suppress this output.
+ The new line printed at the end of the program, is however, not printed.
+ The +Q/++quiet is ideal for using in scripting to help guarantee more consistent and controlled output.

+

- The +N/++no_color simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance. + The +N/++no_color simplifies the output to avoid the special color character codes.
+ The special color character codes tend to take up a lot of extra space and may slow down printing performance.

@@ -273,18 +287,23 @@ +

When using the --text option, some UTF-8 characters may be replaced by your instance and cause display alignment issues.

+

Special UTF-8 characters and non-spacing UTF-8 characters may be replaced with a space (or a placeholder when the --placeholder option is used).

+

UTF-8 "Combining" characters might have a space appended to allow a proper display but this may cause copy and paste issues.

+

When --last is used, any UTF-8 sequences will still be printed in full should any part is found within the requested range.

+

When using the --unicode option, invalid Unicode will fallback to being displayed using one of the other modes.

diff --git a/documentation/byte_dump/specifications.html b/projects/byte_dump/byte_dump/specifications.html similarity index 75% rename from documentation/byte_dump/specifications.html rename to projects/byte_dump/byte_dump/specifications.html index b02c73c..b57d47f 100644 --- a/documentation/byte_dump/specifications.html +++ b/projects/byte_dump/byte_dump/specifications.html @@ -3,12 +3,12 @@ Documentation - Byte Dump - Specifications - + - - + + @@ -23,7 +23,7 @@ - + @@ -40,8 +40,8 @@ - - + + @@ -50,17 +50,17 @@ @@ -84,7 +84,7 @@

- The FLL project provides several specifications. + The FLL project provides several specifications.
The Byte Dump does not directly use or provide any of these specifications.

diff --git a/projects/control.html b/projects/control.html new file mode 100644 index 0000000..403c699 --- /dev/null +++ b/projects/control.html @@ -0,0 +1,103 @@ + + + + Project - Control + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+
+
+

Project: Control

+
+ +
+

+ The Control project provides the following programs: +

+ +
    +
  1. + +
      +
    1. Standard Parameters
    2. +
    3. Program Parameters
    4. +
    5. + +
        +
      1. Packet Request
      2. +
      3. Packet Response
      4. +
      5. Settings
      6. +
      +
    6. +
    +
  2. +
+
+
+
+
+ + diff --git a/documentation/control.html b/projects/control/control.html similarity index 82% rename from documentation/control.html rename to projects/control/control.html index 655c27e..f34cba5 100644 --- a/documentation/control.html +++ b/projects/control/control.html @@ -3,7 +3,7 @@ Documentation - Control - + @@ -23,13 +23,13 @@ - + - + @@ -50,37 +50,37 @@ @@ -95,6 +95,7 @@

The control program is a tool for sending commands to the controller program.

+

This tools is currently incomplete and is not guaranteed to work with the controller program. Further development will be made on this once the controller program is updated. The next development series is planned to focus on networking, which will include support for this.

@@ -123,6 +124,11 @@ Print the help message. + +C + ++copyright + Print the copyright. + + +d ++dark Output using colors that show up better on dark backgrounds. @@ -170,11 +176,18 @@ +

- The +Q/++quiet parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the utf8 program is to print the Unicode code point or the UTF-8 byte code. The +Q/++quiet will not suppress this output. The new line printed at the end of the program, is however, not printed. The +Q/++quiet is ideal for using in scripting to help guarantee more consistent and controlled output. + The +Q/++quiet parameter silences all output that is not the intent and purpose of the program.
+ For example, the purpose of the utf8 program is to print the Unicode code point or the UTF-8 byte code.
+ The +Q/++quiet will not suppress this output.
+ The new line printed at the end of the program, is however, not printed.
+ The +Q/++quiet is ideal for using in scripting to help guarantee more consistent and controlled output.

+

- The +N/++no_color simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance. + The +N/++no_color simplifies the output to avoid the special color character codes.
+ The special color character codes tend to take up a lot of extra space and may slow down printing performance.

@@ -219,17 +232,21 @@ +

When the --socket parameter represents a directory path then the file name is generated from either the --name parameter or from the control settings file.

+

A rule action allows for either the full rule path, such as 'boot/root' as a single parameter or two parameters with the first representing the rule directory path 'boot' and the second representing the rule base name 'root'.

+

The --return parameter is intended to be used for scripting and is of the form "response [type] [action] [status]".

+

- Be sure to use the ++quiet parameter to suppress output when using this in scripting. + Be sure to use the ++quiet parameter to suppress output when using this in scripting.
No response is returned on program errors, especially those errors that prevent communicating to the controller.

diff --git a/documentation/control/specifications.html b/projects/control/control/specifications.html similarity index 76% rename from documentation/control/specifications.html rename to projects/control/control/specifications.html index f5e764f..06bc9ce 100644 --- a/documentation/control/specifications.html +++ b/projects/control/control/specifications.html @@ -3,7 +3,7 @@ Documentation - Control - Specifications - + @@ -23,7 +23,7 @@ - + @@ -40,8 +40,8 @@ - - + + @@ -50,37 +50,37 @@ @@ -95,17 +95,21 @@

The FLL project provides several specifications.

+

The Control follows the following specifications:

+ +

The Control defines the following specifications:

+ diff --git a/documentation/control/specifications/packet_request.html b/projects/control/control/specifications/packet_request.html similarity index 82% rename from documentation/control/specifications/packet_request.html rename to projects/control/control/specifications/packet_request.html index 28c17cd..b69224d 100644 --- a/documentation/control/specifications/packet_request.html +++ b/projects/control/control/specifications/packet_request.html @@ -3,7 +3,7 @@ Documentation - Control - Specification - Packet Request - + @@ -23,7 +23,7 @@ - + @@ -40,8 +40,8 @@ - - + + @@ -50,37 +50,37 @@ @@ -93,8 +93,8 @@

- The Control follows a Packet Request Specification. - This specification is incomplete at this time as the functionality is not yet written. + The Control follows a Packet Request Specification.
+ This specification is incomplete at this time as the functionality is not yet written.
This specification is intended to be shared with the Controller program.

@@ -106,47 +106,57 @@

- The Control program sends packets and receives packet responses from the Controller program over the Controller program's control socket. + The Control program sends packets and receives packet responses from the Controller program over the Controller program's control socket.
This documentation describes the request packets sent by this program.

+

The purpose of these request packets are to ask the Controller program to perform a requested action.

+

- The communications to/from the Controller program utilize the FSS-000F (Simple Packet). + The communications to/from the Controller program utilize the FSS-000F (Simple Packet).
This Simple Packet is expected to contain within it the FSS-000E (Payload) format.

+

- The Payload contains within it a Header and a Payload. - Note the potential confusion here between the Payload when referring to the Packet format and the Payload referring to the Content within the Payload Packet. - To avoid this, henceforth "Payload Packet" refers to the FSS-000E (Payload) used within the FSS-000F (Simple Packet). - The "Payload Header" refers to either the Object (header:) or Content within the Payload Packet representing the header. - The "Payload Object" refers to the Object within the Payload Packet (ie: payload:). + The Payload contains within it a Header and a Payload.
+ Note the potential confusion here between the Payload when referring to the Packet format and the Payload referring to the Content within the Payload Packet.
+ To avoid this, henceforth "Payload Packet" refers to the FSS-000E (Payload) used within the FSS-000F (Simple Packet).
+ The "Payload Header" refers to either the Object (header:) or Content within the Payload Packet representing the header.
+ The "Payload Object" refers to the Object within the Payload Packet (ie: payload:).
The "Payload Content" refers to the Content within the Payload Packet.

+

- The FSS-000E (Payload) is very flexible in what it allows within the Header of the Payload Packet. + The FSS-000E (Payload) is very flexible in what it allows within the Header of the Payload Packet.
The Control program is more restrictive and supports only a subset of the possibilities (which this is explicitly allowed by the Specification).

+

The Control program only supports the following Payload Packet header Objects for the request:

+ +

The number of Content associated with a action are specific to the requirements of that action.

+

The Payload Content is not used and should always be of length 0.

+

The Payload Content represents the rule being started in FSS-0001 (Extended) format, such as service sshd.

+

- For example, given the command: control start service sshd in 5 minutes. + For example, given the command: control start service sshd in 5 minutes.
The action Object would be start service sshd in 5 minutes.

diff --git a/documentation/control/specifications/packet_response.html b/projects/control/control/specifications/packet_response.html similarity index 84% rename from documentation/control/specifications/packet_response.html rename to projects/control/control/specifications/packet_response.html index 886aaee..1acc992 100644 --- a/documentation/control/specifications/packet_response.html +++ b/projects/control/control/specifications/packet_response.html @@ -3,7 +3,7 @@ Documentation - Control - Specification - Packet Response - + @@ -23,7 +23,7 @@ - + @@ -40,8 +40,8 @@ - - + + @@ -50,27 +50,27 @@ @@ -93,8 +93,8 @@

- The Control follows a Packet Response Specification. - This specification is incomplete at this time as the functionality is not yet written. + The Control follows a Packet Response Specification.
+ This specification is incomplete at this time as the functionality is not yet written.
This specification is intended to be shared with the Controller program.

@@ -106,27 +106,32 @@

- The Control program sends packets and receives packet responses from the Controller program over the Controller program's control socket. + The Control program sends packets and receives packet responses from the Controller program over the Controller program's control socket.
This documentation describes the expected response packets and how these response packets are handled.

+

- The communications to/from the Controller program utilize the FSS-000F (Simple Packet). + The communications to/from the Controller program utilize the FSS-000F (Simple Packet).
This Simple Packet is expected to contain within it the FSS-000E (Payload) format.

+

- The Payload contains within it a Header and a Payload. - Note the potential confusion here between the Payload when referring to the Packet format and the Payload referring to the Content within the Payload Packet. - The "Payload Header" refers to either the Object (header:) or Content within the Payload Packet representing the header. - The "Payload Object" refers to the Object within the Payload Packet (ie: payload:). + The Payload contains within it a Header and a Payload.
+ Note the potential confusion here between the Payload when referring to the Packet format and the Payload referring to the Content within the Payload Packet.
+ The "Payload Header" refers to either the Object (header:) or Content within the Payload Packet representing the header.
+ The "Payload Object" refers to the Object within the Payload Packet (ie: payload:).
The "Payload Content" refers to the Content within the Payload Packet.

+

- The FSS-000E (Payload) is very flexible in what it allows within the Header of the Payload Packet. + The FSS-000E (Payload) is very flexible in what it allows within the Header of the Payload Packet.
The Control program is more restrictive and supports only a subset of the possibilities (which this is explicitly allowed by the Specification).

+

The Control program only supports the following Payload Packet header Objects for the response:

+ +

- The error type response Payload Packet is treated as an error response. - For any error responses that are associated with an action, then the action header is provided (otherwise it is not expected and is ignored). - For any error responses the Payload Content may be empty but when it is not, then the Payload Content is a single string representing a message further describing the error or the reason for the error. - These error responses represents errors in attempting to perform some action. + The error type response Payload Packet is treated as an error response.
+ For any error responses that are associated with an action, then the action header is provided (otherwise it is not expected and is ignored).
+ For any error responses the Payload Content may be empty but when it is not, then the Payload Content is a single string representing a message further describing the error or the reason for the error.
+ These error responses represents errors in attempting to perform some action.
These responses are not used for actions that return an error as the result of a proper execution or performing of that action.

+

- The controller type response Payload Packet represents a response regarding the result of performing a requested action. + The controller type response Payload Packet represents a response regarding the result of performing a requested action.
There must always be an action designating the action this response is in regards to.

+

Only the following are (currently) supported as a status:

+ +

When using the -R/--return parameter, the program prints specially formatted messages to help make the output more scriptable.

+

The form response [type] [action] [status].

+

Examples:

+ +

- When the Control program fails to function due to some error, there will be no specially formatted message printed. - When the Controller program fails before it can perform the requested action, then a response error [action] [status] formatted message is printed. + When the Control program fails to function due to some error, there will be no specially formatted message printed.
+ When the Controller program fails before it can perform the requested action, then a response error [action] [status] formatted message is printed.
When the Controller program successfully performs the action but the result of that action is an error, then a response controller [action] F_failure formatted message is printed.

diff --git a/documentation/control/specifications/settings.html b/projects/control/control/specifications/settings.html similarity index 84% rename from documentation/control/specifications/settings.html rename to projects/control/control/specifications/settings.html index f899c29..a442310 100644 --- a/documentation/control/specifications/settings.html +++ b/projects/control/control/specifications/settings.html @@ -3,7 +3,7 @@ Documentation - Control - Specification - Settings - + @@ -23,7 +23,7 @@ - + @@ -40,8 +40,8 @@ - - + + @@ -50,37 +50,37 @@ @@ -93,23 +93,28 @@

- The Control defines the Settings Specification. + The Control defines the Settings Specification.
This specification describes how the settings file is used by the Control program.

+

The control settings "settings" file follows the FSS-0001 (Extended) format.

+

- Each Object represents a settings property name. + Each Object represents a settings property name.
There is only a distinct set of setting property names (see below).

+

- Each Content represents the values associated with that property. + Each Content represents the values associated with that property.
Additional restrictions are applied to each Content depending on each specific Object name (see below).

+

Object Names and their respective Content purpose/restrictions:

+
@@ -153,6 +166,11 @@ Print the help message. + +C + ++copyright + Print the copyright. + + +d ++dark Output using colors that show up better on dark backgrounds. @@ -200,11 +218,18 @@ +

- The +Q/++quiet parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the utf8 program is to print the Unicode code point or the UTF-8 byte code. The +Q/++quiet will not suppress this output. The new line printed at the end of the program, is however, not printed. The +Q/++quiet is ideal for using in scripting to help guarantee more consistent and controlled output. + The +Q/++quiet parameter silences all output that is not the intent and purpose of the program.
+ For example, the purpose of the utf8 program is to print the Unicode code point or the UTF-8 byte code.
+ The +Q/++quiet will not suppress this output.
+ The new line printed at the end of the program, is however, not printed.
+ The +Q/++quiet is ideal for using in scripting to help guarantee more consistent and controlled output.

+

- The +N/++no_color simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance. + The +N/++no_color simplifies the output to avoid the special color character codes.
+ The special color character codes tend to take up a lot of extra space and may slow down printing performance.

@@ -229,7 +254,7 @@ -c --cgroup - Specify a custom control group file path, such as '/sys/fs/cgroup/'. + Specify a custom control group file path, such as /sys/fs/cgroup/. -d @@ -249,12 +274,12 @@ -p --pid - Specify a custom pid file path, such as 'controller/run/default.pid'. + Specify a custom pid file path, such as controller/run/default.pid. -s --settings - Specify a custom settings path, such as 'controller/'. + Specify a custom settings path, such as controller/. -S @@ -264,7 +289,7 @@ -k --socket - Specify a custom socket file path, such as 'controller/run/default.socket'. + Specify a custom socket file path, such as controller/run/default.socket. -U @@ -300,46 +325,48 @@

This describes the intent and purpose of the simulation and validation parameters.

+

- The controller program is designed to support being run as an alternative to an init program (such as Sysvinit or SystemD). + The controller program is designed to support being run as an alternative to an init program (such as Sysvinit or SystemD).
To help prevent problems, simulation and validation functionality is provided.

+ +

- When a Rule is simulated, an empty script command (generally defaulting to bash) is executed in place of the actual program being executed for each program or script in the Rule file that is to be executed. - This allows for testing the designated permissions and other settings that would be applied when calling some program. + When a Rule is simulated, an empty script command (generally defaulting to bash) is executed in place of the actual program being executed for each program or script in the Rule file that is to be executed.
+ This allows for testing the designated permissions and other settings that would be applied when calling some program.
Control Groups are not simulated but are actually created and the simulating process will actually be placed within the Control Group.

@@ -352,18 +379,21 @@

- The controller program utilizes the unit of measurement called a Time, represented with uppercase T. - For comparison, a unit of Time is equivalent to a nanosecond, or 10^-9 seconds. + The controller program utilizes the unit of measurement called a Time, represented with uppercase T.
+ For comparison, a unit of Time is equivalent to a nanosecond, or 10^-9 seconds.
A MegaTime (MT) is therefore equivalent to a millisecond such that a millisecond is 10^-3 seconds.

+

- A unit of Time is intended to represent some unit of Time such that a single 64-bit integer may hold all units of Time for a single calendar year. - This unit of Time does not and must not include Years (unlike Unixtime). + A unit of Time is intended to represent some unit of Time such that a single 64-bit integer may hold all units of Time for a single calendar year.
+ This unit of Time does not and must not include Years (unlike Unixtime).
To convert from Time to Unixtime, one must have a year (which could be assumed to be the current year) and then calculate all of those calendar oddities.

+

A unit of Time by default is assumed to be in UTC.

+ +

Consequentially, 1 day in units of Time is easily represented as 86.4 TT (TeraTime).

+

- The Time may be stored in its year string format. - In this format, a Year may be prepended to the Time followed by a single colon ':' to associate a year with the Time. - This Year has no minimum or maximum but may not have decimals. - For example, 2020:86400000000000 would represent: January 02, 2020 0:00 UTC. + The Time may be stored in its year string format.
+ In this format, a Year may be prepended to the Time followed by a single colon : to associate a year with the Time.
+ This Year has no minimum or maximum but may not have decimals.
+ For example, 2020:86400000000000 would represent: January 02, 2020 0:00 UTC.
For example, 2020:86.4 TT would represent: January 02, 2020 0:00 UTC.

+

- A second unit of Time, called EpochTime, works the same way as Time except it represents seconds. - This unit is designated E. - The format is similar to Time, except there are two colons: 1970::1620874738 would represent: May 13, 2021 2:58:58 UTC. + A second unit of Time, called EpochTime, works the same way as Time except it represents seconds.
+ This unit is designated E.
+ The format is similar to Time, except there are two colons: 1970::1620874738 would represent: May 13, 2021 2:58:58 UTC.
When the year is not specified, then this is identical to UNIX Epoch.

+

A unit of EpochTime by default is assumed to be in UTC.

+ +

Consequentially, 1 day in units of EpochTime is easily represented as 86.4 KE (KiloEpochTime).

diff --git a/documentation/controller/specifications.html b/projects/controller/controller/specifications.html similarity index 67% rename from documentation/controller/specifications.html rename to projects/controller/controller/specifications.html index b97bb93..1abdb9d 100644 --- a/documentation/controller/specifications.html +++ b/projects/controller/controller/specifications.html @@ -3,7 +3,7 @@ Documentation - Controller - Specifications - + @@ -23,7 +23,7 @@ - + @@ -40,8 +40,8 @@ - - + +
@@ -50,49 +50,49 @@ @@ -107,22 +107,26 @@

The FLL project provides several specifications.

+

The Controller follows the following specifications:

+ +

The Controller defines the following specifications:

+ diff --git a/documentation/controller/specifications/action.html b/projects/controller/controller/specifications/action.html similarity index 86% rename from documentation/controller/specifications/action.html rename to projects/controller/controller/specifications/action.html index 9468690..c4f9904 100644 --- a/documentation/controller/specifications/action.html +++ b/projects/controller/controller/specifications/action.html @@ -3,7 +3,7 @@ Documentation - Controller - Specification - Action - + @@ -23,7 +23,7 @@ - + @@ -40,8 +40,8 @@ - - + + @@ -50,49 +50,49 @@ @@ -118,21 +118,26 @@

The version date of this specification is 2024/07/02.

+

This describes the intent and purpose of the actions provided for individual Rules (or things related to a Rule).

+

- Each Action represents a specific intent and purpose but many of these actions are customizable via the rule file. - One should expect an Action to operate as described here but the system administrator or distributor is fully capable of doing something different. + Each Action represents a specific intent and purpose but many of these actions are customizable via the rule file.
+ One should expect an Action to operate as described here but the system administrator or distributor is fully capable of doing something different.
For those doing something different, appropriate documentation is suggested.

+

- These actions should be usable by any control program that communicates with this controller program. + These actions should be usable by any control program that communicates with this controller program.
Should any control or controller program implementation not support any particular Action for any reason, one should report that the Action is unsupported.

+

Freeze Action:

+ +

Kill Action:

+ +

Pause Action:

+ +

Restart Action:

+ +

Resume Action:

+ +

Reload Action:

+ +

Start Action:

+ +

Stop Action:

+ +

Thaw Action:

+