Safe and Secure Drivers in High-Level Languages

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