The core-engine of YaST
consists of some binary components
(modules) that are interconnected via YaST
-specific protocols.
There are clients as well as
servers that are responsible for specific tasks
that may have to be accomplished during a YaST
-session. According
to the well-known client-server-paradigm often used in software
technology, YaST
-servers are program modules that
passively await connections from certain clients
to process their requests. Clients on the other hand are
active components that send requests to the
servers thereby initiating certain actions.
For example the SCR and the UI act as server components that process
client-requests on demand. An example for a client module is the
stdio-component that can be used to connect the
YaST
-internal communication with a terminal.
Because this architectural specialty is meant to be used only by the
YaST
core developers to establish and maintain the low-level
machinery we will not go into more detail here. Instead we will focus
on the advocated method of extending YaST
at the “open
end” by creating YCP
-modules.