Definition „runC“ Was ist runC?

Von zeroshope

Anbieter zum Thema

Unter runC ist ein niedrigschwellig arbeitendes Werkzeug zu verstehen, das der Bereitstellung und der Ausspielung von Docker-Containern dient. Die Runtime ist dabei universal einsetzbar, um mit unterschiedlicher Hard- und Software umgehen zu können.

Als minimalistische Container-Runtime nimmt runC den Developern viel Arbeit ab.
Als minimalistische Container-Runtime nimmt runC den Developern viel Arbeit ab.
(Bild: runC )

Bei runC handelt es sich um eine Laufzeitumgebung, die dem Bereitstellen und Ausspielen von Docker-Containern dient. Eingeführt wurde sie im Jahr 2015 als universale Lösung. Der Hintergedanke war es, das System der Infrastruktur insgesamt deutlich zu vereinfachen. Durch die vielfältige Hard- und Software, die im Zusammenspiel mit den Containern kamen, explodierten die Menge des für einen reibungslosen Ablauf benötigten Codes.

Der Ansatz von runC

Bei runC handelt es sich um niedrigschwellig arbeitendes Instrument. Dies bedeutet, es arbeitet in einer festen Sandbox-Umgebung und reicht Befehle weiter. Hierzu muss runC dazu in der Lage sein, die Spezifikationen des jeweiligen Hosts auf effiziente Weise zu abstrahieren – und dies, ohne dabei die gesamte App zu schreiben.

Stark vereinfacht ausgedrückt: runC muss verstehen und übersetzen können, was für Anforderungen gestellt werden – egal, um welche Soft- und Hardware es sich handelt. Hierfür arbeitet die Laufzeitumgebung nach Standards, die von der Open Container Iniative (OCI) für Container und Images festgelegt werden.

Durch dieses Konzept konnten die Entwickler noch 2015 damit beginnen, den gesamten provisorischen Code auszuschleichen, der bis dahin für die Erzeugung und die Ausspielung von Docker-Containern notwendig war. Nach ihren Angaben handelte es sich um etwa 50 Prozent der gesamten Code-Basis – die inzwischen vollständig entfallen sind.

Diese Features bietet runC beispielsweise:

  • native Unterstützung für Echzeit-Migrationen
  • volle Unterstützung für Linux-Namensräume (dienen der Isolierung von Prozessen)
  • native Unterstützung für Windows 10-Container (direkt von Microsoft bereitgestellt)
  • volle Unterstützung für alle in Linux verfügbaren Sicherheitsfunktionen
  • schnelle Anpassung an neue Hardware
  • von Google bereitgestellte Leistungsprofile für die Erzeugung von Containern

Beispiele für Probleme mit runC

Allerdings gab es seit 2015 immer wieder auch Probleme mit runC. Im Jahr 2019 wurden beispielsweise Sicherheitslücken gefunden. Damals war es möglich, dass Schadsoftware aus einem Container ausbrechen und runC überschreiben konnte. Es war dem Angreifer zudem möglich, den Host mit Root-Rechten zu attackieren. In der Folge drohten weitreichende Schäden. Im Jahr 2021 meldeten viele Nutzer, sie seien nicht in der Lage, Updates durchzuführen.

Diese Beispiele verdeutlichen eine zentrale Schwierigkeit, die aus der Konstruktion von runC herrührt: Besteht ein Problem, ist es durch die universale Ausrichtung der Laufzeitumgebung immer gleich folgenschwerer Natur.

(ID:48361956)

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zu Softwareentwicklung und DevOps

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung.

Aufklappen für Details zu Ihrer Einwilligung