Switch branches/tags
yast-core/2_23_0 yast-core/2_22_5 yast-core/2_22_0 yast-core/2_21_4 yast-core/2_21_3 yast-core/2_20_0 yast-core/2_19_1 yast-core/2_19_0 yast-core/2_18_19 yast-core/2_18_18 yast-core/2_18_17 yast-core/2_18_16 yast-core/2_18_13 yast-core/2_18_12 yast-core/2_18_11 yast-core/2_18_10 yast-core/2_18_9 yast-core/2_18_8 yast-core/2_18_7 yast-core/2_18_6 yast-core/2_18_5 yast-core/2_18_4 yast-core/2_18_3 yast-core/2_18_2 yast-core/2_18_1 yast-core/2_17_25 yast-core/2_17_24 yast-core/2_17_23 yast-core/2_17_22 yast-core/2_17_21 yast-core/2_17_20 yast-core/2_17_19 yast-core/2_17_18 yast-core/2_17_17 yast-core/2_17_16 yast-core/2_17_15 yast-core/2_17_14 yast-core/2_17_13 yast-core/2_17_12 yast-core/2_17_11 yast-core/2_17_10 yast-core/2_17_9 yast-core/2_17_8 yast-core/2_17_7 yast-core/2_17_6 yast-core/2_17_5 yast-core/2_17_4 yast-core/2_17_3 yast-core/2_17_2 yast-core/2_17_1 yast-core/2_16_51 yast-core/2_16_50 yast-core/2_16_49 yast-core/2_16_48 yast-core/2_16_47 yast-core/2_16_46 yast-core/2_16_45 yast-core/2_16_44 yast-core/2_16_42 yast-core/2_16_41 yast-core/2_16_40 yast-core/2_16_39 yast-core/2_16_38 yast-core/2_16_37 yast-core/2_16_27 yast-core/2_16_25 yast-core/2_16_24 yast-core/2_16_23 yast-core/2_16_22 yast-core/2_16_21 yast-core/2_16_19 yast-core/2_16_18 yast-core/2_16_17 yast-core/2_16_16 yast-core/2_16_15 yast-core/2_16_14 yast-core/2_16_13 yast-core/2_16_11 yast-core/2_16_10 yast-core/2_16_9 yast-core/2_16_8 yast-core/2_16_7 yast-core/2_16_6 yast-core/2_16_4 yast-core/2_16_3 yast-core/2_16_1 yast-core/2_16_0 yast-core/2_15_12 yast-core/2_15_11 yast-core/2_15_10 yast-core/2_15_9 yast-core/2_15_8 yast-core/2_15_7 yast-core/2_15_6 yast-core/2_15_5 yast-core/2_15_4 yast-core/2_15_3 yast-core/2_15_2 yast-core/2_15_1 yast-core/2_14_4
Nothing to show
Find file History
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
..
Failed to load latest commit information.
README.md
systemagent.md

README.md

YaST Core

The core part of YaST providing the components system, the agents infrastructure and the implementation of the YCP language for backward compatibility.

Agents Infrastructure

The YaST agents are used to modify the underlying system. Their most important feature is that they can be switched to a different target system, which is heavily used during installation.

The agents for the target system are managed by a SCR instance. Each agent is attached to its unique YaST path. Read more about SCR, YaST paths and their relationship with the agents in the "YaST architecture" document at the YaST documentation page.

Each agent is defined by its scrconf file which can contain either a base with some parameters either a path to a binary if the agent is implemented by a script.

Agents that are implemented in scripts communicate via the YCP protocol and have predefined methods. Agents using a base just configure such base. The bases are libraries that are registered to SCR without a path and that usually provide parsing funcionalities for different file types.

Relevant agents and bases

Hints

  • The agents can be registered during runtime. See SCR#RegisterAgent
  • Ruby-bindings provide shortcut for constructing paths. See Yast.path

Component System

The core provides a components system that allows language agnostic communication between various parts of YaST. Code written in ruby and perl uses the respective ruby and perl bindings to attach to such system. There are also components written directly in C++ like libyui and the package bindings.

YCP implementation

Beside providing backward compatibility, YCP is still needed as a communication protocol within the components system and with the agents. It is also used in agents scrconf file to define agent and its path.

Further Information

More information about YaST can be found on its homepage.