Home | Blog | Wiki | Forum | Chat | Maintainers | Contact | Package search:

Architecture overview

Caution: Pictures contain some new ideas (especially compressed images), these are not yet reflected in the text (to be rewritten).

End user

Runs Knoppix from CD or HD. Does not know what sid, apt or tar means. Simply installs the klik client within seconds and kliks on a link on the klik software store.

klik client

Detects that a klik:/ link was kliked. Asks the user for permission and then excecutes a file that is fetched from the klik server.

klik server

Handles the client request by delivering the executable file which is generated from a klik recipe stored on the server. Also, the server acts as the central software directory for the end user, allowing to browse, search, install and comment software. However, no actual software packages are stored on the klik server. These are fetched from various sources in the Internet.

klik recipe

The file tells the client what to download, from where, and how to install it in the manner outlined in the box at the right. It takes care of unpackting files, setting paths, creating menu entries, and creating the wrapper. It is template-based and makes use of reusable code that is included server-wise. Ideally, it is held pretty general so that it can be easily adopted for new apps. A klik recipe is always hand-built and tested against a certain version of Knoppix. It also includes meta-information about the software package. Depending on the type of app, a typical klik recipe takes about ten minutes to an hour to develop. klik recipes will be community-submitted since I (the inventor of klik) do not have the time to create one for your favorite app.
Here is a sample recipe.

I am very interested in your comments about the klik architecture. It is important to get the design right in the first place (before it gets real messy).


Mainly a philosophy about making each app package "self contained" (at least relative to some defined base system, Knoppix in our case).
I know Macintosh had this philosophy 1984, so we should also be able to have it 20 years later :) Similar concepts are used by NeXT, RiscOS, ROX (http://rox.sourceforge.net/phpwiki/index.php/AppDir, http://www.cs.sunyit.edu/~geerp/rox/wrappers.html, http://roxwrap.sourceforge.net/) and others.



<noscript><p><a href=""></a></p></noscript>