Variabilität im Linux-Kernel: Analyse des Feature-Modells

Aus SDQ-Wiki
Ausschreibung (Liste aller Ausschreibungen)
Typ Bachelorarbeit
Aushang Ausschreibung KConfig.pdf
Betreuer Wenden Sie sich bei Interesse oder Fragen bitte an:

Jan Wittler

Motivation

Anforderungen an Software- und Hardware-Systeme werden immer anspruchsvoller. Eine häufige Anforderung ist die spezifische Anpassung des Systems an Kundenwünsche; Varianten des Systems müssen gebildet werden. Für jede Variante können Updates oder Upgrades benötigt werden, sodass neben Varianten auch die entsprechenden Versionen verwaltet werden müssen. Zur einheitlichen Verwaltung von Varianten und Versionen wurde am Institut das VaVe-Featuremodell entwickelt.

Als ein Referenzsystem mit Varianten und Versionen lässt sich der Linux-Kernel betrachten. Dieser lässt sich angepasst an die Hardware-Verfügbarkeit konfigurieren. Für einen Mikroprozessor mit eingeschränkten Ressourcen wird eine abgespeckte Variante gebildet, für einen leistungsstarken Server können viele Funktionen unterstützt werden. Varianten werden hierbei über die KConfig-Konfigurationssprache beschrieben. Weiterhin werden Updates des Kernels in einem festen Wochenzyklus veröffentlicht. Zur Verwaltung der Versionen wird hierbei GIT genutzt. Ein Nachteil dieser getrennten Modellierung von Varianten und Versionen ist, dass eine Versionierung nur auf dem gesamten Variantenraum, nicht jedoch für einzelne Varianten möglich ist.

Aufgabenstellung

Ziel dieser Arbeit ist es zu erforschen, wie sich die getrennte Entwicklung von Varianten und Versionen des Linux-Kernels in einem gemeinsamen Modell darstellen lassen. Hierfür sollte zunächst eine Transformation von einer Revision des KConfig-Variabilitsmodells zum VaVe-Modell implementiert werden. Als Erweiterung könnten im nächsten Schritt weitere Revisionen des KConfig-Modells in das VaVe-Modell eingepflegt werden.




Motivation

Requirements for software and hardware systems get increasingly demanding. A common requirement is to adjust the system to specific needs of the customer; variations of the system need to be built. For every variant either updates or upgrades can become necessary, thus besides variants also versions need to be managed. A unified management approach for variants and versions was developed at the institute: the VaVe feature model.

The Linux kernel can be considered as a reference system with variants and versions. It can be configured based on the hardware availability. For a micro processor with limited resources a reduced variant is derived; for a powerful server various functions can be supported. Variants are here described using the KConfig configuration language. Further, updates to the kernel are released in a fixed weekly cycle. To manage versions, GIT is used. A drawback of this separated management of variants and versions is that only the entire variation space can be versioned, not individual variants.

Task

In the scope of this thesis it shall be researched how the separated development of variants of versions in the linux kernel can be modelled in a combined model. Hence, first a transformation from a revision of the KConfig variability model to the VaVe model shall be implemented. As an extension, in further steps more revisions of the KConfig model can be integrated in the VaVe model.