Development of a NIC driver in C#

07/27/2021
by   Samuel Chassot, et al.
0

Drivers have a special status among the developer community that sees them as mysterious and inaccessible. We think their extensive communication with the hardware and their need of high performance are the cause of this bad reputation. According to a widely held view, these two requirements cannot be met using high level languages. However high level languages' compilers and runtimes made great progress these past years to enhance the performance of programs. The use of these languages can also reduce by a significant amount the number of bugs and security issues introduced by the programmers by taking care of some error-prone parts like memory allocation and accesses. We also think that using high level languages can help to demystify the drivers' development. With this project, we try to develop a driver for a network card, the Intel 82599, in C#. Our goal is to find out the feasibility of such a development and the performance of such a driver. We will also be able to tell what could be missing today in C# to write a driver. We base our driver on the model proposed by Pirelli (2020) and its implementation in C.

READ FULL TEXT
research
09/13/2019

The Case for Writing Network Drivers in High-Level Programming Languages

Drivers are written in C or restricted subsets of C++ on all production-...
research
11/14/2014

Glider: A GPU Library Driver for Improved System Security

Legacy device drivers implement both device resource management and isol...
research
06/01/2022

Intelligent UNIT LEVEL TEST Generator for Enhanced Software Quality

Unit level test has been widely recognized as an important approach to i...
research
03/30/2022

Enhanced Grey Box Fuzzing For Intel Media Driver

Grey box fuzzing is one of the most successful methods for automatic vul...
research
10/08/2022

Drowsiness detection in drivers with a smartwatch

The main objective of this work is to detect early if a driver shows sym...
research
03/01/2021

IntelliGen: Automatic Driver Synthesis for FuzzTesting

Fuzzing is a technique widely used in vulnerability detection. The proce...
research
09/11/2018

Feature-Specific Profiling

While high-level languages come with significant readability and maintai...

Please sign up or login with your details

Forgot password? Click here to reset