Safe and Secure Drivers in High-Level Languages

0
2322
views

C, die perfekte Programmiersprache für maschinennahe Programmierung. Zu ihrer Zeit ein wahrer Segen für all die Assembler-Programmierer, welche nun endlich lesbaren Code für grundlegende Hardwarekommunikation schreiben konnten. Durch die dünne Abstraktionsschicht ermöglicht die Sprache es, effiziente, schnelle Programme zu schreiben und sichert die schnelle Geschwindigkeit von Betriebssytemen oder auch Treibern.

Doch jeder, derschon einmal C geschrieben hat, weiß, dass (natürlich fremder ;)) C-Code alles andere als schön ist. Und C-Programme können nicht nur schnell unschön werden, sondern auch unsicher. So stellte Paul Emmerich, PhD-Student an der Technischen Universität München, und zwei seiner Studenten in ihren Vortrag vor, wie in knapp 50% aller momentanen Linux-Treiber Bugs aufgrund von C als Programmiersprache auftreten.

Dementsprechend hat es sich der Lehrstuhl zur Aufgabe gesetzt, Treiber in allen möglichen Sprachen zu schreiben und diese gegeneinander zu vergleichen. Dabei wurde betont, wie mit allen Sprachen tatsächlich alle umgesetzt werden sollen; es müssen sich nur noch Studenten finden. Zum heutigen Stand sind zehn Sprachen zugewiesen und sechs bereits fertig – näher vorgestellt wurden Go, Rust und Swift. Interessant hierbei war zu erfahren, wie die verschiedenen Ansätze der Hardwarekommunikation in jeder Programmiersprache aussehen. Darüber hinaus, dass sie C nicht komplett entkommen konnten: Für bestimmte Operationen, welche zum Beispiel Pointer benötigen, gibt es keinen besseren Weg als unsicherer C-Code. Diesen haben sie aber minimiert und abgekapselt.

Nun stellt sich natürlich die Frage, ob Hochsprachen als Kandidaten für das nächste Windows in Frage kommen. Die Antwort ist vielleicht. Die größte Hürde ist bislang die Latenz ihrer Treiber, welche bei größeren Datenpaketen keine realistische Alternative bieten. Probleme stellen zum Beispiel das Wrappen von Objekten wie beispielsweise in Swift oder die verschiedenen Garbage-Collection Umsätze dar. Jedoch ist Rust in ihrer gezeigten Statistik nicht weit hinterher. Außerdem sollen noch weitere Sprachen dazukommen. Demnach ist das Projekt definitiv wert, verfolgt zu werden! Und falls ihr einen Treiber in eurer Lieblingssprache programmieren wollt, die noch fehlt, findet ihr alle Informationen und Statistiken im Meta-Repo.

HINTERLASSEN SIE EINE ANTWORT

Please enter your comment!
Please enter your name here