Safe and Secure Drivers in High-Level Languages

0
528
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