Kevux Systems and Software - Projects
Author: Kevin Day
Description: Kevux managed projects such as the Controller program, the Byte Dump program, and the Featureless Make program.
Keywords: Featureless, FLL, Kevin Day, Kevux, Linux, Library, Make, Fake, Controller, UTF-8, Open-Source

# Projects

The Featureless Linux Library (FLL) is a major project and has several sub-parts, including several programs.
The FLL is broken up into multiple sub-projects that are libraries themselves or programs.
All of the programs also operate as a library, unless compiled in special ways, such as with stand alone builds.

This page describes those programs from FLL as well as any other programs and projects associated with Kevux Systems or Kevin Day.

Of particular note is that most, if not all, of the Kevux Systems programs are written to provide an API (and its respective ABI).
This allows the programs themselves to be used as a library.

The programs themselves follow FLL design principles on making the interface human-friendly and human-first.
Software should be a tool for humans, and not a tool for machines.

## Listing

The following are all of the projects and their respective documentation.

Project | Description
--- | ---
Byte Dump | This project provides the Byte Dump program. The Byte Dump program provides a way to get a UTF-8 friendly `hexdump` alternative. The output is intended to honor some of the feel of `hexdump`, but in an FLL way.
Control | This project provides the Control program. The Control program provides a to communicate with the `controller` program, such as starting or stopping services. This project is not complete and development is on going for the FLL `0.8` stable series.
Controller | This project provides the Controller and Init programs. The Controller program provides a way to manage programs, scripts, tasks, and services. The Init program provides similart functionality to the `sysvinit`, `initng`, and `systemd` programs. This Init program is designed to be used for booting the system as if it were `/sbin/init`. Both the Controller and Init programs that are operating as some sort of service should be controllable from via the `control` program. This project is not complete and development is on going for the FLL `0.8` stable series.
Featureless Make | This is the original project and goal of the FLL. The GNU Make, Autoconf, and all those build processes are unnecessarily complex. A major problem with these other build systems is that they try to manage installation as well as compilation. A build system should be just that, a build system. Trying to handle how the built package gets installed should be done by system administrators or distributors. By avoiding this, the code becomes simpler, more "featureless", easier to maintain, easier to hack, and easier to keep using over the years. Projects should only describe what API in which they are compatible with and should not be tied down to any specific project or version. This project provides the Featureless Make program. The Featureless Make is the program called `fake`. This program provides two primary ways to compile C, C++, Go, and possibly other languages: Using the `build` command. Using the `make` command. The `build` command is as simple as it can be and follows a Featureless Settings Specification (FSS). The `make` command (and its respective `fakefile`) provides a more advanced interface for handling complex build processes or compiling languages other than C/C++. The `build` command (and subsequently the make command) currently provide some hard coded program settings, such as the indexer `ar` runs `ar rcs`. Eventually such things will be expanded into an FSS setting and made customizable. Both the `build` and `make` commands support a small subset of `make` and `autoconf` functionality to make transitioning easier or make it easy to work alongside `make` and `autoconf`. To help with understanding and using the Featureless Make program, fully functional example build `settings` and `fakefile` are created for the program `bzip` (specifically version `1.0.8`): https://sourceforge.net/p/fll/git/ci/development/tree/level_3/fake/data/projects/bzip2/1.0.8/fakefile https://sourceforge.net/p/fll/git/ci/development/tree/level_3/fake/data/projects/bzip2/1.0.8/settings-bzip2 https://sourceforge.net/p/fll/git/ci/development/tree/level_3/fake/data/projects/bzip2/1.0.8/settings-bzip2recover There is also a `fakefile` pre-configured to run GNU Make within itself to compile the Linux kernel fom source: https://sourceforge.net/p/fll/git/ci/development/tree/level_3/fake/data/build/fakefile-example-linux_using_make The Bzip2 source code may be found here: https://sourceware.org/bzip2/
FSS Identify | This project provides the FSS Identify program. The FSS Identify program is designed to read a file and determine what Featureless Settings Specification (FSS) is being used by that file. The `fss_identify` program only detects files that provide an FSS header.
FSS Read | This project provides several FSS Read programs. The FSS Read programs each suppoert various FSS: `FSS-0000 (Basic)` `FSS-0001 (Extended)` `FSS-0002 (Basic List)` `FSS-0003 (Extended List)` `FSS-0008 (Embedded List)` `FSS-000E (Payload)` This performs read operations related to the mentioned standards.
FSS Write | This project provides several FSS Write programs. The FSS Write programs each support various FSS: `FSS-0000 (Basic)` `FSS-0001 (Extended)` `FSS-0002 (Basic List)` `FSS-0003 (Extended List)` `FSS-0008 (Embedded List)` `FSS-000E (Payload)` This performs write operations related to the mentioned standards.
IKI Read | This project provides EKI Read and IKI Read programs. These EKI Read and IKI Read programs support various standards: `IKI-0000 (Unrestricted)` `EKI-0000 (Unrestricted)` This performs read operations related to the mentioned standards. The IKI and EKI settings specifications are simpler than the common Wiki standards. These can be used for anything from e-mails and text-messages to word-processors. The goal with IKI is to be very easily readably by a human, such as: `iki:"example"` or `url:"https://sourceforge.net/projects/fll/"`. The EKI settings specification, also known as Extended IKI settings specification, is a variation of the IKI format that supports multiple objects. The goal with EKI is to allow for multiple objects to be associated with one value, such as: `eki:bold:"example"` or `external:url:"https://sourceforge.net/projects/fll/"`.
IKI Write | This project provides EKI Write and IKI Write programs. These EKI Write and IKI Write programs support various standards: `IKI-0000 (Unrestricted)` `EKI-0000 (Unrestricted)` This performs write operations related to the mentioned standards. The IKI and EKI standards are simpler than the common Wiki standards. These can be used for anything, from text-messages to word-processors. The goal of these standards is to be very easily readably by a human, such as: `iki:"example"` or `url:"https://sourceforge.net/projects/fll/"`. The EKI standard, also known as Extended IKI, is a variation of the IKI format that supports multiple objects. The goal with EKI is to allow for multiple objects to be associated with one value, such as: `eki:bold:"example"` or `external:url:"https://sourceforge.net/projects/fll/"`.
(Kevux) Firewall | This project provides the Firewall program. The Firewall program is one of the earliest proof of concepts and functional examples of the FLL. Now this program is currently outdated, but it still remains operational as an `iptables` wrapper. This program is actively used on the Turtle Kevux distribution. This requires `iptables` to be installed and executable.
(Kevux) Tools | This project provides a suite of various programs for operating a Kevux distribution, such as the Turtle Kevux distribution. Some of these tools might replace existing common ones, like the `rm` program. Other tools are for testing out functionality and design, such as the `tacocat` program.
Status Code | This project provides the FSS Status Code and the Status Code programs. The Status Code program is designed to interpret status codes returned by any FLL based program and specifically handles only core status codes. The status codes are converted to or from a code and a label. The FSS Status Code program is designed to interpret status codes returned by any FLL based program alond with the FSS specific status codes. Other programs that utilize custom status codes should provide their own implementation of this program, such as is done with the `fss_status_code` program.
UTF8 | This project provides the UTF8 program. The UTF8 program is a tool to convert one or more UTF-8 characters from the codepoint representation to a binary representation and back. This program can convert complete files into a text file of UTF-8 bytecode values. This program can convert complete files into a text file of space separated codepoint values.