Nicco Kunzmann

Essays

Bringing Linux Customization to the End User

Bringing Linux Customization to the End User

Various flavors of linux exist. Ubuntu has a lot of derivates for different use cases: education, office, low-memory, … .

How can we allow the average users to customize their own linux distribution?

The User Interface

A simple user interface can be a website as prototyped by codersos/create. The users can choose among different flavors of the UI, programs an packages. Next, they submit their customization to a server and get feedback about the build. When the build is done, they get notified or download the file automatically.

Architecture

The architecture consists of several components:

Picture of the Architecture

Walkthrough

(1) Customization

The user goes to the github pages served website. A specification is created. This spec can be downloaded, loaded, sent to the proxy. A proxy is chosen by the website based on availability.

(2) Build Server is Chosen

The proxy chooses a build sever to send the spec to.

A way to recognize whether a build was successful/which state it has, … is communicated back to the website.

(3) Image Build

The repository is built by the build service. The correspnding image and output is pushed to a release somewhere.

During the build, the meta packages are used. They allow updating the resulting distribution in the future.

Collaborating

Problems are discussed in issues.

In order to spread the knowledge, students can not merge their own pull-requests but those others. (Inspiration)

The APIs are defined and discussed first:

Possible Customizations

Tools like customizer exist as a GUI and can be automated using continuous integration servers such as Travis. The pager about the live-addon-maker provides further research.

View the discussion